server-disk-management

Proxmox NAS 구축 & 디스크 관리 팁 정리

LXC 컨테이너에 ZFS 바인드 마운트

bash
# GUI에서는 bind mount 지원 안 함, CLI로 해야 함
pct set <CTID> -mp0 /zfs,mp=/mnt/zfs

# 여러 LXC에 동시 마운트 가능
pct set 101 -mp0 /zfs,mp=/mnt/zfs          # Filebrowser
pct set 102 -mp0 /zfs/photos,mp=/mnt/photos # Immich (나중에)

# 읽기 전용 마운트
pct set 101 -mp0 /zfs,mp=/mnt/zfs,ro=1

마운트 확인 명령어

bash
lsblk          # 블록 디바이스 목록 (LXC에서는 보이기만 함)
df -h          # 실제 마운트된 파일시스템 + 용량
findmnt        # 마운트 트리 구조로 보기

외장 디스크 마운트 & 해제

bash
# 마운트 포인트 생성 후 마운트
mkdir -p /mnt/external
mount /dev/sdf1 /mnt/external

# 확인
ls /mnt/external

# 작업 끝나면 언마운트
umount /mnt/external

Mac에서 디스크 관리

bash
diskutil list                    # 디스크 목록
diskutil eject /dev/diskX        # 안전하게 꺼내기
diskutil verifyVolume /dev/diskX # 검사

파일 복사

bash
# 기본 복사 (-r: 재귀, -v: 진행상황)
cp -rv /mnt/external/* /zfs/backup-250131/

# 중간에 끊겼을 때 이어서 (rsync)
rsync -av --progress /mnt/external/ /zfs/backup-250131/

백그라운드 작업 (screen)

bash
apt install -y screen
screen -S backup          # 세션 생성
# 명령 실행...
# Ctrl+A → D 로 빠져나오기 (백그라운드 유지)
screen -r backup          # 다시 들어가기

복사 완료 확인

bash
du -sh /mnt/external
du -sh /zfs/backup-250131

# 파일 개수 비교
find /mnt/external -type f | wc -l
find /zfs/backup-250131 -type f | wc -l

I/O 모니터링

bash
iotop              # 프로세스별 디스크 사용량 (실시간)
iostat -x 1        # 디스크별 사용률 (1초 갱신)
zpool iostat 1     # ZFS 풀 읽기/쓰기 속도

ZFS 데이터셋 관리

bash
zfs list                    # 데이터셋 목록
zfs create zfs/photos       # 하위 데이터셋 생성 (스냅샷/권한 분리 관리용)
zfs create zfs/documents

SMB 설정 (Mac/Windows 접근용)

bash
apt install -y samba

cat >> /etc/samba/smb.conf << 'EOF'

[zfs]
   path = /mnt/zfs
   browseable = yes
   read only = no
   guest ok = no
   create mask = 0755
   directory mask = 0755
EOF

smbpasswd -a root
systemctl restart smbd
systemctl enable smbd

Mac에서: Cmd+Ksmb://<IP>/zfs

NFS 설정 (LXC/VM용, 호스트에서 제공 추천)

bash
apt install -y nfs-kernel-server
echo '/zfs *(rw,sync,no_subtree_check,no_root_squash)' >> /etc/exports
exportfs -a
systemctl enable --now nfs-server

클라이언트에서:

bash
mount -t nfs <NAS IP>:/zfs /mnt/nas

Locale 경고 해결

bash
apt install -y locales
locale-gen en_US.UTF-8
update-locale LANG=en_US.UTF-8

핵심 개념 정리

개념설명
ARCZFS 읽기 캐시, RAM 사용 (자동)
L2ARC2차 읽기 캐시, SSD 사용 (선택)
TXG쓰기 버퍼링, 5초마다 flush
bind mount호스트 경로를 컨테이너에 연결
LXC vs VMLXC는 커널 공유라 가볍고 빠름