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 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.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.Odpowiedzi:
Raz na jakiś czas
zpool import -d /dev/disk/by-id
nie działa.Zauważyłem to w więcej niż jednym środowisku. Mam skrypt importu, który oprócz wykonywania jakiejś magicznej logiki i pokazywania fizycznie podłączonych urządzeń ZFS, robi to w zasadzie:
Drugi raz, nawet bez
-d
przełącznika, importuje według identyfikatora urządzenia, nawet jeśli nie za pierwszym razem z wyraźnym poleceniem.Możliwe, że było to spowodowane błędem ZFS w ciągu kilku tygodni lub miesięcy (rok lub dwa lata temu) i nie jest to już konieczne. Przypuszczam, że powinienem był zgłosić błąd, ale obejście tego było trywialne.
źródło
Wiem, że ten wątek jest trochę przestarzały, ale jest odpowiedź. Po zaimportowaniu musisz zaktualizować plik pamięci podręcznej. Ten przykład pokazuje domyślną lokalizację pliku pamięci podręcznej.
źródło