Kısa bir süre önce bir toplu veri depolama havuzunu (ZFS Linux 0.6.2, Debian Wheezy) tek cihazlı vdev yapılandırmasından iki yönlü ayna vdev yapılandırmasına geçtim.
Önceki havuz yapılandırması:
NAME STATE READ WRITE CKSUM
akita ONLINE 0 0 0
ST4000NM0033-Z1Z1A0LQ ONLINE 0 0 0
Resilver tamamlandıktan sonra her şey iyiydi (Resilver tamamlandıktan sonra bir fırça başlattım, sadece sistemin her şeyi bir kez daha gözden geçirmesi ve hepsinin iyi olduğundan emin olmak için):
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
Ancak, yeniden başlattıktan sonra havuz güzel ve züppe değildi bana bildiren bir e-posta aldım. Bir göz attım ve gördüm:
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
Ovma bekleniyor; yeniden başlatma sırasında tam bir sistem ovma başlatmak için bir cron işi kurulum var. Ancak, kesinlikle yeni HDD'nin aynadan düşmesini beklemiyordum.
/ Dev / disk / by-id / wwn- * adlarıyla eşlenen takma adlar tanımlarım ve her iki diskte de ZFS'yi boş disk kullanması için tam diski kullanması durumunda, disk bölümleme de dahil olmak üzere:
# 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
#
Bunlar /etc/zfs/vdev_id.conf adresinden ilgili satırlardır (Z1Z333ZA'nın ayırma için bir sekme karakteri kullandığını ancak Z1Z1A0LQ satırında yalnızca boşluk kullandığını fark ediyorum, ancak dürüstçe bunun burada nasıl alakalı olabileceğini görmüyorum) :
alias ST4000NM0033-Z1Z1A0LQ /dev/disk/by-id/wwn-0x5000c500645b0fec
alias ST4000NM0033-Z1Z333ZA /dev/disk/by-id/wwn-0x5000c50065e8414a
Ben baktım, /dev/disk/by-id/wwn-0x5000c50065e8414a*
beklendiği gibi /dev/disk/by-vdev/ST4000NM0033-Z1Z333ZA*
vardı , ama değildi.
Düzenleyen sudo udevadm trigger
neden sembolik / dev / disk / by-vdev göstermek için. Ancak, ZFS sadece orada olduklarını fark etmiyor gibi görünmüyor (Z1Z333ZA hala gösteriyor UNAVAIL
). Sanırım bu kadarı beklenebilir.
İlgili cihazı değiştirmeyi denedim, ancak gerçek bir şansım yoktu:
# 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'
#
Her iki disk de önyükleme işlemi sırasında algılanır (ilgili sürücüleri gösteren dmesg günlük çıkışı):
[ 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
Her iki sürücü de doğrudan anakarta bağlanır; herhangi bir off-board kontrolörü yoktur.
Dürtü üzerine yaptım:
# zpool online akita ST4000NM0033-Z1Z333ZA
ki bu işe yaramış gibi görünüyor; Z1Z333ZA şimdi en azından ONLINE
ve yeniden canlandırıyor. Resilver'a yaklaşık bir saatte 180G tarandı ve% 9.77 yapıldığı için 24G'yi yeniden resilverdi, bu da tam bir resilver yapmayı değil, sadece veri kümesi deltasını aktardığını gösteriyor.
Ben emin bu konunun ZFS On Linux veya udev ile ilgili olup olmadığını dürüstçe değilim (o udev gibi biraz kokuyor ama o zaman neden kimse sadece iyi tespit ancak diğer edilmeyecektir sürücü olur), fakat benim sorum ben nasıl yapabilirim bir sonraki yeniden başlatmada aynı şeyin tekrar gerçekleşmeyeceğinden emin misiniz?
Gerekirse kurulum hakkında daha fazla veri sağlamaktan memnuniyet duyarız; neye ihtiyaç duyduğumu bilmeme izin ver.
wwn-*
isimlere geçtikten sonra havuz sabit görünüyor.