Ich probiere das gebündelte OpenZFS auf Ubuntu 16.04 Xenial aus.
Beim Erstellen von Pools beziehe ich mich aus Gründen der Ausfallsicherheit immer auf Laufwerke mit ihren Seriennummern in /dev/disk/by-id/(oder /dev/disk/gptunter FreeBSD). Die Reihenfolge der Laufwerke ist /devbeim Neustart eines Computers nicht immer gleich. Wenn sich andere Laufwerke im Computer befinden, wird der Pool möglicherweise nicht ordnungsgemäß bereitgestellt.
Wenn zpool statusich zum Beispiel mit einer 14.04-Box arbeite, bekomme ich Folgendes:
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
Aber wenn ich am 16.04 einen neuen Pool damit erstelle (abgekürzt):
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_[..]
Ich bekomme das mit 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
Es sieht so aus, als ob zpool den Symlinks gefolgt ist, anstatt sie zu referenzieren.
Gibt es eine Möglichkeit, zpool am 16.04 zu zwingen, meine Laufwerksreferenzen beim Erstellen eines Pools zu berücksichtigen? Oder sind meine Bedenken, was hier getan wird, falsch?
Update: Problemumgehung
Ich habe auf Github einen Thread für zfsonlinux gefunden, der eine Problemumgehung vorschlug. Erstellen Sie zuerst Ihren Zpool mit /dev/sdXGeräten, und führen Sie dann Folgendes aus :
$ sudo zpool export tank
$ sudo zpool import -d /dev/disk/by-id -aN
Ich würde es dennoch vorziehen, zpool createwenn es möglich wäre, dies mit der Initiale zu tun .
zfs sendkopiere meine Daten in die neuen Pools. Tatsächlich ist raid-z für meine mythtv-Box in Ordnung, in der die Leistung nur dann kritisch ist, wenn 6 oder 8 Transcodierungsaufträge gleichzeitig ausgeführt werden. Das Wechseln zu gespiegelten Paaren ist in dem Pool, in dem sich mein /home Verzeichnis befindet, sehr auffällig .
zfs exportundzfs import -dfunktionieren trotzdem. Übrigens, es sei denn, Sie benötigen wirklich jedes Byte Speicherplatz, verwenden Sie zwei gespiegelte Paare anstelle von raidz. Die Leistung von raidz ist besser als die von raid-5, aber immer noch viel schlechter als die von raid-10 oder zfs gespiegelten Paaren. Es ist auch einfacher, einen Pool aus gespiegelten Paaren zu erweitern. Fügen Sie einfach zwei Festplatten gleichzeitig hinzu. Mit raidz müssen Sie jede der Festplatten durch größere ersetzen Pool haben mehr Platz zur Verfügung.