Solaris 10 x86 - zpool에서 디스크 교체 시도

Solaris 10 x86 - zpool에서 디스크 교체 시도

x86 프로세서에서 Solaris 10을 실행하는 시스템의 기존 zpool에서 디스크를 교체하는 데 문제가 있습니다. zpool은 원래 두 개의 미러링된 슬라이스로 생성되었습니다. 드라이브 중 하나에 오류가 발생하여 물리적으로 새 드라이브로 교체했습니다. prvtoc 및 fmthard를 실행하여 작업 드라이브의 디스크 레이블을 새 드라이브에 복사했습니다.

prtvtoc /dev/rdsk/c1t0d0s2 >/tmp/c1t0d0s2.out
fmthard -s /tmp/c1t0d0s2.out >/dev/rdsk/c1t1d0s2

그런 다음 새 드라이브를 온라인으로 전환하려고 시도했지만 장치에 여전히 결함이 있다는 경고가 표시되었습니다.

$ zpool online pool c1t1d0s6 
warning: device 'c1t1d0s6' onlined, but remains in faulted state

zpool status -v의 출력은 다음과 같습니다.

NAME          STATE     READ WRITE CKSUM
pool          DEGRADED     0     0     0
mirror-0    DEGRADED     0     0     0
c1t0d0s6  ONLINE       0     0     0
c1t1d0s6  UNAVAIL      0     0     0  corrupted data

(c1t1d0은 교체된 드라이브입니다.)

그런 다음 c1t1d0을 다시 오프라인으로 전환하고 zpool replacement 명령을 실행해 보았지만 이 역시 작동하지 않았습니다.

$ zpool replace pool c1t1d0s6
invalid vdev specification
use '-f' to override the following errors:
/dev/dsk/c1t1d0s6 overlaps with /dev/dsk/c1t1d0s2

무슨 일인지 아는 사람 있나요? '-f' 플래그를 사용해도 안전합니까?

편집하다:zpool replacement -f를 실행한 후 다음을 얻습니다.

pool: pool
state: DEGRADED
status: The pool is formatted using an older on-disk format.  The pool can
        still be used, but some features are unavailable.
action: Upgrade the pool using 'zpool upgrade'.  Once this is done, the
    pool will no longer be accessible on older software versions.
scrub: none requested
config:

    NAME                STATE     READ WRITE CKSUM
    pool                DEGRADED     0     0     0
      mirror-0          DEGRADED     0     0     0
        c1t0d0s6        ONLINE       0     0     0
        replacing-1     UNAVAIL      0     0     0  insufficient replicas
          c1t1d0s6/old  OFFLINE      0     0     0
          c1t1d0s6      UNAVAIL      0   342     0  experienced I/O failures

iostat -e 출력에서 ​​새 드라이브에 오류가 표시됩니다. 새 드라이브도 상태가 좋지 않을 것 같은데요?

편집 2: 무슨 일인지 모르겠어요. 동일한 절차로 다른 드라이브를 사용해 보았습니다. zpool replacement -f를 실행한 후 zfs 풀이 스크럽을 실행했지만 상태 출력은 다음과 같습니다.

  pool: pool
 state: ONLINE
 status: The pool is formatted using an older on-disk format.  The pool can
    still be used, but some features are unavailable.
 action: Upgrade the pool using 'zpool upgrade'.  Once this is done, the
    pool will no longer be accessible on older software versions.
 scrub: scrub completed after 12h56m with 0 errors on Wed Aug 29 06:49:16 2012
config:

    NAME                STATE     READ WRITE CKSUM
    pool              ONLINE       0     0     0
      mirror-0          ONLINE       0     0     0
        c1t0d0s6        ONLINE       0     0     0
        replacing-1     ONLINE   5.54M 19.9M     0
          c1t1d0s6/old  UNAVAIL      0     0     0  corrupted data
          c1t1d0s6      UNAVAIL      0     0     0  corrupted data

c1t1d0s6을 오프라인화한 후 zpool status 출력은 다음과 같습니다.

  pool: pool
 state: ONLINE
status: The pool is formatted using an older on-disk format.  The pool can
    still be used, but some features are unavailable.
action: Upgrade the pool using 'zpool upgrade'.  Once this is done, the
    pool will no longer be accessible on older software versions.
scrub: scrub completed after 12h56m with 0 errors on Wed Aug 29 06:49:16 2012
config:

    NAME                STATE     READ WRITE CKSUM
    pool                ONLINE       0     0     0
      mirror-0          ONLINE       0     0     0
        c1t0d0s6        ONLINE       0     0     0
        replacing-1     ONLINE   5.54M 19.9M     0
          c1t1d0s6/old  UNAVAIL      0     0     0  corrupted data
          c1t1d0s6      UNAVAIL      0     0     0  corrupted data

이해가 안 돼요. 시스템이 c1t0d0s6의 미러를 사용하여 c1t1d0s6을 교체할 수 없어야 합니까?

답변1

에서 알림을 삭제하셨나요 fmadm? 그리고 zpool clear... 스위치를 사용하여 zpool 대체를 실행하는 것이 안전 -f하지만 불량 디스크를 이미 제거하지 않았다면 귀하의 설명이 잘못된 것 같습니다.

http://docs.oracle.com/cd/E19253-01/819-5461/gbcet/index.html

답변2

케이블이나 드라이브 슬레드 및 슬롯을 확인하십시오. 시끄러운 SATA 연결로 인해 오류가 발생하고 fmadm은 해당 정보를 사용하여 장치에 오류가 발생한 시기를 확인합니다. 나는 나쁘다고 생각한 드라이브를 가지고 있었지만 유효한 데이터를 안정적으로 가져오지 못한다는 것을 ZFS가 알아차렸습니다. SATA 케이블이 끼인 것을 발견하고 교체한 후 실행했는데 zpool clearzpool scrub이상 오류가 발생하지 않았습니다.

관련 정보