탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle Solaris ZFS 관리 설명서 Oracle Solaris 10 8/11 Information Library (한국어) |
1. Oracle Solaris ZFS 파일 시스템(소개)
3. Oracle Solaris ZFS와 전통적인 파일 시스템의 차이
4. Oracle Solaris ZFS 저장소 풀 관리
5. Oracle Solaris ZFS 루트 파일 시스템 설치 및 부트
Oracle Solaris ZFS 루트 파일 시스템 설치 및 부트(개요)
ZFS 지원을 위한 Oracle Solaris 설치 및 Live Upgrade 요구 사항
ZFS 루트 파일 시스템 설치(Oracle Solaris 초기 설치)
ZFS 루트 파일 시스템 설치(Oracle Solaris Flash 아카이브 설치)
ZFS 루트 파일 시스템 설치(JumpStart 설치)
ZFS 루트 파일 시스템으로 마이그레이션 또는 ZFS 루트 파일 시스템 업데이트(Live Upgrade)
Live Upgrade를 통한 ZFS 마이그레이션 문제
Live Upgrade를 사용하여 영역이 없는 ZFS 루트 파일 시스템 마이그레이션 또는 업데이트
Live Upgrade를 사용하여 영역이 있는 시스템 마이그레이션 또는 업그레이드(Solaris 10 10/08)
UFS에 영역 루트가 있는 UFS 루트 파일 시스템을 ZFS 루트 파일 시스템으로 마이그레이션하는 방법(Solaris 10 10/08)
ZFS에 영역 루트가 있는 ZFS 루트 파일 시스템을 구성하는 방법(Solaris 10 10/08)
ZFS에 영역 루트가 있는 ZFS 루트 파일 시스템을 업그레이드하거나 패치를 적용하는 방법(Solaris 10 10/08)
Oracle Solaris Live Upgrade를 사용하여 영역이 있는 시스템 마이그레이션 또는 업그레이드(Solaris 10 5/09 이상)
지원되는 ZFS 영역 루트 구성 정보(Solaris 10 5/09 이상)
ZFS 루트 파일 시스템 및 영역 루트가 있는 ZFS BE를 만드는 방법(Solaris 10 5/09 이상)
영역 루트가 있는 ZFS 루트 파일 시스템을 업그레이드하거나 패치를 적용하는 방법(Solaris 10 5/09 이상)
영역 루트가 있는 UFS 루트 파일 시스템을 ZFS 루트 파일 시스템으로 마이그레이션하는 방법(Solaris 10 5/09 이상)
부트가 성공하지 못하도록 하는 ZFS 마운트 지점 문제 해결(Solaris 10 10/08)
6. Oracle Solaris ZFS 파일 시스템 관리
7. Oracle Solaris ZFS 스냅샷 및 복제 작업
8. ACL 및 속성을 사용하여 Oracle Solaris ZFS 파일 보호
다음 단원에서는 관련 작업 수행 방법에 대해 설명합니다.
다음과 같은 경우 루트 풀의 디스크를 교체해야 할 수 있습니다.
루트 풀이 너무 작은 상태에서 작은 디스크를 보다 큰 디스크로 교체하려는 경우
루트 풀 디스크가 실패하는 경우. 비중복 풀에서 디스크가 실패하여 시스템이 부트되지 않을 경우 루트 풀 디스크를 교체하기 전에 대체 매체(예: DVD 또는 네트워크)에서 부트해야 합니다.
미러링된 루트 풀 구성에서는 대체 매체에서 부트하지 않고도 디스크를 교체할 수 있습니다. zpool replace 명령을 사용하여 실패한 디스크를 교체할 수 있습니다. 또는 추가 디스크가 있을 경우 zpool attach 명령을 사용할 수 있습니다. 추가 디스크를 연결하고 루트 풀 디스크를 분리하는 예는 이 단원의 절차를 참조하십시오.
일부 하드웨어의 경우 실패한 디스크를 교체하기 위해 zpool replace 작업을 시도하기 전에 디스크를 오프라인 상태로 만들고 구성을 해제해야 합니다. 예를 들면 다음과 같습니다.
# zpool offline rpool c1t0d0s0 # cfgadm -c unconfigure c1::dsk/c1t0d0 <Physically remove failed disk c1t0d0> <Physically insert replacement disk c1t0d0> # cfgadm -c configure c1::dsk/c1t0d0 # zpool replace rpool c1t0d0s0 # zpool online rpool c1t0d0s0 # zpool status rpool <Let disk resilver before installing the boot blocks> SPARC# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t0d0s0 x86# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t9d0s0
교체 디스크를 넣은 후 해당 디스크를 온라인 상태로 만들거나 재구성할 필요가 없는 하드웨어도 있습니다.
교체 디스크에서의 부트를 테스트하고 교체 디스크가 실패할 경우 기존 디스크에서 수동으로 부트할 수 있도록 현재 디스크와 새 디스크의 부트 장치 경로 이름을 식별해야 합니다. 다음 절차의 예에서 현재 루트 풀 디스크(c1t10d0s0)의 경로 이름은 다음과 같습니다.
/pci@8,700000/pci@3/scsi@5/sd@a,0
교체 부트 디스크(c1t9d0s0)의 경로 이름은 다음과 같습니다.
/pci@8,700000/pci@3/scsi@5/sd@9,0
루트 풀에 사용되는 디스크의 레이블을 재지정하는 방법은 다음 사이트를 참조하십시오.
http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide
예를 들면 다음과 같습니다.
# zpool attach rpool c1t10d0s0 c1t9d0s0
예를 들면 다음과 같습니다.
# zpool status rpool pool: rpool state: ONLINE status: One or more devices is currently being resilvered. The pool will continue to function, possibly in a degraded state. action: Wait for the resilver to complete. scrub: resilver in progress, 25.47% done, 0h4m to go config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t10d0s0 ONLINE 0 0 0 c1t9d0s0 ONLINE 0 0 0 errors: No known data errors
예를 들어, SPARC 기반 시스템에서는 다음과 유사한 구문을 사용합니다.
ok boot /pci@8,700000/pci@3/scsi@5/sd@9,0
예를 들면 다음과 같습니다.
# zpool detach rpool c1t10d0s0
SPARC - SPARC 부트 PROM에서 eeprom 명령 또는 setenv 명령을 사용합니다.
x86 - 시스템 BIOS를 재구성합니다.
복구를 위해 루트 풀 스냅샷을 만들 수 있습니다. 루트 풀 스냅샷을 만들 때는 순환적 루트 풀 스냅샷을 수행하는 것이 가장 좋습니다.
다음 절차에서는 순환적 루트 풀 스냅샷을 만든 후 해당 스냅샷을 파일로 저장하고 원격 시스템의 풀에 스냅샷으로 저장합니다. 루트 풀이 실패할 경우 NFS를 사용하여 원격 데이터 집합을 마운트할 수 있으며 다시 만들어진 풀로 스냅샷 파일을 수신할 수 있습니다. 또한 루트 풀 스냅샷을 원격 시스템의 풀에 실제 스냅샷으로 저장할 수 있습니다. 원격 시스템에서 스냅샷을 주고 받는 작업은 약간 복잡합니다. 손상을 복구할 시스템이 Oracle Solaris OS 미니 루트에서 부트되는 동안 ssh를 구성하거나 rsh를 사용해야 하기 때문입니다.
루트 풀 스냅샷 원격 저장 및 복구에 대한 자세한 내용은 다음 사이트를 참조하십시오.
http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide
파일 또는 스냅샷으로 원격 저장된 스냅샷을 검증하는 것은 루트 풀 복구 과정에서 중요한 단계입니다. 어떤 방법이든 정기적으로(예: 풀 구성이 변경되는 경우 또는 Solaris OS가 업그레이드되는 경우) 스냅샷을 다시 만들어야 합니다.
다음 절차에서는 시스템이 zfsBE 부트 환경에서 부트됩니다.
예를 들면 다음과 같습니다.
remote# zfs create rpool/snaps
예를 들면 다음과 같습니다.
remote# zfs set sharenfs='rw=local-system,root=local-system' rpool/snaps # share -@rpool/snaps /rpool/snaps sec=sys,rw=local-system,root=local-system ""
local# zfs snapshot -r rpool@snap1 local# zfs list -r rpool NAME USED AVAIL REFER MOUNTPOINT rpool 7.84G 59.1G 109K /rpool rpool@snap1 21K - 106K - rpool/ROOT 4.78G 59.1G 31K legacy rpool/ROOT@snap1 0 - 31K - rpool/ROOT/s10zfsBE 4.78G 59.1G 4.76G / rpool/ROOT/s10zfsBE@snap1 15.6M - 4.75G - rpool/dump 1.00G 59.1G 1.00G - rpool/dump@snap1 16K - 1.00G - rpool/export 99K 59.1G 32K /export rpool/export@snap1 18K - 32K - rpool/export/home 49K 59.1G 31K /export/home rpool/export/home@snap1 18K - 31K - rpool/swap 2.06G 61.2G 16K - rpool/swap@snap1 0 - 16K -
예를 들어, 루트 풀 스냅샷을 파일로 원격 풀에 보내려면 다음과 유사한 구문을 사용합니다.
local# zfs send -Rv rpool@snap1 > /net/remote-system/rpool/snaps/rpool.snap1 sending from @ to rpool@snap1 sending from @ to rpool/ROOT@snap1 sending from @ to rpool/ROOT/s10zfsBE@snap1 sending from @ to rpool/dump@snap1 sending from @ to rpool/export@snap1 sending from @ to rpool/export/home@snap1 sending from @ to rpool/swap@snap1
루트 풀 스냅샷을 스냅샷으로 원격 풀에 보내려면 다음과 유사한 구문을 사용합니다.
local# zfs send -Rv rpool@snap1 | ssh remote-system zfs receive -Fd -o canmount=off tank/snaps sending from @ to rpool@snap1 sending from @ to rpool/ROOT@snap1 sending from @ to rpool/ROOT/s10zfsBE@snap1 sending from @ to rpool/dump@snap1 sending from @ to rpool/export@snap1 sending from @ to rpool/export/home@snap1 sending from @ to rpool/swap@snap1
이 절차에서는 다음과 같이 가정합니다.
ZFS 루트 풀을 복구할 수 없습니다.
ZFS 루트 풀 스냅샷이 원격 시스템에 저장되어 NFS를 통해 공유됩니다.
모든 단계는 로컬 시스템에서 수행됩니다.
SPARC - 다음 부트 방법 중 하나를 선택합니다.
ok boot net -s ok boot cdrom -s
-s 옵션을 사용할 수 없을 경우 설치 프로그램을 종료해야 합니다.
x86 – DVD에서 부트하거나 네트워크에서 부트하는 옵션을 선택합니다. 그런 다음 설치 프로그램을 종료합니다.
예를 들면 다음과 같습니다.
# mount -F nfs remote-system:/rpool/snaps /mnt
네트워크 서비스가 구성되지 않은 경우 원격 시스템의 IP 주소를 지정해야 할 수 있습니다.
디스크 레이블 재지정에 대한 자세한 내용은 다음 사이트를 참조하십시오.
http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide
예를 들면 다음과 같습니다.
# zpool create -f -o failmode=continue -R /a -m legacy -o cachefile= /etc/zfs/zpool.cache rpool c1t1d0s0
이 단계는 오래 걸릴 수 있습니다. 예를 들면 다음과 같습니다.
# cat /mnt/rpool.0804 | zfs receive -Fdu rpool
-u 옵션을 사용하면 zfs receive 작업이 완료될 때 복원된 아카이브가 마운트되지 않습니다.
원격 시스템의 풀에 저장된 실제 루트 풀 스냅샷을 복원하려면 다음과 유사한 구문을 사용합니다.
# rsh remote-system zfs send -Rb tank/snaps/rpool@snap1 | zfs receive -F rpool
예를 들면 다음과 같습니다.
# zfs list
예를 들면 다음과 같습니다.
# zpool set bootfs=rpool/ROOT/zfsBE rpool
SPARC:
# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t1d0s0
x86:
# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t1d0s0
# init 6
이 절차에서는 기존 루트 풀 스냅샷을 사용할 수 있다고 가정합니다. 예에서는 로컬 시스템에서 이를 사용할 수 있습니다.
# zfs snapshot -r rpool@snap1 # zfs list -r rpool NAME USED AVAIL REFER MOUNTPOINT rpool 7.84G 59.1G 109K /rpool rpool@snap1 21K - 106K - rpool/ROOT 4.78G 59.1G 31K legacy rpool/ROOT@snap1 0 - 31K - rpool/ROOT/s10zfsBE 4.78G 59.1G 4.76G / rpool/ROOT/s10zfsBE@snap1 15.6M - 4.75G - rpool/dump 1.00G 59.1G 1.00G - rpool/dump@snap1 16K - 1.00G - rpool/export 99K 59.1G 32K /export rpool/export@snap1 18K - 32K - rpool/export/home 49K 59.1G 31K /export/home rpool/export/home@snap1 18K - 31K - rpool/swap 2.06G 61.2G 16K - rpool/swap@snap1 0 - 16K -
ok boot -F failsafe ROOT/zfsBE was found on rpool. Do you wish to have it mounted read-write on /a? [y,n,?] y mounting rpool on /a Starting shell.
# zfs rollback rpool@snap1 # zfs rollback rpool/ROOT@snap1 # zfs rollback rpool/ROOT/s10zfsBE@snap1
# init 6