古のRAID

この記事は約11分で読めます。

最近はサーバーを立てるとなると、AWSやAzure等のクラウドサーバーを使用する事が多くなってきた。
まだまだオンプレミスでのサーバーも稼働しているが、徐々に減ってきているのは実感しており、対応できるエンジニアも少なくなってきた様だ。
サーバーの物理的な障害を考えるのは、一部のデータセンターのエンジニアだけになりつつある。

その昔、Windows NT 3.51の時代位から、徐々に一般企業向けのサーバーが販売されるようになり、Windows NT 4.0の発売後に爆発的に普及した。
もちろん、さらに昔からサーバーは販売されていたのだが、Novell社のNetWare OSが主流で、プロトコルもTCP/IPとは異なりIPX/SPXを使用していた。クライアントPCはMS-DOSとWindows 3.1あたりまでで、Windows95の時代になると、古くからNetWareを使っている会社でなければ、Windows NTサーバーが標準だった。
一般的な企業だと、通常NetWareが理解できるエンジニアは抱えておらず、外部ベンダーに対してサーバとクライアントも含めたトータルソリューションとして導入することが多かった。認定資格などもあり、導入にはハードルが高かった印象だ。それでもNetWareは当時市場を独占しており、今思うとぼったくり価格での提供だったので、それなりの企業のみが導入していた感じだ。

Windows NT 3.51 Server は、Windows 3.1と同じようなGUIで今とは全然違う操作方法だ。この頃はMS-DOSが理解できるエンジニアが一般的だったし、Serverに関しては一度設定してしまえば毎日触るような事もなかったので、マウスが使えるだけで十分だった。クライアントはWindows95で、主にファイルサーバーとして利用されることが多かった。

1996年12月にWindows NT 4.0 Serverが発売され、GUIもWindows95とほぼ同じになった。30年経過しているが、基本的な操作方法はほとんど変わっていない。
このServer OSは非常に人気となり、瞬く間に普及した。

この頃のサーバーだがエントリーモデルのサーバは、RAID構成を取らないサーバーも多かった。それ以前にRAIDという単語を知らないエンジニアもいた程だ。ちなみにRAIDとは、故障率が比較的高いハードディスクを複数本使って、万が一1本故障しても動き続けるようにしたものだ。
この頃のハードウェアRAIDカードは非常に高価で、重要なサーバーだとかに搭載されるのが一般的だった。
2000年代位までは、とにかく安くファイル共有さえできれば良かったので、ディスク1本のみのWindows Serverが多く販売された。

Windows 4.0 Serverには、実はソフトウェアRAIDの機能が含まれていた。制限はあったもののDisk Administratorという専用画面でRAID0,1,5が設定できた。Workstation版には搭載されておらず看板機能だったのだが、それほど使われた記憶が無い。
設定ハードルが高く、BOOT.INIだとかの編集が必要だったし、もしもの時の起動用フロッピーディスクも必要だったし、RAID5構成だと起動ができず、何よりCPUパワーを使うのでRAIDが必要なときは、ハードウェアRAIDを使うのが一般的だった。
実は、Windows Server 2025までは搭載されていたのだが、そんな機能があったことを知らないエンジニアも多い。しかもちょっと前から非推奨である。
ちなみに自分も、開発用にポンコツサーバー(古いサーバーをニコイチにした。ディスクだけで無く、メモリーとPentium ProのCPUまで移植した)へ設定したことはあるものの、実運用で使用したことは無い。

高性能ServerとなるとハードウェアRAIDカード搭載が必須だったのだが、実際には営業もエンジニアも良くわかっていない人が多かった。
一般的にはRAID0,1,5が知られているが、この数字が高いほど高機能という売り方をする営業もいた。実は顧客もそう理解する人が多かった。
本来は故障率とディスク容量等を比較して考えるのが普通なのだが、そこは営業、利益で考えた。
RAID0は別にしてRAID1か5の選択だ。確かにRAID5の方が複雑なため嘘は言っていない。ちなみに通常RAID1の方がリカバリーも容易く高速に動作した。中には双方同じデータが書き込まれている前提なので、読み込みはRAID0相当で各ディスクからバラバラに読み込み高速化する(最大2倍)RAID設定もあった。RAID5は単にディスク容量の効率化が良いだけだ。
本来はRAID1が良いものも、わざわざRAID5にして販売した。RAID1だとディスク2本だが、5にすると最低3本である。1本分だけ利益が増えるのだ。
当時からディスク4本を使うRAID10も設定できたのだが、まだまだ用語が定まっておらずストライプド・ミラーだとかハイブリッドRAIDだとか、良くわかっていない営業が顧客に説明ができないのでRAID5で出荷されることが多かった。容量も増えるし顧客も理解していないので、そんな商売もまかり通った。

この時代のサーバーはOSは付属しているもののプリインストールされていなかった事が多く、フロッピーディスクから自分でインストールすることが多かった。ちなみにディスク3枚組だ。そこからCD-ROMへ渡してインストールディスクを読み込む。
インストールそのものは一回経験すれば、それほど難しいものでは無かったので、大企業は担当を決めて自社で対応することが多かった。中小企業は経験が少ない事からベンダーに依頼することの方が多かった記憶がある。
ただハードウェアRAIDの初期設定からとなると少々複雑なため、多くの企業が最初からベンダーに依頼した。その上に乗っかっているOSやアプリケーションも込みでの保守だったことも理由の一つだ。

RAIDの設定は、概念を理解してBIOS画面に慣れた人なら何て事はなかったのだが、逆に分からない人に取っては日本語表記は一切無く、呪文の様な単語が並んでいるだけの設定画面だった。もちろん懇切丁寧なマニュアルなど一切なく、あっても英文だったためハードルが高かった。
自分はなぜか設置担当になり、Mylex社製(その後買収されまくり今はBroadcom社)のDAC960系のRAIDを設定することが多かった。
このRAIDカードは非常に高性能だったので多くのサーバーメーカーに採用され人気だったが、RAIDの初期設定に加えてインストール中にF6キーを押下し、フロッピーディスクを交換して専用ドライバーを追加する作業が必要だった。
もちろん自動認識などされず、もしも必要なタイミングでフロッピーディスクを交換しないとRAIDのディスクは全く認識されず、強制的に再起動をしてインストールのやり直しになるのだ。
他の多くのメーカーのRAIDカードも同様で、それなりに知識が無いとインストールすらできなかった。

自分の場合、開発をするためにインフラも整えると言った仕事が多かったので、何台ものサーバーを設置した。
このMylex社製のRAIDカードは、キャッシュメモリーとしてパリティーありのEDO DRAM 72ピンのSIMMを搭載することができた。Windows NT 3.51からNT 4.0の初期に載っていたサーバーによく使われたメモリー規格だ。
メモリーの規格も段々とSDRAMの168ピンDIMMに移行したので、古くなったサーバーのメモリーを引っこ抜いて、このRAIDカードに差し込んで使っていたものだ。
キャッシュも読み込みのみ、読み書き両方の2通りの選択ができた。停電対策と高速化のトレードオフだった。
読込のみの場合は停電があってもデータを消失する可能性は低かったのだが、読み書きの場合は、高確率でデータがが破壊された。OS側は書込完了の認識だが、RAIDカードのキャッシュにデータが残っており書込は完了していないのだ。その分高速にディスクに書き込める。
もちろん、停電対策にRAID専用バッテリーは用意されていたのだが、2~3日しか持たず、それを超えるとデータが消えた。
通常はサーバーに無停電電源装置(UPS)を追加するので、停電時に自動で安全にシャットダウンして問題は無いはずなのだが、読み書きの設定するときは、それなりの覚悟がいった。

ただ自分は読み書き設定を好んだ。そもそもサーバーのカードに他のメモリーを追加した時点で、サーバーの保証外だ。
しかも自社のシステム開発用サーバーだったので影響は限定的だった。
RAIDカードのバッテリーは消耗品なので、秋葉原に行けば怪しげなバックアップ電池が販売されていたのである。実際に役に立つのかの確認まではしていなかったが。。。

この設定は、本当に爆速だった。
Windowsのインストール中にディスクのフォーマットをするのだが、長ければ数十分かかるところがほんの数秒で終わった、今で言うSSD並の速度だ。OS側には直ちにフォーマットが終わった通知がされ、あっというまにインストールが終わった。実際にはコマンドだけ受け付けてフォーマットしながらインストール中という状況だ。Windows NT Workstationよりも遙かに早くインストールが完了した。
上司にとっては、通常サーバーのディスクフォーマットは相当時間がかかるという認識だったので、作業は既に完了していても、適当に仕事をしているフリをして30分はサボれた。今だから言える秘密だ。

その後、Windows Server 2003が出る頃には、オーダー時に構成オプションが選べてRAIDの初期設定をすることも無くなり、OSがプリインストールされ出荷されるのが普通となった。
そのため現在ではRAIDの設定を自分ですることも少なくなった。もちろんプリインストールされているのでドライバーのインストールも必要ない。
今ではパワーユーザー向マザーボードの一部のチップセットにRAID機能が標準搭載されているため、こういった方の方が詳しいかも知れない。

PCサーバの普及後、徐々にディスクの価格も下がり、2000年代半ばになるとRAID5構成でディスクを8本以上搭載することも普通になってきた。
2003年にはWindows Storage Server 2003が発売され、単にファイルサーバーとして使うだけでも、ディスク容量が足りなくなってきた。
Windows Storage Server2008位からは、ディスク24本だとか化け物のようなサーバーも普通に販売を始めた。
ディスクが10本以上になるとRAID5でもデータ保護は怪しかった。RAID5は1本ダメまでは保護してくれるが2本目はダメだった。しかもパリティーの計算をするので、交換するまでパフォーマンスが落ちた。
一般的にRAIDを組んでいるサーバーは、稼働したまま故障したディスクを交換できる。メーカーによって違うが、交換した後に交換完了のボタンを押すくらいで誰でも簡単にできる。また、RAID5構成で1本をわざとスペアディスクにして、故障時に直ちに自動交換できるようにすることもできた。
ただ1本あたりのディスク容量も増えたため、ディスクの交換後のリビルドに時間がかかった。
これは容量やディスク速度にもよるが、平気で2時間とか酷いときは半日以上かかることもあった。
交換した経験がある人なら分かるが、この間ディスクは唸りを上げてフルパワーで再構築をするのだが、本当に大丈夫か?という位にアクセスランプが点滅を繰り返す。もちろん熱も持つので扇風機の用意もすると安心だ。

自分の経験からもだが、ディスクのロットは全て同じなので、1本故障すると2本目も近日中に故障してしまう確率が高い。大体同じくらいの寿命だ。
それがリビルド中に寿命になってしまい、結果として全データ消失という事故がそれなりに発生した。帰宅後に故障して、スペア構成にしていたものの自動リビルド中に2本目が壊れた状態で出勤を迎えたとかも珍しい話ではなかった。自分なら逃げだしたかもしれない。

普通ならバックアップを取っているので何とか大丈夫なんだけど、2000年代半ばになるとバックアップ?何それ?という担当者も多く、笑えない話をいくつか知っているレベルだ。俺は専門家並に詳しい!とイキった方だと「RAID=バックアップ」という理解の人も多く、真実を知った時の顔は見ていられなかった。。。
自分もそのような情報を何度も耳にしていたことから、この時代のディスク交換は緊張したもので、夜間にバックアップした後に再起動してからリビルドを行った。就業時間中はあえて故障したままだ。あまりRAIDの意味がなっていないが、その方がかなり安全な方法だった。。。
自分は念のため神田明神の「IT情報安全守護」をサーバーに貼り付けてからリビルドを行う位の儀式だった(もちろん経費で落ちない)

そんな悩みの中に登場したのがRAID6だった。ちなみに先ほどのMylex社製のRAIDカードは現在で言うところのRAID10の設定がRAID6と記載されていた。これは当時RAID10の定義も曖昧でMylex社が独自にRAID6と言っていただけだ。
その位、RAID6というのは2010年前後に、やっと統一された感のある用語である。ただ概念としては非常に古くからある。
RAID5に加えて、もう1本パリティディスクを用意して2本までのディスク障害に耐えるものだ。最低4本からであり、もしも2000年前後から用語が統一されていたら、ディスクを売るためにこの構成が標準になっていただろう。ちなみに一応同じく4本使うRAID10と容量は同じだが、耐障害性は高い。読み書きの速度は圧倒的にRAID10だ。

この機能が追加されたRAIDカードの当初は、ハードウェア的な仕組みは搭載していたものの、追加でRAIDカードのファームウェアにソフトウェアを追加インストールする必要があった。
この金額がそれなりに高価だったが、仕方なく追加したものだ。
ごにょごにょすれば使えそうだったが、保守が効かなくなるので素直に支払うしかなかった。最近この制限は多くのメーカーで無くなっているようだ。

このRAID6はデータ保護に関しては大変良く、最近はリビルド中にデータ消失する事を聞かなくなった。最近ではSSDが普及しており、一般的にはハードディスクよりも故障率が低いためかもしれない。パフォーマンスにおいても、RAIDカードそのものの性能が上がっており、以前よりは速度劣化が見られなくなった。

そして現在は、クラウド化が進みRAIDそのものを知らなくてもよくなってきた。
ハードウェアそのものを触る機会が減ってきたのは、少々残念である。
もしかしたら一般的なエンジニアがサーバーを触るのは、老兵世代が最後になるのかもしれない。

コメント