재부팅으로 인해 ZFS 미러의 한쪽이 UNAVAIL이 된 이유는 무엇입니까?


13

방금 최근에 단일 장치 vdev 구성에서 양방향 미러 vdev 구성으로 벌크 데이터 스토리지 풀 (Linux 0.6.2, Debian Wheezy의 ZFS)을 마이그레이션했습니다.

이전 풀 구성은 다음과 같습니다.

    NAME                     STATE     READ WRITE CKSUM
    akita                    ONLINE       0     0     0
      ST4000NM0033-Z1Z1A0LQ  ONLINE       0     0     0

리 실버가 완료된 후 모든 것이 정상이었습니다 (리 실버가 완료된 후 시스템이 모든 것을 다시 한 번 통과하고 모든 것이 양호하다는 것을 확인하기 위해 스크럽을 시작했습니다).

  pool: akita
 state: ONLINE
  scan: scrub repaired 0 in 6h26m with 0 errors on Sat May 17 06:16:06 2014
config:

        NAME                       STATE     READ WRITE CKSUM
        akita                      ONLINE       0     0     0
          mirror-0                 ONLINE       0     0     0
            ST4000NM0033-Z1Z1A0LQ  ONLINE       0     0     0
            ST4000NM0033-Z1Z333ZA  ONLINE       0     0     0

errors: No known data errors

그러나 재부팅 후 나는 수영장이 좋지 않고 멋지지 않다는 사실을 알리는 이메일을 받았습니다. 나는 봤는데 이것이 내가 본 것입니다.

   pool: akita
  state: DEGRADED
 status: One or more devices could not be used because the label is missing or
         invalid.  Sufficient replicas exist for the pool to continue
         functioning in a degraded state.
 action: Replace the device using 'zpool replace'.
    see: http://zfsonlinux.org/msg/ZFS-8000-4J
   scan: scrub in progress since Sat May 17 14:20:15 2014
     316G scanned out of 1,80T at 77,5M/s, 5h36m to go
     0 repaired, 17,17% done
 config:

         NAME                       STATE     READ WRITE CKSUM
         akita                      DEGRADED     0     0     0
           mirror-0                 DEGRADED     0     0     0
             ST4000NM0033-Z1Z1A0LQ  ONLINE       0     0     0
             ST4000NM0033-Z1Z333ZA  UNAVAIL      0     0     0

 errors: No known data errors

스크럽이 예상됩니다. 재부팅시 전체 시스템 스크럽을 시작하기위한 크론 작업 설정이 있습니다. 그러나 나는 새로운 HDD가 거울에서 떨어질 것이라고 기대하지 않았습니다.

필자는 / dev / disk / by-id / wwn- * 이름에 매핑되는 별칭을 정의하며,이 두 디스크 모두 ZFS에 파티션 처리를 포함하여 전체 디스크를 사용할 수있는 여유 공간을 부여했습니다.

# zpool history akita | grep ST4000NM0033
2013-09-12.18:03:06 zpool create -f -o ashift=12 -o autoreplace=off -m none akita ST4000NM0033-Z1Z1A0LQ
2014-05-15.15:30:59 zpool attach -o ashift=12 -f akita ST4000NM0033-Z1Z1A0LQ ST4000NM0033-Z1Z333ZA
# 

이것들은 /etc/zfs/vdev_id.conf의 관련 줄입니다 (Z1Z333ZA는 분리를 위해 탭 문자를 사용하는 반면 Z1Z1A0LQ 줄은 공백 만 사용하지만 솔직히 여기에 어떤 관련이 있는지 알지 못합니다) :

alias ST4000NM0033-Z1Z1A0LQ             /dev/disk/by-id/wwn-0x5000c500645b0fec
alias ST4000NM0033-Z1Z333ZA     /dev/disk/by-id/wwn-0x5000c50065e8414a

내가 보았을 때 /dev/disk/by-id/wwn-0x5000c50065e8414a*예상대로 있었지만 /dev/disk/by-vdev/ST4000NM0033-Z1Z333ZA*그렇지 않았습니다.

발행으로 sudo udevadm trigger인해 심볼릭 링크가 / dev / disk / by-vdev에 표시되었습니다. 그러나 ZFS는 단지 그들이 있다는 것을 깨닫지 못하는 것 같습니다 (Z1Z333ZA는 여전히으로 표시 UNAVAIL). 내가 예상 할 수있는 많은 것.

관련 장치를 교체하려고 시도했지만 실제로 운이 없었습니다.

# zpool replace akita ST4000NM0033-Z1Z333ZA
invalid vdev specification
use '-f' to override the following errors:
/dev/disk/by-vdev/ST4000NM0033-Z1Z333ZA-part1 is part of active pool 'akita'
# 

부팅 과정에서 두 디스크가 모두 감지됩니다 (관련 드라이브를 보여주는 dmesg 로그 출력).

[    2.936065] ata2: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[    2.936137] ata4: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[    2.937446] ata4.00: ATA-9: ST4000NM0033-9ZM170, SN03, max UDMA/133
[    2.937453] ata4.00: 7814037168 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[    2.938516] ata4.00: configured for UDMA/133
[    2.992080] ata6: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[    3.104533] ata6.00: ATA-9: ST4000NM0033-9ZM170, SN03, max UDMA/133
[    3.104540] ata6.00: 7814037168 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[    3.105584] ata6.00: configured for UDMA/133
[    3.105792] scsi 5:0:0:0: Direct-Access     ATA      ST4000NM0033-9ZM SN03 PQ: 0 ANSI: 5
[    3.121245] sd 3:0:0:0: [sdb] 7814037168 512-byte logical blocks: (4.00 TB/3.63 TiB)
[    3.121372] sd 3:0:0:0: [sdb] Write Protect is off
[    3.121379] sd 3:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[    3.121426] sd 3:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    3.122070] sd 5:0:0:0: [sdc] 7814037168 512-byte logical blocks: (4.00 TB/3.63 TiB)
[    3.122176] sd 5:0:0:0: [sdc] Write Protect is off
[    3.122183] sd 5:0:0:0: [sdc] Mode Sense: 00 3a 00 00
[    3.122235] sd 5:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA

두 드라이브 모두 마더 보드에 직접 연결되어 있습니다. 오프 보드 컨트롤러가 없습니다.

충동으로, 나는했다 :

# zpool online akita ST4000NM0033-Z1Z333ZA

작동 한 것 같습니다. Z1Z333ZA는 이제 최소한 은색이다 ONLINE. 약 1 시간 후에 리 실버는 180G를 스캔하고 9.77 % 완료된 24G를 리 실버 링했습니다. 이는 완전한 리 실버를 수행하지 않고 데이터 세트 델타를 전송하는 것만을 나타냅니다.

이 문제가 Linux의 ZFS 또는 udev와 관련이 있는지 확실하지 않습니다 (udev와 약간 냄새가 나지만 왜 하나의 드라이브가 잘 감지되지만 다른 드라이브는 감지되지 않습니까). 내 질문은 어떻게 만드는가 다음에 다시 부팅 할 때도 같은 일이 다시 발생하지 않습니까?

필요한 경우 설정에 대한 추가 데이터를 제공하게되어 기쁩니다. 필요한 것을 알려주세요.

답변:


10

이것은 데비안과 우분투 변종에만 해당되는 udev 문제입니다 . Linux에서 ZFS 작업의 대부분은 CentOS / RHEL을 사용합니다.

ZFS 토론 목록에서 비슷한 스레드가 이것을 언급했습니다.

Linux / Ubuntu의
/ dev / disk / by-id
ZFS에서 동일한 하드 드라이브에 대한 scsi 및 ata 항목 참조 :
13.04에서 13.10으로 Ubuntu 업그레이드 후 zpool 가져 오기 도움말, 장치 ID가 변경됨

데비안 / 우분투 시스템에 가장 결정적인 풀 장치 접근 방식이 무엇인지 잘 모르겠습니다. RHEL의 경우 일반 풀 장치에서 장치 WWN을 사용하는 것을 선호합니다. 그러나 다른 경우에는 장치 이름 / 직렬도 유용합니다. 그러나 udev 이 모든 것을 점검 할 수 있어야합니다.

# zpool status
  pool: vol1
 state: ONLINE
  scan: scrub repaired 0 in 0h32m with 0 errors on Sun Feb 16 17:34:42 2014
config:

        NAME                        STATE     READ WRITE CKSUM
        vol1                        ONLINE       0     0     0
          mirror-0                  ONLINE       0     0     0
            wwn-0x500000e014609480  ONLINE       0     0     0
            wwn-0x500000e0146097d0  ONLINE       0     0     0
          mirror-1                  ONLINE       0     0     0
            wwn-0x500000e0146090c0  ONLINE       0     0     0
            wwn-0x500000e01460fd60  ONLINE       0     0     0

1
베어 wwn-*이름 으로 마이그레이션 한 후에 는 풀이 안정적으로 나타납니다.
CVn

1
@ MichaelKjörling wwn- * 이름으로 어떻게 마이그레이션했는지 자세히 설명해 주시겠습니까?
codecowboy

1
@codecowboy 전혀 멋진 것은 없습니다. zpool detach akita ST4000NM0033-Z1Z333ZA다음 zpool attach -o ashift=12 -f akita ST4000NM0033-Z1Z1A0LQ wwn-0x5000c50065e8414a다음 zpool detach akita ST4000NM0033-Z1Z1A0LQ다음 zpool attach akita wwn-0x5000c50065e8414a wwn-0x5000c500645b0fec각 단계 사이에서 검증 풀 안정적이었다. 먼저 철저히 문지르는 것이 좋습니다. 당신도 아마 도망 갈 수는 zpool replace있지만 별칭이 wwn 이름을 가리키고 중복과 백업이 있었기 때문에 이것이 더 안전하다고 느꼈습니다. 며칠이 걸렸지 만 서두르지 않았습니다.
CVn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.