fdiskを使用してデータディスクを分割せずにZFSプールをインポートできないのはなぜですか?

fdiskを使用してデータディスクを分割せずにZFSプールをインポートできないのはなぜですか?

ここで奇妙な状況が発生しました。プール内のディスクをfdiskしないと、他のオペレーティングシステムからインポートされたZFSプールをインポートできませんでした。なぜこれが起こるのか混乱しています。いくつかの答えや提案を聞きたいです。

手順:「NAS4Free 9.3.0.2」システム(FreeBSD)に単一の3TBディスクを含むZFSプールを作成します。プールをエクスポートして「NexentaStor 4.0.4」システム(OpenSolaris)に接続しました。 zpool import が表示されます。

root@nexenta:/volumes# zpool import
   pool: tank1
     id: 17717822833491017053
  state: UNAVAIL
 status: One or more devices are missing from the system.
 action: The pool cannot be imported. Attach the missing
        devices and try again.
   see: http://illumos.org/msg/ZFS-8000-3C
 config:

        tank1                      UNAVAIL  insufficient replicas
          c2t50014EE2B5B23B15d0p0  UNAVAIL  cannot open

ディスクの zdb -l は期待どおり label0 と label1 を表示しますが、

--------------------------------------------
LABEL 2
--------------------------------------------
failed to read label 2
--------------------------------------------
LABEL 3
--------------------------------------------
failed to read label 3

それから私は走ったfdisk c2t50014EE2B5B23B15d0p0。ディスクが初期化されていないことを示し、1つのLinuxパーティションの初期化と作成を提供します。私はそうするようにしました。その後、新しいパーティションを削除して保存することを選択できます。この時点で、MBRはディスクの最初のセクタに作成されます。ディスク全体はまだzpoolデバイスです。ディスクにMBRがある場合は、期待どおりにプールをインポートできます。

重要な詳細:256 GBのディスクに対する同じプロセスは、fdiskの介入なしに期待どおりに機能します。この問題は、2TBを超えるディスクに関連していると思われます。

私が試したこと:ディスクサイズが正しく検出され、他のシステムでも同じであることを確認してください。 NexentaStorのfdiskディスク構造は他のシステムとは異なるようです。どうやって確認するのかわかりません。

これらのディスクにMBRを作成すると、ディスクの最後にあるZFSラベルを正しく読み取るのはなぜですか?

答え1

ZFSがディスク全体を使用している場合は、EFIラベルをディスクに書き込みます。

ディスクにEFIラベルがあることを確認しましたか?

私はFreeBSDがSolarisとは異なる動作をしていることを知っています。 IIRCの場合、FreeBSDでZFSを初期化する前にEFIタグを手動で作成することをお勧めします。

fdiskラベル付きの最大ディスクサイズは、512バイトのセクタサイズに基づいて2TBです。

関連情報