WWN処理

WWN処理

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

/dev/disk/by-id/プールを作成するときは、回復力のために常にシリアル番号(または/dev/disk/gptFreeBSD)でドライブを参照してください。コンピュータが再起動されると、ドライブの順序が常に同じではなく、/devコンピュータに別のドライブがある場合、プールが正しくマウントされない可能性があります。

たとえば、zpool status14.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

答え2

WWN処理

$ cd /dev/disk/by-id/
$ ls -l
… ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M5ZUJ4XE -> ../../sde
… ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M5ZUJ4XE-part1 -> ../../sde1
… ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M5ZUJ4XE-part9 -> ../../sde9
… wwn-0x50014ee2628c2228 -> ../../sde
… wwn-0x50014ee2628c2228-part1 -> ../../sde1
… wwn-0x50014ee2628c2228-part9 -> ../../sde9

ドライブまたはドライブパーティションは、ブランドby-id、モデル名、およびシリアル番号に基づいてIDに加えて、IDを持つことができますwwn-。これはユニークですWWN(ワールドワイド名)ドライブハウジングにも印刷されています。

どちらのタイプのIDもZFSで正常に機能しますが、WWN情報はあまり明確ではありません。これらのWWN IDいいえ本番システム(まだエクスポートされていないルートパーティションやZFSなど)によって参照されるこれらのエントリは、を使用して簡単に削除できますsudo rm wwn-*。私を信じてください。私がやった。何も間違えないZFSがエクスポートされた状態の場合そうする前に。

結局のところ、WWN IDはsdドライブ検出中に生成されたデバイスへのシンボリックリンクです。システムが再起動すると、自動的に再表示されます。内部的には、Linuxは常にsdデバイスを参照しています。

$ sudo zpool export pool0
$ sudo rm wwn-*
$ sudo zpool import -d /dev/disk/by-id/ pool0

ここで見つけてくださいより多くのZFSが豊富です!

答え3

時々使ってみましたが、zpool import -d /dev/disk/by-idあまり効果がありませんでした。

私は1つ以上の設定でこれを見つけました。いくつかの魔法ロジックを実行し、物理的に接続されたZFSデバイスを表示することに加えて、基本的に次のことを行うインポートスクリプトがあります。

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

2番目は、スイッチがなくても-d最初に明示的なコマンドを使用しなかった場合でも、デバイスIDにインポートされます。

これは、不要になった数週間または数ヶ月(1〜2年前)のZFSバグによるものです。バグレポートを送信する必要があるようですが、この問題を解決するのは簡単です。

関連情報