UNRAIDのすゝめ

鯖管のTです。

サーバー管理部屋ではいつもデータの短期・長期の保存について気にかけているのですが、最近はデータの長期保存用として UNRAID という NASシステムに注目しています。

UNRAID はその名のとおり、「RAIDでは無い(UN~)」NASシステムで仕組み自体はRAID-3/4 (固定パリティドライブ) に似ているものの、RAIDが提供する数々のパフォーマンスアップをデータの完全性を重視するあまりに台無しにしてしまっているものです。

RAID構成の場合は基本的に複数ドライブの並列アクセスによってパフォーマンス改善をするためにストライピングというデータの分散保存を行います (RAID-1 の場合はストライピングは行いませんが、ディスクの読み取りの際に複数ドライブにI/Oアクセスを分散して高速に読み取る場合があります)。

RAID-3/4 ではデータのストライピングを行ったうえでドライブ破損時の復旧用のパリティデータを特定のドライブに保存することを行いますが、これは結果的に負荷が集中する固定パリティドライブの早期損傷をおこしてしまいます(どのドライブが先に損傷するかが推測しやすい、というメリットでもあります)。

RAID-3/4のパリティ構成

RAID-5/6 ではパリティ情報をさらに複数ドライブに分散することによって特定のドライブに負荷が集中しないようにしますが、これがRAIDシステムにおいての致命的な問題を引き起こします。「複数ドライブ同時破損によるデータ全損」です。

RAID-5のパリティ構成

RAID-5 システムでは1台分のパリティデータを保持し、1台までの損傷であれば回復できますし、RAID-6システムでは2台分のパリティデータを保持しているので2台分の損傷であれば回復できます(尚、この「2台分」のパリティデータは「1台目の復旧中に2台目が壊れた場合」を想定しているため、2台分の余裕があっても HDD交換は直ちに行わないといけません)。RAID-6 環境で3台目のドライブが破損すると他のドライブにストライピングされている情報が歯抜けになるため分割されずに一つのストライプに収まるような小さいデータで無いかぎりはデータの復旧が困難になります。

UNRAIDではRAID-3/4 のようなパリティドライブ固定方式を採用していますが、大きな違いは「ストライピングをしていない」ということにあります。ストライピングを行っていないということはストライピングによる高速化の恩恵を受けられないということになるのですが、これは各ドライブ内に完全なファイルシステムを格納できるということになります。極端なことを言えば、ドライブ1にNTFS、ドライブ2にexFAT、ドライブ3にext4 を入れて、それぞれのドライブから得た情報でパリティを計算してドライブ4にパリティデータを保存ということもできるのです。

UNRAIDのパリティ構成

この非ストライプ固定パリティ方式を採用した場合は従来のRAIDシステムには無いデータの保全性が発生します。UNRAIDでも最大のパリティドライブ数は2台までですが、たとえ3台のドライブが同時破損しても残っているドライブ内のデータは各ドライブ内で完結しているため そのまま読み出しが可能です。

データドライブが破損してもパリティから復旧
複数台破損しても残存ドライブのデータは完全

ただしストライピングをしていないということはパフォーマンスに対して大きな悪影響があるということになります。また、それぞれのドライブ内でファイルシステムが完結していることもあって、各ファイルは各ドライブ内にしかおけません。UNRAID自体は複数ディスクを横断検索できる仕組みを備えているのですが、同一ファイルをドライブ1とドライブ2に跨って配置することはできないのです。

UNRAIDではこの問題を専用のキャッシュドライブ(btrfs の RAID-1)を設けることによって解決しています。新規に書き込まれたデータは一度高速なキャッシュドライブ内に保存され、データ容量が確定してから長期保存用のUNRAIDアレイに保存されます。キャッシュドライブ容量を超過するデータを書き込んだ場合は直ちにUNRAIDアレイに書き込まれますが、合計サイズ不明なファイルを書き込んだ場合は一時的にドライブ内の容量を使い切って転送エラーになることがあります(同じファイルを二回目に書き込もうとすると他のドライブに配置されるため容量不足が解決されます)。

データの非ストライプ化はUNRAIDシステムに対して著しいパフォーマンスの低下をもたらします。UNRAIDアレイ内の複数のドライブと各キャッシュドライブを横断したファイル検索機能があるため全体を一つのネットワーク共有として扱えるため不便はありませんが この横断ファイルシステム検索はソフトウェアRAIDでしか実現できなためハードウェアでの高速化はできず、UNRAIDアレイへの書き込みは多くのCPUリソースを消費します。このため通常のUNRAID運用では日中はキャッシュドライブへのデータの書き込みを優先して CPUリソースは仮想環境の提供に使用、業務終了後の夜間に余ったCPUリソースをフル活用してキャッシュドライブの中身をUNRAIDアレイに反映、という昼夜で変わる業務サイクルが存在する現場に向いた構成となっています。

UNRAIDシステム自体は FreeBSD ベースですが、仮想環境における物理ハードウェアのパススルー構成には定評があり、UNRAIDサーバ上に搭載した高性能ゲーム用グラフィックスボードのレンダリング結果をネットワーク越しに複数台のシンクライアントPCに届けるようなハイエンドゲーム体験もできるようになっています。

また、ネットワークも最新のマルチギガ構成に対応しており、DHCP信号等を従来のネットワークからブリッジすることによってマルチギガハブ上の貴重なネットワークポートを消費しなくてもネットワークが必要とする最低限の構成情報を供給させることができるような機能も備えています。

尚、UNRAID のインストール形態と価格ですが、UNRAIDは原則としてUSBメモリインストールで USBメモリのシリアル番号で固有認識されます。

価格はUNRAIDアレイにHDD 6台までの Basic版が $59、12台までの Plus版が $89、台数無制限の Pro 版が $129 で下位版からのアップグレード購入も可能です。体験版はネット接続必須にはなりますが 30日間の間 Pro版が試用可能です。

複数台HDD破損を見越したデータの長期保存にお悩みの皆さま、UNRAIDによる破損耐性の獲得等如何でしょうか(もちろん業務環境のバックアップやオフサイトレプリケーションは ActiveImage Protector で!)

※この発言は個人の見解であり、所属する組織の公式見解ではありません

※ UNRAIDは弊社の取り扱い製品ではございません。お問い合わせは開発元の Lime Technology, Inc. までお願い致します。