탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle Solaris 관리: ZFS 파일 시스템 Oracle Solaris 11 Information Library (한국어) |
1. Oracle Solaris ZFS 파일 시스템(소개)
3. Oracle Solaris ZFS와 전통적인 파일 시스템의 차이
4. Oracle Solaris ZFS 저장소 풀 관리
6. Oracle Solaris ZFS 파일 시스템 관리
ZFS 압축, 중복 제거 및 암호화 등록 정보 간의 상호 작용
파일 시스템을 ZFS 파일 시스템으로 마이그레이션하는 방법
7. Oracle Solaris ZFS 스냅샷 및 복제 작업
8. ACL 및 속성을 사용하여 Oracle Solaris ZFS 파일 보호
이 Solaris 릴리스에서는 다음과 같이 ZFS 파일 시스템 공유를 만들고 게시할 수 있습니다.
zfs share 명령을 사용하여 파일 시스템 공유를 만들고 NFS 또는 SMB 공유 등록 정보를 정의합니다.
별도 명령을 사용하여 공유를 만들면 다음 기능이 제공됩니다.
파일 시스템의 특정 경로를 공유하는 데 사용되는 옵션을 정의합니다.
파일 시스템당 공유를 여러 개 정의할 수 있으며, 공유 이름은 각 공유를 고유하게 식별합니다.
공유는 NFS 및 SMB 공유에 대한 옵션을 모두 정의할 수 있습니다.
단일 디렉토리 경로에 대해 SMB 경로를 여러 개 정의할 수 있습니다.
공유는 .zfs/share 디렉토리의 파일에 공유 이름으로 저장됩니다.
정의된 공유와 sharenfs 및 sharesmb 등록 정보 간의 상호 작용은 다음과 같습니다.
기존 sharenfs 등록 정보는 NFS를 통해 파일 시스템을 게시할지 여부를 제어합니다. 값은 on 또는 off입니다. 이 등록 정보는 종속 파일 시스템에 상속될 수 있습니다.
기존 sharesmb 등록 정보는 SMB를 통해 파일 시스템을 게시할지 여부를 제어합니다. 값은 on 또는 off입니다. 이 등록 정보는 종속 파일 시스템에 상속될 수 있습니다.
sharenfs 또는 sharesmb 등록 정보가 on으로 설정된 경우 파일 시스템 및 등록 정보를 상속하는 모든 종속 파일 시스템에 대해 정의된 모든 공유가 해당 프로토콜에 게시됩니다. zfs share 명령을 실행할 때도 정의된 모든 공유가 게시됩니다.
공유를 정의하지 않으면 파일 시스템이 공유되지 않습니다.
파일 시스템에 대해 공유를 정의하면 해당 공유만 게시됩니다. 파일 시스템의 마운트 지점은 명시적으로 공유하는 공유가 있는 경우에만 공유됩니다.
sharenfs 또는 sharesmb 등록 정보가 off로 설정된 경우 파일 시스템 및 등록 정보를 상속하는 모든 종속 파일 시스템에 대해 게시된 모든 공유가 해당 프로토콜에서 게시 해제됩니다. 이러한 공유는 sharenfs 또는 sharesmb 등록 정보를 on으로 설정할 때까지 공유 해제된 상태로 유지됩니다.
등록 정보를 off로 설정하고 다음에 sharenfs 또는 sharesmb 등록 정보가 on으로 설정될 때 재공유할 경우 정의된 공유가 제거되지 않습니다.
zfs unshare 명령을 실행하면 파일 시스템에 대해 게시된 모든 공유가 게시 해제됩니다. 이러한 공유는 파일 시스템에 대해 zfs share 명령을 실행할 때까지 공유 해제된 상태로 유지됩니다.
zfs unshare 명령을 실행하고 다음에 zfs share 명령이 실행될 때 재공유할 경우 정의된 공유가 제거되지 않습니다.
이 절에서는 새 공유 구문과 레거시 구문 공유의 차이점에 대해 자세히 설명합니다.
새로운 공유의 주요한 차이점은 다음과 같습니다.
zfs set share 명령이 ZFS 파일 시스템 공유를 위한 sharemgr 인터페이스 대신 사용됩니다.
sharemgr 인터페이스는 더 이상 사용할 수 없습니다. 레거시 share 및 sharenfs 등록 정보는 계속 사용할 수 있습니다. 다음 예제를 참조하십시오.
/etc/dfs/dfstab 파일은 여전히 존재하지만 수정 사항은 무시됩니다. SMF는 ZFS 마운트 및 공유 정보가 관리되는 방식과 유사하게, 시스템이 재부트될 때 파일이 시스템이 자동으로 공유되도록 ZFS 또는 UFS 공유 정보를 관리합니다.
share -a 명령은 파일 시스템 공유가 지속되도록 share -ap 명령과 유사하게 작동합니다.
종속 파일 시스템이 공유 등록 정보를 상속하지 않습니다. 상속된 sharenfs 등록 정보를 on으로 설정하여 종속 파일 시스템을 만든 경우 새 종속 파일 시스템에 대한 공유가 만들어집니다.
레거시 공유 구문은 계속 지원됩니다.
파일 시스템을 공유하려면 share 명령을 사용합니다.
예를 들어 ZFS 파일 시스템을 공유하려면 다음 구문을 사용합니다.
# share -F nfs /tank/zfsfs # cat /etc/dfs/sharetab /tank/zfsfs - nfs rw
위 구문은 UFS 파일 시스템 공유 구문과 동일합니다.
# share -F nfs /ufsfs # cat /etc/dfs/sharetab /ufsfs - nfs rw /tank/zfsfs - nfs rw
처음에는 sharenfs 등록 정보가 설정될 때까지 zfs share 명령을 사용하여 파일 시스템을 공유할 수 없습니다.
# zfs share rpool/data cannot share 'rpool/data': legacy share use share(1M) to share this filesystem, or set the 'share' property and set [sharenfs|sharesmb] property on # zfs set sharenfs=on rpool/data # cat /etc/dfs/sharetab /rpool/data - nfs rw
모든 방법이 파일 시스템 공유를 즉시 게시합니다.
새 zfs set share 명령은 NFS 또는 SMB 프로토콜을 통해 ZFS 파일 시스템을 공유하는 데 사용됩니다. 파일 시스템에 sharenfs 등록 정보를 함께 설정할 때까지 공유가 게시되지 않습니다.
zfs set share 명령을 사용하여 ZFS 파일 시스템의 NFS 또는 SMB 공유를 만들고 sharenfs 등록 정보도 설정합니다.
# zfs create rpool/fs1 # zfs set share=name=fs1,path=/rpool/fs1,prot=nfs rpool/fs1 name=fs1,path=/rpool/fs1,prot=nfs
sharenfs 또는 sharesmb 등록 정보를 on으로 설정할 때까지 공유가 게시되지 않습니다. 예를 들면 다음과 같습니다.
# zfs set sharenfs=on rpool/fs1 # cat /etc/dfs/sharetab /rpool/fs1 fs1 nfs sec=sys,rw
공용 NFS 공유는 다음과 같이 만들 수 있습니다.
# zfs set share=name=pp,path=/pub,prot=nfs,sec=sys,rw=*,public rpool/public name=pp,path=/pub,prot=nfs,public=true,sec=sys,rw=* # zfs set sharenfs=on rpool/public # cat /etc/dfs/sharetab /pub pp nfs public,sec=sys,rw
다음과 유사한 구문을 사용하여 새로 생성된 ZFS 파일 시스템의 공유를 만들 수도 있습니다.
# zfs create -o mountpoint=/ds -o sharenfs=on rpool/ds
ZFS 파일 시스템의 NFS 공유를 만드는 경우 다음 공유 구성 요소를 제공해야 합니다.
공유의 이름을 식별합니다. 최대 공유 이름은 80자입니다.
공유할 파일 시스템 또는 디렉토리 내에 있어야 하는 NFS 공유의 경로를 식별합니다.
프로토콜을 NFS 또는 SMB로 식별합니다.
공유할 ZFS 파일 시스템을 식별합니다.
추가 공유 옵션은 다음과 같습니다.
공유를 식별하는 데 유용한 텍스트를 제공합니다. 설명에 공백이나 쉼표를 사용할 경우 따옴표(" ")로 묶어야 합니다.
모든 클라이언트가 공유를 읽기/쓰기 또는 읽기 전용으로 사용할 수 있는지를 식별합니다. 호스트 이름, IP 주소 또는 넷 그룹이 포함된 콜론으로 구분된 목록을 지정할 수도 있습니다.
지정한 호스트 또는 호스트 목록에서 루트 액세스 권한이 있는 루트 사용자를 식별합니다. 기본적으로 루트 액세스 권한을 가진 호스트는 없습니다.
NFS 서버 보안 모드(예: sys, dh, krb5 등)를 식별합니다. 지원되는 보안 모드 정보는 nfssec(5)를 참조하십시오.
다음 NFS 등록 정보는 prot=nfs 뒤, sec= 등록 정보 앞에 지정해야 합니다.
anon=user-name| uid
nosub=true|false
nosuid=true|false
aclok=true|false
public=true|false
index=filename
log=TYPE_LOGTAG
cksum=TYPE_STRINGSET
다음 선택적 SMB 등록 정보는 prot=smb 등록 정보 뒤에 지정해야 합니다.
ad-container=string
abe=[true|false]
csc=[disabled|manual|auto|vdo]
catia=[true|false]
guestok=[true|false]
ro=access-list
rw=access-list
none=access-list
NFS 및 SMB 공유 등록 정보에 대한 자세한 내용은 share_nfs(1M) 및 share_smb(1M)을 참조하십시오.
이전 릴리스와 마찬가지로 zfs get sharenfs 등록 정보나 zfs get all 명령 구문을 사용하여 sharenfs 등록 정보 값을 표시합니다.
# zfs get sharenfs rpool/fs1 NAME PROPERTY VALUE SOURCE rpool/fs1 sharenfs on local
새 공유 정보는 zfs get share 명령을 통해 사용할 수 있습니다.
# zfs get share rpool/fs1 NAME PROPERTY VALUE SOURCE rpool/fs1 share name=rpool_fs1,path=/rpool/fs1,prot=nfs local
zfs get all 명령 구문에서는 새 공유 정보를 사용할 수 없습니다.
새로 생성된 ZFS 파일 시스템의 공유를 생성하는 경우 zfs get share 명령을 사용하여 share-name 이름 또는 share-path 이름을 식별합니다. 예를 들면 다음과 같습니다.
# zfs create -o mountpoint=/data -o sharenfs=on rpool/data # zfs get share rpool/data NAME PROPERTY VALUE SOURCE rpool/data share name=data,path=/data,prot=nfs local
zfs share 등록 정보와 sharenfs 또는 sharesmb 등록 정보의 상속은 다음과 같이 작동합니다.
zfs share 등록 정보는 부모 파일 시스템으로부터 종속 파일 시스템에 상속되지 않습니다. 또한 zfs set share 명령은 종속 파일 시스템에 ZFS 등록 정보를 설정하는 -r 옵션을 지원하지 않습니다.
부모 파일 시스템에 sharenfs 또는 sharesmb 등록 정보를 설정하면 종속 파일 시스템에도 sharenfs 또는 sharesmb 등록 정보가 설정됩니다. 예를 들면 다음과 같습니다.
# zfs create -o mountpoint=/ds rpool/ds # zfs set share=name=ds,path=/ds,prot=nfs rpool/ds name=ds,path=/ds,prot=nfs # zfs set sharenfs=on rpool/ds # cat /etc/dfs/sharetab /ds rpool_ds nfs sec=sys,rw # zfs create rpool/ds/ds1 # zfs get sharenfs rpool/ds/ds1 NAME PROPERTY VALUE SOURCE rpool/ds/ds1 sharenfs on inherited from rpool/ds
또한 기존 자식 파일 시스템은 부모 파일 시스템의 sharenfs 또는 sharesmb 등록 정보 값을 상속합니다.
부모 파일 시스템에서 sharenfs 또는 sharesmb 등록 정보를 off로 설정하면 종속 파일 시스템에서도 sharenfs 등록 정보 또는 sharesmb 등록 정보가 off로 설정됩니다. 예를 들면 다음과 같습니다.
# zfs set sharenfs=off rpool/ds $ zfs get -r sharenfs rpool/ds NAME PROPERTY VALUE SOURCE rpool/ds sharenfs off local rpool/ds/ds1 sharenfs off inherited from rpool/ds rpool/ds/ds2 sharenfs off inherited from rpool/ds rpool/ds/ds3 sharenfs off inherited from rpool/ds
공유 등록 정보 값을 변경하는 경우 이름 및 프로토콜 등록 정보를 지정해야 합니다.
예를 들어, 다음과 같이 NFS 공유를 만듭니다.
# zfs create -o mountpoint=/ds -o sharenfs=on rpool/ds # zfs set share=name=ds,path=/ds,prot=nfs rpool/ds name=ds,path=/ds,prot=nfs
그런 다음 SMB 프로토콜을 추가합니다.
# zfs set share=name=ds,prot=nfs,prot=smb rpool/ds name=ds,path=/ds,prot=nfs,prot=smb
SMB 프로토콜을 제거합니다.
# zfs set -c share=name=ds,prot=smb rpool/ds name=ds,path=/ds,prot=nfs
zfs set -c 명령을 사용하여 기존 공유를 제거할 수 있습니다. 예를 들어, 공유 이름을 식별합니다.
# zfs get share NAME PROPERTY VALUE SOURCE rpool/ds share name=ds,path=/ds,prot=nfs local
그런 다음 share-name 이름을 식별하여 공유를 제거합니다. 예를 들면 다음과 같습니다.
# zfs set -c share=name=ds rpool/ds share 'ds' was removed.
파일 시스템을 만들 때 기본 공유를 만들어 공유를 설정한 경우 share-name 이름 또는 share-path 이름으로 공유를 제거할 수 있습니다. 예를 들어, 이 공유에는 기본 share-name 이름인 data와 기본 share-path 이름인 /data가 지정됩니다.
# zfs create -o mountpoint=/data -o sharenfs=on rpool/data # zfs get share rpool/data NAME PROPERTY VALUE SOURCE rpool/data share name=data,path=/data,prot=nfs local
share-name 이름을 식별하여 공유를 제거합니다. 예를 들면 다음과 같습니다.
# zfs set -c share=name=data rpool/data share 'data' was removed.
share-path 이름을 식별하여 공유를 제거합니다. 예를 들면 다음과 같습니다.
# zfs set -c share=path=/data rpool/data share 'data' was removed.
이전 Solaris 릴리스에서는 Oracle Solaris 비전역 영역에 NFS 또는 SMB 공유를 만들고 게시할 수 없었습니다. 이 Solaris 릴리스에서는 zfs set share 명령과 레거시 share 명령을 비전역 영역과 함께 사용하여 NFS 공유를 만들고 게시할 수 있습니다.
ZFS 파일 시스템이 비전역 영역에 마운트되고 사용 가능한 경우 해당 영역에서 공유될 수 있습니다.
비전역 영역에 마운트되지 않았거나 비전역 영역에 공유되지 않은 경우 전역 영역에서 파일 시스템을 공유할 수 있습니다.
ZFS 파일 시스템의 mountpoint 등록 정보가 legacy로 설정된 경우 레거시 share 명령을 사용하여 파일 시스템을 공유할 수 있습니다.
예를 들어, /export/home/data 및 /export/home/data1 파일 시스템은 zfszone에서 사용할 수 있습니다.
zfszone# share -F nfs /export/home/data zfszone# cat /etc/dfs/sharetab /export/home/data export_home_data nfs sec=sys,rw
zfszone# zfs set share=name=data1,path=/export/home/data1,prot=nfs tank/zones/export/home/data1 zfszone# zfs set sharenfs=on tank/zones/export/home/data1 zfszone# cat /etc/dfs/sharetab /export/home/data1 data1 nfs sec=sys,rw
이 표에서는 새 ZFS 파일 시스템 공유 구문과 레거시 공유 구문에 대해 설명합니다.
표 6-5 ZFS 공유 및 레거시 공유 명령 요약
|
하위 디렉토리 또는 종속 파일 시스템이 이미 공유된 경우 부모 파일 시스템을 공유할 수 없습니다.
# share -F nfs /rpool/fs2/dir1 # share -F nfs /rpool/fs2/dir2 # share -F nfs /rpool/fs2 share: NFS: descendant of path is shared: /rpool/fs2/dir1 in rpool_fs2_dir2
zfs set share 명령을 사용하여 생성된 공유는 이름을 바꿀 수 없습니다.
zfs set share 명령을 사용하여 NFS 및 SMB 프로토콜이 모두 있는 파일 시스템 공유를 만들 수 있습니다. 예를 들면 다음과 같습니다.
# zfs set share=name=ds,path=/ds,prot=nfs,prot=smb rpool/ds name=ds,path=/ds,prot=nfs,prot=smb
레거시 share 명령을 사용하여 NFS 및 SMB 프로토콜이 모두 있는 파일 시스템 공유를 만들려면 명령을 두 번 지정해야 합니다. 예를 들면 다음과 같습니다.
# share -F nfs /rpool/ds # share -F smb /rpool/ds # zfs get share rpool/df name=rpool_ds,path=/rpool/ds,prot=nfs,prot=smb
쉼표(,)가 포함된 공유 경로 또는 설명은 큰따옴표로 묶어야 합니다.
이 절에서는 전환 문제에 대해 설명합니다.
시스템 업그레이드 – 이 릴리스에서 등록 정보 변경으로 인해 이전 BE로 다시 부트할 경우 ZFS 공유가 잘못될 수 있습니다. 비ZFS 공유는 영향을 받지 않습니다. 이전 BE로 다시 부트하려는 경우 ZFS 파일 시스템의 공유 구성을 복원할 수 있으려면 pkg update 작업 전에 기존 공유 구성의 복사본을 먼저 저장해야 합니다.
이전 BE에서 sharemgr show -vp 명령을 사용하여 공유 및 해당 구성을 모두 나열합니다.
zfs get sharenfs filesystem 명령 및 zfs sharesmb filesystem 명령을 사용하여 공유 등록 정보의 값을 가져옵니다.
이전 BE로 돌아가면 sharenfs 및 sharesmb 등록 정보를 원래 값으로 재설정합니다.
레거시 공유 해제 동작 – unshare -a 명령 또는 unshareall 명령을 사용하면 공유가 게시 해제되지만, SMF 공유 저장소가 업데이트되지는 않습니다. 따라서 기존 공유를 다시 공유하려고 하면 공유 저장소가 충돌하는지 검사하여 오류가 표시됩니다.