RAS(信頼性,可用性,保守性)

 サーバ機が一般のパソコンと大きく違うのは信頼性の高さを売りのひとつとしている所だろう。分かりやすい例では、PCサーバ機は見かけは普通のパソコンと同じでもエラー訂正機能を持ったECCメモリを採用している。信頼性向上のためのしくみはまとめてRAS(Reliability、Availability、Serviceability)と呼ばれている。

 では設計段階から見ていこう。プロセッサや周辺LSIは仕様どおりに動くよう徹底的に論理シミュレーションが行われる。高負荷でも耐えられるようバスをわざと輻輳させるストレステストも行われる。RAS系の本では設計冗長といって、同じ仕様書から2つのチームがそれぞれ別々に設計する、というのもあるが実際はコスト的な面であり得ない。設計・検証のフェーズが一番金も時間もかかる。

 論理設計の内部ではどうか。データが流れるバスにはすべて誤り訂正または誤り検出の機能を要所要所に設ける。具体的にはECCやパリティによるチェックだ。演算器も例外ではなく、正確な演算が行われたかどうかのチェックビットを付加する。制御系も同様で、例えばALUに対する指示が加減乗除だった場合は2bitで表現できるが、これにパリティを付けるといった念の入れよう。これらは放射線の影響でビットが反転し、演算結果や演算指示が誤ったことを検出し、もしエラーがあればリトライを行う。放射線の影響は一時的なもので大抵はリトライすることにより正常な結果が求められる。当然、これらの事象はログに残し、頻繁に発生するようだったら交換の対象となる。

 もっと大きな単位だとロックステップ機能がある。これは同じコアで同じ動作をさせて、違いがあれば足並みが乱れるためエラーが発生したことがわかる。http://en.wikipedia.org/wiki/Lockstep_(computing) さらに念の入った方法ではTMR(Triple Modular Redundancy)といって三台のプロセッサに同じ計算をさせて多数決を取る。

 キャッシュメモリ、メインメモリなどはECC(2bit誤り検出、1bit誤り訂正)で保護する。ただし命令キャッシュやTLBは誤り検出だけでもよい。再度取り込みことによってリカバリ可能だからだ。

 さて、動作中のプロセッサやメモリにエラーがあっても、あんなに端子が多いチップを動かしながら着け外しすることは難しい。そこでメインボードにプロセッサ、制御用LSI、メモリをまとめて搭載し、バックプレーンに複数枚挿すことにより活性挿抜ができるようにする。ブレードサーバを想像するとよい。これにより、他のプロセッサに処理を依頼して外したいボードをオフラインにし、新品のボードと交換してオンライン指示を出す。これは保守性、可用性に関わる。また、HPのSuperdomeなどはあらかじめCPUをフル搭載しておいてライセンスにより有効にするCPUの個数を決めていた。これは故障したときに設定を変えるだけで済むのでリモートでも対応できて保守性がとても良い。

 このように信頼性を高めたサーバでも万が一故障した場合に備え、同じ構成のサーバを複数台用意して運用系と待機系に分けることにより、片方が故障してもまったくサービスを止めることなく切り替えることができる。

 あとは保守サービスの体系だ。常に保守要員が24時間監視し、問題があれば即対処するというのは汎用機でよくあるサービスのひとつである。安さがウリのUNIXサーバ、IAサーバではスポット保守といって必要なときに呼び出して交換対応してもらう。

 現在は汎用機の保守コストの高さが各企業の悩みのタネとなっている。確かに確実なのだが、そこまでの信頼性は必要なのか?価格によっては数時間くらい止まっても問題ないのでは、と気づいてしまったのだ。複数台のサーバ導入と運用責任者が入れば問題ない、それに運用のトラブルのほとんどはハード起因ではなくソフトウェアとその設定が原因だからだ。ごく最近のみずほ銀行のトラブルにしても、ハードウェアはバカ正直に指示どおりの動作をしたにすぎない。似たような事例は日経コンピュータ誌の「動かないコンピュータ」という連載によく載っていた。私が知っているのはハードウェアの話まで。おしまい。

↓これで勉強した気がするが表紙の写真がないのでわからない

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 1

かわいい

この記事へのコメント

この記事へのトラックバック