이 절에서는 zfs send –I 및 –R 옵션을 사용하여 보다 복잡한 스냅샷 스트림을 전송 및 수신하는 방법에 대해 설명합니다.
복잡한 ZFS 스냅샷 스트림을 전송 및 수신할 때는 다음 사항에 유의하십시오.
zfs send –I 옵션을 사용하여 한 스냅샷의 모든 증분 스트림을 누적 스냅샷으로 전송할 수 있습니다. 또는 이 옵션으로 원본 스냅샷에서 증분 스트림을 전송하여 복제본을 만들 수 있습니다. 증분 스트림을 수락하려면 수신측에 원본 스냅샷이 있어야 합니다.
zfs send –R 옵션을 사용하여 모든 종속 파일 시스템의 복제 스트림을 전송할 수 있습니다. 복제 스트림이 수신되면 등록 정보, 스냅샷, 종속 파일 시스템 및 복제본이 모두 유지됩니다.
zfs send –r 옵션을 –c 옵션 없이 사용하고 zfs send –R 옵션 스트림 패키지를 사용하는 경우 상황에 따라 복제본의 origin을 생략합니다. 자세한 내용은 ZFS 스냅샷 스트림 식별을 참조하십시오.
두 옵션을 모두 사용하여 증분 복제 스트림을 전송할 수 있습니다.
스냅샷 및 파일 시스템 이름 바꾸기 및 삭제 작업이 보존되므로 등록 정보에 대한 변경 사항이 보존됩니다.
복제 스트림을 수신할 때 zfs recv –F가 지정되지 않은 경우 데이터 세트 삭제 작업이 무시됩니다. 이 경우 zfs recv –F 구문도 해당 필요한 경우 롤백 의미를 보존합니다.
다른(zfs send –R 제외) –i 또는 –I 경우에도 –I가 사용된 경우 snapA와 snapD 간의 모든 스냅샷이 전송됩니다. –i가 사용된 경우 snapD(모든 종속 항목에 대한)만 전송됩니다.
이러한 새 유형의 zfs send 스트림을 수신하려면 수신 시스템이 스트림 전송을 지원하는 소프트웨어 버전을 실행 중이어야 합니다. 스트림 버전은 증분됩니다.
그러나 최신 소프트웨어 버전을 사용할 경우 이전 풀 버전에서 스트림에 액세스할 수 없습니다. 예를 들어 최신 옵션을 사용하여 생성된 스트림은 버전 3 풀에서 또는 버전 3 풀로 전송 및 수신할 수 있습니다. 그러나 최신 옵션을 사용하여 전송된 스트림을 수신하려면 최신 소프트웨어가 실행 중이어야 합니다.
zfs send –I 옵션을 사용하여 증분 스냅샷 그룹을 하나의 스냅샷에 결합할 수 있습니다. 예를 들면 다음과 같습니다.
# zfs send -I pool/fs@snapA pool/fs@snapD > /snaps/fs@all-I
그런 다음 snapB, snapC 및 snapD를 제거합니다.
# zfs destroy pool/fs@snapB # zfs destroy pool/fs@snapC # zfs destroy pool/fs@snapD
결합된 스냅샷을 수신하려면 다음 명령을 사용하십시오.
# zfs receive -d -F pool/fs < /snaps/fs@all-I # zfs list NAME USED AVAIL REFER MOUNTPOINT pool 428K 16.5G 20K /pool pool/fs 71K 16.5G 21K /pool/fs pool/fs@snapA 16K - 18.5K - pool/fs@snapB 17K - 20K - pool/fs@snapC 17K - 20.5K - pool/fs@snapD 0 - 21K -
zfs send –I 명령으로 스냅샷과 복제 스냅샷을 결합하여 결합된 데이터 세트를 만들 수도 있습니다. 예를 들면 다음과 같습니다.
# zfs create pool/fs # zfs snapshot pool/fs@snap1 # zfs clone pool/fs@snap1 pool/clone # zfs snapshot pool/clone@snapA # zfs send -I pool/fs@snap1 pool/clone@snapA > /snaps/fsclonesnap-I # zfs destroy pool/clone@snapA # zfs destroy pool/clone # zfs receive -F pool/clone < /snaps/fsclonesnap-I
zfs send –R 명령을 사용하여 ZFS 파일 시스템과 모든 종속 파일 시스템 및 명명된 스냅샷까지 복제할 수 있습니다. 이 스트림이 수신되면 등록 정보, 스냅샷, 종속 파일 시스템 및 복제본이 모두 보존됩니다.
다음 예에서는 스냅샷이 사용자 파일 시스템용으로 생성되었습니다. 하나의 복제 스트림이 모든 사용자 스냅샷용으로 생성되었습니다. 다음으로, 원본 파일 시스템과 스냅샷이 삭제된 다음 복구되었습니다.
# zfs snapshot -r users@today # zfs list NAME USED AVAIL REFER MOUNTPOINT users 187K 33.2G 22K /users users@today 0 - 22K - users/user1 18K 33.2G 18K /users/user1 users/user1@today 0 - 18K - users/user2 18K 33.2G 18K /users/user2 users/user2@today 0 - 18K - users/user3 18K 33.2G 18K /users/user3 users/user3@today 0 - 18K - # zfs send -R users@today > /snaps/users-R # zfs destroy -r users # zfs receive -F -d users < /snaps/users-R # zfs list NAME USED AVAIL REFER MOUNTPOINT users 196K 33.2G 22K /users users@today 0 - 22K - users/user1 18K 33.2G 18K /users/user1 users/user1@today 0 - 18K - users/user2 18K 33.2G 18K /users/user2 users/user2@today 0 - 18K - users/user3 18K 33.2G 18K /users/user3 users/user3@today 0 - 18K -
다음 예에서는 zfs send –R 명령을 사용하여 users 파일 시스템과 종속 항목을 복제하고 복제된 스트림을 다른 풀인 users2로 보냈습니다.
# zfs create users2 mirror c0t1d0 c1t1d0 # zfs receive -F -d users2 < /snaps/users-R # zfs list NAME USED AVAIL REFER MOUNTPOINT users 224K 33.2G 22K /users users@today 0 - 22K - users/user1 33K 33.2G 18K /users/user1 users/user1@today 15K - 18K - users/user2 18K 33.2G 18K /users/user2 users/user2@today 0 - 18K - users/user3 18K 33.2G 18K /users/user3 users/user3@today 0 - 18K - users2 188K 16.5G 22K /users2 users2@today 0 - 22K - users2/user1 18K 16.5G 18K /users2/user1 users2/user1@today 0 - 18K - users2/user2 18K 16.5G 18K /users2/user2 users2/user2@today 0 - 18K - users2/user3 18K 16.5G 18K /users2/user3 users2/user3@today 0 - 18K -