본문 바로가기

리눅스 리뷰/ubuntu

ZFS를 활용한 Proxmox NVMe 디스크 설정 및 Nextcloud 연동 가이드

728x90
반응형

이 가이드는 Proxmox에서 NVMe 디스크를 ZFS로 설정하고, NFS를 통해 Ubuntu VM에 마운트하여 Nextcloud와 연동하는 과정을 설명합니다.

1. Proxmox에서 ZFS 풀 및 데이터셋 설정

1.1 NVMe 디스크 확인

Proxmox 호스트에서 NVMe 디스크가 인식되었는지 확인합니다.

lsblk
  • 출력에 /dev/nvme0n1이 나타나는지 확인.
  • 디스크가 LVM이나 다른 풀에 포함되어 있다면 초기화: sudo wipefs -a /dev/nvme0n1

1.2 ZFS 풀 생성

sudo zpool create -f naspool /dev/nvme0n1

naspool은 사용자 지정 풀 이름입니다.

1.3 ZFS 데이터셋 생성 및 마운트

sudo zfs create naspool/nextcloud
sudo zfs set mountpoint=/mnt/nas naspool/nextcloud
  • 마운트 확인: zfs list
  • /mnt/nas가 보이지 않으면 강제 마운트: sudo zfs mount naspool/nextcloud

1.4 ZFS 최적화

sudo zfs set compression=lz4 naspool/nextcloud
sudo zfs set recordsize=128k naspool/nextcloud
sudo zfs set atime=off naspool/nextcloud

압축과 레코드 크기를 설정하여 성능 및 저장 효율성을 향상시킵니다.

2. Proxmox에서 NFS 서버 설정

2.1 NFS 서버 설치

sudo apt update
sudo apt install nfs-kernel-server

2.2 NFS 공유 설정

/etc/exports 파일에 공유 설정 추가:

sudo nano /etc/exports

추가:

/mnt/nas 192.168.0.0/24(rw,sync,no_subtree_check)
  • 192.168.0.0/24는 VM 네트워크 대역으로, Proxmox 네트워크 설정에 맞게 수정.
  • 공유 업데이트: sudo exportfs -ra

2.3 NFS 서비스 및 방화벽

sudo systemctl restart nfs-kernel-server
sudo systemctl enable nfs-kernel-server
sudo ufw allow from 192.168.0.0/24 to any port nfs

NFS 공유 확인: showmount -e localhost

3. Ubuntu VM에서 NFS 마운트

3.1 NFS 클라이언트 설치

sudo apt update
sudo apt install nfs-common

3.2 NFS 마운트

sudo mkdir /mnt/nas
sudo mount <proxmox_ip>:/mnt/nas /mnt/nas

<proxmox_ip>는 Proxmox 호스트 IP 주소.

3.3 영속적 마운트

sudo nano /etc/fstab

추가:

<proxmox_ip>:/mnt/nas /mnt/nas nfs defaults 0 0

마운트 테스트: sudo mount -a

3.4 권한 설정

sudo chown -R www-data:www-data /mnt/nas
sudo chmod -R 750 /mnt/nas

Nginx 사용 시 www-data를 nginx로 변경.

4. Nextcloud와 /mnt/nas 연동

4.1 외부 스토리지 설정 (권장)

  • Nextcloud 웹 인터페이스에서 Apps로 이동, External Storage Support 앱 활성화.
  • Settings > Administration > External storages로 이동.
  • Add storage > Local 선택:
    • Folder name: NAS_Storage
    • Configuration: /mnt/nas
    • Available for: 사용자/그룹 지정
    • Permissions: 읽기/쓰기 설정
  • 저장 후 파일 탐색기에서 NAS_Storage 테스트.

4.2 데이터 디렉토리 변경 (선택 사항)

sudo systemctl stop apache2  # 또는 nginx
sudo systemctl stop php-fpm
sudo mv /var/www/html/nextcloud/data /mnt/nas/nextcloud-data
sudo chown -R www-data:www-data /mnt/nas/nextcloud-data
sudo chmod -R 750 /mnt/nas/nextcloud-data
sudo nano /var/www/html/nextcloud/config/config.php

datadirectory 수정:

'datadirectory' => '/mnt/nas/nextcloud-data',

서비스 재시작:

sudo systemctl start apache2  # 또는 nginx
sudo systemctl start php-fpm

4.3 데이터 스캔

sudo -u www-data php /var/www/html/nextcloud/occ files:scan --all

5. ZFS 스냅샷 및 백업

5.1 스냅샷 생성

sudo zfs snapshot naspool/nextcloud@snapshot-$(date +%Y%m%d)

5.2 자동 스냅샷

sudo crontab -e

추가:

0 2 * * * zfs snapshot naspool/nextcloud@snapshot-$(date +\%Y\%m\%d)

6. 문제 해결

6.1 Proxmox에서 /mnt/nas 안 보임

  • 마운트 확인: zfs get mountpoint naspool/nextcloud
  • 강제 마운트: sudo zfs mount naspool/nextcloud

6.2 Ubuntu VM에서 /mnt/nas 안 보임

  • NFS 연결 확인: showmount -e <proxmox_ip>
  • 로그 확인: sudo journalctl -xe
  • 방화벽 확인: sudo ufw status

6.3 Nextcloud 오류

  • 권한 확인: ls -l /mnt/nas
  • 로그 확인: cat /mnt/nas/nextcloud-data/nextcloud.log
  • 설정 복구: sudo -u www-data php /var/www/html/nextcloud/occ maintenance:repair

7. 추가 팁

  • 성능 최적화: ZFS ARC 캐시 크기 조정 (/etc/modprobe.d/zfs.conf):
  • 업데이트: sudo update-initramfs -u
  • 보안: Nextcloud 파일 암호화 활성화, NFS IP 제한 적용.
  • 모니터링: zpool iostat -v로 ZFS 성능 확인.
반응형