2TB HDD で構成される単一ドライブ プールがあります。ミラーで使用できる 1TB ドライブが 2 つあるので、プールに冗長性を追加したいと考えています。
これら 2 つのドライブを 1 つのデバイスとして接続し、ストライプ ミラーとして使用するにはどうすればよいですか?
sda
私の 2TB ドライブを、空の 1TB ドライブをsdb
と と呼びますsdc
。
試してみましたが、zfs attach tank sda sdb sdc
と表示されますtoo many arguments
。
試してみましたzfs attach tank sda sdb
が、device is too small
試してみましたzfs attach tank sda sdb+sdc
が、no such device in /dev
試してみましたzfs attach tank sda sdb,sdc
が、no such device in /dev
マニュアルを読み、ウェブで検索しましたが、アイデアが見つかりません。
これら 2 つの 1 TB ドライブから新しいストライプ プールを作成し、内部に zvol を作成して、それをプライマリ プールのミラーとして使用することもできますが、これではミラー用の容量が足りず、不要なオーバーヘッドが大量に発生する可能性があります。
これどうやってするの?
答え1
これはZFS経由で直接行うことはできません。マニュアルページ:
仮想デバイスはネストできないため、ミラーまたは raidz 仮想デバイスにはファイルまたはディスクのみを含めることができます。ミラーのミラー (またはその他の組み合わせ) は許可されません。
私の提案は、2つの1TBディスクで構成される新しいプールを作成し、シンコイド最初のプールのコンテンツを新しいプールに頻繁に送信します。
--- 警告: 以下は不格好な回避策です。本当に確信がない場合は使用しないでください!!! ---
とにかく、もしあなたが本当に2 つの 1 TB ディスクを最初の 2 TB ディスクのミラーとして追加したい場合は、回避策を試すことができます。デバイス マッパー (LVM 形式) を使用して 2 つのディスクを連結し、結果として得られるボリュームを 2 TB デバイスに接続することができます。例:
pvcreate /dev/sdb
pvcreate /dev/sdc
vgcreate zvg /dev/sdb
vgextend zvg /dev/sdc
lvcreate zvg --name zdev -l +100%FREE
zpool attach tank /dev/sda /dev/zvg/zdev
zpool status
mdadm を使用して RAID0 デバイスを作成し、それを zpool に接続することで、同様の (さらに優れた) 結果を得ることができます。
mdadm --create md127 --level=0 --raid-devices=2 /dev/sdb /dev/sdc
zpool attach tank /dev/sda /dev/md127
zpool status
このアプローチはない推奨。自己責任でご使用ください。
答え2
2 つの新しいディスクをプールに追加するには、 を使用できますzpool add tank mirror sdb sdc
が、これにより新しいペアがミラーとして追加され、既存のディスクとストライプ化されます (これにより冗長性は追加されません)。
既存の vdev にディスクを追加するにはコマンドを使用する必要がありますzpool attach
が、ミラー ペアを使用して単一のディスクをバックアップすることはできないため、ミラー ペアにするには新しい 2 TB ディスクを追加する必要があります。