和歌山のプログラミング・システム開発ならシステムキューブ
DELLのエントリークラスサーバー機、PowerEdgeT110IIを、社内サーバーとして導入しました。
その経緯と、導入の簡単な説明をしてみたいと思います。
今回のサーバー導入以前は、一般的なデスクトップ型パソコンをファイルサーバー、開発用データベースサーバー、バージョン管理のサーバーとして使用していました。
内蔵のハードディスクドライブはあまり容量がないものでしたので、USBハードディスクを接続してデータ共有領域、もう一台を接続して、それに日次バックアップをとっていました。
単純にこのファイルの二重化のみで十分だと考えていたのは、運用方法として、ローカルに作成したファイルなどをサーバに共有するため、それで三重コピーとなり、ローカルPCのバックアップと合わせれば、ほぼファイルは失われることはないだろうという想定のもとです。
ただ弊社もこの春からメンバーも増え、共同作業が多くなるうちに、ファイル共有サーバーにのみ存在するファイルも多くなり、ファイル共有サーバーの可用性と耐障害性が必要となってきました。
そのため、たとえばRAID1等を利用したWindowsStorageServer2012のような製品も候補に挙がりましたが、データベースやバージョン管理など、汎用的に使うことと、ハードウェア保守をきちんと入れる意味で、PowerEdgeサーバーの購入に至りました。
PowerEdgeT110 IIはDELL社の中でも最も安価なサーバー製品ラインナップで、1Wayサーバーです。電源の冗長化、ハードウェアRAIDやハードディスクのホットスワップがありません。
1Wayサーバーはプロセッサ用ソケットが一つしかなく、プロセッサが一つしか搭載できません。
電源冗長化とは、電源を一つしか持たず、一つの電源が故障すれば、システム全体が停止するということです。
ハードウェアRAIDはRAID専用の拡張カードを持っていて、拡張カードの機能によって、RAIDが実現されるものですが、今回はソフトウェアRAIDです。
ハードディスクのホットスワップの有り無しは、電源をつけたまま、障害ハードドライブの交換が行えるかどうかという差となります。
こう書いてしまうと、はたして十分な可用性を持つのか、と思われる方もいらっしゃると思います。
サーバー自体が停止した際は、USB接続の外部ハードディスクにミラーをとっていますので、それを他のパソコンで読み出し専用の共有をします。
ファイルの編集は個々のパソコンで行い、保守が入ってサーバー復旧とともにファイル共有を行う想定でコストの削減を狙っています。
サーバー機自体のコストを抑えた分、RAID5+ホットスペアの構成をとっています。
三台構成のRAID5で、一台故障の際は、予備の1台がRAIDに組み込まれ、RAID5の再構築を行います。
PowerEdgeT110でRAIDを導入するにあたってオプションのPERC S300というRAID用のカードを選択しましたが、これはチップセットが持っているRAID機能を利用したもので、PERC S300は実質上SATAあるいはSASハードディスク用のホストアダプタです。
これに対応するドライバは現在WindowsServer2003~2008R2までとなっており、最新のWindowsServer2012には対応していません。
このPERC S300用のドライバは、Windows導入以前にあらかじめダウンロードしておかないと、RAIDボリュームにWindowsを導入することはできません。
起動時にCtrl+RでRAIDのセットアップ画面に入ることができ、ここでどの物理ディスクをRAIDに利用して、仮想ディスク(物理ディスク上に構成されたRAIDボリューム)にするかという設定になります。物理ディスクをホットスペアとして登録することもここでできます。
ここでRAID内の実質的なパーティション分割を行います。システムボリューム、ユーザー領域という形で、およそ4GBのRAIDボリュームを切り分けます。
この後、Windowsのインストールに移ります。まずそのままでは、インストールすべきハードディスクが見つからない状態になります。
ここで、RAIDコントローラーのドライバをCD-ROMから読み込ませると、RAIDボリュームがハードディスクとして認識されます。
RAIDコントローラーのドライバーを読み込ませた後は、Windowsのインストーラーのディスクに戻しておかないと、このハードディスクにWindowsをインストールできない旨の警告が表示されます。
この後の導入については、従来までのWindowsサーバーのインストールと同様になります。
サーバーのインストールが終わると、ネットワーク越しに、旧サーバーのデータをミラーします。
完全に構築が終わる前にあらかじめコピーしておけば、あとは差分のコピーのみになりますので、時間の短縮になります。
ただ、ネットワークやサーバーの負荷が大きくなるので、これは誰もいない時間帯か休業日を選んで行いました。
そして、バックアップドライブへのバックアップタスクを設定します。
バックアップにWindowsに付属しているRobocopyというコマンドラインアプリケーションを使用します。
robocopy [コピー元] [コピー先] /MIR /E /COPYALL /EFSRAW /NP /LOG+:”ログファイル” /ZB /R:10 /W:30
をミラー用。
robocopy [コピー元] [コピー先] /E /COPYALL /EFSRAW /NP /LOG+:”ログファイル” /ZB /R:10 /W:30
を誤消去防止用バックアップとして、それぞれ別のタイミングで、別のHDDにバックアップするようにしています。
robocopyのコマンドの内容については、また別の機会を設けて説明したいと思っています。
これらのタスクを作り定期実行の確認をしてから、データーベースサーバーやバージョン管理サーバーのインストールを行いました。
バージョン管理はSubversion Edgeが定期バックアップ機能を備えているので、これを利用して、バックアップディスクにバックアップしています。
そして全員の業務のない日を選んで、すべてのデータを新サーバに移転し、バージョン管理のデータを移転。
旧サーバーのファイル共有を停止して、バージョン管理も停止します。
あとは一通りの定期バックアップタスクが無事完了することを確認して、全ユーザー向けにファイルサーバーの移転を通知して、移転の作業は終了です。
これでRAID5ボリューム、外部HDD2つにファイルが保存されるので、全てを同時に失うことがなければ、データの消失には至らないはずです。
PowerEdge T110IIというエントリークラスのサーバーでも、性能と、データの保全性高めることができました。
低コストでも、何かあった際、できる限りダウンタイムを低減できるものと考えています。
この事務所の中でサーバの設置場所など、様々な下準備と下調べに時間がかかり、ブログの更新が後回しになる状態が続いていましたが、今後また安心できる環境の中で、ブログ更新などが行えるものと思っています。