탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
![]() |
Oracle Solaris 11.1 관리: ZFS 파일 시스템 Oracle Solaris 11.1 Information Library (한국어) |
1. Oracle Solaris ZFS 파일 시스템(소개)
3. Oracle Solaris ZFS 저장소 풀 관리
5. Oracle Solaris ZFS 파일 시스템 관리
ZFS 압축, 중복 제거 및 암호화 등록 정보 간의 상호 작용
파일 시스템을 ZFS 파일 시스템으로 마이그레이션하는 방법
6. Oracle Solaris ZFS 스냅샷 및 복제 작업
7. ACL 및 속성을 사용하여 Oracle Solaris ZFS 파일 보호
Oracle Solaris 11.1 릴리스는 ZFS 등록 정보 상속을 활용하여 ZFS 공유 관리를 간소화합니다. 새로운 공유 구문은 풀 버전 34를 실행하는 풀에서 사용으로 설정됩니다.
파일 시스템별로 다중 공유를 정의할 수 있습니다. 공유 이름은 각 공유를 고유하게 식별합니다. 파일 시스템에서 특정 경로를 공유하는 데 사용되는 등록 정보를 정의할 수 있습니다. 기본적으로 모든 파일 시스템이 공유 해제됩니다. 일반적으로 공유를 만들기 전까지는 NFS 서버 서비스가 시작되지 않습니다. 유효한 공유를 만들면 NFS 서비스가 자동으로 시작됩니다. ZFS 파일 시스템의 mountpoint 등록 정보가 legacy로 설정된 경우 레거시 share 명령을 사용해서만 파일 시스템을 공유할 수 있습니다.
share.nfs 등록 정보는 이전 릴리스의 sharenfs 등록 정보를 대신해서 NFS 공유를 정의하고 게시합니다.
share.smb 등록 정보는 이전 릴리스의 sharesmb 등록 정보를 대신해서 SMB 공유를 정의하고 게시합니다.
sharenfs 등록 정보와 sharesmb 등록 정보는 모두 share.nfs 등록 정보 및 sharenfs 등록 정보에 대한 별칭입니다.
/etc/dfs/dfstab 파일은 더 이상 부트 시 파일 시스템을 공유하는 데 사용되지 않습니다. 이 등록 정보를 설정하면 파일 시스템이 자동으로 공유됩니다. SMF는 시스템을 재부트할 때 파일 시스템이 자동으로 공유되도록 ZFS 또는 UFS 공유 정보를 관리합니다. 이 기능은 sharenfs 또는 sharesmb 등록 정보가 off로 설정되지 않은 모든 파일 시스템이 부트 시 공유되도록 합니다.
sharemgr 인터페이스는 더 이상 사용할 수 없습니다. 레거시 share 명령은 레거시 공유를 만드는 데 계속 사용할 수 있습니다. 다음 예제를 참조하십시오.
share -a 명령은 파일 시스템 공유가 지속되도록 이전 share -ap 명령과 유사하게 작동합니다. share -p 옵션은 더 이상 사용할 수 없습니다.
예를 들어, tank/home 파일 시스템을 공유할 경우 다음과 비슷한 구문을 사용합니다.
# zfs set share.nfs=on tank/home
추가 등록 정보 값을 지정하거나 기존 파일 시스템 공유에서 기존 등록 정보 값을 수정할 수 있습니다. 예를 들면 다음과 같습니다.
# zfs set share.nfs.nosuid=on tank/home/userA
share.nfs 등록 정보가 tank/home 파일 시스템으로 설정된 이전 예에서 share.nfs 등록 정보 값은 모든 종속 파일 시스템으로 상속됩니다. 예를 들면 다음과 같습니다.
# zfs create tank/home/userA # zfs create tank/home/userB
Oracle Solaris 11 구문도 계속 지원되므로 두 단계로 파일 시스템을 공유할 수 있습니다. 이 구문은 모든 풀 버전에서 지원됩니다.
먼저 zfs set share 명령을 사용하여 ZFS 파일 시스템의 NFS 또는 SMB 공유를 만듭니다.
# 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 # grep fs1 /etc/dfs/sharetab /rpool/fs1 fs1 nfs sec=sys,rw
파일 시스템 공유는 레거시 zfs get share 명령을 사용하여 표시할 수 있습니다.
# zfs get share rpool/fs1 NAME PROPERTY VALUE SOURCE rpool/fs1 share name=fs1,path=/rpool/fs1,prot=nfs local
또한 Oracle Solaris 10 릴리스의 구문과 비슷한 파일 시스템을 공유하는 share 명령도 파일 시스템 내의 모든 디렉토리를 공유하도록 지원됩니다. 예를 들어 ZFS 파일 시스템을 공유하려면 다음 구문을 사용합니다.
# share -F nfs /tank/zfsfs # grep zfsfs /etc/dfs/sharetab /tank/zfsfs tank_zfsfs nfs sec=sys,rw
위 구문은 UFS 파일 시스템 공유 구문과 동일합니다.
# share -F nfs /ufsfs # grep ufsfs /etc/dfs/sharetab /ufsfs - nfs rw /tank/zfsfs tank_zfsfs nfs rw
zfs set 명령은 NFS 또는 SMB 프로토콜을 통해 ZFS 파일 시스템을 공유하고 게시하는 데 사용됩니다. 또는 파일 시스템을 만들 때 share.nfs 또는 share.smb 등록 정보를 설정할 수 있습니다.
예를 들어 tank/sales 파일 시스템이 생성되고 공유되었습니다. 기본 공유 권한은 모든 사용자에 대해 읽기-쓰기입니다. share.nfs 등록 정보가 종속된 파일 시스템으로 상속되고 tank/sales/log 파일 시스템이 읽기 전용 액세스로 설정되기 때문에 종속된 tank/sales/logs 파일 시스템도 자동으로 공유됩니다.
# zfs create -o share.nfs=on tank/sales # zfs create -o share.nfs.ro=\* tank/sales/logs # zfs get -r share.nfs tank/sales NAME PROPERTY VALUE SOURCE tank/sales share.nfs on local tank/sales% share.nfs on inherited from tank/sales tank/sales/log share.nfs on inherited from tank/sales tank/sales/log% share.nfs on inherited from tank/sales
다음과 같이 공유 파일 시스템의 특정 시스템에 루트 액세스 권한을 제공할 수 있습니다.
# zfs set share.nfs=on tank/home/data # zfs set share.nfs.sec.default.root=neo tank/home/data
최신 풀 버전 34로 업그레이드된 풀에서는 공유 유지 관리를 돕기 위해 ZFS 등록 정보 상속을 활용하는 새로운 공유 구문을 사용할 수 있습니다. 각 공유 특성은 개별 share 등록 정보가 됩니다. share 등록 정보는 share. 접두어로 시작하는 이름으로 식별됩니다. share 등록 정보 예로는 share.desc, share.nfs.nosuid 및 share.smb.guestok가 있습니다.
share.nfs 등록 정보는 NFS 공유가 사용으로 설정되었는지 여부를 제어합니다. share.smb 등록 정보는 SMB 공유가 사용으로 설정되었는지 여부를 제어합니다. 새 풀에서 sharenfs는 share.nfs의 별칭이고 sharesmb는 share.smb의 별칭이므로 레거시 sharenfs 및 sharesmb 등록 정보 이름도 계속 사용할 수 있습니다. tank/home 파일 시스템을 공유하려는 경우 다음과 비슷한 구문을 사용합니다.
# zfs set share.nfs=on tank/home
이 예에서 share.nfs 등록 정보 값은 모든 종속된 파일 시스템에 상속됩니다. 예를 들면 다음과 같습니다.
# zfs create tank/home/userA # zfs create tank/home/userB # grep tank/home /etc/dfs/sharetab /tank/home tank_home nfs sec=sys,rw /tank/home/userA tank_home_userA nfs sec=sys,rw /tank/home/userB tank_home_userB nfs sec=sys,rw
이전 풀에서는 sharenfs 및 sharesmb 등록 정보만 종속된 파일 시스템에서 상속됩니다. 기타 공유 특성은 각 공유에 대해 .zfs/shares 파일에 저장되며 상속되지 않습니다.
특별 규칙은 상위 항목으로부터 sharenfs 또는 sharesmb를 상속하는 새 파일 시스템을 만들 때마다 해당 파일 시스템에 대해 sharenfs 또는 sharesmb 값으로부터 기본 공유를 만드는 규칙입니다. sharenfs가 단순히 설정된 경우 종속 파일 시스템에 생성된 기본 공유는 기본 NFS 특성만 갖습니다. 예를 들면 다음과 같습니다.
# zpool get version tank NAME PROPERTY VALUE SOURCE tank version 33 default # zfs create -o sharenfs=on tank/home # zfs create tank/home/userA # grep tank/home /etc/dfs/sharetab /tank/home tank_home nfs sec=sys,rw /tank/home/userA tank_home_userA nfs sec=sys,r
SMB 환경에서 권한 및 등록 정보를 설정하는 데 보다 많은 유연성을 제공하는 이름이 지정된 공유를 만들 수도 있습니다. 예를 들면 다음과 같습니다.
# zfs share -o share.smb=on tank/workspace%myshare
이전 예에서 zfs share 명령은 tank/workspace 파일 시스템의 myshare라는 SMB 공유를 만듭니다. 파일 시스템의 .zfs/shares 디렉토리를 통해 이 SMB 공유에 액세스하고 특정 권한 또는 ACL을 표시하거나 설정할 수 있습니다. 각 SMB 공유는 개별 .zfs/shares 파일로 표시됩니다. 예를 들면 다음과 같습니다.
# ls -lv /tank/workspace/.zfs/shares -rwxrwxrwx+ 1 root root 0 May 15 10:31 myshare 0:everyone@:read_data/write_data/append_data/read_xattr/write_xattr /execute/delete_child/read_attributes/write_attributes/delete /read_acl/write_acl/write_owner/synchronize:allow
이름이 지정된 공유는 상위 파일 시스템에서 공유 등록 정보를 상속합니다. 이전 예에서 share.smb.guestok 등록 정보를 상위 파일 시스템에 추가하면 이 등록 정보가 이름이 지정된 공유에 상속됩니다. 예를 들면 다음과 같습니다.
# zfs get -r share.smb.guestok tank/workspace NAME PROPERTY VALUE SOURCE tank/workspace share.smb.guestok on inherited from tank tank/workspace%myshare share.smb.guestok on inherited from tank
이름이 지정된 공유는 NFS 환경에서 파일 시스템의 하위 디렉토리에 대한 공유를 정의할 때 유용할 수 있습니다. 예를 들면 다음과 같습니다.
# zfs create -o share.nfs=on -o share.nfs.anon=99 -o share.auto=off tank/home # mkdir /tank/home/userA # mkdir /tank/home/userB # zfs share -o share.path=/tank/home/userA tank/home%userA # zfs share -o share.path=/tank/home/userB tank/home%userB # grep tank/home /etc/dfs/sharetab /tank/home/userA userA nfs anon=99,sec=sys,rw /tank/home/userB userB nfs anon=99,sec=sys,rw
위 예에서는 파일 시스템에 대해 share.auto를 off로 설정하여 다른 모든 등록 정보 상속을 그대로 유지하면서 해당 파일 시스템에 대한 자동 공유를 해제하는 방법도 보여줍니다. 대부분의 다른 공유 등록 정보와 달리 share.auto 등록 정보는 상속할 수 없습니다.
이름이 지정된 공유는 공용 NFS 공유를 만들 때도 사용됩니다. 공용 공유는 이름이 지정된 NFS 공유에서만 만들 수 있습니다. 예를 들면 다음과 같습니다.
# zfs create -o mountpoint=/pub tank/public # zfs share -o share.nfs=on -o share.nfs.public=on tank/public%pubshare # grep pub /etc/dfs/sharetab /pub pubshare nfs public,sec=sys,rw
NFS 및 SMB 공유 등록 정보에 대한 자세한 내용은 share_nfs(1M) 및 share_smb(1M)을 참조하십시오.
자동 공유를 만들면 파일 시스템 이름에서 고유한 리소스 이름이 생성됩니다. 생성된 이름은 리소스 이름에 부적합한 파일 시스템 이름의 문자가 밑줄(_) 문자로 바뀌는 점을 제외하고 파일 시스템 이름의 복사본입니다. 예를 들어, data/home/john의 리소스 이름은 data_home_john입니다.
share.autoname 등록 정보 이름을 설정하면 자동 공유를 만들 때 파일 시스템 이름을 특정 이름으로 바꿀 수 있습니다. 이러한 특정 이름은 상속의 경우 접두어 파일 시스템 이름을 대신하는 데에도 사용됩니다. 예를 들면 다음과 같습니다.
# zfs create -o share.smb=on -o share.autoname=john data/home/john # zfs create data/home/john/backups # grep john /etc/dfs/sharetab /data/home/john john smb /data/home/john/backups john_backups smb
레거시 share 명령 또는 zfs set share 명령을 아직 공유되지 않은 파일 시스템에서 사용하면 해당 share.auto 값이 자동으로 off로 설정됩니다. 레거시 명령은 항상 이름이 지정된 공유를 만듭니다. 이 특별 규칙에 따라 자동 공유는 생성 중인 이름이 지정된 공유를 간섭하지 않습니다.
zfs get 명령을 사용하여 파일 공유 등록 정보의 값을 표시합니다. 다음 예에서는 단일 파일 시스템에 대해 share.nfs 등록 정보를 표시하는 방법을 보여줍니다.
# zfs get share.nfs tank/sales NAME PROPERTY VALUE SOURCE tank/sales share.nfs on local
다음 예에서는 종속된 파일 시스템에 대해 share.nfs 등록 정보를 표시하는 방법을 보여줍니다.
# zfs get -r share.nfs tank/sales NAME PROPERTY VALUE SOURCE tank/sales share.nfs on local tank/sales% share.nfs on inherited from tank/sales tank/sales/log share.nfs on inherited from tank/sales tank/sales/log% share.nfs on inherited from tank/sales
zfs get all 명령 구문에서는 확장 공유 등록 정보를 사용할 수 없습니다.
다음 구문을 사용하여 NFS 또는 SMB 공유 정보에 대한 특정 세부 정보를 표시할 수 있습니다.
# zfs get share.nfs.all tank/sales NAME PROPERTY VALUE SOURCE tank/sales share.nfs.aclok off default tank/sales share.nfs.anon default tank/sales share.nfs.charset.* ... default tank/sales share.nfs.cksum default tank/sales share.nfs.index default tank/sales share.nfs.log default tank/sales share.nfs.noaclfab off default tank/sales share.nfs.nosub off default tank/sales share.nfs.nosuid off default tank/sales share.nfs.public - - tank/sales share.nfs.sec default tank/sales share.nfs.sec.* ... default
공유 등록 정보가 여러 개 있기 때문에 비기본값을 사용하여 등록 정보를 표시하는 것이 좋습니다. 예를 들면 다음과 같습니다.
# zfs get -e -s local,received,inherited share.all tank/home NAME PROPERTY VALUE SOURCE tank/home share.auto off local tank/home share.nfs on local tank/home share.nfs.anon 99 local tank/home share.protocols nfs local tank/home share.smb.guestok on inherited from tank
파일 시스템 공유에서 신규 또는 수정된 등록 정보를 지정하여 공유 등록 정보 값을 변경할 수 있습니다. 예를 들어, 파일 시스템을 만들 때 읽기 전용 등록 정보가 설정된 경우 등록 정보를 off로 설정할 수 있습니다.
# zfs create -o share.nfs.ro=\* tank/data # zfs get share.nfs.ro tank/data NAME PROPERTY VALUE SOURCE tank/data share.nfs.sec.sys.ro on local # zfs set share.nfs.ro=none tank/data # zfs get share.nfs.ro tank/data NAME PROPERTY VALUE SOURCE tank/data share.nfs.sec.sys.ro off local
SMB 공유를 만들 때 NFS 공유 프로토콜을 추가할 수도 있습니다. 예를 들면 다음과 같습니다.
# zfs set share.smb=on tank/multifs # zfs set share.nfs=on tank/multifs # grep multifs /etc/dfs/sharetab /tank/multifs tank_multifs nfs sec=sys,rw /tank/multifs tank_multifs smb -
SMB 프로토콜을 제거합니다.
# zfs set share.smb=off tank/multifs # grep multifs /etc/dfs/sharetab /tank/multifs tank_multifs nfs sec=sys,rw
이름이 지정된 공유의 이름을 바꿀 수 있습니다. 예를 들면 다음과 같습니다.
# zfs share -o share.smb=on tank/home/abc%abcshare # grep abc /etc/dfs/sharetab /tank/home/abc abcshare smb - # zfs rename tank/home/abc%abcshare tank/home/abc%a1share # grep abc /etc/dfs/sharetab /tank/home/abc a1share smb -
이름이 지정된 공유를 삭제하는 대신 zfs unshare 명령을 사용하여 일시적으로 공유 해제할 수 있습니다. 예를 들면 다음과 같습니다.
# zfs unshare tank/home/abc%a1share # grep abc /etc/dfs/sharetab # # zfs share tank/home/abc%a1share # grep abc /etc/dfs/sharetab /tank/home/abc a1share smb -
zfs unshare 명령을 실행하면 모든 파일 시스템 공유가 해제됩니다. 이러한 공유는 파일 시스템에 대해 zfs share 명령을 실행하거나 share.nfs 또는 share.smb 등록 정보가 파일 시스템에 대해 설정될 때까지 해제된 상태로 유지됩니다.
정의된 공유는 zfs unshare 명령을 실행할 때 제거되지 않으며, 다음에 파일 시스템에 대해 zfs share 명령을 실행할 때 또는 파일 시스템에 대해 share.nfs 또는 share.smb 등록 정보를 설정할 때 다시 공유됩니다.
share.nfs 또는 share.smb 등록 정보를 off로 설정하면 파일 시스템 공유를 해제할 수 있습니다. 예를 들면 다음과 같습니다.
# zfs set share.nfs=off tank/multifs # grep multifs /etc/dfs/sharetab #
zfs destroy 명령을 사용하면 이름이 지정된 공유를 영구적으로 제거할 수 있습니다. 예를 들면 다음과 같습니다.
# zfs destroy tank/home/abc%a1share
Oracle Solaris 11부터는 Oracle Solaris 비전역 영역에서 NFS 공유를 만들고 게시할 수 있습니다.
ZFS 파일 시스템이 비전역 영역에 마운트되고 사용 가능한 경우 해당 영역에서 공유될 수 있습니다.
비전역 영역에 위임되지 않았고 비전역 영역에 마운트되지 않은 경우 전역 영역에서 파일 시스템을 공유할 수 있습니다. 파일 시스템이 비전역 영역에 추가된 경우 레거시 share 명령을 사용해서만 파일 시스템을 공유할 수 있습니다.
예를 들어, /export/home/data 및 /export/home/data1 파일 시스템은 zfszone에서 사용할 수 있습니다.
zfszone# share -F nfs /export/home/data zfszone# cat /etc/dfs/sharetab
zfszone# zfs set share.nfs=on tank/zones/export/home/data1 zfszone# cat /etc/dfs/sharetab
이 절에서는 전환 문제에 대해 설명합니다.
이전 공유 등록 정보를 사용하여 파일 시스템 가져오기 - 풀을 가져오거나 Oracle Solaris 11 전에 만든 파일 시스템 스트림을 수신할 때 sharenfs 및 sharesmb 등록 정보는 등록 정보 값에 직접 모든 공유 등록 정보를 포함합니다. 대부분의 경우에 이러한 레거시 공유 등록 정보는 각 파일 시스템이 공유되는 즉시 해당하는 이름이 지정된 공유 세트로 변환됩니다. 가져오기 작업은 대부분의 경우 마운트 및 공유를 트리거하므로 이름이 지정된 공유에 대한 변환은 가져오기 프로세스 중에 직접 발생합니다.
Oracle Solaris 11에서 업그레이드 - 버전 34로의 풀 업그레이드 이후 첫번째 파일 시스템 공유는 이름이 지정된 공유를 새 형식으로 변환하기 때문에 시간이 오래 걸릴 수 있습니다. 업그레이드 프로세스로 생성된 이름이 지정된 공유는 올바르지만 공유 등록 정보 상속을 활용할 수 없습니다.
공유 등록 정보 값 표시:
# zfs get share.nfs filesystem # zfs get share.smb filesystem
이전 BE로 재부트하는 경우 sharenfs 및 sharesmb 등록 정보를 원래 값으로 재설정합니다.
Oracle Solaris 11 Express에서 업그레이드 - Oracle Solaris 11 및 11.1에서 sharenfs 및 sharesmb 등록 정보는 off 및 on 값만 포함할 수 있습니다. 이러한 등록 정보는 공유 특성을 정의하는 데 더 이상 사용되지 않습니다.
/etc/dfs/dfstab 파일은 더 이상 부트 시 파일 시스템을 공유하는 데 사용되지 않습니다. 부트 시, 사용으로 설정된 파일 시스템 공유를 포함하는 모든 마운트된 ZFS 파일 시스템이 자동으로 공유됩니다. 공유는 sharenfs 또는 sharesmb를 on으로 설정할 때 사용으로 설정됩니다.
sharemgr 인터페이스는 더 이상 사용할 수 없습니다. 레거시 share 명령은 레거시 공유를 만드는 데 계속 사용할 수 있습니다. share -a 명령은 파일 시스템 공유가 지속되도록 이전 share -ap 명령과 유사하게 작동합니다. share -p 옵션은 더 이상 사용할 수 없습니다.
시스템 업그레이드 – 이 릴리스에서 등록 정보 변경으로 인해 Oracle Solaris 11 Express BE로 재부트할 경우 ZFS 공유가 잘못될 수 있습니다. 비ZFS 공유는 영향을 받지 않습니다. 이전 BE로 재부트하려는 경우 ZFS 데이터 세트의 공유 구성을 복원할 수 있으려면 pkg update 작업 전에 기존 공유 구성의 복사본을 먼저 저장해야 합니다.
이전 BE에서 sharemgr show -vp 명령을 사용하여 모든 공유 및 해당 구성을 나열합니다.
다음 명령을 사용하여 공유 등록 정보 값을 표시합니다.
# zfs get sharenfs filesystem # zfs get sharesmb filesystem
이전 BE로 돌아가면 sharenfs 및 sharesmb 등록 정보와 sharemgr로 정의된 모든 공유를 원래 값으로 재설정합니다.
레거시 공유 해제 동작 – unshare -a 명령 또는 unshareall 명령을 사용하면 파일 시스템이 공유 해제되지만, SMF 공유 저장소가 업데이트되지는 않습니다. 따라서 기존 공유를 다시 공유하려고 하면 공유 저장소가 충돌하는지 검사하여 오류가 표시됩니다.
다음 공유 동작 시나리오 및 고려 사항을 검토하십시오.
공유 등록 정보 및 .zfs/shares 파일은 zfs clone 및 zfs send 작업에서 서로 다르게 처리됩니다. .zfs/shares 파일은 스냅샷에 포함되며 zfs clone 및 zfs send 작업에서 보존됩니다. 이름이 지정된 공유를 포함하는 공유 등록 정보는 스냅샷에 포함되지 않습니다. zfs send 및 zfs receive 작업을 수행하는 동안 등록 정보의 동작에 대한 설명은 ZFS 스냅샷 스트림에 다른 등록 정보 값 적용을 참조하십시오. 복제 작업 후 모든 파일은 사전 복제 스냅샷에서 가져오며 등록 정보는 ZFS 파일 시스템 계층에 있는 복제본의 새 위치에서 상속됩니다.
특정 레거시 공유 작업은 자동 공유를 자동으로 해제하거나 기존 자동 공유를 해당하는 이름이 지정된 공유로 변환합니다. 파일 시스템이 예상한 대로 공유되지 않으면 해당 share.auto 값이 off로 설정되었는지 확인합니다.
이 공유가 자동 공유와 충돌되어 이름이 지정된 공유를 만드는 요청이 실패할 경우, 작업을 계속하려면 자동 공유를 해제해야 할 수 있습니다.
풀을 읽기 전용으로 가져오면 해당 등록 정보 또는 파일을 수정할 수 없습니다. 이 경우 새 공유를 시작할 수 없습니다. 풀을 내보내기 전에 공유가 이미 설정된 경우 기존 공유 특성이 사용됩니다(가능한 경우).
다음 표에서는 공유 상태를 확인하고 필요에 따라 이를 해결하는 방법을 설명합니다.
|