こんにちは。オペレーショングループのイトウです。
24時間3交代制の職場で、データホテルにある数千台のサーバのお世話をしています。前職ではいわゆるホワイトボックスメーカーといいますか、PCやサーバを作る側の仕事をしていまして、ライブドアに転職してそれらを使う側の仕事をするようになりました。そんな経歴なので、ハードウェアの面から見たデータセンタの話を書いてみようかと思います。
1Uエントリーサーバ
データホテルにあるサーバで一番多いのは1Uサーバです。CPUは1サーバ当たり1個ですがシングルコア、デュアル、クアッドコアと3種類が混在しています。メモリはバンクが4スロットあり、そこにメモリモジュールが2枚、もしくは4枚インストールされています。HDDは2台ですが、通常RAID構成にはしません。
メーカーのラインナップで言うとエントリーサーバという一番安いクラスのものです。中にはもっと高性能なモデルもありますが、一番多い機種はこんな仕様です。メーカーからしてみるとこのクラスのサーバは価格勝負になりやすく、利益率が低いのであまりおいしい商品ではありません(笑)。
私も前職では5Uのサーバに物理CPUが8個、メモリは4GBx32本...なんてマシンを作ったりもしましたがそれとは対照的です。使う側からすると、ハードウェアは極力シンプルなもので台数を束ね、それをソフトの力で活用する、というのが理想的なようです。
RAID1 + バックアップ
HDDが2台のマシンでサーバを構築するとなると、オンボードのRAIDコントローラでRAID1を...と考えることが多いかと思いますが、RAIDは組まずに1台ずつ単独で使い、1台目をシステム+データ用、2台目をそのバックアップ用とすることが多いです。cronからrsyncを起動し、1日に1回フルバックアップ(同期)を取ります。
RAID1で耐障害性を上げるとはよく言われることですが、何かのトラブル(設定や操作上のミスも含む)でデータが失われた場合、RAIDでは2台のHDDから同時にデータが無くなります。しかしRAIDを組まずに一見原始的な日次バックアップとすることで、このような場合でも最悪前日分のバックアップから復旧することができます。
もう少しモデルのランクが上がってHDDが3台入るサーバの場合、ハード屋さん的な考えだと、1台のサーバにどれだけ大きいストレージを作成する事ができるかという方向に興味が行きがちで、3台以上ならRAID5でいいんじゃない?となります。
しかしデータホテルではHDDが3台ある場合、1台目と2台目でRAID1を組み、3台目にRAID1のバックアップを取る構成をとります。HDDが3台あるのに使える容量は1台分とかなり贅沢な使い方に見えますが、こうすることでRAID1のリアルタイムな冗長性を確保できますし、万が一のトラブルでデータが失われた場合でも、前述のようにバックアップディスクから少なくとも前日の状態に復旧することが可能です。
お金では買えないデータの保全を第一に考えた結果の使い方と言えると思います。
筐体交換
データホテルにあるサーバでハードウェアの障害が発生した場合、まずログなどからHDDが異常だと判断できればHDDを交換します。そうでない場合、どこが異常かすぐに判断できない場合はどうするか?この場合「筐体交換」と言って、HDD以外のサーバ本体全体を交換します。障害が発生したサーバからデータが入ったHDDを抜き、新しいサーバ本体を持ってきてHDDを取り付け電源ON、対応完了です。
注意すべき事として、筐体交換をすると、サーバのMACアドレスが変わってしまうので、データホテル標準としてOSインストール後、
/etc/sysconfig/network-script/ifcfg-eth*
ファイルに自動的に記載されるMACアドレス部分を削除するというルールになっています。この対処によって、サービスのダウンタイムを最短にすることができるのです。また、前述のようにシンプルで同じ構成のサーバを大量に扱っているからこそ可能な対応です。ディスクが抜かれた筐体は別途、機材担当者が大まかに原因を調べ、メーカへ修理に出すか、故障部分の部品を交換することで対応します。
前職ではサーバが故障して戻ってくると、原因はマザーボードかメモリか、それとも電源か...などと時間をかけて切り分け作業を行ったものですが、サーバを使う側の立場に立つと、サービスの継続が最優先、データの保全が最優先、となり、対応方法も対照的になります。
こんなデータホテル、いかがでしょう?などと宣伝臭くなってきましたのでこの辺で...