Próbuję w pakiecie OpenZFS na Ubuntu 16.04 Xenial.
Podczas tworzenia pul zawsze odnoszę się do dysków według ich numerów seryjnych w /dev/disk/by-id/
(lub /dev/disk/gpt
na FreeBSD) w celu uzyskania odporności. Dyski nie zawsze są w tej samej kolejności, /dev
gdy komputer uruchamia się ponownie, a jeśli masz inne dyski w maszynie, pula może nie zostać poprawnie zamontowana.
Na przykład działając zpool status
na polu 14.04 otrzymuję to:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
ata-Hitachi_HDS722020ALA330_[..] ONLINE 0 0 0
ata-Hitachi_HDS722020ALA330_[..] ONLINE 0 0 0
ata-Hitachi_HDS722020ALA330_[..] ONLINE 0 0 0
ata-Hitachi_HUA722020ALA330_[..] ONLINE 0 0 0
Ale kiedy utworzę nową pulę 16.04 z tym (w skrócie):
zpool create pool raidz \
/dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..] \
/dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..] \
/dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..] \
/dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..]
Dostaję to z zpool status
:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
sdf ONLINE 0 0 0
sde ONLINE 0 0 0
sdd ONLINE 0 0 0
sda ONLINE 0 0 0
Wygląda na to, że zpool podążył za dowiązaniami symbolicznymi, zamiast się do nich odwoływać.
Czy istnieje sposób, aby zmusić zpool w dniu 16.04 do respektowania odniesień do mojego dysku podczas tworzenia puli? Albo alternatywnie, czy moje obawy dotyczące tego, co tu robią, są niewłaściwe?
Aktualizacja: obejście
I znalazłem wątku na zfsonlinux na Github że sugerowane obejście. /dev/sdX
Najpierw utwórz swój zpool z urządzeniami, a następnie wykonaj następujące czynności:
$ sudo zpool export tank
$ sudo zpool import -d /dev/disk/by-id -aN
Nadal wolałbym móc to zrobić z początkowym, zpool create
jeśli to możliwe.
zfs send
do skopiowania moich danych do nowych pul. W rzeczywistości raid-z jest OK dla mojego mythtv box, w którym wydajność nie jest krytyczna, chyba że uruchamiam 6 lub 8 zadań transkodowania jednocześnie. Zmiana na pary lustrzane byłaby bardzo zauważalna na puli, w której /home
mieszka mój katalog.
zfs export
izfs import -d
będą działać mimo to. BTW, chyba że naprawdę potrzebujesz każdego bajtu miejsca, użyj dwóch par lustrzanych zamiast raidz. Wydajność raidz jest lepsza niż raid-5, ale wciąż znacznie gorsza niż raid-10 lub pary lustrzane zfs. łatwiej jest również rozszerzyć pulę złożoną z par lustrzanych, wystarczy dodać dwa dyski na raz ... w programie raidz każdy z dysków należy wymienić na większy, a dopiero po ich zastąpieniu wszystkie basen ma więcej dostępnego miejsca.