탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle Solaris 11.1 관리: ZFS 파일 시스템 Oracle Solaris 11.1 Information Library (한국어) |
1. Oracle Solaris ZFS 파일 시스템(소개)
3. Oracle Solaris ZFS 저장소 풀 관리
5. Oracle Solaris ZFS 파일 시스템 관리
6. Oracle Solaris ZFS 스냅샷 및 복제 작업
7. ACL 및 속성을 사용하여 Oracle Solaris ZFS 파일 보호
장치와 관련된 대부분의 기본 정보는 ZFS 저장소 풀의 구성 요소에서 다룹니다. 풀이 만들어진 후 풀 내의 물리적인 장치를 관리하기 위한 여러 가지 작업을 수행할 수 있습니다.
새 최상위 레벨 가상 장치를 추가하여 디스크 공간을 동적으로 추가할 수 있습니다. 이 디스크 공간은 풀의 모든 데이터 세트에서 즉시 사용할 수 있습니다. 풀에 새 가상 장치를 추가하려면 zpool add 명령을 사용합니다. 예:
# zpool add zeepool mirror c2t1d0 c2t2d0
가상 장치를 지정하기 위한 형식은 zpool create 명령의 경우와 같습니다. 장치가 사용 중인지 여부가 확인되고, -f 옵션 없이는 명령에서 중복성 레벨을 변경할 수 없습니다. 명령은 dry run을 수행할 수 있도록 -n 옵션도 지원합니다. 예를 들면 다음과 같습니다.
# zpool add -n zeepool mirror c3t1d0 c3t2d0 would update 'zeepool' to the following configuration: zeepool mirror c1t0d0 c1t1d0 mirror c2t1d0 c2t2d0 mirror c3t1d0 c3t2d0
이 명령 구문은 미러된 장치 c3t1d0 및 c3t2d0을 zeepool 풀의 기존 구성에 추가합니다.
가상 장치 검증 수행 방식에 대한 자세한 내용은 사용 중인 장치 감지를 참조하십시오.
예 3-1 미러된 ZFS 구성에 디스크 추가
다음 예에서는 미러링된 기존 ZFS 구성에 다른 미러가 추가됩니다.
# zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c0t2d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 errors: No known data errors # zpool add tank mirror c0t3d0 c1t3d0 # zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c0t2d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 mirror-2 ONLINE 0 0 0 c0t3d0 ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 errors: No known data errors
예 3-2 RAID-Z 구성에 디스크 추가
마찬가지로 추가 디스크를 RAID-Z 구성에 추가할 수 있습니다. 다음 예는 3개의 디스크를 포함하는 하나의 RAID-Z 장치를 갖춘 저장소 풀을 각각 3개의 디스크를 포함하는 두 개의 RAID-Z 장치를 갖춘 저장소 풀로 변환하는 방법을 보여줍니다.
# zpool status rzpool pool: rzpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM rzpool ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 c1t4d0 ONLINE 0 0 0 errors: No known data errors # zpool add rzpool raidz c2t2d0 c2t3d0 c2t4d0 # zpool status rzpool pool: rzpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM rzpool ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 raidz1-1 ONLINE 0 0 0 c2t2d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 c2t4d0 ONLINE 0 0 0 errors: No known data errors
예 3-3 미러된 로그 장치 추가 및 제거
다음 예에서는 미러링된 저장소 풀에 미러링된 로그 장치를 추가하는 방법을 보여줍니다.
# zpool status newpool pool: newpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM newpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 c0t5d0 ONLINE 0 0 0 errors: No known data errors # zpool add newpool log mirror c0t6d0 c0t7d0 # zpool status newpool pool: newpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM newpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 c0t5d0 ONLINE 0 0 0 logs mirror-1 ONLINE 0 0 0 c0t6d0 ONLINE 0 0 0 c0t7d0 ONLINE 0 0 0 errors: No known data errors
로그 장치를 기존 로그 장치에 연결하여 미러된 로그 장치를 만들 수 있습니다. 이 작업은 미러되지 않은 저장소 풀에서 장치를 연결하는 것과 동일합니다.
zpool remove 명령을 사용하여 로그 장치를 제거할 수 있습니다. 이전 예에서 미러된 로그 장치는 mirror-1 인수를 지정하여 제거할 수 있습니다. 예를 들면 다음과 같습니다.
# zpool remove newpool mirror-1 # zpool status newpool pool: newpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM newpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 c0t5d0 ONLINE 0 0 0 errors: No known data errors
풀 구성에 하나의 로그 장치만 포함되어 있을 경우 장치 이름을 지정하여 로그 장치를 제거할 수 있습니다. 예를 들면 다음과 같습니다.
# zpool status pool pool: pool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM pool ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 c0t8d0 ONLINE 0 0 0 c0t9d0 ONLINE 0 0 0 logs c0t10d0 ONLINE 0 0 0 errors: No known data errors # zpool remove pool c0t10d0
예 3-4 캐시 장치 추가 및 제거
캐시 장치를 ZFS 저장소 풀에 추가하고 더 이상 필요하지 않을 경우 제거할 수 있습니다.
zpool add 명령을 사용하여 캐시 장치를 추가합니다. 예:
# zpool add tank cache c2t5d0 c2t8d0 # zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 cache c2t5d0 ONLINE 0 0 0 c2t8d0 ONLINE 0 0 0 errors: No known data errors
캐시 장치는 미러링하거나 RAID-Z 구성의 일부가 될 수 없습니다.
zpool remove 명령을 사용하여 캐시 장치를 제거합니다. 예를 들면 다음과 같습니다.
# zpool remove tank c2t5d0 c2t8d0 # zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 errors: No known data errors
현재 zpool remove 명령만 핫 스패어, 로그 장치 및 캐시 장치 제거를 지원합니다. 기본 미러된 풀 구성의 일부인 장치는 zpool detach 명령을 사용하여 제거할 수 있습니다. 중복되지 않은 장치 및 RAID-Z 장치는 풀에서 제거할 수 없습니다.
ZFS 저장소 풀에서 캐시 장치 사용에 대한 자세한 내용은 캐시 장치를 사용하여 ZFS 저장소 풀 만들기를 참조하십시오.
zpool add 명령 이외에 zpool attach 명령을 사용하여 새 장치를 기존 미러된 장치 또는 미러되지 않은 장치에 추가할 수 있습니다.
디스크를 연결하여 미러링된 루트 풀을 만드는 경우 미러링된 루트 풀을 구성하는 방법(SPARC 또는 x86/VTOC)을 참조하십시오.
ZFS 루트 풀에서 디스크를 교체할 경우 ZFS 루트 풀의 디스크 교체 방법(SPARC 또는 x86/VTOC)을 참조하십시오.
예 3-5 이중 미러된 저장소 풀을 삼중 미러된 저장소 풀로 변환
이 예에서는 zeepool이 기존 이중 미러이고, 새 장치 c2t1d0을 기존 장치 c1t1d0에 연결하여 삼중 미러로 변환합니다.
# zpool status zeepool pool: zeepool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 errors: No known data errors # zpool attach zeepool c1t1d0 c2t1d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Fri Jan 8 12:59:20 2010 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 592K resilvered errors: No known data errors
기존 장치가 삼중 미러의 일부인 경우 새 장치를 연결하면 사중 미러가 만들어지고, 이런 방식으로 계속 이어집니다. 어떠한 경우든지 새 장치는 즉시 재구성을 시작합니다.
예 3-6 중복되지 않은 ZFS 저장소 풀을 미러된 ZFS 저장소 풀로 변환
또한 zpool attach 명령을 사용하여 중복되지 않은 저장소 풀을 중복된 저장소 풀로 변환할 수 있습니다. 예를 들면 다음과 같습니다.
# zpool create tank c0t1d0 # zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 errors: No known data errors # zpool attach tank c0t1d0 c1t1d0 # zpool status tank pool: tank state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Fri Jan 8 14:28:23 2010 config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 73.5K resilvered errors: No known data errors
zpool detach 명령을 사용하여 미러된 저장소 풀에서 장치를 분리할 수 있습니다. 예를 들면 다음과 같습니다.
# zpool detach zeepool c2t1d0
하지만 이 작업은 데이터의 다른 유효한 복제본이 존재할 경우 실패합니다. 예:
# zpool detach newpool c1t2d0 cannot detach c1t2d0: only applicable to mirror and replacing vdevs
zpool split 명령을 사용하여 미러링된 ZFS 저장소 풀을 백업 풀로 신속하게 복제할 수 있습니다. 이 기능을 사용하여 미러링된 루트 풀을 분할할 수 있지만 일부 추가 단계를 수행하기 전까지는 분할된 풀로 부트할 수 없습니다.
zpool split 명령을 사용하면 미러된 ZFS 저장소 풀에서 하나 이상의 디스크를 분리하여 분리된 디스크로 새 풀을 만들 수 있습니다. 새 풀은 원래 미러된 ZFS 저장소 풀과 동일한 컨텐츠를 가집니다.
기본적으로 미러된 풀에서 zpool split 작업은 새로 만들어진 풀에 대한 마지막 디스크를 분리합니다. 분할 작업 이후에는 새 풀을 가져올 수 있습니다. 예를 들면 다음과 같습니다.
# zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 errors: No known data errors # zpool split tank tank2 # zpool import tank2 # zpool status tank tank2 pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 c1t0d0 ONLINE 0 0 0 errors: No known data errors pool: tank2 state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank2 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 errors: No known data errors
zpool split 명령에서 새로 만들어진 풀에 대해 사용해야 하는 디스크를 지정할 수 있습니다. 예를 들면 다음과 같습니다.
# zpool split tank tank2 c1t0d0
실제 분할 작업이 이루어지기 전에 메모리의 데이터는 미러된 디스크로 비워집니다. 데이터가 비워진 후 디스크는 풀에서 분리되고 새 풀 GUID가 부여됩니다. 새 풀 GUID는 분할된 동일 시스템에서 풀을 가져올 수 있도록 하기 위해 생성됩니다.
분할할 풀에 비기본 파일 시스템 마운트 지점이 있고 새 풀이 동일 시스템에서 생성되는 경우 기존 마운트 지점이 서로 충돌하지 않도록 zpool split -R 옵션을 사용하여 새 풀에 대한 대체 루트 디렉토리를 지정해야 합니다. 예를 들면 다음과 같습니다.
# zpool split -R /tank2 tank tank2
zpool split -R 옵션을 사용하지 않고 새 풀을 가져오려고 할 때 마운트 지점 충돌을 알 수 있는 경우 -R 옵션으로 새 풀을 가져오십시오. 새 풀이 다른 시스템에서 만들어질 경우 마운트 지점 충돌이 발생하지 않는다면 대체 루트 디렉토리 지정은 필요하지 않습니다.
zpool split 기능을 사용하기 전에 다음 고려 사항을 검토하십시오.
이 기능은 여러 디스크의 RAID-Z 구성 또는 중복되지 않은 풀에 대해 사용할 수 없습니다.
데이터 및 응용 프로그램 작업은 zpool split 작업을 시도하기 전에 끝내야 합니다.
리실버링이 진행 중인 경우 풀을 분할할 수 없습니다.
미러된 풀 분할은 풀에 2 ~ 3개의 디스크가 포함되어 있을 때 가장 좋습니다. 이 경우 원래 풀의 마지막 디스크가 새로 만들어진 풀에 사용됩니다. 그런 다음 zpool attach 명령을 사용하여 원래 미러된 저장소 풀을 다시 만들거나 새로 만들어진 풀을 미러된 저장소 풀로 변환할 수 있습니다. 새로운(분할된) 풀은 중복성이 없기 때문에 한 번의 zpool split 작업으로 기존의 미러링된 풀에서 새로운 미러링된 풀을 만드는 방법은 현재까지 없습니다.
기존 풀이 삼중 미러인 경우 새 풀은 분할 작업 후 하나의 디스크를 포함합니다. 기존 풀이 2개의 디스크로 이루어진 이중 미러인 경우 결과는 2개의 디스크로 이루어진 2개의 중복되지 않은 풀입니다. 중복되지 않은 풀을 미러된 풀로 변환하려면 2개의 추가 디스크를 연결해야 합니다.
분할 작업 중 데이터를 중복으로 유지하기 위한 좋은 방법은 3개의 디스크를 포함하는 미러된 저장소 풀을 분할하여 분할 작업 후 원래 풀이 2개의 미러된 디스크를 포함하도록 하는 것입니다.
미러링된 풀을 분할하기 전에 하드웨어가 올바르게 구성되었는지 확인하십시오. 하드웨어의 캐시 비우기 설정 확인과 관련된 자세한 내용은 일반 시스템 방법을 참조하십시오.
예 3-7 미러된 ZFS 풀 분할
다음 예에서는 세 개의 디스크가 포함된 mothership이라는 미러링된 저장소 풀이 분할됩니다. 그 결과로 생성되는 두 개의 풀은 두 개의 디스크를 포함하는 mothership이라는 미러링된 풀과 한 개의 디스크를 포함하는 luna라는 새 풀입니다. 각 풀은 동일한 컨텐츠를 가집니다.
luna 풀은 백업 목적으로 다른 시스템으로 가져올 수 있습니다. 백업이 완료된 후에는 luna 풀을 삭제할 수 있으며 디스크가 mothership에 다시 연결됩니다. 그런 후 프로세스를 반복할 수 있습니다.
# zpool status mothership pool: mothership state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM mothership ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 c0t5000C500335F907Fd0 ONLINE 0 0 0 errors: No known data errors # zpool split mothership luna # zpool import luna # zpool status mothership luna pool: luna state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM luna ONLINE 0 0 0 c0t5000C500335F907Fd0 ONLINE 0 0 0 errors: No known data errors pool: mothership state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM mothership ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 errors: No known data errors
ZFS에서는 개별 장치를 오프라인이나 온라인으로 전환할 수 있습니다. 하드웨어가 불안정하거나 제대로 작동하지 않을 경우 이러한 조건이 일시적이라면 ZFS는 데이터 읽기나 데이터 쓰기를 계속합니다. 조건이 일시적이 아니라면 장치를 오프라인으로 전환하여 장치를 무시하도록 ZFS에 지시할 수 있습니다. ZFS는 오프라인 장치에 요청을 보내지 않습니다.
주 - 장치를 교체하기 위해 오프라인으로 전환할 필요는 없습니다.
zpool offline 명령을 사용하여 장치를 오프라인으로 전환할 수 있습니다. 장치는 경로 또는 단축 이름으로 지정할 수 있습니다(장치가 디스크인 경우). 예를 들면 다음과 같습니다.
# zpool offline tank c0t5000C500335F95E3d0
장치를 오프라인으로 전환할 때 다음 사항을 고려하십시오.
풀이 UNAVAIL이 되는 지점으로 풀을 오프라인으로 전환할 수 없습니다. 예를 들어, raidz1 구성에서 2개의 장치를 오프라인으로 전환할 수 없으며, 최상위 레벨 가상 장치를 오프라인으로 전환할 수 없습니다.
# zpool offline tank c0t5000C500335F95E3d0 cannot offline c0t5000C500335F95E3d0: no valid replicas
기본적으로 OFFLINE 상태가 지속됩니다. 시스템이 재부트되어도 장치는 오프라인을 유지합니다.
장치를 일시적으로 오프라인으로 전환하려면 zpool offline -t 옵션을 사용하십시오. 예를 들면 다음과 같습니다.
# zpool offline -t tank c1t0d0 bringing device 'c1t0d0' offline
시스템이 재부트되면 이 장치는 자동으로 ONLINE 상태로 돌아갑니다.
장치가 오프라인으로 전환되었을 때 저장소 풀에서 분리된 것이 아닙니다. 다른 풀에서 오프라인 장치를 사용하려고 시도하면 원래 풀이 삭제된 이후라도 다음과 유사한 메시지가 나타납니다.
device is part of exported or potentially active ZFS pool. Please see zpool(1M)
원래 저장소 풀을 삭제한 후 다른 저장소 풀에서 오프라인 장치를 사용하려는 경우에는 먼저 장치를 온라인으로 전환한 다음 원래 저장소 풀을 삭제하십시오.
원래 저장소 풀을 유지하면서 다른 저장소 풀에서 장치를 사용하는 다른 방법은 원래 저장소 풀의 기존 장치를 다른 호환 장치로 교체하는 것입니다. 장치 교체에 대한 자세한 내용은 저장소 풀의 장치 교체를 참조하십시오.
오프라인 장치는 풀 상태를 질의할 때 OFFLINE 상태에 있습니다. 풀 상태 질의에 대한 자세한 내용은 ZFS 저장소 풀 상태 질의를 참조하십시오.
장치 건전성에 대한 자세한 내용은 ZFS 저장소 풀의 건전성 상태 확인을 참조하십시오.
장치가 오프라인으로 전환된 후 zpool online 명령을 사용하여 다시 온라인으로 전환할 수 있습니다. 예를 들면 다음과 같습니다.
# zpool online tank c0t5000C500335F95E3d0
장치가 온라인으로 전환되었을 때 풀에 쓰여진 모든 데이터는 새로 사용 가능한 장치와 재동기화됩니다. 디스크를 교체하기 위해 장치를 온라인으로 전환할 수 없습니다. 장치를 오프라인으로 전환하고 장치를 교체한 다음 온라인으로 전환하려고 하는 경우 UNAVAIL 상태가 지속됩니다.
UNAVAIL 장치를 온라인으로 전환하려고 시도하면 다음과 비슷한 메시지가 표시됩니다.
결함이 있는 디스크 메시지는 콘솔에 표시되거나 /var/adm/messages 파일에 기록될 수도 있습니다. 예를 들면 다음과 같습니다.
SUNW-MSG-ID: ZFS-8000-LR, TYPE: Fault, VER: 1, SEVERITY: Major EVENT-TIME: Wed Jun 20 11:35:26 MDT 2012 PLATFORM: ORCL,SPARC-T3-4, CSN: 1120BDRCCD, HOSTNAME: tardis SOURCE: zfs-diagnosis, REV: 1.0 EVENT-ID: fb6699c8-6bfb-eefa-88bb-81479182e3b7 DESC: ZFS device 'id1,sd@n5000c500335dc60f/a' in pool 'pond' failed to open. AUTO-RESPONSE: An attempt will be made to activate a hot spare if available. IMPACT: Fault tolerance of the pool may be compromised. REC-ACTION: Use 'fmadm faulty' to provide a more detailed view of this event. Run 'zpool status -lx' for more information. Please refer to the associated reference document at http://support.oracle.com/msg/ZFS-8000-LR for the latest service procedures and policies regarding this diagnosis.
결함이 있는 장치 교체에 대한 자세한 내용은 누락된 장치 해결을 참조하십시오.
zpool online -e 명령을 사용하여 LUN을 확장할 수 있습니다. 기본적으로 풀에 추가된 LUN은 autoexpand 풀 등록 정보가 사용으로 설정되지 않은 경우 전체 크기로 확장되지 않습니다. LUN이 이미 온라인 상태이거나 LUN이 현재 오프라인 상태인 경우에도 zpool online -e 명령을 사용하여 LUN을 자동으로 확장할 수 있습니다. 예를 들면 다음과 같습니다.
# zpool online -e tank c0t5000C500335F95E3d0
실패로 인해 장치가 오프라인으로 전환되어 zpool status 출력 결과에 오류가 나열될 경우 zpool clear 명령을 사용하여 오류 수를 지울 수 있습니다.
인수 없이 지정되면 이 명령은 풀 내의 모든 장치 오류를 지웁니다. 예를 들면 다음과 같습니다.
# zpool clear tank
하나 이상의 장치가 지정되면 이 명령은 지정된 장치와 연관된 오류만 지웁니다. 예를 들면 다음과 같습니다.
# zpool clear tank c0t5000C500335F95E3d0
zpool 오류 지우기에 대한 자세한 내용은 일시적인 오류 지우기를 참조하십시오.
zpool replace 명령을 사용하여 저장소 풀의 장치를 교체할 수 있습니다.
중복된 풀의 동일 위치에서 다른 장치로 장치를 물리적으로 교체하는 경우 교체되는 장치만 식별하면 됩니다. 일부 하드웨어에서 ZFS는 장치가 동일 위치의 다른 디스크에 있다고 인식합니다. 예를 들어, 디스크를 제거하고 동일 위치에서 교체하여 실패한 디스크(c1t1d0)를 교체하려면 다음 구문을 사용합니다.
# zpool replace tank c1t1d0
다른 물리적 위치에 있는 디스크로 저장소 풀의 디스크를 교체하는 경우 두 장치를 모두 지정해야 합니다. 예를 들면 다음과 같습니다.
# zpool replace tank c1t1d0 c1t2d0
ZFS 루트 풀에서 디스크를 교체할 경우 ZFS 루트 풀의 디스크 교체 방법(SPARC 또는 x86/VTOC)을 참조하십시오.
다음은 디스크 교체를 위한 기본 단계입니다.
필요한 경우 zpool offline 명령을 사용하여 디스크를 오프라인으로 전환합니다.
교체할 디스크를 제거합니다.
교체 디스크를 삽입합니다.
교체 디스크가 표시되는지 여부를 확인하려면 format 출력 결과를 검토합니다.
또한 장치 ID가 변경되었는지 여부를 확인합니다. 교체 디스크에 WWN이 포함된 경우 결함이 있는 디스크에 대한 장치 ID가 변경된 것입니다.
디스크가 교체되었음을 ZFS에 알립니다. 예를 들면 다음과 같습니다.
# zpool replace tank c1t1d0
교체 디스크에 위에서 식별한 것과 다른 장치 ID가 포함된 경우 새 장치 ID를 포함시킵니다.
# zpool replace tank c0t5000C500335FC3E7d0 c0t5000C500335BA8C3d0
필요에 따라 zpool online 명령을 사용하여 디스크를 온라인으로 전환합니다.
장치가 교체되었다고 FMA에 알립니다.
fmadm faulty 출력 결과의 Affects: 절에서 zfs://pool=name/vdev=guid 문자열을 식별하고 해당 문자열을 fmadm repaired 명령의 인수로 제공합니다.
# fmadm faulty # fmadm repaired zfs://pool=name/vdev=guid
SATA 디스크가 있는 일부 시스템에서는 오프라인 상태로 전환하기 전에 디스크의 구성을 해제해야 합니다. 이 시스템의 동일 슬롯 위치에서 디스크를 교체하는 경우 이 절의 첫번째 예에 설명된 대로 zpool replace 명령만 실행하면 됩니다.
SATA 디스크 교체 예는 예 10-1을 참조하십시오.
ZFS 저장소 풀에서 장치를 교체할 때 다음을 고려하십시오.
autoreplace 풀 등록 정보를 on으로 설정한 경우 이전에 풀에 속한 장치와 동일한 물리적 위치에서 발견된 모든 새 장치가 자동으로 포맷되고 교체됩니다. 이 등록 정보가 사용으로 설정되면 zpool replace 명령을 사용할 필요가 없습니다. 이 기능은 일부 하드웨어 유형에서는 사용할 수 없습니다.
시스템을 실행하는 동안 장치 또는 핫 스패어가 실제로 제거되면 저장소 풀 상태 REMOVED가 제공됩니다. 가능한 경우, 제거된 장치 대신 핫 스패어 장치가 대체됩니다.
장치를 제거한 후 다시 삽입하면 장치가 온라인으로 배치됩니다. 장치를 다시 삽입할 때 핫 스패어가 활성화된 경우, 온라인 작업이 완료되면 핫 스패어가 제거됩니다.
장치 제거 또는 삽입 자동 감지는 하드웨어에 따라 다르며 일부 플랫폼에서는 지원되지 않을 수 있습니다. 예를 들어, USB 장치는 삽입 즉시 자동으로 구성됩니다. 그러나 cfgadm -c configure 명령을 사용하여 SATA 드라이브를 구성해야 할 수 있습니다.
핫 스패어는 온라인 상태이고 사용 가능한지 정기적으로 점검됩니다.
교체 장치의 크기는 미러된 구성 또는 RAID-Z 구성에서 가장 작은 용량의 디스크보다 크거나 같아야 합니다.
교체하는 장치보다 용량이 큰 교체 장치가 풀에 추가될 경우 자동으로 전체 크기로 확장되지 않습니다. autoexpand 풀 등록 정보 값은 디스크가 풀에 추가될 때 교체 LUN을 전체 크기로 확장할지 여부를 결정합니다. 기본적으로 autoexpand 등록 정보는 사용 안함으로 설정됩니다. 더 큰 LUN이 풀에 추가되기 전이나 후에 이 등록 정보를 사용으로 설정하여 LUN 크기를 확장할 수 있습니다.
다음 예에서는 미러된 풀에서 두 개의 16GB 디스크가 두 개의 72GB 디스크로 교체되었습니다. 두번째 장치 교체를 시도하기 전에 첫번째 장치가 완전히 리실버링되었는지 확인하십시오. 디스크 교체 후 전체 디스크 크기를 확장하기 위해 autoexpand 등록 정보가 사용으로 설정됩니다.
# zpool create pool mirror c1t16d0 c1t17d0 # zpool status pool: pool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM pool ONLINE 0 0 0 mirror ONLINE 0 0 0 c1t16d0 ONLINE 0 0 0 c1t17d0 ONLINE 0 0 0 zpool list pool NAME SIZE ALLOC FREE CAP HEALTH ALTROOT pool 16.8G 76.5K 16.7G 0% ONLINE - # zpool replace pool c1t16d0 c1t1d0 # zpool replace pool c1t17d0 c1t2d0 # zpool list pool NAME SIZE ALLOC FREE CAP HEALTH ALTROOT pool 16.8G 88.5K 16.7G 0% ONLINE - # zpool set autoexpand=on pool # zpool list pool NAME SIZE ALLOC FREE CAP HEALTH ALTROOT pool 68.2G 117K 68.2G 0% ONLINE -
대형 풀에서 많은 디스크를 교체하는 작업은 새 디스크로 데이터 리실버링으로 인해 시간이 오래 걸립니다. 또한 디스크 교체 사이에 zpool scrub 명령을 실행하여 교체 장치가 정상 작동하고 데이터가 올바르게 쓰여지는지 확인해야 할 수 있습니다.
실패한 디스크가 핫 스패어로 자동 교체된 경우에는 실패한 디스크가 교체된 후 스페어를 분리해야 합니다. zpool detach 명령을 사용하여 미러된 풀 또는 RAID-Z 풀에서 스페어를 분리할 수 있습니다. 핫 스패어 분리에 대한 자세한 내용은 저장소 풀에서 핫 스패어 활성화 및 비활성화를 참조하십시오.
장치 교체에 대한 자세한 내용은 누락된 장치 해결 및 손상된 장치 교체 또는 복구를 참조하십시오.
핫 스패어 기능을 사용하여 저장소 풀에서 장애 또는 결함이 있는 장치를 교체하는 데 사용할 수 있는 디스크를 식별할 수 있습니다. 장치를 핫 스패어로 지정하면 해당 장치는 풀에서 활성 장치가 아니지만, 풀의 활성 장치가 실패할 경우 핫 스패어가 자동으로 실패한 장치를 교체하게 됩니다.
다음 방법으로 장치를 핫 스패어로 지정할 수 있습니다.
풀이 zpool create 명령을 사용하여 만들어진 경우
풀이 zpool add 명령을 사용하여 만들어진 후
다음 예는 풀이 만들어진 경우 장치를 핫 스패어로 지정하는 방법을 보여줍니다.
# zpool create zeepool mirror c0t5000C500335F95E3d0 c0t5000C500335F907Fd0 mirror c0t5000C500335BD117d0 c0t5000C500335DC60Fd0 spare c0t5000C500335E106Bd0 c0t5000C500335FC3E7d0 # zpool status zeepool pool: zeepool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335F907Fd0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 c0t5000C500335DC60Fd0 ONLINE 0 0 0 spares c0t5000C500335E106Bd0 AVAIL c0t5000C500335FC3E7d0 AVAIL errors: No known data errors
다음 예는 풀이 만들어진 후 풀에 장치를 추가하여 핫 스패어를 지정하는 방법을 보여줍니다.
# zpool add zeepool spare c0t5000C500335E106Bd0 c0t5000C500335FC3E7d0 # zpool status zeepool pool: zeepool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335F907Fd0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 c0t5000C500335DC60Fd0 ONLINE 0 0 0 spares c0t5000C500335E106Bd0 AVAIL c0t5000C500335FC3E7d0 AVAIL errors: No known data errors
핫 스패어는 zpool remove 명령을 사용하여 저장소 풀에서 제거할 수 있습니다. 예를 들면 다음과 같습니다.
# zpool remove zeepool c0t5000C500335FC3E7d0 # zpool status zeepool pool: zeepool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335F907Fd0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 c0t5000C500335DC60Fd0 ONLINE 0 0 0 spares c0t5000C500335E106Bd0 AVAIL errors: No known data errors
핫 스패어는 저장소 풀에서 현재 사용되는 경우 제거할 수 없습니다.
ZFS 핫 스패어를 사용할 때 다음을 고려하십시오.
현재 zpool remove 명령은 핫 스패어, 캐시 장치 및 로그 장치를 제거하는 데만 사용할 수 있습니다.
디스크를 핫 스패어로 추가하려면 핫 스패어가 풀에서 가장 큰 용량의 디스크보다 크거나 같아야 합니다. 풀에서 더 작은 용량의 디스크를 스페어로 추가하는 것도 가능합니다. 하지만 자동으로 또는 zpool replace 명령으로 더 작은 용량의 스페어가 활성화되면 다음과 유사한 오류와 함께 작업을 실패합니다.
cannot replace disk3 with disk4: device is too small
스페어는 시스템 전체에서 공유될 수 없습니다.
동일 시스템에서 두 데이터 풀 사이에 스페어를 공유할 경우 두 풀 사이에 스페어 사용을 조정해야 합니다. 예를 들어, 풀 A에는 사용 중인 스페어가 있고 풀 A를 내보냈습니다. 풀 A를 내보내는 동안 풀 B는 이 사실을 모르고 스페어를 사용할 수 있습니다. 풀 A를 가져오면 두 풀에서 모두 동일 디스크를 사용하므로 데이터 손상이 발생할 수 있습니다.
루트 풀과 데이터 풀 사이에 스페어를 공유하지 마십시오.
핫 스패어는 다음 방법으로 활성화됩니다.
수동 교체 – zpool replace 명령을 사용하여 저장소 풀에서 실패한 장치를 핫 스패어로 교체합니다.
자동 교체 – 결함이 감지되면 FMA 에이전트가 풀을 조사하여 사용 가능한 핫 스패어가 있는지 확인합니다. 있을 경우 사용 가능한 스페어로 결함이 있는 장치를 교체합니다.
현재 사용 중인 핫 스패어가 실패할 경우 FMA 에이전트는 스페어를 분리하고 교체를 취소합니다. 그런 다음 사용 가능한 다른 핫 스패어로 장치 교체를 시도합니다. 장치가 시스템에서 사라질 때만 ZFS 진단 엔진에서 결함을 생성하므로 이 기능은 현재 제한적입니다.
활성 스페어로 실패한 장치를 물리적으로 교체하는 경우 zpool detach 명령을 사용하여 스페어를 분리하고 원래 장치를 다시 활성화할 수 있습니다. autoreplace 풀 등록 정보를 on으로 설정한 경우 새 장치가 삽입되고 온라인 작업이 완료되면 스페어가 자동으로 분리되고 스페어 풀로 돌아갑니다.
UNAVAIL 장치는 핫 스패어를 사용할 수 있는 경우 자동으로 교체됩니다. 예를 들면 다음과 같습니다.
# zpool status -x pool: zeepool state: DEGRADED status: One or more devices are unavailable in response to persistent errors. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Determine if the device needs to be replaced, and clear the errors using 'zpool clear' or 'fmadm repaired', or replace the device with 'zpool replace'. Run 'zpool status -v' to see device specific details. scan: resilvered 3.15G in 0h0m with 0 errors on Thu Jun 21 16:46:19 2012 config: NAME STATE READ WRITE CKSUM zeepool DEGRADED 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335F907Fd0 ONLINE 0 0 0 mirror-1 DEGRADED 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 spare-1 DEGRADED 449 0 0 c0t5000C500335DC60Fd0 UNAVAIL 0 0 0 c0t5000C500335E106Bd0 ONLINE 0 0 0 spares c0t5000C500335E106Bd0 INUSE errors: No known data errors
현재 다음 방법으로 핫 스패어를 비활성화할 수 있습니다.
저장소 풀에서 핫 스패어를 제거합니다.
실패한 디스크가 물리적으로 교체된 후 핫 스패어를 분리합니다. 예 3-8을 참조하십시오.
다른 핫 스패어를 일시적으로 또는 영구적으로 교체합니다. 예 3-9를 참조하십시오.
예 3-8 실패한 디스크가 교체된 후 핫 스패어 분리
이 예에서 결함이 있는 디스크(c0t5000C500335DC60Fd0)는 물리적으로 교체되고 zpool replace 명령을 사용하여 ZFS에 통지됩니다.
# zpool replace zeepool c0t5000C500335DC60Fd0 # zpool status zeepool pool: zeepool state: ONLINE scan: resilvered 3.15G in 0h0m with 0 errors on Thu Jun 21 16:53:43 2012 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335F907Fd0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 c0t5000C500335DC60Fd0 ONLINE 0 0 0 spares c0t5000C500335E106Bd0 AVAIL
필요에 따라 zpool detach 명령을 사용하여 핫 스패어를 스패어 풀로 복귀시킬 수 있습니다. 예를 들면 다음과 같습니다.
# zpool detach zeepool c0t5000C500335E106Bd0
예 3-9 실패한 디스크 분리 및 핫 스패어 사용
현재 교체 중인 핫 스패어를 일시적으로 또는 영구적으로 교체하여 장애가 발생한 디스크를 교체하려는 경우 장애가 발생한 원래 디스크를 분리합니다. 실패한 디스크가 교체되면 저장소 풀에 스페어로 다시 추가할 수 있습니다. 예를 들면 다음과 같습니다.
# zpool status zeepool pool: zeepool state: DEGRADED status: One or more devices are unavailable in response to persistent errors. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Determine if the device needs to be replaced, and clear the errors using 'zpool clear' or 'fmadm repaired', or replace the device with 'zpool replace'. Run 'zpool status -v' to see device specific details. scan: scrub in progress since Thu Jun 21 17:01:49 2012 1.07G scanned out of 6.29G at 220M/s, 0h0m to go 0 repaired, 17.05% done config: NAME STATE READ WRITE CKSUM zeepool DEGRADED 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335F907Fd0 ONLINE 0 0 0 mirror-1 DEGRADED 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 c0t5000C500335DC60Fd0 UNAVAIL 0 0 0 spares c0t5000C500335E106Bd0 AVAIL errors: No known data errors # zpool detach zeepool c0t5000C500335DC60Fd0 # zpool status zeepool pool: zeepool state: ONLINE scan: resilvered 3.15G in 0h0m with 0 errors on Thu Jun 21 17:02:35 2012 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335F907Fd0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 c0t5000C500335E106Bd0 ONLINE 0 0 0 errors: No known data errors (Original failed disk c0t5000C500335DC60Fd0 is physically replaced) # zpool add zeepool spare c0t5000C500335DC60Fd0 # zpool status zeepool pool: zeepool state: ONLINE scan: resilvered 3.15G in 0h0m with 0 errors on Thu Jun 21 17:02:35 2012 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335F907Fd0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 c0t5000C500335E106Bd0 ONLINE 0 0 0 spares c0t5000C500335DC60Fd0 AVAIL errors: No known data errors
디스크를 교체하고 스패어를 분리한 후에는 FMA에 디스크가 교체되었음을 알립니다.
# fmadm faulty # fmadm repaired zfs://pool=name/vdev=guid