탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle Solaris 관리: ZFS 파일 시스템 Oracle Solaris 11 Information Library (한국어) |
1. Oracle Solaris ZFS 파일 시스템(소개)
3. Oracle Solaris ZFS와 전통적인 파일 시스템의 차이
4. Oracle Solaris ZFS 저장소 풀 관리
미러링된 ZFS 저장소 풀을 분할하여 새로운 풀 만들기
6. Oracle Solaris ZFS 파일 시스템 관리
7. Oracle Solaris ZFS 스냅샷 및 복제 작업
8. ACL 및 속성을 사용하여 Oracle Solaris ZFS 파일 보호
때때로 시스템 간에 저장소 풀을 이동해야 할 수 있습니다. 이를 위해서는 저장소 장치를 원래 시스템에서 분리하고 대상 시스템에 다시 연결해야 합니다. 이 작업은 장치 케이블을 물리적으로 연결하거나 SAN의 장치와 같은 다중 포트 장치를 사용하여 수행할 수 있습니다. 시스템의 아키텍처 엔디안이 서로 다르더라도 ZFS를 통해 한 시스템에서 풀을 내보내고 대상 시스템에서 가져올 수 있습니다. 서로 다른 시스템에 상주할 수 있는 서로 다른 저장소 풀 간의 파일 시스템 복제 또는 마이그레이션에 대한 자세한 내용은 ZFS 데이터 전송 및 수신을 참조하십시오.
마이그레이션 준비가 되었음을 나타내기 위해서는 저장소 풀을 명시적으로 내보내기되어 있어야 합니다. 이 작업은 쓰여지지 않은 데이터를 디스크에 비우고 데이터를 디스크에 기록하여 내보내기가 수행되었음을 나타내고, 시스템에서 풀에 대한 모든 정보를 제거합니다.
풀을 명시적으로 내보내지 않고 대신, 디스크를 수동으로 제거할 경우에도 다른 시스템에서 결과 풀을 가져올 수 있습니다. 하지만 몇 초 정도의 데이터 트랜잭션을 잃을 수 있고, 장치가 더 이상 존재하지 않으므로 원래 시스템에는 풀에 결함이 있는 것으로 나타납니다. 기본적으로 대상 시스템은 명시적으로 내보내기되지 않은 풀은 가져올 수 없습니다. 이 조건은 아직 다른 시스템에서 사용 중인 네트워크 연결 저장소를 구성하는 활성 풀을 실수로 가져오지 못하도록 하기 위해 필요합니다.
풀을 내보내려면 zpool export 명령을 사용합니다. 예를 들면 다음과 같습니다.
# zpool export tank
명령은 계속하기 전에 풀 내에서 마운트된 모든 파일 시스템을 마운트 해제하려고 시도합니다. 파일 시스템 마운트 해제를 실패할 경우 -f 옵션을 사용하여 강제로 마운트 해제할 수 있습니다. 예를 들면 다음과 같습니다.
# zpool export tank cannot unmount '/export/home/eric': Device busy # zpool export -f tank
이 명령이 실행된 후 tank 풀은 시스템에서 더 이상 보이지 않습니다.
내보내기 시점에 장치를 사용할 수 없을 경우에는 장치가 분명히 내보내졌는지 확인할 수 없습니다. 나중에 이러한 장치 중 하나를 작동하는 장치가 없는 시스템에 연결할 경우 “잠재적으로 활성” 상태로 나타납니다.
ZFS 볼륨이 풀에서 사용 중인 경우에는 -f 옵션으로도 풀을 내보낼 수 없습니다. ZFS 볼륨이 있는 풀을 내보내려면 먼저 볼륨의 모든 소비자가 더 이상 활성 상태가 아닌지 확인합니다.
ZFS 볼륨에 대한 자세한 내용은 ZFS 볼륨을 참조하십시오.
풀이 시스템에서 제거되었으면(명시적인 내보내기를 통해 또는 강제로 장치를 제거하여) 장치를 대상 시스템에 연결할 수 있습니다. ZFS는 장치 중 일부만 사용할 수 있는 몇 가지 상황을 처리할 수 있지만, 성공적인 풀 마이그레이션은 장치의 전체적인 건전성에 좌우됩니다. 또한 장치를 반드시 동일한 장치 이름으로 연결할 필요는 없습니다. ZFS는 이동되거나 이름이 바뀐 장치를 감지하고 그에 따라 구성을 조정합니다. 사용 가능한 풀을 검색하려면 zpool import 명령을 옵션 없이 실행합니다. 예를 들면 다음과 같습니다.
# zpool import pool: tank id: 11809215114195894163 state: ONLINE action: The pool can be imported using its name or numeric identifier. config: tank ONLINE mirror-0 ONLINE c1t0d0 ONLINE c1t1d0 ONLINE
이 예에서 tank 풀을 대상 시스템에서 가져올 수 있습니다. 각 풀은 이름 및 고유한 숫자 식별자로 식별됩니다. 동일한 이름의 여러 풀을 가져올 수 있을 경우 숫자 식별자를 사용하여 구분할 수 있습니다.
zpool status 명령과 마찬가지로 zpool import 출력 결과에는 풀을 가져오지 못하게 하는 문제에 대한 복구 절차와 관련된 최신 정보를 제공하는 기술 자료 문서 링크가 포함되어 있습니다. 이 상황에서 사용자는 풀을 강제로 가져올 수 있습니다. 하지만 현재 다른 시스템에서 저장소 네트워크를 통해 사용 중인 풀을 가져오면 두 시스템에서 동일 저장소에 쓰기를 시도할 때 데이터 손상 및 패닉이 발생할 수 있습니다. 풀에서 일부 장치를 사용할 수 없지만 충분한 중복 데이터가 존재하여 풀이 사용 가능한 경우 풀은 DEGRADED 상태로 나타납니다. 예를 들면 다음과 같습니다.
# zpool import pool: tank id: 11809215114195894163 state: DEGRADED status: One or more devices are missing from the system. action: The pool can be imported despite missing or damaged devices. The fault tolerance of the pool may be compromised if imported. see: http://www.sun.com/msg/ZFS-8000-2Q config: NAME STATE READ WRITE CKSUM tank DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 c1t0d0 UNAVAIL 0 0 0 cannot open c1t3d0 ONLINE 0 0 0
이 예에서 미러된 데이터에 여전히 액세스할 수 있으므로 풀을 가져올 수 있더라도 첫번째 디스크는 손상되거나 누락되었습니다. 결함이 있거나 누락된 장치가 너무 많은 경우 풀을 가져올 수 없습니다. 예를 들면 다음과 같습니다.
# zpool import pool: dozer id: 9784486589352144634 state: FAULTED action: The pool cannot be imported. Attach the missing devices and try again. see: http://www.sun.com/msg/ZFS-8000-6X config: raidz1-0 FAULTED c1t0d0 ONLINE c1t1d0 FAULTED c1t2d0 ONLINE c1t3d0 FAULTED
이 예에서는 2개의 디스크가 RAID-Z 가상 장치에서 누락되었으므로 풀을 재구성할 수 있을 만큼 충분한 중복 데이터를 사용할 수 없습니다. 전체 구성을 결정할 수 있을 만큼 충분한 장치가 존재하지 않을 수 있습니다. ZFS는 상황에 대해 가능한 많은 정보를 보고하지만 이 경우 ZFS는 어떤 다른 장치가 풀의 일부였는지 확인할 수 없습니다. 예를 들면 다음과 같습니다.
# zpool import pool: dozer id: 9784486589352144634 state: FAULTED status: One or more devices are missing from the system. action: The pool cannot be imported. Attach the missing devices and try again. see: http://www.sun.com/msg/ZFS-8000-6X config: dozer FAULTED missing device raidz1-0 ONLINE c1t0d0 ONLINE c1t1d0 ONLINE c1t2d0 ONLINE c1t3d0 ONLINE Additional devices are known to be part of this pool, though their exact configuration cannot be determined.
기본적으로 zpool import 명령은 /dev/dsk 디렉토리 내의 장치만 검색합니다. 장치가 다른 디렉토리에 존재하거나 파일로 백업되는 풀을 사용 중인 경우 -d 옵션을 사용하여 대체 디렉토리를 검색해야 합니다. 예를 들면 다음과 같습니다.
# zpool create dozer mirror /file/a /file/b # zpool export dozer # zpool import -d /file pool: dozer id: 7318163511366751416 state: ONLINE action: The pool can be imported using its name or numeric identifier. config: dozer ONLINE mirror-0 ONLINE /file/a ONLINE /file/b ONLINE # zpool import -d /file dozer
장치가 여러 디렉토리에 존재할 경우 여러 - d 옵션을 지정할 수 있습니다.
가져올 풀이 확인되었으면 풀의 이름이나 숫자 식별자를 zpool import 명령의 인수로 지정하여 가져올 수 있습니다. 예를 들면 다음과 같습니다.
# zpool import tank
여러 사용 가능한 풀의 이름이 동일한 경우 숫자 식별자를 사용하여 가져올 풀을 지정해야 합니다. 예를 들면 다음과 같습니다.
# zpool import pool: dozer id: 2704475622193776801 state: ONLINE action: The pool can be imported using its name or numeric identifier. config: dozer ONLINE c1t9d0 ONLINE pool: dozer id: 6223921996155991199 state: ONLINE action: The pool can be imported using its name or numeric identifier. config: dozer ONLINE c1t8d0 ONLINE # zpool import dozer cannot import 'dozer': more than one matching pool import by numeric ID instead # zpool import 6223921996155991199
풀 이름이 기존 풀 이름과 충돌하는 경우에는 다른 이름으로 풀을 가져올 수 있습니다. 예를 들면 다음과 같습니다.
# zpool import dozer zeepool
이 명령은 새 이름 zeepool을 사용하여 내보낸 풀 dozer를 가져옵니다. 새 풀 이름은 지속됩니다.
풀이 명시적으로 내보내기되지 않은 경우 ZFS는 -f 플래그를 통해 아직 다른 시스템에서 사용 중인 풀을 사용자가 실수로 가져오지 못하도록 해야 합니다. 예를 들면 다음과 같습니다.
# zpool import dozer cannot import 'dozer': pool may be in use on another system use '-f' to import anyway # zpool import -f dozer
주 - 한 시스템에서 활성 상태인 풀을 다른 시스템으로 가져오려고 시도하지 마십시오. ZFS는 고유 클러스터, 분산 또는 병렬 파일 시스템이 아니며 서로 다른 여러 호스트에서 동시 액세스를 제공하지 못합니다.
-R 옵션을 사용하면 대체 루트로 풀을 가져올 수도 있습니다. 대체 루트 풀에 대한 자세한 내용은 ZFS 대체 루트 풀 사용을 참조하십시오.
기본적으로 로그 장치가 누락된 풀은 가져올 수 없습니다. zpool import -m 명령을 사용하면 로그 장치가 누락된 풀을 강제로 가져올 수 있습니다. 예를 들면 다음과 같습니다.
# zpool import dozer The devices below are missing, use '-m' to import the pool anyway: c3t3d0 [log] cannot import 'dozer': one or more devices is currently unavailable
로그 장치가 누락된 풀을 가져옵니다. 예를 들면 다음과 같습니다.
# zpool import -m dozer # zpool status dozer pool: dozer state: DEGRADED status: One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Attach the missing device and online it using 'zpool online'. see: http://www.sun.com/msg/ZFS-8000-2Q scan: scrub repaired 0 in 0h0m with 0 errors on Fri Oct 15 16:43:03 2010 config: NAME STATE READ WRITE CKSUM dozer DEGRADED 0 0 0 mirror-0 ONLINE 0 0 0 c3t1d0 ONLINE 0 0 0 c3t2d0 ONLINE 0 0 0 logs 14685044587769991702 UNAVAIL 0 0 0 was c3t3d0
누락된 로그 장치를 연결한 후 zpool clear 명령을 실행하여 풀 오류를 치웁니다.
미러된 로그 장치가 누락된 경우에도 유사한 복구를 시도할 수 있습니다. 예를 들면 다음과 같습니다.
# zpool import dozer The devices below are missing, use '-m' to import the pool anyway: mirror-1 [log] c3t3d0 c3t4d0 cannot import 'dozer': one or more devices is currently unavailable # zpool import -m dozer # zpool status dozer pool: dozer state: DEGRADED status: One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Attach the missing device and online it using 'zpool online'. see: http://www.sun.com/msg/ZFS-8000-2Q scan: scrub repaired 0 in 0h0m with 0 errors on Fri Oct 15 16:51:39 2010 config: NAME STATE READ WRITE CKSUM dozer DEGRADED 0 0 0 mirror-0 ONLINE 0 0 0 c3t1d0 ONLINE 0 0 0 c3t2d0 ONLINE 0 0 0 logs mirror-1 UNAVAIL 0 0 0 insufficient replicas 13514061426445294202 UNAVAIL 0 0 0 was c3t3d0 16839344638582008929 UNAVAIL 0 0 0 was c3t4d0
누락된 로그 장치를 연결한 후 zpool clear 명령을 실행하여 풀 오류를 치웁니다.
읽기 전용 모드로 풀을 가져올 수 있습니다. 풀이 많이 손상되어 액세스할 수 없을 경우 이 기능을 통해 풀의 데이터를 복구할 수 있습니다. 예를 들면 다음과 같습니다.
# zpool import -o readonly=on tank # zpool scrub tank cannot scrub tank: pool is read-only
풀을 읽기 전용 모드로 가져올 때 다음 조건이 적용됩니다.
모든 파일 시스템 및 볼륨이 읽기 전용 모드로 마운트됩니다.
풀 트랜잭션 처리가 사용 안함으로 설정됩니다. 또한 의도 로그에서 보류 중인 동기화 쓰기는 풀이 읽기-쓰기로 가져올 때까지 실행되지 않습니다.
읽기 전용 가져오기 중 풀 등록 정보를 설정하려는 시도는 무시됩니다.
읽기 전용 풀은 풀을 내보내기 및 가져오기하여 읽기-쓰기 모드로 다시 설정할 수 있습니다. 예를 들면 다음과 같습니다.
# zpool export tank # zpool import tank # zpool scrub tank
이 예에서 다음 명령은 풀의 특정 장치 중 하나인 /dev/dsk/c2t3d0을 식별하여 dpool 풀을 가져옵니다.
# zpool import -d /dev/dsk/c2t3d0s0 dpool # zpool status dpool pool: dpool state: ONLINE scan: resilvered 952K in 0h0m with 0 errors on Thu Mar 10 10:28:46 2011 config: NAME STATE READ WRITE CKSUM dpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0
이 풀이 전체 디스크로 구성되어 있더라도 명령에는 특정 장치의 슬라이스 식별자가 포함되어야 합니다.
zpool import -D 명령을 사용하여 삭제된 저장소 풀을 복구할 수 있습니다. 예를 들면 다음과 같습니다.
# zpool destroy tank # zpool import -D pool: tank id: 5154272182900538157 state: ONLINE (DESTROYED) action: The pool can be imported using its name or numeric identifier. config: tank ONLINE mirror-0 ONLINE c1t0d0 ONLINE c1t1d0 ONLINE
이 zpool import 출력 결과에서는 다음 상태 정보 덕분에 tank 풀을 삭제된 풀로 식별할 수 있습니다.
state: ONLINE (DESTROYED)
삭제된 풀을 복구하려면 복구할 풀과 함께 zpool import - D 명령을 다시 실행합니다. 예를 들면 다음과 같습니다.
# zpool import -D tank # zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE mirror-0 ONLINE c1t0d0 ONLINE c1t1d0 ONLINE errors: No known data errors
삭제된 풀에서 장치 중 하나가 결함이 있거나 사용할 수 없는 경우 -f 옵션을 포함시키면 삭제된 풀을 강제로 복구할 수 있습니다. 이 시나리오에서는 결함이 있는 풀을 가져온 다음 장치 실패 수정을 시도합니다. 예:
# zpool destroy dozer # zpool import -D pool: dozer id: 13643595538644303788 state: DEGRADED (DESTROYED) status: One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Attach the missing device and online it using 'zpool online'. see: http://www.sun.com/msg/ZFS-8000-2Q config: NAME STATE READ WRITE CKSUM dozer DEGRADED 0 0 0 raidz2-0 DEGRADED 0 0 0 c2t8d0 ONLINE 0 0 0 c2t9d0 ONLINE 0 0 0 c2t10d0 ONLINE 0 0 0 c2t11d0 UNAVAIL 0 35 1 cannot open c2t12d0 ONLINE 0 0 0 errors: No known data errors # zpool import -Df dozer # zpool status -x pool: dozer state: DEGRADED status: One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Attach the missing device and online it using 'zpool online'. see: http://www.sun.com/msg/ZFS-8000-2Q scrub: scrub completed after 0h0m with 0 errors on Thu Jan 21 15:38:48 2010 config: NAME STATE READ WRITE CKSUM dozer DEGRADED 0 0 0 raidz2-0 DEGRADED 0 0 0 c2t8d0 ONLINE 0 0 0 c2t9d0 ONLINE 0 0 0 c2t10d0 ONLINE 0 0 0 c2t11d0 UNAVAIL 0 37 0 cannot open c2t12d0 ONLINE 0 0 0 errors: No known data errors # zpool online dozer c2t11d0 Bringing device c2t11d0 online # zpool status -x all pools are healthy