16.5 ZFS 복제 사용
고 가용성 환경에 대응하기 위해 정보의 즉시 사본을 현재 활성 시스템과 핫 백업을 모두 제공하는 것은 HA 솔루션의 중요한 부분입니다. 이 문제는 제 17 장 "복제" 과 섹션 16.2 "DRBD / Pacemaker / Corosync / Oracle Linux를 사용하는 MySQL의 개요" 를 포함하여 많은 솔루션이 있습니다.
ZFS 파일 시스템은 파일 시스템 내용의 스냅 샷을 만들거나 스냅 샷을 다른 컴퓨터로 전송하거나 스냅 샷을 압축하여 파일 시스템을 다시 만들 기능이 준비되어 있습니다. 스냅 샷은 언제든지 만들 수 있으며, 필요한만큼의 스냅 샷을 만들 수 있습니다. 스냅 샷을 지속적으로 생성, 전송 및 복원하는 것으로, DRBD와 유사한 방법으로 하나 또는 여러 컴퓨터간에 동기화를 제공 할 수 있습니다.
다음의 예에서는 /scratchpool
에 탑재 된 단일 ZFS 풀에서 작동하는 간단한 Solaris 시스템을 나타냅니다.
Filesystem size used avail capacity Mounted on /dev/dsk/c0d0s0 4.6G 3.7G 886M 82% / /devices 0K 0K 0K 0% /devices ctfs 0K 0K 0K 0% /system/contract proc 0K 0K 0K 0% /proc mnttab 0K 0K 0K 0% /etc/mnttab swap 1.4G 892K 1.4G 1% /etc/svc/volatile objfs 0K 0K 0K 0% /system/object /usr/lib/libc/libc_hwcap1.so.1 4.6G 3.7G 886M 82% /lib/libc.so.1 fd 0K 0K 0K 0% /dev/fd swap 1.4G 40K 1.4G 1% /tmp swap 1.4G 28K 1.4G 1% /var/run /dev/dsk/c0d0s7 26G 913M 25G 4% /export/home scratchpool 16G 24K 16G 1% /scratchpool
MySQL 데이터 /scratchpool
의 디렉토리에 저장됩니다. 몇 가지 기본 복제 기능을 설명하기 위해 /scratchpool
에는 다른 항목도 포함되어 있습니다.
total 17 drwxr-xr-x 31 root bin 50 Jul 21 07:32 DTT/ drwxr-xr-x 4 root bin 5 Jul 21 07:32 SUNWmlib/ drwxr-xr-x 14 root sys 16 Nov 5 09:56 SUNWspro/ drwxrwxrwx 19 1000 1000 40 Nov 6 19:16 emacs-22.1/
파일 시스템의 스냅 샷을 만들려면, 수영장 및 스냅 샷 이름을 지정하여 zfs snapshot
을 사용합니다.
root-shell> zfs snapshot scratchpool@snap1
이미 생성 된 스냅 샷 목록을 표시하려면 :
root-shell> zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT scratchpool@snap1 0 - 24.5K - scratchpool@snap2 0 - 24.5K -
스냅 샷 자체는 파일 시스템 메타 데이터에 저장되어 그들을 유지하기 위해 필요한 공간은 스냅 샷이 생성되는 방법을 이유로 시간에 따라 변화합니다. 스냅 샷을 처음 작성은 스냅 샷 전체를 유지하기 위해 필요한 데이터와 메타 데이터의 전체 복사본을 만드는 대신 ZFS 스냅 샷이 생성되었을 때의 시점의 메타 데이터 만 기록 하기 때문에 매우 빠릅니다.
원래 파일 시스템에 변경 사항이 많아 질수록 오래된 블록의 기록을 유지하기 위해 더 많은 공간이 필요하기 때문에 스냅 샷의 크기가 증가합니다. 많은 스냅 샷을 생성하고 (예를 들어 하루에 하나) 주 이른시기에 만든 스냅 샷을 삭제하면 새로운 상태 구성 변경은 주를 구성하는 7 개의 스냅 샷 분산되는 것이 아니라 더 최근의 스냅 샷에 포함될 필요가 있기 때문에 새로운 방식의 스냅 샷의 크기가 증가하는 경우도 있습니다.
스냅 샷은 일반 파일이 아닌 파일 시스템 메타 데이터 내에 존재하기 때문에 직접 백업 할 수 없습니다. 스냅 샷을 다른 파일 시스템이나 테이프에 복사 할 수있는 형식으로하려면 zfs send
명령을 사용하여 스트림 버전 스냅 샷을 만듭니다.
예를 들어, 스냅 샷을 파일로 내보내려면 :
root-shell> zfs send scratchpool@snap1 >/backup/scratchpool-snap1
또는 테이프 :
root-shell> zfs send scratchpool@snap1 >/dev/rmt/0
zfs send
를 사용하여 2 개의 스냅 샷 사이의 증분 변경을 내보낼 수 있습니다.
root-shell> zfs send scratchpool@snap1 scratchpool@snap2 >/backup/scratchpool-changes
스냅 샷을 복구하려면 스냅 샷 정보를 새 파일 시스템 또는 기존에 적용 zfs recv
를 사용합니다.