この震災の報道の中でよく耳にし、眼にしたのが「想定外」という言葉だ。そのたびに納得のいかない思いがした。津波対策や原発の安全対策という人の命にかかわることで、想定外などという言い訳がましい言葉が許されるのか。
次元は違うが我々の設計するネットワークでさえ、どんなに予測の難しい原因でトラブルが起こってもお客様に「想定外の原因でした」とは言えない。事故やトラブルを起こしてしまったら、「想定不足」しかあり得ないのだ。
では、想定不足を防ぐにはどうすればいいのだろう。
「最悪」を避ける設計
企業ネットワークの設計においては、機器や回線の故障、停電、災害などのリスクを想定し、それらに対して機器などのバックアップ、複数ルートの確保、バックアップセンター、などの対策を検討し、設計に反映する。
リスクをどこまで想定すべきか、というのは簡単な問題ではない。筆者が最近設計した金融機関のネットワークでは「最悪」を避ける、という考え方をとった。
このネットワークの基本設計で「起こりうる最悪のトラブルは何だろう」と考えた。回線は複数の通信事業者の回線を使って2ルート化し、バックアップセンターも用意されている。機器も全拠点で2重化する。万全な安全設計をしている中で筆者が「最悪のトラブル」と想定したのは、データセンターの中枢部分で使っているルーターの全面ダウンだ。
中枢のルーターはフォールトトレラントな製品を採用しており、通信制御モジュール、回線収容モジュール、電源モジュールなど、すべての部分が装置内で2重化されていて、いずれの部分が故障しても無停止で運転を継続できる。その"無停止"の製品が停止することが起こりうると考えたのだ。
基本設計のレビューで製品の開発元の技術者に質問した。「フォールトトレラントの製品がダウンすることはありますか?」。答えはなく無言だった。それはそうだ、ダウンすると言ったら「フォールトトレラント」ではなくなる。
フォールトトレラントの製品がダウンすることを想定するのは考え過ぎだと言う人もいた。しかし、筆者は想定することで押し切った。開発者でさえ気づいていない想定外の故障が起こったら、最悪の事態になるからだ。
設計目標に収めるためにはコストを無制限にかけるわけには行かない。そこで2つの方法をお客様に提示した。
一つはフォールトトレラントの装置を2重化すること。フォールトトレラントの製品自体が2重化されているので、実質上「4重化」になる。もう一つは製品を構成するすべてのモジュールを1セット、稼働中のルーターと同じラックに用意し、万が一、ルーターのダウンが起こったら丸ごとモジュールを取り替える案だ。
4重化案はダウンが起こっても自動で瞬時にバックアップできる。しかし、高価なフォールトトレラントのルーターが2台必要なため費用がかかる。交換用モジュールを1セット用意する方法は、4重化案に比べれば費用は安くて済むものの、手作業で交換するため時間がかかる。想定するリスクとのバランスで適正なコストかどうかはお客様の判断による。
結果的には、交換モジュールを用意することになった。予期しないダウンが起こっても、長時間の障害は避けられる。いざというときのモジュール交換をミスなく、すばやくするためには現地の保守担当者が製品に習熟していなければならない。そのため、保守担当者のトレーニングをし、現地での作業を経験してもらった。
「想定不足」への対処の第一歩は「気づくこと」
想定すべきリスクをちゃんと洗い出したと思っていても、想定不足はいつでも起こりうる。
数年前、数千拠点規模のネットワークで全面的に通信不能になる、というトラブルを経験した。データセンターの計画停電の後、ネットワーク監視画面が全国で真っ赤になったという緊急の電話がケータイに入った。
全国で通信不能なのだから、一つの装置、1本の回線が原因であることはないと分かる。ネットワーク全体におよぶ障害なら、ルーティングがらみだろうと想像もつく。「気づく」ことが対処の第一歩だ。
このネットワークは、半年かけて新しいものに移行中だった。移行期間中はルーターが処理する経路の数が普段の数倍になり、負荷がかかる。これは設計で折り込み済みだった。しかし停電の後、センターにある複数のメインルーターが同時に復電し、ルーティングの処理を始めると高い負荷がかかることを見落としていた。
大きなトラブルから抜け出すには「確実な方法」を取るのがよい。センターのルーターのポートを全部閉塞してルーティング処理を止め、あらためてポートを一つずつ開くことでルーティングの再計算の負荷を分散し、復旧させた。
0 件のコメント:
コメントを投稿