Ubuntu Xenialでzpoolに/ dev / disk / by-idを使用させる


15

Ubuntu 16.04 XenialにバンドルされているOpenZFSを試してみます。

プールを作成するとき、復元力のために/dev/disk/by-id/(または/dev/disk/gptFreeBSDの)シリアルでドライブを常に参照します。/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のスレッド見つけました/dev/sdX最初にデバイスでzpoolを作成してから、これを行います:

$ sudo zpool export tank
$ sudo zpool import -d /dev/disk/by-id -aN

zpool create可能であれば、私はまだ初期設定でこれを行うことができることを好むでしょう。


作成方法は関係ありません。/ dev / sdに戻る場合は?デバイス名、zfs exportおよびzfs import -dとにかく動作します。ところで、スペースのすべてのバイトが本当に必要でない限り、raidzではなく2つのミラーペアを使用します。raidzのパフォーマンスはraid-5よりも優れていますが、raid-10またはzfsミラーペアよりもはるかに劣っています。また、ミラー化されたペアで構成されるプールを拡張し、一度に2つのディスクを追加するだけでも簡単です。raidzを使用すると、各ドライブをより大きなドライブに交換する必要があります。プールにはより多くのスペースがあります。
cas

私はまだraid-zプールをいくつか持っており、それらを作ったことを後悔しています。交換用ディスクを購入する余裕ができたら、ミラーリングされたペアで新しいプールを作成し、それを使用zfs sendしてデータを新しいプールにコピーします。実際、raid-zはmythtvボックスでは問題ありません。mythtvボックスでは、一度に6つまたは8つのトランスコードジョブを実行していない限り、パフォーマンスは重要ではありません。ミラーペアへの変更は、/home ディレクトリが存在するプールで非常に顕著です。
cas

2
ZILのミラーリングにより、電力損失から保護するために大きなコンデンサを備えた高価なSSDではなく、通常の安価なSSDを使用して回避できます。IMO、ZILのミラーリングは、SSDの種類に関係なくオプションではありません。ZILが停止すると、ZIL内のまだ書き込まれていないデータがすべて失われ、プールが破損する可能性があります。L2ARCに関しては、私はそれらをミラーリングしないように具体的に言いました... L2ARCキャッシュのミラーリングは時間、お金、および良いSSDスペースの無駄です(そしてキャッシュを失うことを防ぐために何もしません-そのアイデアはどこから得ましたか?)
cas

1
:)ところで、ZILをミラーリングする理由を説明したとき、私の脳は正しく機能していませんでした。それは電力損失を防ぐためではなく、それは完全にナンセンスであり、私はそれを決して言ってはいけませんでした。ZILドライブの障害を防ぐためです。すなわち、ZIL用のraid-1ミラー。2つの合理的な価格のSSDは一般に、1つの非常に高価なSSDよりも優れています(より高価なSSDがPCI-e対SATAのようなはるかに高速なインターフェースを備えている場合を除く)。UPSは不可欠です...電力損失に対する安価な保護。
cas

1
@cas Mirrored ZILは、予期しないシャットダウンと同時に SLOGデバイスの障害から保護します。通常の操作では、ZILは書き込み専用であり、永続ストレージへの書き込みはRAM(ARC)から行われます。システムが予期せずシャットダウンした場合、インテントログ(ZIL、SLOG)を使用して、中断された書き込みが終了します。予期しないシャットダウンがSLOGデバイスの障害と一致した場合にのみ、中断された書き込みを回復するために冗長SLOGが必要になります。ZILは実際には同期書き込みでのみ機能するため、ほとんどの非サーバー(および多くのサーバー)ワークロードでは、SLOGは過剰です。
CVn

回答:


1

しばらくの間、zpool import -d /dev/disk/by-id動作しません。

複数の環境でこれに気づきました。マジックロジックを実行し、物理的に接続されたZFSデバイスを表示するだけでなく、基本的にこれを行うインポートスクリプトもあります。

zpool import -d /dev/disk/by-id POOL
zpool export POOL
zpool import POOL

2回目は、-dスイッチなしでも、明示的なコマンドで初めてではなかったとしても、デバイスIDでインポートします。

これは、数週間または1か月(1年または2年前)の期間のZFSバグが原因であった可能性があり、これはもはや必要ありません。バグレポートを提出すべきだったと思うが、回避するのは簡単だった。


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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.