Home Data Center

뭣? 가정집에다가 서버랙을 설치해서 운영하는 사람이 있다고?

당장 보러가기
미분류

grep이 놓친 멀티라인 레코드 — awk paragraph mode로 해결한 파이프라인 버그

📌 핵심 요약 자동화 파이프라인에서 grep으로 멀티라인 레코드를 필터링하면 매칭된 줄만 추출되어 나머지 필드(제목, URL)가 유실된다. awk의 paragraph mode(RS=””)를 사용하면 빈 줄로 구분된 레코드 블록 전체를 하나의 단위로 다룰 수 있어 문제가 해결된다. 증상: 뭔가 잘리고 있다 자동화 파이프라인이 돌아가고 있었다. RSS 피드를 수집하고, 관심 있는 블로그 출처의 기사를 골라내고(curate.sh), 결과를 curated.md에 저장하는 구조였다. 그런데 […]

Bell 
미분류

GitLab Helm Chart 업그레이드 시 DB Migration 실패 트러블슈팅 (9.8.0→9.9.0)

📌 핵심 요약 GitLab Helm chart를 9.8.0에서 9.9.0 (앱 버전 v18.8 → v18.9)으로 업그레이드하는 과정에서 DB migration job이 실패하고, 새로 배포된 sidekiq/webservice pod들이 Init:CrashLoopBackOff 상태에 빠지는 장애가 발생했다. 근본 원인은 pool_repositories 테이블의 organization_id 컬럼에 NULL 값이 존재하는 데이터 정합성 문제였다. v18.9의 migration이 해당 컬럼에 NOT NULL 제약조건을 추가하려다 PG::CheckViolation 에러가 발생했다. 해결책: NULL 값을 올바른 […]

Bell 
Infrastructure

systemd 서비스가 갑자기 멈췄을 때 — status=126, ExecStart 권한 문제 트러블슈팅

📌 핵심 요약 systemd 서비스가 status=126 또는 Main process exited, code=exited, status=203/EXEC로 실패하고 있다면, ExecStart에 지정된 스크립트의 실행 권한(+x)이 사라졌을 가능성을 먼저 확인하자. git checkout, git reset, 파일 재생성 등이 원인일 수 있다. 상황 어느 날 아침, 매시간 돌아야 할 데이터 수집 파이프라인이 약 8시간째 멈춰있다는 걸 발견했다. $ systemctl status data-pipeline.service ● data-pipeline.service – […]

Bell 
Infrastructure Kubernetes

Ingress Controller 전환 시 WebSocket 장애 사례 — 60초마다 끊기는 연결의 원인 추적

📌 📌 핵심 요약 Kubernetes 환경에서 NGINX Inc Ingress Controller에서 커뮤니티 ingress-nginx로 전환 후, 방화벽 장애 복구 이후 Mattermost WebSocket 연결이 정확히 60초마다 재연결을 반복한 인시던트. 근본 원인은 어노테이션 호환성 문제로, 기존 nginx.org/websocket-services 어노테이션이 ingress-nginx에서 무시되면서 proxy timeout이 기본값(60초)으로 동작해 WebSocket idle 연결이 끊긴 것으로 확인됨. 1. 환경 및 배경 인프라 구성 플랫폼: Kubernetes (자체 […]

Bell 
Data Base/Storage

홈랩 스토리지 성능 측정

홈랩에 구축한 TrueNAS Scale 기반 공유 스토리지 성능 기록용 메모 환경 물리 서버: Dell PowerEdge R7525 (AMD EPYC 7352 * 2) -> 위 1대 서버에서 Proxmox VE 8.4.1 버전 Hypervisor OS 설치 후 모든 호스트는 VM으로 관리 TrueNAS Scale: 12vCPU + 128GB RAM (버전: ElectricEel-24.10.2.1) KCD61LUL7T68 U.2 NVMe 7.68TB SSD 5장 RAIDZ1 구성 ZFS Pool […]

Bell 
Kubernetes Minecraft

마인크래프트 서버 성능 튜닝 방법

안녕하세요, 방울입니다. 제가 어렸을 적부터 다양한 게임 서버를 운영해본 경험을 토대로 게임 서버의 성능을 최대한으로 이끌어내기 위한 팁을 공유하고자 이 포스트를 작성합니다. 해당 포스트는 마인크래프트 자바 에디션의 서버 (Forge, Fabric, Sponge 등 모드 서버 포함)를 기준으로 설명합니다. 서버에 적합한 하드웨어 선택 및 최적화 CPU 코어 클럭 속도가 가능한 최대한 높은 것으로 선정 (성능 영향: 최상) […]

Bell 
Server

2024년 2월 BSN Home Lab 인프라 구성 현황

안녕하세요, 방울입니다. 2024-01-22 에 개인 블로그에 올린 구성(https://blog.softbell.net/675)과 많이 달라지진 않았지만 약간의 변화가 발생하여 추가로 2024-02-07 기준 홈랩 인프라 구성 현황을 공유합니다 우선 랙 구조가 다음과 같이 아주 살짝 변경되었습니다. 기존 변경 (빈 칸은 기존 유지) 비고 모니터 / 1G + 10G 메인 스위치 슬라이딩 선반 – 콘솔 작업용 Intel I7-2600, 8GB * 4 – […]

Bell 
Infrastructure Kubernetes Operating system Windows

Windows WSL2 환경 Docker Desktop Kubernetes hostPath 마운트 방법

전제 조건 OS: Windows 10 or Windows 11 WSL2 기반 Ubuntu Docker Desktop Kubernetes 로컬 개발환경 구성 등을 위해 WSL2 기반 Ubuntu 내 디렉토리를 실시간으로 사용하기 위해 hostPath 마운트가 필요할 경우 1 단계 위 디버깅용 pod yaml 을 적용 2 단계 kubectl exec wsl2-debug-pod -it /bin/sh 디버깅용 pod 에 접속 cd /mnt/host 마운트한 디렉토리로 이동하여 […]

Bell 
Data Base/Storage MySQL

MySQL 사용자 추가 및 권한 설정

전제 조건 MySQL Server 5.7.29 MySQL 콘솔 접속 MySQL 접속 리눅스에 MySQL 서버가 있을 때 MySQL 콘솔 접속 후 계정 확인 계정 확인 쿼리문이 MySQL 버전에 따라 약간 다르다.현재 버전에서는 위 쿼리 구문을 사용하면 된다. 계정 추가 1: localhost(서버)에서만 접속 가능2: %(와일드카드) 모든 대역에서 접속 가능3: 192.168.1.* 대역에서 접속 가능 권한 부여 계정 삭제 변경사항 […]

Bell