탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
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 파일 보호
등록 정보는 파일 시스템, 볼륨, 스냅샷 및 복제본의 동작을 제어하기 위해 사용하는 기본 방식입니다. 특별한 설명이 없는 한 이 절에 정의된 등록 정보는 모든 데이터 세트 유형에 적용됩니다.
등록 정보는 고유 등록 정보와 사용자 정의 등록 정보의 두 가지 유형으로 구분됩니다. 고유 등록 정보는 내부 통계를 제공하거나 ZFS 파일 시스템 동작을 제어합니다. 또한 고유 등록 정보는 설정 가능하거나 읽기 전용입니다. 사용자 등록 정보는 ZFS 파일 시스템 동작에 영향을 주지 않지만 이를 사용하여 해당 환경에 필요한 방식으로 데이터 집합에 주석을 달 수 있습니다. 사용자 등록 정보에 대한 자세한 내용은 ZFS 사용자 등록 정보를 참조하십시오.
대부분의 설정 가능한 등록 정보는 상속 가능성도 포함합니다. 상속 가능한 등록 정보는 부모 파일 시스템에 설정할 경우 모든 종속 항목으로 전파되는 등록 정보입니다.
모든 상속 가능한 등록 정보는 등록 정보를 가져온 방법을 나타내는 연관된 소스를 포함합니다. 등록 정보의 소스는 다음과 같은 값을 가질 수 있습니다.
ZFS 등록 정보 설정에 설명된 대로 zfs set 명령을 사용하여 데이터 집합에 등록 정보가 명시적으로 설정되었음을 나타냅니다.
등록 정보가 명명된 상위 항목으로부터 상속되었음을 나타냅니다.
등록 정보 값이 상속되지 않았거나 로컬로 설정되었음을 나타냅니다. 이 소스는 등록 정보가 소스 local로 설정된 상위 항목이 없기 때문에 발생한 결과입니다.
다음 표에서는 읽기 전용 및 설정 가능한 고유 ZFS 파일 시스템 등록 정보를 모두 보여 줍니다. 읽기 전용 고유 등록 정보는 읽기 전용으로 식별됩니다. 이 표에 나열된 다른 모든 고유 등록 정보는 모두 설정 가능으로 식별됩니다. 사용자 등록 정보에 대한 자세한 내용은 ZFS 사용자 등록 정보를 참조하십시오.
표 6-1 ZFS 고유 등록 정보 설명
|
읽기 전용 고유 등록 정보는 검색할 수 있지만 설정할 수 없습니다. 읽기 전용 고유 등록 정보는 상속되지 않습니다. 일부 고유 등록 정보는 특정 데이터 집합의 유형에 한정됩니다. 표 6-1에는 이러한 데이터 유형에 대한 설명이 포함되어 있습니다.
읽기 전용 고유 등록 정보는 여기에 나열되어 있고 표 6-1에 설명되어 있습니다.
available
compressratio
creation
keystatus
mounted
origin
referenced
rekeydate
type
used
자세한 내용은 used 등록 정보를 참조하십시오.
usedbychildren
usedbydataset
usedbyrefreservation
usedbysnapshots
used , referenced 및 available 등록 정보를 포함한 디스크 공간 계산에 대한 자세한 내용은 ZFS 디스크 공간 계산을 참조하십시오.
used 등록 정보는 이 데이터 집합 및 모든 종속 항목에서 소비된 디스크 공간을 식별하는 읽기 전용 등록 정보입니다. 이 값은 데이터 집합의 쿼터 및 예약에서 공제됩니다. 이렇게 사용된 디스크 공간에는 데이터 집합의 예약이 포함되지 않지만 모든 종속 데이터 집합의 예약이 고려됩니다. 데이터 집합이 해당 부모로부터 소비하는 디스크 공간과 데이터 집합이 반복해서 삭제될 때 비워지는 디스크 공간은 사용된 공간과 해당 예약 중에서 큰 값입니다.
스냅샷을 만들면 처음에 스냅샷과 파일 시스템 간에 디스크 공간이 공유되며, 이전 스냅샷과 공유될 수도 있습니다. 파일 시스템이 변경되면 이전에 공유되던 디스크 공간이 해당 스냅샷의 고유 공간이 되고 스냅샷의 사용된 공간으로 계산됩니다. 스냅샷에서 사용되는 디스크 공간은 해당 고유 데이터로 계산됩니다. 또한 스냅샷을 삭제하면 다른 스냅샷에 고유한(그리고 다른 스냅샷에서 사용되는) 디스크 공간을 늘릴 수 있습니다. 스냅샷 및 공간 문제에 대한 자세한 내용은 공간 부족 동작을 참조하십시오.
사용된 디스크 공간, 사용 가능한 디스크 공간, 참조된 디스크 공간에는 보류 중인 변경 사항이 포함되지 않습니다. 일반적으로 변경 사항은 몇 초 동안 보류됩니다. fsync(3c) 또는 O_SYNC 함수를 사용하여 디스크에 변경 사항을 커밋해도 반드시 디스크 공간 사용 정보가 즉시 업데이트되는 것은 아닙니다.
usedbychildren, usedbydataset, usedbyrefreservation 및 usedbysnapshots 등록 정보는 zfs list -o space 명령을 사용하여 표시할 수 있습니다. 이러한 등록 정보는 used 등록 정보를 종속 항목에서 소비되는 디스크 공간으로 식별합니다. 자세한 내용은 표 6-1을 참조하십시오.
설정 가능한 고유 등록 정보는 해당 값에 대해 검색 및 설정을 모두 수행할 수 있는 등록 정보입니다. 설정 가능한 고유 등록 정보는 ZFS 등록 정보 설정에 설명된 대로 zfs set 명령을 사용하거나 ZFS 파일 시스템 만들기에 설명된 대로 zfs create 명령을 사용하여 설정됩니다. 쿼터 및 예약을 제외하고, 설정 가능한 고유 등록 정보는 상속됩니다. 쿼터 및 예약에 대한 자세한 내용은 ZFS 쿼터 및 예약 설정을 참조하십시오.
일부 설정 가능한 고유 등록 정보는 특정 데이터 집합의 유형에 한정됩니다. 표 6-1에는 이러한 데이터 유형에 대한 설명이 포함되어 있습니다. 특별히 언급되지 않는 한 등록 정보는 파일 시스템, 볼륨, 복제본 및 스냅샷 등 모든 데이터 집합 유형에 적용됩니다.
설정 가능한 등록 정보는 여기에 나열되어 있고 표 6-1에 설명되어 있습니다.
aclinherit
자세한 내용은 ACL 등록 정보를 참조하십시오.
atime
canmount
casesensitivity
체크섬
compression
copies
devices
dedup
encryption
exec
keysource
logbias
mlslabel
mountpoint
nbmand
normalization
primarycache
quota
readonly
recordsize
자세한 내용은 recordsize 등록 정보를 참조하십시오.
refquota
refreservation
reservation
rstchown
secondarycache
sharesmb
sharenfs
setuid
snapdir
version
vscan
utf8only
volsize
자세한 내용은 volsize 등록 정보를 참조하십시오.
volblocksize
zoned
xattr
canmount 등록 정보가 off로 설정된 경우 zfs mount 또는 zfs mount -a 명령을 사용하여 파일 시스템을 마운트할 수 없습니다. 파일 시스템에 상속 가능한 일반적인 mountpoint 등록 정보가 계속 포함된다는 점만 제외하면 이 등록 정보를 off로 설정하는 것은 mountpoint 등록 정보를 none으로 설정하는 것과 비슷합니다. 예를 들어, 이 등록 정보를 off로 설정하고, 종속 파일 시스템에 대해 상속 가능한 등록 정보를 설정할 수 있지만 부모 파일 시스템 자체는 마운트되지 않으며 사용자가 액세스할 수도 없습니다. 이 경우 부모 파일 시스템은 사용자가 컨테이너에 대한 등록 정보를 설정할 수 있도록 container로 작동하지만 컨테이너 자체는 액세스할 수 없습니다.
다음 예제에서는 userpool을 만들고 해당 canmount 등록 정보를 off로 설정합니다. 종속 사용자 파일 시스템의 마운트 지점은 하나의 공통 마운트 지점인 /export/home으로 설정됩니다. 부모 파일 시스템에 설정되는 등록 정보는 종속 파일 시스템에 의해 상속되지만 부모 파일 시스템 자체는 마운트되지 않습니다.
# zpool create userpool mirror c0t5d0 c1t6d0 # zfs set canmount=off userpool # zfs set mountpoint=/export/home userpool # zfs set compression=on userpool # zfs create userpool/user1 # zfs create userpool/user2 # zfs mount userpool/user1 /export/home/user1 userpool/user2 /export/home/user2
canmount 등록 정보를 noauto로 설정하면 파일 시스템을 자동이 아닌 명시적인 방식으로만 마운트할 수 있습니다.
이 등록 정보는 파일 시스템에서 사용되는 파일 이름 일치 알고리즘이 casesensitive, caseinsensitive 또는 두 일치 스타일의 조합 허용(mixed)인지를 나타냅니다.
대소문자 무시 일치 요청이 혼합된 민감도 파일 시스템으로 구성된 경우 동작은 일반적으로 대소문자 무시 파일 시스템에 예상되는 동작과 같습니다. 차이점은 혼합된 민감도 파일 시스템에는 대소문자 구분 관점에서 고유하지만 대소문자 무시 관점에서는 고유하지 않은 여러 이름이 있는 디렉토리가 포함될 수 있다는 것입니다.
예를 들어, 디렉토리에 foo, Foo 및 FOO 파일이 포함될 수 있습니다. foo의 가능한 모든 형태에 대해 대소문자를 무시하고 일치시키도록 요청할 경우(예: foo, FOO, FoO, fOo 등) 일치 알고리즘에서 기존 파일 3개 중 하나를 일치 항목으로 선택합니다. 알고리즘이 일치 항목으로 선택하는 파일이 정확하게 보장되지는 않지만 foo 형태의 일치 항목으로 항상 동일한 파일이 선택됩니다. foo, FOO, foO, Foo 등의 대소문자 무시 일치 항목으로 선택되는 파일은 디렉토리를 변경하지 않는 한 항상 동일합니다.
utf8only, normalization 및 casesensitivity 등록 정보는 ZFS 위임 관리를 사용하여 권한 없는 사용자에게 할당할 수 있는 새 권한도 제공합니다. 자세한 내용은 ZFS 권한 위임을 참조하십시오.
안정성을 확보하기 위해 ZFS 파일 시스템 메타 데이터는 가능한 한 여러 디스크에 여러 번 자동으로 저장됩니다. 이 기능은 복제 블록(ditto blocks)으로 알려져 있습니다.
이 릴리스에서는 사용자 데이터도 zfs set copies 명령을 사용하여 파일 시스템당 여러 개의 사본을 저장할 수 있습니다. 예를 들면 다음과 같습니다.
# zfs set copies=2 users/home # zfs get copies users/home NAME PROPERTY VALUE SOURCE users/home copies 2 local
사용 가능한 값은 1, 2 또는 3입니다. 기본값은 1입니다. 이러한 사본은 미러링된 구성 또는 RAID-Z 구성에서와 같이 모든 풀 레벨의 중복성에 대해 추가로 설정됩니다.
ZFS 사용자 데이터의 사본을 여러 개 저장했을 때 얻을 수 있는 이점은 다음과 같습니다.
모든 ZFS 구성에서 매체 결함(비트 로트(bit rot)라고도 부름)과 같은 복구할 수 없는 블록 읽기 결함을 복구할 수 있도록 지원하여 데이터 보존 기능이 강화됩니다.
단일 디스크만 사용할 수 있는 경우에도 데이터 보호를 제공합니다.
저장소 풀의 기능을 넘어 파일 시스템 단위로 데이터 보호 정책을 선택할 수 있습니다.
주 - 저장소 풀의 복제 블록(ditto block) 할당에 따라 여러 복사본이 단일 디스크에 배치될 수도 있습니다. 이후 전체 디스크 오류가 발생하면 모든 복제 블록(ditto block)을 사용하지 못하게 될 수 있습니다.
복제 블록(ditto block)은 중복되지 않은 풀을 실수로 만드는 경우 그리고 데이터 보존 정책을 설정해야 할 경우에 사용할 수 있습니다.
dedup 등록 정보는 파일 시스템에서 중복 데이터를 제거할지 여부를 제어합니다. 파일 시스템의 dedup 등록 정보가 사용으로 설정된 경우 중복 데이터 블록이 동기적으로 제거됩니다. 그 결과, 고유한 데이터만 저장되고 공통 구성 요소는 파일 간에 공유됩니다.
다음 고려 사항을 검토할 때까지 운용 시스템에 있는 파일 시스템에서 dedup 등록 정보를 사용으로 설정하지 마십시오.
중복 제거를 통해 공간 절약이 가능한 데이터인지 확인합니다. 데이터가 중복 제거 가능이 아닌 경우 중복 제거를 사용으로 설정해도 아무 의미가 없습니다. 예를 들면 다음과 같습니다.
# zdb -S tank Simulated DDT histogram: bucket allocated referenced ______ ______________________________ ______________________________ refcnt blocks LSIZE PSIZE DSIZE blocks LSIZE PSIZE DSIZE ------ ------ ----- ----- ----- ------ ----- ----- ----- 1 2.27M 239G 188G 194G 2.27M 239G 188G 194G 2 327K 34.3G 27.8G 28.1G 698K 73.3G 59.2G 59.9G 4 30.1K 2.91G 2.10G 2.11G 152K 14.9G 10.6G 10.6G 8 7.73K 691M 529M 529M 74.5K 6.25G 4.79G 4.80G 16 673 43.7M 25.8M 25.9M 13.1K 822M 492M 494M 32 197 12.3M 7.02M 7.03M 7.66K 480M 269M 270M 64 47 1.27M 626K 626K 3.86K 103M 51.2M 51.2M 128 22 908K 250K 251K 3.71K 150M 40.3M 40.3M 256 7 302K 48K 53.7K 2.27K 88.6M 17.3M 19.5M 512 4 131K 7.50K 7.75K 2.74K 102M 5.62M 5.79M 2K 1 2K 2K 2K 3.23K 6.47M 6.47M 6.47M 8K 1 128K 5K 5K 13.9K 1.74G 69.5M 69.5M Total 2.63M 277G 218G 225G 3.22M 337G 263G 270G dedup = 1.20, compress = 1.28, copies = 1.03, dedup * compress / copies = 1.50
예상 중복 제거 비율이 2보다 클 경우 중복 제거를 통한 공간 절약 효과가 있습니다.
위 예에서는 중복 제거 비율이 2보다 작기 때문에 중복 제거를 사용으로 설정하지 않는 것이 좋습니다.
시스템 메모리가 중복 제거를 지원할 정도로 충분한지 확인합니다.
코어 내 중복 제거 테이블 항목은 각각 약 320바이트입니다.
할당된 블록 수에 320을 곱합니다. 예를 들면 다음과 같습니다.
in-core DDT size = 2.63M x 320 = 841.60M
중복 제거 테이블이 메모리에 적합할 때 중복 제거 성능이 가장 좋습니다. 중복 제거 테이블을 디스크에 기록해야 할 경우 성능이 저하됩니다. 예를 들어, 중복 제거가 사용으로 설정된 대형 파일 시스템을 제거할 경우 시스템이 위에 설명된 메모리 요구 사항을 충족하지 않으면 시스템 성능이 크게 저하됩니다.
dedup가 사용으로 설정된 경우 dedup 체크섬 알고리즘이 checksum 등록 정보를 대체합니다. 등록 정보 값을 verify로 설정하는 것은 sha256,verify를 지정하는 것과 같습니다. 등록 정보가 verify로 설정되고 두 블록에 동일한 서명이 있는 경우 ZFS는 기존 블록과 바이트 단위 비교를 수행하여 컨텐츠가 동일한지 확인합니다.
파일 시스템별로 이 등록 정보를 사용으로 설정할 수 있습니다. 예를 들면 다음과 같습니다.
# zfs set dedup=on tank/home
zfs get 명령을 사용하여 dedup 등록 정보가 설정되었는지 확인할 수 있습니다.
중복 제거는 파일 시스템 등록 정보로 설정되지만 범위가 풀 전체입니다. 예를 들어, 중복 제거 비율을 식별할 수 있습니다. 예를 들면 다음과 같습니다.
# zpool list tank NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT rpool 136G 55.2G 80.8G 40% 2.30x ONLINE -
DEDUP 열은 발생한 중복 제거 양을 나타냅니다. dedup 등록 정보가 어떤 파일 시스템에서도 사용으로 설정되지 않았거나 dedup 등록 정보가 파일 시스템에서 방금 사용으로 설정된 경우 DEDUP 비율은 1.00x입니다.
zpool get 명령을 사용하여 dedupratio 등록 정보 값을 확인할 수 있습니다. 예를 들면 다음과 같습니다.
# zpool get dedupratio export NAME PROPERTY VALUE SOURCE rpool dedupratio 3.00x -
이 풀 등록 정보는 이 풀에서 발생한 데이터 중복 제거 양을 보여줍니다.
encryption 등록 정보를 사용하여 ZFS 파일 시스템을 암호화할 수 있습니다. 자세한 내용은 ZFS 파일 시스템 암호화를 참조하십시오.
recordsize 등록 정보는 파일 시스템에서 파일의 권장 블록 크기를 지정합니다.
이 등록 정보는 고정 크기 레코드의 파일을 액세스하는 데이터베이스 작업 부하에서만 사용하도록 디자인되었습니다. ZFS는 일반적인 액세스 패턴에 맞게 최적화된 내부 알고리즘에 따라 블록 크기를 자동으로 조정합니다. 매우 큰 파일을 만들지만 작은 임의 청크로 파일을 액세스하는 데이터베이스의 경우 이러한 알고리즘은 최적의 방식이 아닐 수 있습니다. 데이터베이스의 레코드 크기보다 크거나 같은 recordsize 값을 지정하면 상당한 성능상의 이점을 얻을 수 있습니다. 일반 목적의 파일 시스템에서는 이 등록 정보를 사용하지 않는 것이 좋으며, 이 등록 정보를 사용할 경우 성능에 부정적인 영향을 줄 수 있습니다. 크기는 512바이트에서 128KB 이하의 값 중 임의 값에 대한 2배 값으로 지정해야 합니다. 파일 시스템의 recordsize 값을 변경하면 이후에 만들어지는 파일에만 영향을 줍니다. 기존 파일에는 영향을 주지 않습니다.
이 등록 정보의 약어는 recsize입니다.
이 등록 정보는 Oracle Solaris SMB 서비스와 ZFS 파일 시스템 공유를 사용으로 설정하고 사용할 옵션을 식별합니다.
SMB 공유에는 리소스 이름이 필요하므로 파일 시스템 이름에서 고유한 리소스 이름이 생성됩니다. 생성된 이름은 리소스 이름에 부적합한 파일 시스템 이름의 문자가 밑줄(_) 문자로 바뀌는 점을 제외하고 파일 시스템 이름의 복사본입니다. 파일 시스템 이름을 특정 이름으로 바꿀 수 있게 하는 의사 등록 정보 name도 지원됩니다. 상속의 경우 이 특정 이름을 사용하여 접두어 파일 시스템을 바꿉니다.
예를 들어, 파일 시스템 data/home/john이 name=john으로 설정된 경우 data/home/john의 리소스 이름은 john입니다. 자식 파일 시스템 data/home/john/backups가 있는 경우 리소스 이름은 john_backups입니다. 파일 시스템의 sharesmb 등록 정보를 변경하면 이전에 등록 정보가 off로 설정되었거나 등록 정보를 변경하기 전에 공유된 경우에만 파일 시스템 및 이 등록 정보를 상속하는 모든 자식이 새 옵션을 사용하여 재공유됩니다. 새 등록 정보가 off로 설정된 경우 파일 시스템의 공유가 해제됩니다.
sharesmb 등록 정보의 사용 예는 ZFS 파일 시스템 공유 및 공유 해제 를 참조하십시오.
volsize 등록 정보는 볼륨의 논리적 크기를 지정합니다. 기본적으로 볼륨을 만들면 동일 크기의 예약이 설정됩니다. volsize를 변경하면 예약에도 변경 사항이 동일하게 반영됩니다. 이러한 검사는 사용자에게 예상치 않은 동작이 발생하지 않도록 방지하기 위해 사용됩니다. 볼륨에 요청한 것보다 적은 공간이 포함된 경우 볼륨의 사용 방식에 따라 정의되지 않은 동작이 발생하거나 데이터 손상이 일어날 수 있습니다. 또한 볼륨을 사용 중일 때 볼륨 크기를 변경하는 경우, 특히 크기를 줄이는 경우에도 이러한 효과가 발생할 수 있습니다. 볼륨 크기를 조정할 때는 특히 주의가 필요합니다.
권장되는 방법은 아니지만 -s 플래그를 zfs create -V로 지정하거나 볼륨이 만들어진 후 예약을 변경하여 스파스(sparse) 볼륨을 만들 수 있습니다. 스파스(sparse) 볼륨은 예약이 볼륨 크기와 같지 않은 볼륨입니다. 스파스 볼륨의 경우 volsize에 대한 변경 사항이 예약에 반영되지 않습니다.
볼륨 사용에 대한 자세한 내용은 ZFS 볼륨을 참조하십시오.
고유 등록 정보 외에도 ZFS에서는 임의 사용자 등록 정보가 지원됩니다. 사용자 등록 정보는 ZFS 동작에 영향을 주지 않지만 이를 사용하여 해당 환경에 필요한 정보를 사용하여 데이터 집합에 주석으로 달 수 있습니다.
고유 등록 정보와 구분될 수 있도록 콜론(':')을 포함해야 합니다.
소문자, 숫자 또는 ':', '+','.', '_' 구두점 문자를 포함해야 합니다.
사용자 등록 정보 이름의 최대 길이는 256자입니다.
일반적으로 등록 정보 이름은 다음 두 가지 구성 요소로 구분되어야 하지만 이러한 네임스페이스가 ZFS에서 강제로 적용되는 것은 아닙니다.
module:property
사용자 등록 정보를 프로그래밍 방식으로 사용할 때는 서로 독립적으로 개발된 두 패키지가 다른 목적으로 동일한 등록 정보 이름을 사용할 수 있는 가능성을 줄이기 위해 등록 정보 이름의 module 구성 요소에 대해 예약된 DNS 도메인 이름을 사용하십시오. com.oracle.으로 시작되는 등록 정보 이름은 Oracle Corporation에서 사용할 목적으로 예약되어 있습니다.
사용자 등록 정보의 값은 다음 규칙을 따라야 합니다.
이러한 값은 항상 상속되며 검증되지 않는 임의 문자열로 구성되어야 합니다.
사용자 등록 정보 값의 최대 길이는 1024자입니다.
예를 들면 다음과 같습니다.
# zfs set dept:users=finance userpool/user1 # zfs set dept:users=general userpool/user2 # zfs set dept:users=itops userpool/user3
zfs list, zfs get, zfs set 등과 같이 등록 정보에 대해 작동하는 모든 명령은 고유 등록 정보와 사용자 등록 정보를 모두 조작하는 데 사용할 수 있습니다.
예를 들면 다음과 같습니다.
zfs get -r dept:users userpool NAME PROPERTY VALUE SOURCE userpool dept:users all local userpool/user1 dept:users finance local userpool/user2 dept:users general local userpool/user3 dept:users itops local
사용자 등록 정보를 지우려면 zfs inherit 명령을 사용합니다. 예를 들면 다음과 같습니다.
# zfs inherit -r dept:users userpool
등록 정보가 어떠한 부모 데이터 집합에도 정의되어 있지 않으면 완전히 제거됩니다.