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 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.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.Réponses:
De temps en temps,
zpool import -d /dev/disk/by-id
ça ne marche pas.J'ai remarqué cela sur plus d'un environnement. J'ai un script d'importation qui, au-delà de la logique magique et de l'affichage des périphériques ZFS physiquement connectés, fait également ceci:
La deuxième fois, même sans le
-d
commutateur, les importations par ID de périphérique, même si ce n'est pas le cas la première fois avec la commande explicite.Il est possible que cela soit simplement dû à un bogue ZFS pendant quelques semaines ou mois (il y a un an ou deux), et ce n'est plus nécessaire. Je suppose que j'aurais dû déposer un rapport de bogue, mais c'était trivial à contourner.
la source
Je sais que ce fil est en quelque sorte périmé, mais il y a une réponse. Vous devez mettre à jour votre fichier cache après l'importation. Cet exemple montre l'emplacement par défaut du fichier cache.
la source