JavaScript is required to for searching.
탐색 링크 건너뛰기
인쇄 보기 종료
Oracle Solaris 11.1 관리: ZFS 파일 시스템     Oracle Solaris 11.1 Information Library (한국어)
search filter icon
search icon

문서 정보

머리말

1.  Oracle Solaris ZFS 파일 시스템(소개)

2.  Oracle Solaris ZFS 시작하기

3.  Oracle Solaris ZFS 저장소 풀 관리

4.  ZFS 루트 풀 구성 요소 관리

5.  Oracle Solaris ZFS 파일 시스템 관리

6.  Oracle Solaris ZFS 스냅샷 및 복제 작업

ZFS 스냅샷 개요

ZFS 스냅샷 만들기 및 삭제

ZFS 스냅샷 유지

ZFS 스냅샷 이름 바꾸기

ZFS 스냅샷 표시 및 액세스

ZFS 스냅샷에 대한 디스크 공간 계산

ZFS 스냅샷 롤백

ZFS 스냅샷 차이 식별(zfs diff)

ZFS 복제본 개요

ZFS 복제본 만들기

ZFS 복제본 삭제

ZFS 복제본으로 ZFS 파일 시스템 대체

ZFS 데이터 전송 및 수신

다른 백업 제품으로 ZFS 데이터 저장

ZFS 스냅샷 스트림 식별

ZFS 스냅샷 전송

ZFS 스냅샷 수신

ZFS 스냅샷 스트림에 다른 등록 정보 값 적용

복잡한 ZFS 스냅샷 스트림 전송 및 수신

ZFS 데이터 원격 복제

7.  ACL 및 속성을 사용하여 Oracle Solaris ZFS 파일 보호

8.  Oracle Solaris ZFS 위임 관리

9.  Oracle Solaris ZFS 고급 주제

10.  Oracle Solaris ZFS 문제 해결 및 풀 복구

11.  스냅샷 아카이브 및 루트 풀 복구

12.  Oracle Solaris ZFS 권장 방법

A.  Oracle Solaris ZFS 버전 설명

색인

ZFS 스냅샷 개요

스냅샷은 파일 시스템 또는 볼륨에 대한 읽기 전용 복사본입니다. 즉시 만들 수 있으며 처음에는 풀 내에서 추가 디스크 공간을 사용하지 않습니다. 그러나 활성 데이터 세트 내의 데이터가 변경되면 스냅샷은 기존 데이터를 계속 참조하기 위해 디스크 공간을 사용하므로 디스크 공간이 해제되지 않습니다.

ZFS 스냅샷의 기능은 다음과 같습니다.

볼륨 스냅샷은 직접 액세스할 수는 있지만, 복제, 백업, 롤백 등은 불가능합니다. ZFS 스냅샷 백업에 대한 자세한 내용은 ZFS 데이터 전송 및 수신을 참조하십시오.

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 receive 명령으로 오래된 스냅샷을 무단으로 삭제하는 것과 같은 여러 자동 스냅샷 정책을 사용하는 경우 스냅샷 유지 기능을 사용할 것을 고려해 볼 수 있습니다.

스냅샷 유지 기능을 사용하면 스냅샷이 삭제되지 않습니다. 또한 이 기능을 사용하면 클론이 있는 스냅샷의 경우 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 스냅샷 이름 바꾸기

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

# 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  -

ZFS 스냅샷 표시 및 액세스

기본적으로 스냅샷은 zfs list 출력에 더 이상 표시되지 않습니다. zfs list -t snapshot 명령을 사용하여 스냅샷 정보를 표시해야 합니다. 또는 listsnapshots 풀 등록 정보를 사용으로 설정하십시오. 예를 들면 다음과 같습니다.

# zpool get listsnapshots tank
NAME  PROPERTY       VALUE      SOURCE
tank  listsnapshots  off        default
# zpool set listsnapshots=on tank
# zpool get listsnapshots tank
NAME  PROPERTY       VALUE      SOURCE
tank  listsnapshots  on         local

파일 시스템 스냅샷은 파일 시스템 루트 내의 .zfs/snapshot 디렉토리에서 액세스할 수 있습니다. 예를 들어, tank/home/cindy/home/cindy에 마운트된 경우 tank/home/cindy@thursday 스냅샷 데이터는 /home/cindy/.zfs/snapshot/thursday 디렉토리에서 액세스할 수 있습니다.

# ls /tank/home/cindy/.zfs/snapshot
thursday   tuesday    wednesday

다음과 같이 스냅샷을 나열할 수 있습니다.

# zfs list -t snapshot -r tank/home
NAME                       USED  AVAIL  REFER  MOUNTPOINT
tank/home/cindy@tuesday     45K      -  2.11G  -
tank/home/cindy@wednesday   45K      -  2.11G  -
tank/home/cindy@thursday      0      -  2.17G  -

다음과 같이 특정 파일 시스템용으로 생성된 스냅샷을 나열할 수 있습니다.

# zfs list -r -t snapshot -o name,creation tank/home
NAME                       CREATION
tank/home/cindy@tuesday    Fri Aug  3 15:18 2012
tank/home/cindy@wednesday  Fri Aug  3 15:19 2012
tank/home/cindy@thursday   Fri Aug  3 15:19 2012
tank/home/lori@today       Fri Aug  3 15:24 2012
tank/home/mark@today       Fri Aug  3 15:24 2012

ZFS 스냅샷에 대한 디스크 공간 계산

스냅샷이 생성되면 처음에는 디스크 공간이 스냅샷과 파일 시스템 간에 공유됩니다. 이전 스냅샷의 경우에도 마찬가지입니다. 그러나 파일 시스템이 변경되면 이전에 공유되던 디스크 공간을 스냅샷에서만 사용하게 되므로, 스냅샷의 used 등록 정보가 카운트됩니다. 또한 스냅샷을 삭제하면 다른 스냅샷에서 사용하던 고유 디스크 공간의 양(used 등록 정보)이 늘어날 수 있습니다.

스냅샷 공간의 referenced 등록 정보 값은 스냅샷이 만들어졌을 때의 파일 시스템 등록 정보 값과 동일합니다.

used 등록 정보 값이 사용되는 방식에 대한 추가 정보를 확인할 수 있습니다. 새 읽기 전용 파일 시스템 등록 정보가 복제본, 파일 시스템 및 볼륨에 대한 디스크 공간 사용량을 설명합니다. 예를 들면 다음과 같습니다.

$ zfs list -o space -r rpool
NAME                      AVAIL   USED  USEDSNAP  USEDDS  USEDREFRESERV  USEDCHILD
rpool                      124G  9.57G         0    302K              0      9.57G
rpool/ROOT                 124G  3.38G         0     31K              0      3.38G
rpool/ROOT/solaris         124G  20.5K         0       0              0      20.5K
rpool/ROOT/solaris/var     124G  20.5K         0   20.5K              0          0
rpool/ROOT/solaris-1       124G  3.38G     66.3M   3.14G              0       184M
rpool/ROOT/solaris-1/var   124G   184M     49.9M    134M              0          0
rpool/VARSHARE             124G  39.5K         0   39.5K              0          0
rpool/dump                 124G  4.12G         0   4.00G           129M          0
rpool/export               124G    63K         0     32K              0        31K
rpool/export/home          124G    31K         0     31K              0          0
rpool/swap                 124G  2.06G         0   2.00G          64.7M          0

이러한 등록 정보에 대한 설명은 표 5-1을 참조하십시오.

ZFS 스냅샷 롤백

zfs rollback 명령을 사용하면 특성 스냅샷이 생성된 이후에 발생한 파일 시스템의 변경 사항을 모두 무시할 수 있습니다. 파일 시스템의 상태는 스냅샷 생성 시점으로 되돌아갑니다. 기본적으로 이 명령은 가장 최근의 스냅샷만 롤백할 수 있습니다.

이전 스냅샷으로 롤백하려면 중간 스냅샷을 모두 삭제해야 합니다. -r 옵션을 사용하면 이전 스냅샷을 삭제할 수 있습니다.

중간 스냅샷 복제본이 있을 경우 -R 옵션을 지정하여 복제본도 삭제해야 합니다.


주 - 롤백하려는 현재 파일 시스템이 현재 마운트된 경우 마운트가 해제되었다가 다시 마운트됩니다. 파일 시스템을 마운트 해제할 수 없으면 롤백이 실패합니다. -f 옵션은 필요한 경우 파일 시스템을 강제로 마운트 해제합니다.


다음 예에서는 tank/home/cindy 파일 시스템이 tuesday 스냅샷으로 롤백됩니다.

# zfs rollback tank/home/cindy@tuesday
cannot rollback to 'tank/home/cindy@tuesday': more recent snapshots exist
use '-r' to force deletion of the following snapshots:
tank/home/cindy@wednesday
tank/home/cindy@thursday
# zfs rollback -r tank/home/cindy@tuesday

이 예에서는 이전 tuesday 스냅샷으로 롤백했으므로 wednesdaythursday 스냅샷이 삭제되었습니다.

# zfs list -r -t snapshot -o name,creation tank/home/cindy
NAME                     CREATION
tank/home/cindy@tuesday  Fri Aug  3 15:18 2012

ZFS 스냅샷 차이 식별(zfs diff)

ZFS 스냅샷 차이점은 zfs diff 명령을 사용하여 확인할 수 있습니다.

예를 들어, 다음 두 스냅샷이 생성된다고 가정해 보겠습니다.

$ ls /tank/home/tim
fileA
$ zfs snapshot tank/home/tim@snap1
$ ls /tank/home/tim
fileA  fileB
$ zfs snapshot tank/home/tim@snap2

예를 들어, 두 스냅샷 간의 차이를 확인하려면 다음과 비슷한 구문을 사용하십시오.

$ zfs diff tank/home/tim@snap1 tank/home/tim@snap2
M       /tank/home/tim/
+       /tank/home/tim/fileB

출력 결과에서 M은 디렉토리가 수정되었음을 나타냅니다. +fileB가 나중 스냅샷에 존재함을 나타냅니다.

다음 출력 결과에서 M은 스냅샷에 포함된 파일의 이름이 변경되었음을 나타냅니다.

$ mv /tank/cindy/fileB /tank/cindy/fileC
$ zfs snapshot tank/cindy@snap2
$ zfs diff tank/cindy@snap1 tank/cindy@snap2
M       /tank/cindy/
R       /tank/cindy/fileB -> /tank/cindy/fileC

다음 표는 zfs diff 명령으로 식별되는 파일 또는 디렉토리 변경 사항을 요약하여 보여줍니다.

파일 또는 디렉토리 변경 사항
식별자
파일 또는 디렉토리가 수정되었거나 파일 또는 디렉토리 링크가 변경되었습니다.
M
파일 또는 디렉토리가 이전 스냅샷에만 있고 최근 스냅샷에는 없습니다.
파일 또는 디렉토리가 최근 스냅샷에만 있고 이전 스냅샷에는 없습니다.
+
파일 또는 디렉토리의 이름이 변경되었습니다.
R

자세한 내용은 zfs(1M)를 참조하십시오.