HA Clustering (SAF based)
1: Prepare modified load module as shared object using standard compiler
4.2 交換システムの HDD アクセスに関する要求条件と制約
本項は,既製コンピュータを用いる交換システムのハードウェアの制約と,交換システムの 書込み性能の要求条件を示す.
4.2.1 既製コンピュータを用いる交換システムでのハードウェアの制約
今日,多くの通信事業者ではATCA[31]に代表される標準的なブレード型サーバが使用さ れる.ATCAはCPUアーキテクチャを定義していないが, コストパフォーマンスに優れる
x86-64ベースのCPUが主に使用される.ATCAはCPUブレードの物理的サイズ,使用可
能な電源容量を定義しており,これら制限によりCPUブレード上に搭載可能なHDDへ制約 が生じる.典型的なCPUブレードは単一のHDDを実装する.またOSとしてはLinux,特
にCGL[22]準拠の製品がベンダによりサポートされる.
CPUブレードに搭載されるHDDに制約があることより,高いHDDのパフォーマンスを 得るために外部HDDを使用することも1つの方法ではあるが,高信頼な外部HDDの価格は 極めて高価である.また外部HDDはLinuxが使用可能な,十分にテストされたドライバが存 在しない場合も多い.更に実用の観点から,シンプルなハードウェア構成は低コスト,少ない 監視ポイント,少ない障害とメリットが多く,CPUブレードに存在するHDDのみが使用さ
Kernel
HDD
Call control process
Status A Status B Session
Status C Transit session status
after completion of status recording using
synchronous write.
図4.2.セッションの状態遷移とトランザクションログ記録
れる.
4.2.2 交換システムでの HDD 書込み処理の要求条件
交換システム上では同時に複数のディスクIOオペレーションが存在する.それらはトラン ザクションログを記録するための,高優先で処理されるべきディスクIOオペレーション,ま た,通常優先度のディスクIOオペレーションとして,バックアップ処理や異常系処理時のロ グ収集処理が存在する.特にバックアップ処理では,記録されたトランザクションログやシス テムファイルを定期的に保存しており,バックアップとトランザクションログ記録のための ディスクIOオペレーションは同一HDD上での競合するIOオペレーションとなる.
同期書込みの要件
トランザクションログ記録の処理は,セッションの状態遷移の一部として実行される.記録 されたトランザクションログとサービス状態の矛盾をなくすため,トランザクションログ記録
のWrite処理の終了によって,セッションのサービス状態が次の状態へ遷移する.またトラン
ザクションログ記録のWrite処理は,確実にHDDにデータが書き込まれるまで処理をブロッ クする同期書込みが用いられる.
非同期書込みを用いた場合,呼処理プロセスはOSのキャッシュにトランザクションログを コピーするだけで処理を継続することが可能である.しかし,OSに障害が発生した場合,コ ピーされたデータは消滅してしまう.Linuxで使用される様々なデバイスドライバやモジュー ルの中には十分な信頼性を持たないものも多く,専用コンピュータに適用されてきた専用OS の信頼性に比べて十分ではない.このためトランザクションログの記録には同期書込みが使用 される.
またHDDコントローラにはディスクキャッシュが存在する.このディスクキャッシュは OSが管理するキャッシュとは異なり,HDDコントローラ上に存在する専用のメモリであり HDDコントローラが故障するまで使用可能である.このためOSがもつキャッシュよりも遥 かに信頼性が高く,有効に使用される(図4.3).
Writeシステムコールのレスポンスタイム要件
呼処理は実時間性が要求される処理であり,トランザクションログ記録のための同期Write システムコールのレスポンスタイムは,タイムアウト値以内に収まることが求められる.この タイムアウト値はサービス仕様及び処理内容によって異なるが,本研究で使用する呼処理の実 装では,トランザクションログの書込み処理においては100ミリ秒がソフトリミットとして使 用される.更にソフトリミット超過が連続して何回か発生すれば,タイムアウトであるハード リミットを超過し,該当のセッションが異常状態にあると判断し,該当のセッションをリセッ トする.本章では,トランザクションログ記録のタイムアウト値として,3回連続のソフトリ ミット超過である300ミリ秒を使用する.
もしトランザクションログ記録の同期Writeシステムコールのレスポンスタイムがタイム
Kernel
Disk Cache Disk
HDD Process using
asynchronous write Process using synchronous write
Copied data Page Cache
Reflect copied data to HDD later Write() return after
the data copied to page cache.
Write() wait until the data are reflected to HDD.
図4.3.OSのページキャッシュとディスクキャッシュ,同期書込みと非同期書込みの関係
アウト値を超過すれば,該当のセッションは異常状態とみなされリセットされる.
更にレスポンスタイムが1秒を超過するような場合,交換システムでは呼処理プロセス全体 や,システム全体が異常な状態に陥っていると考え,より広範囲のソフトウェアの初期化・再 実行や,待機系サーバへ処理を引き継ぐ等の障害処理を行なう.
この異常なセッションを早期にリセットする障害処理を行うことは非常に重要である.仮に 重大なバグが呼処理プロセスに存在する場合,当初は軽度な障害として見えている事象が,例 えばプロセス全体に共通のリソースを消費して,最終的にサービス全体を継続不可能にする障 害につながる場合も多い.セッションをリセットする障害処理は交換システムとして必須の機 能である.
Write処理の信頼性要件
交換システムは年間99.999%以上の可用性でサービスを提供することが求められる.同期
Writeシステムコールのレスポンスタイムもまた,上述のタイムアウト値を99.999%以上の
信頼性で超過しないことが必要である.