J'essaie OpenZFS fourni sur Ubuntu 16.04 Xenial.
Lors de la création de pools, je référence toujours les disques par leurs séries dans /dev/disk/by-id/
(ou /dev/disk/gpt
sur FreeBSD) pour la résilience. Les lecteurs ne sont pas toujours dans le même ordre /dev
lors du redémarrage d'une machine, et si vous avez d'autres lecteurs dans la machine, le pool peut ne pas se monter correctement.
Par exemple, en cours zpool status
d' exécution sur une boîte 14.04, j'obtiens ceci:
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
Mais quand je crée un nouveau pool le 16.04 avec ceci (en abrégé):
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_[..]
Je reçois ceci avec 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
Il semble que zpool ait suivi les liens symboliques, plutôt que de les référencer.
Existe-t-il un moyen de forcer zpool sur 16.04 à respecter mes références de lecteur lors de la création d'un pool? Ou bien, mes réticences à propos de ce qu'il fait ici sont-elles déplacées?
Mise à jour: solution de contournement
J'ai trouvé un fil pour zfsonlinux sur Github qui a suggéré une solution de contournement. Créez d'abord votre zpool avec des /dev/sdX
appareils, puis procédez comme suit:
$ sudo zpool export tank
$ sudo zpool import -d /dev/disk/by-id -aN
Je préférerais quand même pouvoir le faire avec l'initiale zpool create
si possible.
zfs send
pour copier mes données dans les nouveaux pools. En fait, raid-z est OK pour ma boîte mythtv où les performances ne sont pas critiques à moins que j'exécute 6 ou 8 travaux de transcodage à la fois. Le passage à des paires en miroir serait très visible sur le pool où réside mon /home
répertoire.
zfs export
etzfs import -d
fonctionneront quand même. BTW, sauf si vous avez vraiment besoin de chaque octet d'espace, utilisez deux paires en miroir plutôt que raidz. Les performances de raidz sont meilleures que raid-5 mais toujours bien pires que les paires miroir raid-10 ou zfs. il est également plus facile d'étendre un pool composé de paires en miroir, ajoutez simplement deux disques à la fois ... avec raidz, vous devez remplacer chacun des disques par des disques plus grands, et ce n'est que lorsque vous les aurez tous remplacés que votre la piscine a plus d'espace disponible.