ここで奇妙な状況が発生しました。プール内のディスクを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です。