CentOSでストレージサーバ(RAID5)を組んでみる – その1 (構想・ハードウェア構築編)

4年前のmini-ITXブームに乗っかって作ったサブPCが埃を被ってるので、友人から勧められたストレージサーバへの転用をトライしてみることにしました。ちょうどKindleセールでサーバ構築の書籍が安くなっていたので、良いタイミングだと思い購入してみました。

本書籍とWEBの情報を頼りにサーバ構築を進め、冬休み12連休をほぼ丸々使って完成させることができました。かなり大変な作業だったため備忘録を残そうと思います。内容は3つの記事に分けて記事にします。

  1. 構想・ハードウェア構築編 ←この記事はここ
  2. OS導入・ソフトウェア設定編
  3. 不具合解析とその後の処理編

なぜ家庭用ストレージサーバが必要なのか?

近頃は写真や動画のデータ容量が大きくなり、PCやスマホの容量はすぐ上限に達します。家庭内でのデータ管理ニーズも高まっていますが、クラウドストレージは月額費用がかかり、大容量データの転送速度やセキュリティ面にも課題があります。

そこで自宅にストレージサーバを構築すれば、以下のようなメリットが得られます。

  1. 大容量データの一元管理:家族の写真や動画を一箇所にまとめられる
  2. メディアサーバとしての活用:映画や音楽をどの部屋からでも視聴可能
  3. 自動バックアップ:PCやスマホのデータを自動でバックアップできる
  4. データの安全性向上:RAIDを組むことで、HDD故障時のデータ消失リスクを低減
  5. 拡張性:将来的にストレージを増設しやすい

私の場合は、音楽ファイルや録画データなどが徐々に増えてきて、外付けHDDでの管理が煩雑になってきたことが大きなきっかけでした。思い出の写真や自分で作った動画などを失いたくないという思いもあります。

RAIDの構成

RAIDとは「Redundant Array of Independent Disks(独立したディスクの冗長配列)」の略称で、複数台のハードディスク (HDD) を組み合わせることで仮想的な1台のHDDとして運用し、冗長性を向上させる技術です。

RAIDレベルの比較

以下は代表的なRAIDレベルの比較表です。

RAIDレベル必要HDD台数特徴メリットデメリット主用途
RAID02台~データを複数のHDDに分散して書き込む読み書き速度が向上するHDDが1台でも故障するとデータが全て失われる高速なアクセスが必要で、データの重要性が低い場合
RAID12台~同じデータを複数のHDDに書き込む (ミラーリング)1台のHDDが故障してもデータは失われない使用できる容量はHDD1台分のみ(コスト効率が悪い)安全性を重視する小規模サーバ
RAID53台~データを分散し、パリティ情報も分散保存1台のHDDが故障してもデータは復元可能。容量効率も良い書き込み速度がやや低下する。再構築中に別のHDDが故障すると危険バランスの取れた家庭用サーバ
RAID64台~RAID5の発展形で、2つのパリティを持つ2台のHDDが同時に故障してもデータは復元可能RAID5よりもさらに書き込み速度が低下し、コスト増大規模サーバや重要データの保管
RAID104台~RAID1とRAID0の組み合わせ高速かつ信頼性が高い使用できる容量は全HDDの半分のみ高性能と信頼性の両方が必要な場合

RAIDレベルの選択

RAIDには0から6までの7種類がありますが、今回はRAID5を構築したいと思います。RAID5は分散パリティと呼ばれる方式で、HDDの最低本数が3台以上で構成されます。データを複数のHDDに分散(ストライピング)して格納しながら、同時に「パリティ」(誤り訂正符号)データも生成・保存します。これによって万が一1台のHDDが故障しても、残りのディスクからデータを復元できるというメリットがあります。

コスト効率と信頼性のバランスが良いため、家庭用のストレージサーバとしては最適だと判断しました。一般的に、以下のような理由からRAID5が家庭用サーバで人気があります。

  1. 容量効率が良い:N台のディスクで(N-1)台分の容量が使える
  2. 適度な冗長性:1台のディスク故障には対応できる
  3. コストパフォーマンス:RAID1(ミラーリング)よりも容量あたりのコストが低い
  4. 読み取り性能が向上:複数ディスクから並列で読み取れる

ソフトウェアRAID or ハードウェアRAIDの選択

AIDを構築する方法には、専用のハードウェアを使う「ハードウェアRAID」と、OSの機能を使う「ソフトウェアRAID」があります。それぞれの特徴は以下です。

  • ハードウェアRAID
    • メリット:CPUに負荷をかけない、OS非依存、専用キャッシュによる高性能
    • デメリット:高価、RAIDカード故障時の互換性問題、メーカーサポート終了のリスク
    • 向いている用途:業務用サーバ、高負荷環境
  • ソフトウェアRAID
    • メリット:低コスト、柔軟な設定、OS標準機能なのでサポート期間が長い
    • デメリット:CPUリソースを消費、OS依存、キャッシュ機能が弱い
    • 向いている用途:家庭用サーバ、予算重視のプロジェクト

今回は以下の理由からソフトウェアRAIDを選びました。

  • 手持ちのCore i3プロセッサでも十分な性能が出せそう
  • 初めてのLinuxマシンなので、情報が豊富な方が安心
  • コストを抑えられる(専用のRAIDカードが不要)
  • Linux mdadmの信頼性は十分高い

OS (Linux ディストリビューション)

WindowsServerなどの有料製品を使う予算はありませんし、今回はLinuxの勉強も兼ねているため、OSはLinuxとしました。問題はどのディストリビューション(配布版)を選ぶかです。

サーバ向けLinuxディストリビューションの比較

ディストリビューション特徴サポート期間使いやすさ情報量
CentOS安定性重視、RHEL互換長期(通常10年程度)やや難しい多い
Ubuntu Server最新機能と安定性のバランス5年(LTS版)比較的簡単非常に多い
Debian超安定志向、保守的長期(5年以上)やや難しい多い

Linuxのストレージサーバやファイルサーバで検索してみると、ディストリビューションとしてCentOSがよくヒットしました。仕事ではUbuntuしか使ったことがなかったためあまり馴染みはありませんでしたが、サーバ界隈ではデファクトスタンダードとして広く使われているようです。

ファイルサーバを勧めてくれた友人はUbuntuで組んでいましたが、書籍やWEBページの情報量がCentOSの方が潤沢だったためCentOSを選択することにしました (そのため冒頭で紹介した書籍を購入しました) 。

ハードウェア構成

使い回しするパーツ

予算を抑えるため、サブ機のパーツはそのまま流用し、新規購入品は増設するHDDとその周辺機器のみとします。主要パーツは以下です。

ストレージサーバに必要なスペック

ストレージサーバの用途によって必要なスペックは変わりますが、一般的な家庭用途であれば比較的低スペックでも十分動作します。以下は目安です。

  1. CPU:ファイル共有だけなら古めのCPUでも十分。メディアのトランスコードを行う場合は高性能なものが必要
  2. メモリ:最低4GB、快適に使うなら8GB以上推奨
  3. ネットワーク:有線LANが必須(できれば1Gbps)
  4. 電源:搭載HDDの台数に応じた容量と信頼性の高いもの

今回使用する構成は、単純なファイル共有やメディアサーバとして使用する分には十分なスペックだと判断しました。Core i3-4160は2コア4スレッドで3.6GHzと、ファイルサーバとしては十分な性能です。メモリも8GBあれば余裕があります。

このとき気付いたことですが、手持ちのPCケースはmini-ITXケースとしては珍しく3.5インチベイ (2.5インチ共用) が3つもありました。さらに5インチベイと2スロットタイプのグラボ搭載スペースまであり、見かけによらず広いスペースを持っています。サーバ用として有用のように思います。

5インチベイとグラボ搭載スペースに3.5インチHDDが載せられれば3.5インチHDDが5つ搭載可能で、小型ストレージサーバケースとして理想的な構成になりそうです。

事前準備

流用に伴いマザーボードのCMOSクリア (BIOS初期化) を実施しておきました。これにより、接続デバイスの情報や起動順位、ファン速度、オーバークロック等の設定が初期化され作業がスムーズに進みます。もともと入っていたOSについてはWindowsでもLinuxでも、他のシステムから見ればただのデータに過ぎないためそのシステムでフォーマットすれば問題ありません。

HDD容量と台数の検討

現在、音楽ファイルや動画ファイルなどを3TB×3台で管理しています。今回はこの環境を引き継ぎたいためRAID5での実効容量は9TB用意することにしました。そこで、これらのHDD3台を流用しつつ、追加購入台数を検討します。

RAID5では実効容量がHDD台数-1となるため、9TB用意するためには3TBのHDDが4台必要です。また障害発生対策としてホットスペア(予備ディスク)を用意する場合はさらに+1台となるため、理想的には3TBのHDDが5台必要となります。

そのため、計2台のHDDを追加購入することにしました。RAIDはアレイ内で一番小さい容量のドライブに合わせて構成されるため、追加分も3TBのものが必要です。また、できるだけ同じメーカー、同じ型番で揃えたほうが不具合が少ないという情報があったため、これまで使っていたWesternDigital製のWD30EZRZ-RTを用意することにしました。

HDDの選び方と注意点

ここで一つ重要な注意点があります。同じロットのHDDを複数台用意するのは極力避けるべきです。なぜなら、同じ製造ロットのHDDは材料や製造条件が似ているため、壊れるタイミングが重なる可能性が高いためです。HDDが同時期に故障すると、せっかく冗長性を持たせるためにRAIDを組んだ意味がなくなってしまいます(もっとも、既存の3台はそのまま使うしかないのですが……)。

念のためSMART情報を確認したところ、電源投入回数はバラバラだったため問題ないと判断しました。また、追加の2台はそれぞれ別の店舗で購入して、できるだけ異なるロットになるよう配慮しました。

サーバ向けHDDと一般向けHDDの違い

HDDを選ぶ際に悩むのが、一般向けのHDDとサーバ向け(NAS向け)HDDのどちらを選ぶかです。簡単に違いをまとめると、

  • 一般向けHDD(例:WD Blue)
    • コスト:安価
    • 耐久性:一般的な使用に対応
    • 振動対策:基本的な対策のみ
    • 保証期間:短め(2-3年程度)
  • NAS/サーバ向けHDD(例:WD Red)
    • コスト:やや高価
    • 耐久性:24時間365日の常時稼働に対応
    • 振動対策:複数台設置環境向けの対策あり
    • 保証期間:長め(3-5年程度)
    • エラー制御:RAIDに適した制御(TLER等)

今回は一般向けのWD30EZRZ-RTを使用していますが、新規にRAID用のHDDを購入するなら、WD RedなどのNAS向けHDDの方が安心です。ただ、費用対効果を考えると、一般向けHDDでも十分に実用的です。特に家庭用途で24時間稼働させないなら、一般向けHDDで問題ないでしょう。

なお、流用する3台のHDDはWindows環境で「ディスクの管理」からボリュームを削除しておきました。どのみち後でCentOS上でフォーマットすることになりますが、念のための措置です。

SATAケーブル(と失敗)

SATAケーブルも型番まで合わせた方が良いのかと思いましたが、対応速度が同じなら問題無いらしいです。そのため手持ちの6Gbps対応ケーブルをかき集めて、足りない分は以下のケーブルを購入しました。コンパクトに配線したかったので短い30cmタイプを買ったのですが、これが大失敗でした。短すぎて筐体に這わせて配線できず、空中配線になってしまいました。また片側L字タイプにしたのも失敗です。mini-ITXケースはスペースが狭いため無理やり曲げざるを得ない箇所もあり、通信品質が懸念されます。各種電源ケーブルなどを接続した後の状態まで考慮すべきでした。50cmのストレートタイプを選んでおけば良かったと後悔しています。

ケースファン

HDDの信頼性を高めるために計4基のケースファンを用意しました。mini-ITXケースにとってはやや過剰かもしれませんが、HDD故障の要因は物理的な衝撃を除くと、殆どが「高温環境下での使用」だと言われています。HDDの最適動作温度は一般的に25〜40℃程度と言われており、これを維持するために冷却に力を入れました。

今回は3ピン制御の140mmファンを選びました。静音性と冷却性能のバランスが取れた、評価の高いモデルを選定しています。

【送料無料】GELID ケースファン 14cm SILENT14 PWM/AM

同様に120mmファンです。

Gelid FN-PX12-11 SILENT 12 BLACK GELIDブランド静音ファン 120mm

3pinファン用電源分岐ケーブルです。

OSインストール用USBメモリ

次回の記事で詳しく説明しますが、最終的にOSはUSBメモリにインストールすることにしました。できれば信頼性の高いSanDiskかTranscendの製品が良かったのですが、近所の家電量販店には在庫がなく断念しました。

冬休みのまとまった時間を有効に使いたかったため、当日すぐに作業を始められることを優先し、USB3.0対応でコストパフォーマンスの良いバッファロー製を選びました。念のため2つ購入しています。

・RUF3-PW16G-YE(イエロー)
・RUF3-PW16G-BL(ブルー)

BUFFALO オートリターン機能 USB3.0 マカロンデザインUSBメモリー 16GB ピンク RUF3-PW16G-PK

その他購入した周辺部品


HDD用のSATA電源増設用です。

【限定】シリアルATA電源2分配ケーブルアイネックス (AINEX) S2-1501SAB ●SATA電源(オス)→SATA電源(メス)x2個●長さ:15cm

HDD用のSATA電源延長用です。


HDD用のSATA電源増設用です。

【限定】シリアルATA電源3分配ケーブルアイネックス (AINEX) S3-1504SALA ●SATA電源(オス)→SATA電源(メス)x3個●最長:23cm●ブラックタイプ●下向きL型

マザーボードのUSB 3.0コネクタから端子を引き出すケーブルです。次回以降の記載しますが、最終的にOSをUSBメモリにインストールすることになったため使用しました。筐体にUSBメモリを刺すと物理的な破損リスクが高まりますし、何よりコンパクトにまとめたかったため購入しました。

AINEX ケース用USB3.0ケーブル [ 7.5cm ] USB-015


USBポートは使用しないため保護のため購入しました。

アイネックス DC-104A(10個入) コネクタカバーUSB Aメス用

5インチベイに3.5インチベイを固定するため購入しました。金属製のため冷えそうです。


電気絶縁・耐熱テープです。冷却ファンやケーブルを固定するために購入しました。


次回は実際にCentOSをインストールし、RAID5を構築していく過程を紹介する予定です。