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/gpt
unter FreeBSD). Die Reihenfolge der Laufwerke ist /dev
beim Neustart eines Computers nicht immer gleich. Wenn sich andere Laufwerke im Computer befinden, wird der Pool möglicherweise nicht ordnungsgemäß bereitgestellt.
Wenn zpool status
ich 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/sdX
Gerä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 create
wenn es möglich wäre, dies mit der Initiale zu tun .
zfs send
kopiere 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 export
undzfs import -d
funktionieren 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.