저는 최근 Ubuntu 시스템에서 Arch Linux 시스템으로 마이그레이션했습니다.
를 사용하여 풀을 가져왔고 zpool import -f tank
캐시 드라이브에 결함이 있는 것으로 보고되었지만 스토리지 드라이브는 제대로 작동하고 있습니다. 5개의 드라이브가 있는 raidz2입니다. 이상한 점은 잘못된 드라이브를 캐시로 보고한다는 것입니다. 그 목록은 sde
이어야 합니다 sdg
. sde
저장 장치로도 나열되어 있습니다 .
❯ zpool status
pool: tank
state: ONLINE
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: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-4J
scan: scrub canceled on Tue Dec 29 21:16:30 2020
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz2-0 ONLINE 0 0 0
sde ONLINE 0 0 0
sdb ONLINE 0 0 0
sda ONLINE 0 0 0
sdd ONLINE 0 0 0
sdf ONLINE 0 0 0
cache
sde FAULTED 0 0 0 corrupted data
내 실제 캐시 드라이브는 사용되기를 기쁘게 기다리고 있습니다. /dev/sdg를 참조하세요.
~
❯ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1.8T 0 disk
|-sda1 8:1 0 1.8T 0 part
`-sda9 8:9 0 8M 0 part
sdb 8:16 0 1.8T 0 disk
|-sdb1 8:17 0 1.8T 0 part
`-sdb9 8:25 0 8M 0 part
sdc 8:32 0 447.1G 0 disk
|-sdc1 8:33 0 450M 0 part
|-sdc2 8:34 0 100M 0 part
|-sdc3 8:35 0 16M 0 part
|-sdc4 8:36 0 445.7G 0 part
`-sdc5 8:37 0 875M 0 part
sdd 8:48 0 1.8T 0 disk
|-sdd1 8:49 0 1.8T 0 part
`-sdd9 8:57 0 8M 0 part
sde 8:64 0 1.8T 0 disk
|-sde1 8:65 0 1.8T 0 part
`-sde9 8:73 0 8M 0 part
sdf 8:80 0 1.8T 0 disk
|-sdf1 8:81 0 1.8T 0 part
`-sdf9 8:89 0 8M 0 part
sdg 8:96 0 465.8G 0 disk
|-sdg1 8:97 0 465.8G 0 part
`-sdg9 8:105 0 8M 0 part
sr0 11:0 1 1024M 0 rom
nvme0n1 259:0 0 1.8T 0 disk
|-nvme0n1p1 259:1 0 550M 0 part /boot/EFI
`-nvme0n1p2 259:2 0 1.8T 0 part /
캐시 드라이브를 올바른 드라이브로 교체하는 방법을 잘 모르겠습니다. 바꾸기 명령을 실행하면 오류가 발생합니다.
sudo zpool replace tank sde
/dev/sde is in use and contains a unknown filesystem.
실제 캐시 드라이브를 다시 추가하려고 시도했는데 다음 오류가 발생했습니다.
❯ sudo zpool add tank cache /dev/sdg
cannot add to 'tank': one or more vdevs refer to the same device
zdb 출력에 캐시 장치가 나열되지 않습니다.
tank:
version: 5000
name: 'tank'
state: 0
txg: 3783078
pool_guid: 3128882764625212484
errata: 0
hostname: 'stephen-desktop'
com.delphix:has_per_vdev_zaps
vdev_children: 1
vdev_tree:
type: 'root'
id: 0
guid: 3128882764625212484
create_txg: 4
children[0]:
type: 'raidz'
id: 0
guid: 12617640708297166488
nparity: 2
metaslab_array: 256
metaslab_shift: 34
ashift: 12
asize: 10001923440640
is_log: 0
create_txg: 4
com.delphix:vdev_zap_top: 129
children[0]:
type: 'disk'
id: 0
guid: 13646832995608515279
path: '/dev/sde1'
whole_disk: 1
DTL: 344
create_txg: 4
com.delphix:vdev_zap_leaf: 130
children[1]:
type: 'disk'
id: 1
guid: 437662985516969209
path: '/dev/sdb1'
whole_disk: 1
DTL: 343
create_txg: 4
com.delphix:vdev_zap_leaf: 131
children[2]:
type: 'disk'
id: 2
guid: 12577615618022029516
path: '/dev/sda1'
whole_disk: 1
DTL: 368
create_txg: 4
com.delphix:vdev_zap_leaf: 367
children[3]:
type: 'disk'
id: 3
guid: 14049339035002966003
path: '/dev/sdd1'
whole_disk: 1
DTL: 341
create_txg: 4
com.delphix:vdev_zap_leaf: 133
children[4]:
type: 'disk'
id: 4
guid: 2563007804694134101
path: '/dev/sdf1'
whole_disk: 1
DTL: 340
create_txg: 4
com.delphix:vdev_zap_leaf: 134
features_for_read:
com.delphix:hole_birth
com.delphix:embedded_data
답변1
/dev/disk/by-id
표준 SCSI 이름 대신 이름을 사용하여 풀을 가져오는 것을 고려할 수 있습니다 sd*
. OS 이동 및 일관되지 않은 장치 열거로 인해 /dev/sd* 이름은 결정적이지 않으며 변경될 수 있습니다.
이를 수행하는 방법의 예는 다음과 같습니다.https://unix.stackexchange.com/q/288599/3416