백업 서버에 물리적인 문제가 발생했습니다(뇌우로 인한 감전으로 추정됩니다). 시스템은 2개의 4TB 디스크 RAID-1 ZFS(Linux의 ZFS) 풀에 스토리지가 있는 디스크 기반 Linux Debian입니다. 우리가 발견한 첫 번째 증상은 시스템 정지였습니다. 여러 번 불안정한 시작을 경험한 후 BIOS를 통과할 수 없었습니다. 그래서 우리는 시스템 디스크를 문제 없이 부팅되고 안정적으로 보였던 다른 머신으로 옮겼지만, ZFS 저장소를 그쪽으로 옮기려고 했을 때 디스크 하나만 ZFS 부품 풀로 감지되었지만 로드/설치할 수 zpool
있고 거기에서 데이터가 삭제됩니다( lsblk -f
다른 디스크에 파티션이 없다는 것만 표시됨). 두 번째 디스크를 로드하는 여러 테스트를 거친 후 첫 번째 디스크는 더 이상 로드할 수 없으며 파티션되지 않은 것으로 감지되었습니다.
참고: 명령 및 테스트 결과는 다음과 같습니다.
그래서 SMART 도구를 사용하여 두 디스크의 상태를 테스트해 보았 smartctl
으나 오류가 반환되지 않았고 디스크가 작동 가능한 것으로 나타났습니다. 따라서 dd
읽기 오류가 반환되지 않으므로 데이터 읽기 시도는 성공합니다. 그래서 우리는 그것을 시도했고 badblocks
이것은 또한 모든 것이 잘 작동하고 있음을 보여주었습니다. 마지막으로 시도한 결과 gpart
Windows NT/W2K 파티션이 비어 있을 수 있지만 디스크 크기가 커서 프로세스가 종료되지 않는 것을 일시적으로 발견했습니다.
지금까지 관찰된 유일한 문제는 MBR이 누락되었다는 것인데, ZFS MBR을 복원하는 도구를 찾지 못했습니다. 어떻게 해야 하나요?
또한 오래된 외부 복제 디스크가 있기 때문에(교체된 디스크를 외부화할 수 있도록 매달 하나를 다른 것으로 교체하고 자체적으로 "재동기화") MBR을 복사할 수 있는지 스스로에게 물었습니다. 실패한 디스크의 디스크를 교체하려면 디스크의 ZFS 풀 부분에 있는 MBR과 해당 미러가 정확히 동일한지 또는 MBR이 수행된 후 차이가 있는지 확실하지 않습니다. 복제가 가능하다면 어떻게 해야 합니까 dd
?
테스트 및 결과
root@CZ-LIVE:~# lsblk -o NAME,SIZE,FSTYPE
NAME SIZE FSTYPE
...
sda 3,6T
...
=> ZFS 파일 시스템이 감지되지 않음
root@CZ-LIVE:~# smartctl -t long /dev/sda
smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.15.0-2-amd64] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Extended self-test routine immediately in off-line mode".
Drive command "Execute SMART Extended self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 54 minutes for test to complete.
Test will complete after Fri Sep 9 17:24:14 2022 UTC
Use smartctl -X to abort test.
root@CZ-LIVE:~# smartctl -l selftest /dev/sda
smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.15.0-2-amd64] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed without error 00% 4660 -
root@CZ-LIVE:~# smartctl -A /dev/sda
smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.15.0-2-amd64] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x0003 100 100 006 Pre-fail Always - 0
3 Spin_Up_Time 0x0003 100 100 000 Pre-fail Always - 16
4 Start_Stop_Count 0x0002 100 100 020 Old_age Always - 100
5 Reallocated_Sector_Ct 0x0003 100 100 036 Pre-fail Always - 0
9 Power_On_Hours 0x0003 100 100 000 Pre-fail Always - 1
12 Power_Cycle_Count 0x0003 100 100 000 Pre-fail Always - 0
190 Airflow_Temperature_Cel 0x0003 069 069 050 Pre-fail Always - 31 (Min/Max 31/31)
root@CZ-LIVE:~# smartctl -A /dev/sda | \
grep -iE "Power_On_Hours|G-Sense_Error_Rate|Reallocated|Pending|Uncorrectable"
5 Reallocated_Sector_Ct 0x0003 100 100 036 Pre-fail Always - 0
9 Power_On_Hours 0x0003 100 100 000 Pre-fail Always - 1
=> 디스크 내부는 특별한 것을 반환하지 않습니다
dd
읽기 오류가 있는지 여부를 표시합니다(원천):
root@CZ-LIVE:~# dd if=/dev/sda of=/dev/null bs=64k conv=noerror status=progress
4000784842752 octets (4,0 TB, 3,6 TiB) copiés, 104555 s, 38,3 MB/s
61047148+1 enregistrements lus
61047148+1 enregistrements écrits
4000785948160 octets (4,0 TB, 3,6 TiB) copiés, 104556 s, 38,3 MB/s
=> 읽기 오류 없음
root@CZ-LIVE:~# date ; badblocks -svn /dev/sda ; date
ven. 16 sept. 2022 17:00:06 UTC
Checking for bad blocks in non-destructive read-write mode
From block 0 to 3907017526
Checking for bad blocks (non-destructive read-write test)
Testing with random pattern: done
Pass completed, 0 bad blocks found. (0/0/0 errors)
dim. 18 sept. 2022 01:54:49 UTC
=> 블록 오류 없음
root@CZ-LIVE:~# gpart /dev/sda
Begin scan...
Possible partition(Windows NT/W2K FS), size(0mb), offset(345079mb)
=> 빈 파티션...ZFS로 감지되지 않음