配列
Unraid のストレージシステムは、array と cache のアーキテクチャにより、柔軟性とデータ保護を両立します。array はオプションの parity 保護付きで主ストレージを管理し、cache pool はパフォーマンスを向上させます。
基本方針
-
パリティには最も大容量のドライブを使う - データディスクは parity disks より大きくできないため、将来の拡張制限を避けるには最も大きいドライブをパリティに使いましょう。デュアルパリティを使う場合、2 台のドライブはいずれも最大のデータディスク以上の容量である必要がありますが、互いのサイズは異なっていてもかまいません。どのディスクも、最小のパリティドライブより大きくすることはできません。
-
SSD は cache pool 用に取っておく - Unraid はメイン array の SSD に対する TRIM/Discard をサポートしていないため、時間の経過とともにパフォーマンスが低下します。代わりに、SSD は cache pools または未割り当てデバイスとして使用してください。これらの環境では、これらの機能が正常に動作します。
-
より良い書き込み性能のためにキャッシュを追加する - キャッシュは、高速ドライブにデータを一時保存してから Mover がそれを array に転送することで、書き込みを大幅に高速化します(通常は午前 3:40 に実行されます)。キャッシュされたデータは共有内にそのまま表示されるため、転送はバックグラウンドで行われてもアクセスは即時のように感じられます。
-
データ保護のために cache pool を使う - キャッシュデバイスが 1 台だけだと、Mover が実行されるまでキャッシュデータが危険にさらされます。cache pool に複数のデバイスを入れることで冗長性が確保され、キャッシュデバイス障害からデータを保護できます。
-
SSD はアプリと VM に最適 - アプリケーションと仮想マシンは SSD の速度の恩恵を大きく受けます。SSD を使った cache pool は、これらのワークロードに対して速度、効率、データ保護の最適なバランスを提供します。
-
暗号化は任意 - 暗号化は既定で無効で、ドライブの再フォーマットが必要です(これによりデータは消去されます)。必要な場合は、ディスクからデータを移動し、暗号化ファイルシステムへ変更してからフォーマットし、最後にデータを戻してください。詳細は Unraid でドライブを暗号化する方法 を参照してください。万一問題が起きた場合、暗号化はデータ復旧を複雑にする点に注意してください。
Unraid は、接続先の特定の SATA ポートではなく、シリアル番号とサイズに基づいてディスクを識別します。そのため、Unraid の割り当てに影響を与えずに、ドライブを別の SATA ポート間で入れ替えることができます。この機能は、故障したポートの特定や、不安定な電源ケーブルや SATA ケーブルの交換など、ハードウェア問題のトラブルシューティングに特に役立ちます。
ライセンスキーで許可されている数を超えるデバイスを割り当てたり接続したりすると、array は起動しません。
array の開始/停止
システムの起動時、通常はディスク array が自動的に起動します。ただし、新しいディスクを追加するなど、最近ディスク構成を変更した場合は、設定を確認できるように array はオフのままになります。
変更を行うには、まず array を停止する必要があることを覚えておいてください。停止すると、すべての Docker コンテナとネットワーク共有が完全に停止し、VM はシャットダウンまたは休止状態になり、ストレージデバイスはアンマウントされるため、array を再起動するまでデータやアプリケーションにはアクセスできなくなります。
array を開始または停止するには:
- Main タブをクリックします。
- Array Operation セクションに移動します。
- Start または Stop をクリックします。続行する前に、「Yes, I want to do this」というチェックボックスにチェックする必要がある場合があります。
ファイルシステムの選択
既定では、新しい配列ドライブはXFSでフォーマットされます。代わりにZFSまたはBTRFSを使用したい場合は、ドロップダウンメニューから希望のファイルシステムを選択してください。
ファイルシステムのオプションの詳細については、File systems を参照してください。
array の操作
Unraid は、ストレージ array のためのいくつかのメンテナンスおよび設定オプションを提供します。操作には次のものがあります:
- array にディスクを追加する - ストレージ容量を拡張
- array 内のディスクを交換する - 失敗したドライブをアップグレードまたは交換
- array からディスクを削除する - 廃止または array サイズを縮小
- array のヘルスとメンテナンス - array を監視・保守する
array の書き込みモード
Unraid には、array の操作を管理するためのさまざまな書き込みモードがあり、それぞれ速度、消費電力、ドライブの摩耗に関して長所と短所があります。これらのモードの仕組みと、キャッシュドライブまたは pool の役割を理解することで、ニーズに最適なようにサーバーを調整できます。
書き込みモードの概要
| 書き込みモード | 速度(典型値) | 消費電力 | ドライブがスピンアップするタイミング | データ保護 | 最適な用途 |
|---|---|---|---|---|---|
| Read/Modify/Write | 20–40 MB/s | 低 | パリティドライブと対象ドライブのみ | はい | ほとんどのワークロード、省電力、小さな書き込み |
| Turbo Write(Reconstruct) | 40–120 MB/s | 高 | すべてのドライブ | はい | 大容量ファイル転送、array の再構築、parity checks |
| Cache Write(SSD/NVMe) | 50–110 MB/s(SSD)、250–900 MB/s(NVMe)* | 変動あり | キャッシュドライブのみ | いいえ(移動されるまで) | アプリ、VM、頻繁な書き込み、速度の最大化 |
Read/Modify/Write
これは既定の書き込みモードです。既存のデータとパリティを読み取り、新しいパリティを計算してから、更新されたデータを書き込みます。スピンアップするのは parity drive と対象のデータドライブのみなので、消費電力が低く、ドライブの摩耗も少なくなります。ただし、読み取り/書き込みサイクルが増えるため、速度は遅くなることがあります。
このモードはいつでも使えますが、特に省電力を重視し、アイドル中のドライブをスピンダウンさせたい場合に適しています。小さな書き込みやまれな書き込みに最適です。
Turbo Write(Reconstruct Write)
Turbo write は reconstruct write とも呼ばれ、Unraid array の書き込み速度を向上させるために設計された機能です。すべてのデータドライブを読み取りながら、同時にパリティを更新します。この処理により、既定の書き込みモードで発生する、プラッタの回転待ちによる遅延がなくなります。ただし、これを効果的に機能させるには、array 内のすべてのドライブが回転して正常に動作している必要があります。
仕組み: 新しいデータを書き込むと、Unraid は他のすべてのデータドライブから読み取りながら、同時にパリティを再計算します。新しいデータと更新されたパリティはまとめて書き込まれます。array 内のすべてのドライブが稼働しており、かつ回転している必要があります。
使用する場面: 大きく連続したファイルを array に転送する場合。array の再構築中や parity checks 中は、すべてのドライブがすでに回転しているため有効です。書き込み時間を最小限にすることが重要で、すべてのドライブが正常であることを確認できる場合。
避ける場面: 待機中にドライブをスピンダウンさせて省エネしたい場合。小さな書き込みやまれな書き込みでは、書き込みのたびにすべてのドライブがスピンアップするため、消費電力と摩耗が増えます。1 台でも故障している、または不安定なドライブが疑われる場合も避けてください。すべてのドライブが正常に動作していることが前提だからです。
Turbo write は、一括処理や高スループットが必要なシナリオに最適です。ただし、省電力とドライブの摩耗低減を重視する日常的な作業では、最良の選択ではないかもしれません。
Cache Write
データはまず高速な SSD または NVMe cache に書き込まれ、その後 Mover と呼ばれる処理によって後でメイン array に移動できます。速度は、SSD では 50–110 MB/s、NVMe では 250–900 MB/s です(10GbE ネットワークを活用できる場合があります)。データが array に移動された後は、パリティによって保護されます。
使用する場面: アプリケーション、仮想マシン、ダウンロードなど、書き込みが頻繁な共有に。性能を向上させ、書き込み遅延の体感を減らしたい場合。
性能の目安:
- キャッシュドライブなし: 平均 20–30 MB/s、最大 40 MB/s まで
- SSD キャッシュあり: 50–110 MB/s
- NVMe キャッシュあり: ネットワークまたはドライブの制約に応じて 250–900 MB/s
Mover が実行される前に、追加の冗長性とデータ保護のために cache pool(複数デバイス)の使用を検討してください。
- Auto モード(将来の機能)は、すべてのドライブがすでに回転している場合にのみ turbo write を有効にします。
- コミュニティプラグイン(Apps タブで "Turbo Write" を検索)で、より高度な自動化やスケジュール設定オプションを利用できる場合があります。
書き込みモードを変更するには:
- Settings → Disk Settings に移動します。
- Tunable (md_write_method) を見つけます。
- 使用したいモードを選択します:
- Read/Modify/Write(既定)
- Reconstruct Write(Turbo Write)
- Auto(将来の機能)
- Apply をクリックして選択を確定します。
- 速度が必要なときは Turbo Write を使いますが、消費電力の増加とドライブのスピンアップには注意してください。
- 特に SSD や NVMe ドライブでは、最適な性能を得るために Cache Write を活用してください。
- ほとんどのユーザーにとっては、より高い速度が特に必要でない限り、既定の書き込みモードが最もバランスに優れています。
読み取りモード
Unraid では、ファイルを読み取る速度は主に、そのファイルを保持している個々のドライブによって決まります。パフォーマンス向上のために複数のドライブを組み合わせる従来の RAID システムとは異なり、Unraid は各ファイルを 1 台のディスクに保存します。つまり、複数ドライブの合算速度によって読み取り速度が上がることはありません。
性能の目安
- 一般的な単体 HDD: 70–250 MB/s(ドライブのモデル、使用年数、データの場所に依存)
- 一般的な SATA SSD: 400–550 MB/s
- NVMe SSD(pool 内): 250–7,000 MB/s(PCIe 世代とネットワーク/PCIe の制約が適用されます。例: 10GbE ネットワークでは上限は約 1,100 MB/s)
- ディスクが無効化され、そのデータが再構築されている場合、Unraid は残りのドライブとパリティ情報を使ってデータを再作成します。この処理中は、システム内で最も遅いドライブに応じて、読み取り速度が 30–60 MB/s あるいはそれ以下に低下することがあります。
- parity check やドライブの再構築など、array で進行中の操作も読み取り性能に影響する場合があります。これは、ヘッドの移動が増えることと、リソース競合が全体的に増えるためです。
キャッシュプール
Cache pools in Unraid provide significant advantages, particularly for write-heavy tasks, virtual machines (VMs), and Docker containers. These pools operate separately from the main array and can be set up with multiple drives using either the BTRFS or ZFS file system, supporting various RAID configurations for speed and data protection.
cache pool とメイン array の比較
| 機能 | cache pool(BTRFS) | cache pool(ZFS) | メイン array(Unraid) |
|---|---|---|---|
| 読み取り速度 | SSD: 400–550 MB/s、NVMe: 250–7,000 MB/s* | SSD: 400–550 MB/s、NVMe: 250–7,000 MB/s* | HDD: 70–250 MB/s(ディスクごと) |
| 書き込み速度 | SSD: 400–550 MB/s、NVMe: 250–7,000 MB/s* | SSD: 400–550 MB/s、NVMe: 250–7,000 MB/s* | 20–120 MB/s(パリティモードに依存) |
| データ保護 | RAID 1/RAID 10; RAID 5/RAID 6(実験的、重要データには非推奨) | RAID 1/RAID 10; RAIDZ1/RAIDZ2/RAIDZ3(安定版、本番運用向け) | パリティベース、ファイルシステム非依存 |
| 拡張 | ドライブサイズを混在可能。デバイスの追加/削除を動的に実行可能 | デバイスの追加/削除のサポートは限定的。RAIDZ からは削除不可。Unraid 7.2 では単一デバイス追加で単一 vdev RAIDZ を拡張可能 | ドライブは追加できるが、ストライピングや性能のスケーリングはなし |
| 復旧の複雑さ | データ損失のリスクが高い; BTRFS ツールが必要 | データ損失のリスクが高い; ZFS ツールが必要 | パリティベースで再構築しやすい |
| 最適な用途 | アプリ、VM、頻繁な書き込み | アプリ、VM、頻繁な書き込み、エンタープライズワークロード | 大量保存、メディアライブラリ |
*実際の NVMe 速度は、PCIe 世代、冷却、ネットワーク帯域幅に依存します(例: 10GbE の上限は約 1,100 MB/s)。
cache pool の利点
- 高い性能: NVMe pool は 10GbE/40GbE ネットワーク(1,100–3,500 MB/s)を飽和させることができます。
- 柔軟な RAID: BTRFS と ZFS の両方が、サイズの一致しないドライブでも冗長性のために RAID 1/RAID 10 をサポートします。
- 低レイテンシ: データベース、VM、Docker コンテナに最適です。
- ZFS の利点: ZFS は、データ整合性チェック、圧縮、スナップショットなどのエンタープライズグレードの機能を提供します。
cache pool の欠点
- パリティ保護なし: データは array に移動されるまで保護されません。
- 復旧リスク: BTRFS の RAID 5/RAID 6 は不安定です。単一ドライブの pool には冗長性がありません。
- ZFS に関する注意: ZFS は BTRFS よりも多くの RAM を必要とし、ハードウェア要件も厳格です。
cache pools の設定方法、管理方法、高度な機能を含む詳細については、Cache pools ページを参照してください。