サーバを新しくしようと思う

暫く家を空けていたのでブログもすっかりご無沙汰していたが久しぶりに再開しようと思う。というのも、改めて我が家のサーバを構築しようと思っているので、構築過程のメモ書きが必要になったからだ。

前回サーバを構築したのは2007年12月だから、もう4年半以上経っている。超安定稼働していてるのでサーバを新しくしようという動機がなかった。前回はVMware仮想マシンを動かすエンジンという機能を主軸としたため、複数の仮想ディスクを格納することを考慮して2TB(1TB×3によるRAID5)を搭載した。そのお蔭もあってHDDの容量も十分足りていたのだが、昨今、動画品質がフル・ハイビジョンになり、録画のファイルサイズも巨大化してきたので、そろそろ窮屈になってきた。現在、1.6TB程度を消費して、あと300GB程度の余力しか無くなってきた。サーバの構築と安定稼働までに数か月は見ておいた方が良いので、そろそろ構築を始めた方が良いだろう。

現在使っているサーバの主な仕様は以下の通り:

CPU Intel Core2 Duo E8600 3.33GHz
Memory 8GB DDR2 800
MoBo ASUS P5K-VM (Intel G33 Chipset)
HDD HITACHI HDT721010SLA360 (1TB) x3 (Software RAID5 2TB)
OS Ubuntu 8.04 LTS server amd64
VM VMware Server 2.0

と、ザッとこんなスペックだが、さすがに4年の歳月を感じさせる。実は数か月前にCore2 DuoからCore2 Quadにアップグレードしようと調べたら、既にCore2シリーズが販売中止になっていたことに初めて気づいた。

さて、どの様なサーバにしようか思案してみたのだけど、次のような概要にしようと考えている。

  • 仮想マシンエンジンの機能を分離して、大容量NASの機能をメインに考える。
  • とは言え、運用管理用に仮想マシンは必要なので、KVMを使って最小限の構成にする。
  • 他のマシンはディスクレスにしたいので、NFS/iSCSIによるブート機能を提供する。
  • OSは管理が簡単なLinuxを使う。管理はリモート(別室)からCLIしか使わないのでLinuxの方が簡単。それにGUI使わないのであればLinuxの方が圧倒的に軽い。
  • 前回と同様に消費電力を抑えた構成とする。
  • RAIDはSoftware Raid1として3TB以上の実用量を確保する。

という感じだ。

本当は、仮想マシンエンジンとしても使いたかったのだけど、使おうとしているVMwareが既にVMkernl専用ハイパーバイザしか出していないので、前回のようにLinuxの上に仮想環境を構築することはできない。そこで、仕方なく仮想マシン・エンジンは別のマシンとして独立させ、このサーバは主にストレージの提供、ネットワーク管理(ネームサーバとDHCPサーバ)機能、そしてその統合機能として他のマシンへのネットブート機能の提供をメインとして考える。

CPU:
ファイルサーバ機能だけであればCeleron程度のものでもよいのだが、複数のディスクレスに対してサーバ機能を提供するとなると、そこそこのネットワークのトラフィックをこなして、更にHDDとのIOもマルチプロセス/スレッドによるアクセスとなる。また、小規模だがKVMを使って仮想マシンを内部に持たせ、外出先からのアクセスサーバやWindows XPによる家事手伝いマシンを動かす予定。すなわち各スレッドにはそれ程の性能を必要としないが、スレッドの数が多い方が良いことになる。となるとCore i7によるハイパースレッディング 8Coreだろか。消費電力を考えれば3770Tということになる。

メモリ:
ファイルサーバとして使うのであれば16GBにしておこう。これらのメインメモリはHDDの大容量2次キャッシュ効果が期待できる。OSの先読みや遅延書き込みによりメインメモリをバッファとして利用できる。(ただし、遅延ん書き込みは突然のサーバのダウンによってデータが消失する可能性があるので注意が必要。でも、家の中でトランザクションするわけではないので、余り気にしない。)それに、今は16GBでも1万円そこそこで買えてしまう。数千円をケチって8GBで我慢する必要もない。

ストレージ構成:
今回はSoftware RAID1にする。前回はHDDの利用効率を考えてRAID5にしてしまったが、これが遅い。書き込み時にパリティを生成したりするオーバーヘッドがあるので遅くなる。RAIDカードを使う方法もあるが、安物では高性能CPUを使ったソフトRAIDよりも遅くなってしまう上に、障害時の普及に結構制限があったりする。実際に使いものになるのは数万円のクラスになるので、HDDが数台買えてしまう。だったら、速度低下が殆んどないソフトRAID1でOKということになる。
RAID10で6TBのファイルシステムも考えてみたがやめた。RAIDと言えども内容が壊れない保証はない。複数のHDDでストライピングして大容量化した場合、RAID自身が壊れた場合、全ての内容が読み出せなくなる可能性がある。そうした被害を局所化するためにも1ボリュームで大容量化するのではなく、ボリューム毎にマウントポイントを変えておく。それに個人ユースで1ファイルで3TBを超えることは先ず有り得ない。

ネットワーク:
ネットワークはギガビット2つによるチーミングにより帯域と可用性を確保する。これでネットワークがボトルネックになることは、まず無いと思う。

消費電力:
昨今の省エネのトレンドと、今後の電気料の値上げを考えると、出来る限り電気は喰わない方が良い。前回はCPUに低消費電力のE8600を採用したが、当時の技術ではそれでも65Wで、HDDを3台搭載していので、システムでは90W程度だったと記憶している。今回は、通用時(低負荷時)で50W以下を目指したい。


さて、こんな感じで構成を考えてみよう。