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

인쇄 보기 종료

업데이트 날짜: 2014년 12월
 
 

ZFS 스냅샷 만들기 및 삭제

스냅샷은 zfs snapshot 또는 zfs snap 명령으로 생성되는데, 이 명령은 만들 스냅샷의 이름만 인수로 사용합니다. 스냅샷은 이름은 다음과 같이 지정됩니다.

filesystem@snapname
volume@snapname

스냅샷 이름은 ZFS 구성 요소 명명 요구 사항의 조건을 충족해야 합니다.

다음 예에서는 friday라는 이름의 tank/home/cindy 스냅샷이 생성됩니다.

# zfs snapshot tank/home/cindy@friday

–r 옵션을 사용하면 모든 종속 파일 시스템에 대한 스냅샷을 만들 수 있습니다. 예를 들면 다음과 같습니다.

# zfs snapshot -r tank/home@snap1
# zfs list -t snapshot -r tank/home
NAME                   USED  AVAIL  REFER  MOUNTPOINT
tank/home@snap1           0      -  2.11G  -
tank/home/cindy@snap1     0      -   115M  -
tank/home/lori@snap1      0      -  2.00G  -
tank/home/mark@snap1      0      -  2.00G  -
tank/home/tim@snap1       0      -  57.3M  -

스냅샷에는 수정 가능한 등록 정보가 없습니다. 스냅샷에 적용할 수 있는 데이터 세트 등록 정보도 없습니다. 예를 들면 다음과 같습니다.

# zfs set compression=on tank/home/cindy@friday
cannot set property for 'tank/home/cindy@friday':
this property can not be modified for snapshots

스냅샷은 zfs destroy 명령을 사용하여 삭제됩니다. 예를 들면 다음과 같습니다.

# zfs destroy tank/home/cindy@friday

데이터 세트의 스냅샷이 있을 경우에는 데이터 세트를 삭제할 수 없습니다. 예를 들면 다음과 같습니다.

# zfs destroy tank/home/cindy
cannot destroy 'tank/home/cindy': filesystem has children
use '-r' to destroy the following datasets:
tank/home/cindy@tuesday
tank/home/cindy@wednesday
tank/home/cindy@thursday

또한 스냅샷에서 생성된 복제본은 스냅샷을 삭제하기 전에 삭제해야 합니다.

destroy 하위 명령에 대한 자세한 내용은 ZFS 파일 시스템 삭제를 참조하십시오.

ZFS 스냅샷 유지

다른 자동 스냅샷 또는 데이터 보존 정책은 이전의 스냅샷이 실수로 삭제되었음을 의미할 수 있습니다. 제거된 스냅샷이 진행 중인 zfs 보내기 및 받기 작업의 일부분일 경우 작업이 실패할 수 있습니다. 이런 상황을 피하려면 스냅샷 유지를 고려해 보십시오.

스냅샷 유지 기능을 사용하면 스냅샷이 삭제되지 않습니다. 또한 이 기능을 사용하면 복제본이 있는 스냅샷의 경우 zfs destroy –d 명령을 사용하여 마지막 복제본을 제거하지 않는 한 해당 스냅샷을 삭제할 수 있습니다. 각 스냅샷에는 연관된 user-reference 카운트가 있는데, 이 카운트는 0으로 초기화되어 있습니다. 이 카운트는 스냅샷이 유지될 때마다 1씩 늘어나고 유지가 해제될 때마다 1씩 줄어듭니다.

이전 Oracle Solaris 릴리스에서는 복제본이 없는 경우 zfs destroy 명령을 통해서만 스냅샷을 삭제할 수 있었습니다. 이 Oracle Solaris 릴리스에서는 스냅샷의 user-reference 카운트도 0이어야 합니다.

스냅샷 또는 스냅샷 세트를 유지할 수 있습니다. 예를 들어, 다음 구문은 tank/home/cindy/snap@1에 유지 태그인 keep을 삽입합니다.

# zfs hold keep tank/home/cindy@snap1

–r 옵션을 사용하면 모든 종속 파일 시스템의 스냅샷을 반복적으로 유지할 수 있습니다. 예를 들면 다음과 같습니다.

# zfs snapshot -r tank/home@now
# zfs hold -r keep tank/home@now

이 구문은 단일 참조인 keep을 스냅샷 또는 스냅샷 세트에 추가합니다. 각 스냅샷에는 고유한 태그 이름 공간이 있으며 유지 태그는 해당 공간 내에서 고유해야 합니다. 유지된 스냅샷이 있는 경우 zfs destroy 명령을 사용하여 유지된 해당 스냅샷을 삭제하려고 하면 삭제되지 않습니다. 예를 들면 다음과 같습니다.

# zfs destroy tank/home/cindy@snap1
cannot destroy 'tank/home/cindy@snap1': dataset is busy

유지된 스냅샷을 삭제하려면 –d 옵션을 사용하십시오. 예를 들면 다음과 같습니다.

# zfs destroy -d tank/home/cindy@snap1

zfs holds 명령을 사용하면 유지된 스냅샷 목록이 표시됩니다. 예를 들면 다음과 같습니다.

# zfs holds tank/home@now
NAME           TAG   TIMESTAMP
tank/home@now  keep  Fri Aug  3 15:15:53 2012  
# zfs holds -r tank/home@now
NAME                 TAG   TIMESTAMP
tank/home/cindy@now  keep  Fri Aug  3 15:15:53 2012
tank/home/lori@now   keep  Fri Aug  3 15:15:53 2012
tank/home/mark@now   keep  Fri Aug  3 15:15:53 2012
tank/home/tim@now    keep  Fri Aug  3 15:15:53 2012
tank/home@now        keep  Fri Aug  3 15:15:53 2012  

zfs release 명령을 사용하면 스냅샷 또는 스냅샷 세트에 대한 유지가 해제됩니다. 예를 들면 다음과 같습니다.

# zfs release -r keep tank/home@now

스냅샷이 해제되면 zfs destroy 명령을 사용하여 스냅샷을 삭제할 수 있습니다. 예를 들면 다음과 같습니다.

# zfs destroy -r tank/home@now

스냅샷 유지 정보는 다음 두 등록 정보로 식별할 수 있습니다.

  • zfs destroy –d 명령을 사용하여 스냅샷이 삭제 지연으로 표시된 경우 defer_destroy 등록 정보가 on입니다. 그렇지 않은 경우 이 등록 정보는 off입니다.

  • userrefs 등록 정보가 이 스냅샷에 대한 유지 수로 설정됩니다. 이를 user-reference 카운트라고도 합니다.

ZFS 스냅샷 이름 바꾸기

스냅샷의 이름을 바꿀 수는 있지만, 스냅샷이 생성된 것과 동일한 풀 및 데이터 세트 내에서 이름을 바꿔야 합니다. 예를 들면 다음과 같습니다.

# zfs rename tank/home/cindy@snap1 tank/home/cindy@today

또한 다음 단축 구문은 위의 구문과 같습니다.

# zfs rename tank/home/cindy@snap1 today

스냅샷이 생성된 풀 및 파일 시스템과 대상 풀 및 파일 시스템이 다르기 때문에 다음 스냅샷 이름 바꾸기 작업은 지원되지 않습니다.

# zfs rename tank/home/cindy@today pool/home/cindy@saturday
cannot rename to 'pool/home/cindy@today': snapshots must be part of same
dataset

zfs rename –r 명령을 사용하면 스냅샷의 이름을 반복적으로 바꿀 수 있습니다. 예를 들면 다음과 같습니다.

# zfs list -t snapshot -r users/home
NAME                        USED  AVAIL  REFER  MOUNTPOINT
users/home@now             23.5K      -  35.5K  -
users/home@yesterday           0      -    38K  -
users/home/lori@yesterday      0      -  2.00G  -
users/home/mark@yesterday      0      -  1.00G  -
users/home/neil@yesterday      0      -  2.00G  -
# zfs rename -r users/home@yesterday @2daysago
# zfs list -t snapshot -r users/home
NAME                       USED  AVAIL  REFER  MOUNTPOINT
users/home@now            23.5K      -  35.5K  -
users/home@2daysago           0      -    38K  -
users/home/lori@2daysago      0      -  2.00G  -
users/home/mark@2daysago      0      -  1.00G  -
users/home/neil@2daysago      0      -  2.00G  -