小型のメディアサーバー兼NASをたてる その2 〜RAID編〜

[投稿日] 2012年10月24日
[最終更新] 2016年7月31日

構築、参考記事

前回に続いて、HPのProliant MicroServerにUbuntu Server 12.04をインストールし、DLNAサーバーやらNASやらにしてしまおうという話です。

前回まででモノの準備は整い、何のソフトを使うかも決まりました。後は構築するだけです。とはいうものの、実際にやってみるとあれこれひっかかるものです。いろいろな人の記事を参考にしました。今回のハードディスクの構成においては、ubuntu Magazine Vol.7 の P.92-97の記事、MicroServerとSambaで作るオリジナルNASという記事が参考になりました(「Ubuntu Magazine Japan vol.07記事を公開」)。連載記事を元に、Web上にも記事を書かれたようです(「ASCII.jp:HP MicroServer×Ubuntu ServerでNAS作り|MicroServerとSambaで作るオリジナルNAS」)。以上の記事では二台のHDをRAID 1のみで構成しているので、今回の環境とはだいぶ違うのですが、基本的なところは同じなのでずいぶん参考になりました。

スポンサーリンク

OSのインストールとRAID

前回のとおり、今回の採用OSはUbuntu Server 12.04です。Home | Ubuntuあまり話題になっていない気もしますが、この記事を書いている間に12.10も出ました。

言語の選択

言語の選択が必要ですが、サーバー機として使う場合、言語は英語がよいと思います。エラーが出たときに、日本語よりも英語のほうが情報量が多いのが現状ですから。

RAID

あとはよくしたもので、指示通りにやればすんなりといきます。ただ今回はRAIDを組むことにしたので、その場合はパーティションの区切りなど多少考えないといけません。RAIDというのは、複数のHDを組み合わせて使う技術で、たとえば1台だめになっても他のHDがフォローしてデータを破損させないなどのデータ保護や、データを分散させてできるだけ同時に書き込み、読み込みを行い速度をあげるなどという機能を実現できます。ハードウェアレベルで実現するものとソフトウェアレベルで実現するものがあります。

Linuxにはカーネルの機能としてソフトウェアRAIDが実装されていますので、今回はそれを利用します。

パーティションの区分け

以下はLinux標準のファイルシステムであるext4で組む場合です(参考として、ZFSを用いる場合も後述します)。パーティションの区分けとしては、各以下のようにわけました。パーティションの分け方については、先に紹介した記事のASCII.jp:HP MicroServer×Ubuntu ServerでNAS作り|MicroServerとSambaで作るオリジナルNASが非常に参考になります。

  • /boot…ext4,300MB程度
  • /…ext4,80GB
  • スワップ…4GB
  • /home…残りの領域すべて

/homeについて、残りの領域すべてところで、2TBこえのHDを扱うときには、頭に1MBの空白の領域をつくるべきだそうです。GPT(GUID Partion Table)という比較的新しいパーティションの分け方の規格にのっとるためだそうで、こうすることで従来は扱えなかった3TBのHDとかも扱えるようになるとのこと。でも今回は2TBだし、いらないんじゃないかなぁと思って特に作成しませんでした。

/bootはブートフラグをONにすることを忘れずに。容量が少ないと、古いカーネルですぐにいっぱいになって、/bootをいじることになります。まぁ専用のコマンドがあるのですが、面倒ですし、ちょっと焦ります。

ところで/bootにはブートローダーであるGrubをインストールするわけですが、このGrubははext2までしか対応していないなんて記事も散見されました。が、実際ext4でなんの問題もありませんでした。恐らくバージョンアップを重ねて対応するようになったのでしょう。今でも古いGrubを用いたディストリビューションなんかでは、ext2が無難なのだろうと思います。

さて、パーティションをわけたら次はRAIDの設定です。RAIDの設定の仕方についても、上記の記事が参考になりますが、問題はRAIDレベルです。/bootはこれまたGrubの関係上、RAID-1までしかダメなようです。さらにミラクル・リナックス:ブートディスクをソフトウェア RAID 1 (ミラーリング) に構成する際の注意なんていう問題もあるようです。RAIDといいながら、一つのディスクにしかインストールされないという問題ですね。

とはいえ最初のインストールの段階ではどうしようもないことのようなので、そこは気にせず/bootはRAID-1を組んでしまいました。次に/と/homeですけれど、これはRAID-5がよいと思います。目的がメディアサーバーなのである程度の容量も欲しい、といってせっかくだから少しは冗長性も…となるとRAID-5になってしまいますね。壊れるときは壊れるんだという豪気な人ならRAID-0もいいかもしれないし、そこまで容量いらねーよって人ならRAID-10が速度とそれなりの堅牢さを兼ね備えてよいかもしれません。(2015/09/26追記:私の今はRAID-1が好きです。まぁそもそも個人用途じゃWebサーバーでもない限りRAIDいらないなぁと思いつつ、どうせRAID組むなら堅牢にいきたい、という風に考えるようになりました)

次回はソフトウェアの導入

以上でパーティションの作成を終えます。インストール画面であれこれする方法のほかに、インストールメディアからLiveでUbuntuを立ち上げて、その状態から端末を開き、直接fdiskコマンドでいじってしまうという方法もあります。次のZFSを用いる場合は、この方法を使うことになります。以上でRAID構築編は終わりです。最後に最初に導入するソフトウェアを選択するわけですが、サーバーとして使う場合は出来るだけ最小構成が基本です。ソフトウェアが増えれば、それだけバグやセキュリティホールの恐れも増えるということでしょう。とはいえ、さすがにSSHくらいは最初から導入しておいてもよいのではないかと思います。というわけで私はBaseにSSHを加えてインストールを行いました。次からソフトウェアの導入に入ります。

小型のメディアサーバー兼NASをたてる その3 〜初期設定、SSH編〜 : 或る阿呆の記

おまけ:ZFS

以下はZFSについての記事です。最初、物珍しさでZFSでフォーマットしてRAID-Zなんて組んで喜んでいましたが、パフォーマンスがでなかったことや再インストール時にいろいろめんどくさかったなどの事情で、今は使っていません(2013年5月24日現在)。参考までに。

ZFSでRAID-Zを組む

ZFSを使わなければ、前項までの手順です。が、ZFSを用いたい場合は、多少手順が煩雑になります。私の場合は諸事情のため、ややこしいのすが/bootと/はext4、/homeはZFSにしました。あんまりオススメできません。やるならどーんと/からまるごとZFSにしたほうがわかりやすいというものです。わかりやすさは正義です。わかりづらいことはただそれだけでトラブルの原因になります。ただし、/bootだけはZFSに対応していないのでext4にするしかないようです。ZFSおよびRAID-Zの利用については、以下の記事を参考にしました。

ZFSを利用するためのリポジトリを読み込むときのコマンドが記事によって異なるのは、バージョンの差異のためでしょう。Ubuntu12.04においては、apt-add-repository ppa:zfs-native/dailyが正しいです。

ただルートでやる場合、私はどういうわけか debootstrap precise /mntだったかのコマンドが途中でとまるのか知りませんが、永遠に終わりませんでした。原因はよくわかりません。それで/をZFS化するのをなくなく諦め、/は通常通りext4でフォーマットし、/homeのみZFSでフォーマットしてRAID-Zにすることにしました。やり方はhirom.net» Blog Archive » UbuntuでRAIDZファイルサーバ構築メモを参考にさせてもらいました。ただ、私の場合は/homeそのものをZFSで構築したかったので、

$ cd
$ sudo mv home home.bak
$ sudo zfs set mountpoint=/home tank/data
$ sudo zfs mount tank/data

と荒っぽいことをしています。

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。