Proxmox ZFS 생성 및 사용하기.

안녕하세요. 달소입니다.

이번편은 제가 Proxmox로 홈서버를 이전한 가장 큰 이유인 ZFS의 생성편 입니다.

기본적으로 ZFS에 대한 내용은 아실거라고 생각하니..  넘어가고 바로 생성 단계로 진행하겠습니다.

https://namu.wiki/w/ZFS

ZFS 생성하기 - 웹

ZFS의 경우 Proxmox의 메인기능이기도 하기때문에 간단하게 웹으로 생성이 가능합니다.
다만, 생성은 웹으로 하더라도 대부분의 기능은 터미널에서 작업하는것이 훨씬 편하고 좋습니다.
웹의 가장 큰 장점은 직관으로 ZFS를 생성 할 수 있다는점입니다.

생성은 간단합니다. 관리자 페이지 -> 디스크 -> ZFS -> 생성

생성을 누른다음 사용할 디바이스를 먼저 체크해주고
이름 / Raid 레벨 / 압축 / 전환옵션을 설정해줍니다.

Raid 레벨의 경우 기존 Raid와 동일하게 1개는 기본, 2개는 Mirror, 3개부터 RAIDZ,RAIDZ2 형식으로 가는데 알고계시는 Raid5,6와 동일합니다.

저는 3개를 사용하기때문에 RAIDZ 이며
압축옵션은 가장 빠른 lz4로 해주시면 됩니다. 전환도 12가 가장좋다고합니다.

생성을 누르면 금방 ZFS 스토리지가 생성됩니다.

더블클릭을 누르면 아래처럼 각 저장소에 대한 상태도 체크할 수 있습니다.

데이터센터의 스토리지에서도 아래처럼 ZFS가 잘 설치된걸 확인할 수 있습니다.

기본적인 ZFS 스토리지의 경우 디스크 이미지 및 컨테이너만 보관이 가능하도록 설정되어있으나 몇가지 옵션을 추가하면 다른용도로도 사용이 가능합니다.

여기부터는 쉘로 진행을 하도록 하겠습니다.

ZFS 생성하기 - CLI

앞서 웹으로 ZFS를 생성해보았다면 이번에는 CLI 환경에서 ZFS를 설치하는방법입니다.
아무래도 어느정도 익숙해지시고 나시면 CLI가 훨씬 편하고 작업할 수 있는 범위도 넓어서 좋습니다.
앞서 웹을통해 생성하셨더라도 이러이러한 과정이 있다는 사실은 아시는게 좋으며 이 다음 과정부터는 모든과정이 쉘로 진행되기때문에 참고하시면 되겠습니다.

먼저 사용할 디스크 목록을 확인해줍니다.

lsblk |awk 'NR==1{print $0" DEVICE-ID(S)"}NR>1{dev=$1;printf $0" ";system("find /dev/disk/by-id -lname \"*"dev"\" -printf \" %p\"");print "";}'|grep -v -E 'part|lvm'

이제 이 디스크 정보를 가지고 ZFS Pool을 만들어보겠습니다.

zpool create [pool-이름] [옵션] [디스크1] [디스크2] [디스크3] 등등

여기서 옵션에는 아무것도안넣으면 기본, mirror, raidz, raidz2, raidz3등이 되겟습니다.
저는 아래처럼 raidz3 로 만들어봤습니다.

여기까지하면 ZFS Pool 생성은 웹과 똑같습니다만 데이터 센터쪽에서 스토리지를 별도로 추가해주셔야 합니다.

추후에 성능향상을 위한 튜닝의 경우 별도 글로 작성하겠습니다.

ZFS 파일시스템 만들기

zfs pool만 만들었다고 끝이아닙니다.
기본적으로 zfs를 생성하게 되면 zfs pool 이름으로 마운트 포인트가 잡히게 되는데요.

사용 용도에 따라서 zfs를 사용하려면 추가로 만들어주면 됩니다.
ex) 흔히 사용하는 image를 올리는 zfs 파일시스템이라면 아래처럼 생성해주면 됩니다.

zfs create dalso-zfs/image

여기서 해당 디렉터리의 용량을 제한하고싶다면
zfs set quota=1G dalso-zfs/image

이런식으로 옵션값을 주면 용량제한이 1G로 걸리게됩니다.
이렇게 만들어진 디렉터리를 추가해주면

이렇게 기본 iso 이미지나 다른용도로도 만들어서 쓸수있습니다.

이렇게 백업 디렉터리도 만들고~ 운영 VM 디렉터리도 만들고~ 여러가지 방법으로 사용하시면 되겠습니다.