RHEL8 환경에서 ZFS 파일 시스템 구축 및 NFS 연동
ZFS zpool/dataset 생성 및 Quota/NFS 옵션 적용
RHEL8 환경에서 ZFS 파일 시스템 구축 및 NFS 연동
여러 사용자가 동시에 파일 시스템을 활용하는 환경에서는 단순한 디스크 관리만으로는 효율적인 운영이 어렵습니다.
ZFS는 기존 Unix 파일 시스템(ext4, xfs)을 대체하는 차세대 파일 시스템으로, zpool 기반 논리적 볼륨 관리, 사용자별 Quota, NFS 공유 기능을 제공합니다.
RHEL8 환경에서 ZFS 파일 시스템을 구축하는 방법을 정리했습니다. 물리 디스크를 통합해 zpool과 dataset 단위로 논리적 볼륨을 통해 ZFS 파일 시스템을 구성한 뒤, NFS 옵션을 활용해 서버 — 클라이언트 간 공유 환경을 구축했습니다. 이를 통해 관리자는 디스크 공간을 효율적으로 배분하고, 클라이언트는 안전하게 원격 디렉터리에 접근할 수 있도록 설계했습니다.
ZFS(Zettabyte File System)
- 기존 Unix 파일 시스템(ext4, xfs) 대체하는 차세대 파일 시스템
- 디스크를 zpool이라는 단위로 관리하며, 논리적 볼륨 관리, Quota, NFS 공유 기능 → LVM과 NFS 장점 통합
- 저장 장치 추가하면 zpool 파일 시스템에서 즉시 새 공간 사용 가능
OpenZFS
- Solaris 전용 ZFS를 기반으로 Sun Microsystems에서 개발, 이후 오픈소스로 확장
- Docs: OpenZFS
ZFS 구성
- zpool: 여러 물리 디스크(PV)를 통합하여 관리하는 논리적 스토리지 풀 (VG 개념과 유사)
- *dataset(
/디렉터리): zpool 내에서 디렉터리 단위로 생성되는 파일 시스템 생성
*Dataset별 마운트 포인트 지정 가능
**ZFS는 Pool → Dataset → Sub-Dataset 계층 순으로 속성을 상속
ZFS 기능
- Quota: 사용자별 디스크 사용량 제한 가능
- NFS 공유:
zfs sharenfs명령으로 외부 NFS 클라이언트에 공유 가능 - 스냅샷: ZFS 파일 시스템이나 데이터셋의 특정 시점 상태를 읽기 전용 가상 이미지로 저장 → 빠른 생성/롤백 가능
ZFS 명령어
zpool create [pool_name] [device] -m [mount_point]: Pool 생성zpool create -f [pool_name] raidz [device1] [device2] [device3] -m [mount_point]: RAID 구성zpool list: Pool 정보 확인zpool status: Pool 상태 확인zfs set quota=10m [pool_name]/[username]: Quota 설정zfs get sharenfs [pool_name]/[username]: ZFS NFS 공유 상태 확인
ZFS 서버 설정
사전 설정
- EBS 연결
- NFS 설치
ZFS 설치
- EPEL 리포지토리 등록
dnf install epel-release -y
- 커널 버전 업데이트
dnf update kernel kernel-devel kernel-headers -y
- 커널 버전 변경 전용
reboot
- ZFS 리포지토리 설치
dnf install https://zfsonlinux.org/epel/zfs-release-2-8$(rpm --eval "%{dist}").noarch.rpm -y
- ZFS kmod 설치
dnf config-manager — disable zfs
dnf config-manager — enable zfs-kmod
kmod 방식으로 커널 모듈 설치하도록 설정
- ZFS 패키지 설치
dnf install zfs -y
- 부팅 시 ZFS 커널 자동 로드 설정
echo zfs >/etc/modules-load.d/zfs.conf
OpenZFS 커널 모듈은 ZFS Pool이 감지되면 자동 로드
- ZFS 모듈 확인
modprobe zfs
- 모듈 로드 확인
lsmod | grep zfs
- 출력 확인

Zpool 생성
- 볼륨 연결 확인
lsblk
- 출력 확인

- 파일 시스템 유형 확인
file -s /dev/nvme1n1
- 출력 확인

data 출력 시, 해당 디스크에 작성된 데이터가 없다는 의미
- Zpool 생성
zpool create mypool01 /dev/nvme1n1 -m /user
- ZFS 마운트 확인
zfs get mountpoint mypool01/testuser01
- 출력 확인

- Zpool 요약 정보 확인
zpool list
- 출력 확인

- Zpool 상세 정보 확인
zpool status
- 출력 확인

사용자 생성
- 사용자 생성
adduser testuser01
- 사용자 생성 확인
cat /etc/passwd | grep test
- 출력 확인

Dataset 생성 및 Quota 설정
- 사용자 디렉터리 생성
zfs create mypool01/testuser01
- 디렉터리 Quota 설정
zfs set quota=10M mypool01/testuser01
- Quota 적용 확인
zfs get quota mypool01/testuser01
- 출력 확인

- ZFS 상태 확인
zfs list
- 출력 확인

- ZFS 마운트 확인
zfs get mountpoint mypool01/testuser01
- 출력 확인

NFS 옵션 설정
- NFS 공유 상태 확인
zfs get sharenfs
- NFS 공유 활성화 및 옵션 설정
zfs set sharenfs=rw,no_root_squash mypool01
- NFS 공유 설정 확인
zfs get sharenfs mypool01
- 출력 확인

- sharenfs=on 으로 기본 NFS 공유 활성화 시

VALUE가 on이면 NFS 공유만 활성화된 상태 (기본값, 옵션 없음)
특정 옵션(rw, no_root_squash 등)을 설정하면 VALUE에 해당 옵션 문자열이 표시됨
- NFS 클라이언트에게 export 할 디렉터리 관리
vi /etc/exports
- ADD-TO
/user [private_ip/cidr](rw,sync,insecure,no_all_squash,no_root_squash)
insecure: 클라이언트가 비표준 포트에서 접근 가능no_all_squash: 클라이언트 사용자 권한 유지no_root_squash: 클라이언트 root 권한 유지
- /etc/exports 갱신
- /etc/exports 파일 수정 후, 서버 재시작 없이 export 적용
exportfs -ra
- export 디렉터리 목록 조회
exportfs -v
- 출력 확인

- 공유 확인
showmount -a
- 출력 확인
ZFS 클라이언트 설정
사전 설정
- NFS 설치
dnf install nfs-utils -y
NFS 마운트 설정
- 마운트할 디렉토리 생성
mkdir -p /user
- NFS 서버 디렉터리 마운트
mount -t nfs [private_ip]:/user /user
고정 Mount 설정
- 부팅 시 고정 마운트 활성화
vi /etc/fstab
- ADD-TO
[private_ip]:/user /user nfs rw 0 0
스토리지 서버 매핑 시 CIDR은 네트워크 대역 전체를 나타내기 때문에 특정 호스트를 지정할 수 없기 때문에 정확한 서버를 지정하기 위해 프라이빗 IP를 직접 입력하여 설정해야 합니다.
- 마운트 적용
mount -a
디렉터리 공유 확인
- NFS 서버에서 공유된 디렉터리 확인
showmount -e
- 출력 확인

- NFS 클라이언트에서 마운트 확인
df -h | grep /user
- 출력 확인

테스트 파일 작성
- 클라이언트에서 쓰기 테스트
touch /user/testuser01/testfile01
touch /user/testuser01/testfile02
- 서버에서 파일 읽기 테스트
ls -lart
- 출력 확인

메타데이터
- post_id
- 49febd923d6a
- slug
- rhel8-환경에서-zfs-파일-시스템-구축-및-nfs-연동-49febd923d6a
- url
- https://medium.com/@haedall/rhel8-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-zfs-%ED%8C%8C%EC%9D%BC-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EA%B5%AC%EC%B6%95-%EB%B0%8F-nfs-%EC%97%B0%EB%8F%99-49febd923d6a
- canonical_url
- https://medium.com/@haedall/rhel8-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-zfs-%ED%8C%8C%EC%9D%BC-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EA%B5%AC%EC%B6%95-%EB%B0%8F-nfs-%EC%97%B0%EB%8F%99-49febd923d6a
- author_url
- https://medium.com/@haedall
- status
- ok
- fetched_at
- 2026-06-24 16:30:55