JBOD:さまざまな容量のハードドライブをRaid1する方法は? Btrfs、ZFS?

JBOD:さまざまな容量のハードドライブをRaid1する方法は? Btrfs、ZFS?

次の容量のハードドライブを選択しました。

1 TB
500 GB
320 GB
250 GB

私はすべてのデータのコピーが常に私が持っている4つのドライブのうち2つにあるという意味でRaid1を作成したいと思います。問題は、すべてのドライブの容量が異なることです。過去にはmdadmから移行し、通常のRaid1 mdadm 2x 2TB、Btrfs、および2x 2TBを実行しました。 mdadm、Btrfs、またはZFSについては何もわかりませんが、もう一度使用してもかまいません。

この基準を満たす最も適切なファイルシステムまたはユーティリティは何ですか?

  1. ディスクが破損してもデータが失われないように、常に2つのファイルのコピーを保持します。
  2. できるだけ多くの空き容量を確保し、まだポイント1の基準を満たしています。

何を使うべきですか? Btrfs Raid1がこの問題を処理し、4つのハードドライブすべてに各ファイルの2つのコピーを持つことになると感じますが、わかりません。私のLinuxは、カーネル5.10がインストールされているAMD64コンピュータで実行されています。

どんな提案でも歓迎します。

編集 - 解決策!

あなたのすべての答えに心から感謝します!だから私はBtrfs Raid1の設定をしました。これは時間のかかるプロセスでしたが、すでにBtrfsに慣れていて毎日使用していたので、非常に苦痛ではありませんでした。 Raid1は、冗長率2を維持しながら物理空間を失うことはないと思います。私はこの電卓を使用しました:https://carfax.org.uk/btrfs-usage/

マイデバイスサイズ:

931.51 GiB
465.76 GiB
298.09 GiB
232.89 GiB

Total space for files in Raid1 mode: 963 GiB (all space used)
Total space for files in Raid5 mode: 995 GiB (466 GiB unusable on biggest drive)

Raid1には719.5GiBのデータが保存され、241.6GiBの空き容量があり、合計961.1GiBになり、これは計算機に表示されているものと一致します。後で自由にドライブを追加/削除できます。素晴らしい。

Raid1の2倍に比べて理論的に読み取り速度が4倍向上したので、Raid5を使いたいと思います。しかし、まだ実験段階なので、日常的に使用するには適していないと聞きましたか? 5.10 カーネルの状態はどうですか?これを使って経験を共有できる人はいますか?

アレイを構築し、すべてのドライブを1つずつ追加し、すべてのデータをここに移行した後(バックアップあり)、完全なクリーンアップを実行しましたが、すべてが正常でした。

$ sudo btrfs scrub start -Bd /home

Scrub device /dev/sda (id 1) done
Scrub started:    Thu Jun 17 10:10:38 2021
Status:           finished
Duration:         2:38:51
Total to scrub:   724.03GiB
Rate:             77.53MiB/s
Error summary:    no errors found

Scrub device /dev/sdd (id 2) done
Scrub started:    Thu Jun 17 10:10:38 2021
Status:           finished
Duration:         1:52:39
Total to scrub:   374.03GiB
Rate:             56.57MiB/s
Error summary:    no errors found

Scrub device /dev/sdc (id 3) done
Scrub started:    Thu Jun 17 10:10:38 2021
Status:           finished
Duration:         0:48:06
Total to scrub:   207.00GiB
Rate:             73.09MiB/s
Error summary:    no errors found

Scrub device /dev/sdb (id 4) done
Scrub started:    Thu Jun 17 10:10:38 2021
Status:           finished
Duration:         0:30:00
Total to scrub:   143.00GiB
Rate:             80.89MiB/s
Error summary:    no errors found

とても嬉しいです!

編集 - @MarcusMüllerによるコメント:

「注:本当にこれが必要ですか?320GBおよび250GBドライブはそれほど新しいものではないかもしれません(...)」

あなたは正しいです。これは非常に古いドライブです!過去数年間で、Btrfs Raid1で使用されている2TB Seagate Barracuda Computeドライブ2台を取り外し、このランダムな古いドライブ4台を配置しました。 Barracudasは完全な信頼性を必要とする私のサーバーに接続します。 /そこ(Ext4 mdadm)用に2つのSSD 250GBとECC RAM付き/homeおよび/var(Btrfs Raid1)用に2つのHDD TBがあります。 Btrfs Raid1 モードまたは Raid10 または Raid5 の場合、2 つの Barracuda が最初の 2 つに追加されます。

4つの古いドライブが私のデスクトップにあり、これには次のものが含まれます。

Western Digital Blue Mobile, WDC WD10JPVX-60JC3T0
[1.00 TB, 4K sectors, SATA 3.0, 6.0 Gb/s, 5400 RPM, 2.5"]
Power_On_Hours 2496

Toshiba 2.5" HDD MK..65GSX, TOSHIBA MK5065GSX
[500 GB, 512 sectors, SATA 2.6, 3.0 Gb/s, 5400 RPM, 2.5"]
Power_On_Hours 2519

Seagate Momentus Thin, ST320LT007-9ZV142
[320 GB, 4K sectors, SATA 2.6, 3.0 Gb/s, 7200 RPM, 2.5"]
Power_On_Hours 5152

Seagate Barracuda 7200.12,ST3250318AS
[250 GB, 512 sectors, SATA 2.6, 3.0 Gb/s, 7200 RPM, 3.5"]
Power_On_Hours 6591

信頼性は実際には問題ではありません。バックアップがありますが、あまりにも早く痛みを伴う驚きを望んでいないため、2.0の基本的な冗長性で問題を解決できます。

答え1

各ドライブには1つのLVM物理ボリュームが必要です。

pvcreate /dev/drive1 /dev/drive2 /dev/drive3 /dev/drive4

次に、ボリュームグループを作成します。

vgcreate myvolumegroup /dev/drive1 /dev/drive2 /dev/drive3 /dev/drive4

最後に、各ブロックにミラーがあるという属性を使用して論理ボリュームを作成します。

lvcreate --mirrors 1 -l100%FREE  -n myvolume myvolumegroup

おめでとうございます!これで利用可能なブロックデバイスが作成されました。どのbtrfsやXFSなどの望ましいファイルシステム:

mkfs.xfs /dev/myvolumegroup/myvolume
mount /dev/myvolumegroup/myvolume /mnt

動作する必要があります。


注: あなたは確かにこれをしたいですか? 320 GBと250 GBのドライブはあまり新しいものではない可能性があります。ここに非常に古いドライブを含めると、(160 + 125)GB = 285 GBの追加ストレージのみを取得できます。

古いドライブを使用することは、RAID1を起動する理由であるデータの可用性と正反対です。また、RAID5の使用を検討してください(役に立つman lvmraid可能性があります)。

答え2

btrfsZFSとは異なり、さまざまなサイズのドライブを効率的に処理できるため使用されます。すべてのドライブの総容量は約2に分けられます(冗長性のための2つのコピーを含む)。約1TB。透明な圧縮は含まれません。

ZFSは次の容量のファイルのみを生成します。最小デバイス - しかし、ドライブが4つの場合、2つのミラーvdevが作成されます。たとえば、1 TB と 500 GB のミラー 1 vdev と、320 GB と 250 GB のミラー 2 vdev です。無駄なスペースを最小限に抑えるために、1TBドライブと320GBのドライブを分割することで、ミラーリングされたドライブと一致する500GBのパーティションと250GBのパーティションを持つことができます。これにより、圧縮前にプールに合計750 GBの容量が提供されます(RAID 1 + 0と同様の構成で)。このドライブの残りのスペース(500GBと70GB)は、インターネットからダウンロードして「インターネットにバックアップ」したため、気にしない内容など、他の目的に使用できます。

余裕がある場合は、250 GB ドライブを別の 1 TB ドライブに交換することをお勧めします。これはzfsにはとても良いですが、btrfsにもとても良いです。どちらも透明圧縮の前に容量を約1.3TBに増やすためです。 「無駄な」スペースがはるかに少ないです。

RAID-1 /ミラーリングを実行するためにLVMまたはmdadmを使用しないでください。 btrfs自体がこれを行うことができ、btrfsなどのバグ修正ファイルシステムを使用する目的のほとんどを無効にします。

スナップショットや透明な圧縮などの機能は引き続き機能しますが、実際にはドライブのみを提供するため、ファイルシステムのエラー修正機能が失われます。

あなたできる必要に応じて、ZFSまたはbtrfsでソフトウェアまたはハードウェア攻撃を使用できますが、a)必要ではなく、b)良い考えではなく、実際にはひどい考えです。設定作業がより多く、複雑で重要な機能が排除され、報酬も提供されません。

LVMまたはmdadmを使用するには、その上にext4(またはより良い方法で)使用してください。xfs

しかし、私はまだRAID-5/6のbtrfsを信頼していないと思いますが、RAID-1またはRAID-10(ミラーリングなど)には絶対に大丈夫でしょう。

関連情報