Oracle® Solaris 11.2의 ZFS 파일 시스템 관리

인쇄 보기 종료

업데이트 날짜: 2014년 12월
 
 

ZFS 파일 시스템에 대한 예약 설정

ZFS 예약은 데이터 세트에 사용할 수 있도록 보장되었고 풀에서 할당된 디스크 공간입니다. 따라서 풀에서 현재 사용할 수 있는 공간이 없으면 데이터 세트에 대한 디스크 공간을 예약할 수 없습니다. 모든 미해결된 미소비 예약의 총량은 풀에서 사용되지 않은 디스크 공간을 초과할 수 없습니다. ZFS 예약은 zfs setzfs get 명령을 사용하여 설정 및 표시할 수 있습니다. 예를 들면 다음과 같습니다.

# zfs set reservation=5G tank/home/bill
# zfs get reservation tank/home/bill
NAME            PROPERTY     VALUE   SOURCE
tank/home/bill  reservation  5G      local

예약은 zfs list 명령의 출력 결과에 영향을 줄 수 있습니다. 예를 들면 다음과 같습니다.

# zfs list -r tank/home
NAME                USED  AVAIL  REFER  MOUNTPOINT
tank/home          5.00G  61.9G    37K  /tank/home
tank/home/bill       31K  66.9G    31K  /tank/home/bill
tank/home/jeff      337K  10.0G   306K  /tank/home/jeff
tank/home/lori      547K  61.9G   547K  /tank/home/lori
tank/home/mark       31K  61.9G    31K  /tank/home/mark

tank/home 및 해당 종속 항목에서 참조하는 총 디스크 공간이 5GB보다 훨씬 적지만 tank/home에서는 5GB의 디스크 공간을 사용하는 중입니다. used 공간은 tank/home/bill에 대해 예약된 공간을 나타냅니다. 예약은 부모 파일 시스템에서 사용된 디스크 공간 계산에 포함되며 해당 쿼터, 예약 또는 두 항목 모두에서 공제됩니다.

# zfs set quota=5G pool/filesystem
# zfs set reservation=10G pool/filesystem/user1
cannot set reservation for 'pool/filesystem/user1': size is greater than
available space

풀에서 사용 가능한 예약되지 않은 공간이 있고 데이터 세트의 현재 사용량이 해당 쿼터 미만인 경우 데이터 세트는 해당 예약보다 많은 디스크 공간을 사용할 수 있습니다. 데이터 세트는 다른 데이터 세트에 대해 예약된 디스크 공간을 소비할 수 없습니다.

예약은 누적되지 않습니다. 즉, 예약을 설정하기 위해 zfs set를 두번째로 호출해도 해당 예약이 기존 예약에 추가되지 않습니다. 그 대신 첫번째 예약이 두번째 예약으로 대체됩니다. 예를 들면 다음과 같습니다.

# zfs set reservation=10G tank/home/bill
# zfs set reservation=5G tank/home/bill
# zfs get reservation tank/home/bill
NAME            PROPERTY     VALUE   SOURCE
tank/home/bill  reservation  5G      local

refreservation 예약을 설정하여 스냅샷 및 복제본이 소비하는 디스크 공간을 포함하지 않는 데이터 세트에 대한 디스크 공간을 보장할 수 있습니다. 이 예약은 부모 데이터 세트의 used 공간 계산에 포함되며 부모 데이터 세트의 쿼터 및 예약에서 공제됩니다. 예를 들면 다음과 같습니다.

# zfs set refreservation=10g profs/prof1
# zfs list
NAME                      USED  AVAIL  REFER  MOUNTPOINT
profs                    10.0G  23.2G    19K  /profs
profs/prof1                10G  33.2G    18K  /profs/prof1

또한 데이터 세트 공간과 스냅샷 공간을 보장할 수 있도록 동일한 데이터 세트에서 예약을 설정할 수도 있습니다. 예를 들면 다음과 같습니다.

# zfs set reservation=20g profs/prof1
# zfs list
NAME                      USED  AVAIL  REFER  MOUNTPOINT
profs                    20.0G  13.2G    19K  /profs
profs/prof1                10G  33.2G    18K  /profs/prof1

일반 예약은 부모의 used 공간 계산에 포함됩니다.

앞의 예제에서는 두 쿼터(10GB와 20GB) 중 작은 쿼터가 zfs list 출력 결과에 표시되었습니다. 두 쿼터의 값을 보려면 zfs get 명령을 사용합니다. 예를 들면 다음과 같습니다.

# zfs get reservation,refreserv profs/prof1
NAME         PROPERTY        VALUE        SOURCE
profs/prof1  reservation     20G          local
profs/prof1  refreservation  10G          local

refreservation이 설정된 경우에는 이 예약 외에도 데이터 세트에서 현재 참조되는 바이트 수를 수용할 수 있도록 예약되지 않은 충분한 풀 공간이 존재하는 경우에만 스냅샷이 허용됩니다.