Ubuntu 16.04 XenialにバンドルされているOpenZFSを使用しています。
/dev/disk/by-id/
プールを作成するときは、回復力のために常にシリアル番号(または/dev/disk/gpt
FreeBSD)でドライブを参照してください。コンピュータが再起動されると、ドライブの順序が常に同じではなく、/dev
コンピュータに別のドライブがある場合、プールが正しくマウントされない可能性があります。
たとえば、zpool status
14.04システムで実行すると、次の結果が表示されます。
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
ただし、16.04で次の(略語)を使用して新しいプールを作成した場合:
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_[..]
私はこれを得ます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
zpoolはシンボリックリンクを参照するのではなく、シンボリックリンクに従うようです。
プールを作成するときに16.04でzpoolが私のドライブ参照に従うように強制する方法はありますか?それとも、それがここで何をしているのか疑うのは間違っていますか?
アップデート:回避策
私手がかりを見つけたGithubのzfsonlinuxが解決策を提案しました。まず、デバイスでzpoolを作成し、/dev/sdX
次の手順を実行します。
$ sudo zpool export tank
$ sudo zpool import -d /dev/disk/by-id -aN
zpool create
可能であれば、初期バージョンでもこれを行いたいと思います。
ベストアンサー1
この投稿が少し古くなっていることを知っていますが、答えがあります。インポートしたら、キャッシュファイルを更新する必要があります。この例は、キャッシュファイルのデフォルトの場所を示しています。
$> sudo zpool export POOL
$> sudo zpool import -d /dev/disk/by-id POOL
$> sudo zpool import -c /etc/zfs/zpool.cache
$> sudo zpool status POOL
NAME STATE READ WRITE CKSUM
POOL 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