9.システム構成と故障対策

システムの信頼性/耐障害性を高めるための工夫

9.1. システムの処理形態

9.1.1. システムの構成方法

集中処理

集中処理は1台のコンピュータに処理をさせる方式。 特徴は以下の通り。

  • 管理しやすい
  • システムがダウンしたら全体が落ちる

分散処理

分散処理は複数のコンピュータに分散して処理させる方式。 特徴は以下の通り。

  • いずれかのコンピュータで障害が発生してもシステム維持できる
  • メンテナンスにコストがかかる

9.1.2. システムの処理タイミング

リアルタイム処理(オンライントランザクション処理)

リアルタイム処理は要求された処理をすぐに行う方法のこと。 リアルタイム処理を行うシステムは決められた時刻までに処理を終了することを要求されるが、その厳密性により2つの種類に分けられる。

  • ハードリアルタイムシステム
    • 決められた時刻までに処理を終了できない場合に、システムや使う人に対し致命的なダメージが発生する
  • ソフトリアルタイムシステム
    • 決められた時刻までに終了できなくても致命的な問題は発生しない

バッチ処理

バッチ処理はまとまったデータを一括で処理すること。 リアルタイムにすぐに反映する必要のない処理の場合、一定期間ごとに処理をまとめて実行する。

9.2. クライアントサーバシステム

9.2.1. クライアントサーバシステムの構成

クライアントサーバシステムは現在の主流の処理形態。 これは基本的には分散処理を行い、ネットワーク上の役割を2つに分け集中して管理や処理を行う部分をサーバとして残すことが特徴

9.2.2. 3層クライアントサーバシステム

クライアントサーバシステムの機能をプレゼンテーション層、ファンクション層(アプリケーション層)、データ層の3つに分けて構成するシステムのこと。 これに対し通常のクライアントサーバシステムのことは2層クライアントサーバシステムと呼ばれている。

3層クライアントサーバシステムでは各層の役割が独立しており、クライアントの環境が異なっても同じ機能を提供できる特徴がある。

9.2.3. シンクライアントシステムとP2P

シンクライアント

シンクライアントにおけるクライアント側の端末は入力や表示部分を担当するだけで情報の処理や保管はすべてサーバに任せる。

ピアツーピア(P2P)

ピアツーピアは完全分散処理型のシステム。これはネットワーク上で協調動作するコンピュータ同士が対等な関係でやり取りをするものでサーバなどの一次元的に管理するものが必要としない。

9.3. 高信頼化システムの構成

9.3.1. 2系統のシステム構成

デュアルシステム

デュアルシステムは2組のシステムを使って信頼性を高めるもの

このシステムでは2組のシステムが同じ処理を行いながら、処理結果を互いに突き合わせて誤動作していないかを監視する。

いずれかが故障した場合に異常の発生したシステムを切り離し、残る片方だけでそのままの処理を継続する。

デュプレックスシステム

デュプレックスシステムは2組のシステムを用意するのはデュアルシステムと同じである。

このシステムでは主系が正常に動作している間、従系ではリアルタイム性の求められないバッチ処理などの作業を担当する。また主系が故障した場合には従系が主系の処理を代替するように切り替わる

方式説明
ホットスタンバイあらかじめ主系の処理を引き継ぐために必要なプログラムを起動しておくことで瞬時に切り替える待機方法
コールドスタンバイ従系は出番が来るまで別の作業をしていたり電源がOFFだったりして、切り替え時に時間がかかる。なおその分コストダウンが可能

9.3.2. 負荷分散のシステム構成

マルチプロセッサシステム

マルチプロセッサシステムは複数のCPUを用意するシステムのこと。 これにより処理を分散させ、システム全体の処理時間を短縮する。

マルチプロセッサシステムは主記憶を共有するかしないかにより2種類に分かれる。

方式説明
密結合マルチプロセッサシステム複数のCPUが1つの主記憶を共有し、単一のOSで制御される方式
疎結合マルチプロセッサシステムCPU毎に自分専用の主記憶をもち、それぞれが独立したOSで制御される方式

クラスタリング

クラスタリングは複数のコンピュータを組み合わせて信頼性の高いシステムを構築する手法のこと。

9.4. システムの信頼性設計

9.4.1. 故障対策の基準

フェールトアホイダンス

フェールトアホイダンスは障害そのものを回避するために事前に対策をする考え方。

フェールトトレランス

フォールトトレラントは障害が発生してもシステムを稼働できるように対策を図る考え方。

9.4.2. フェールトトレランスの3つの考え方

フェールセーフ

故障が発生した際に、安全性を確保する方向で壊れるように仕向ける方法

故障の場合は安全性が最優先とする考え方。

フェールソフト

故障が発生した場合にシステム全体を停止させるのではなく機能を一部停止するなどして動作の継続を図る方法

故障の場合は継続性が最優先とする考え方。

フールプルーフ

意図しない使われ方をしても故障しないようにするという考え方

9.4.3. 磁気ディスクの信頼性を上げるRAID

RAIDは複数台のHDDを組み合わせて、あたかも1台のHDDのように扱う手法のこと。これによりHDDの故障などにも備えることができる。

9.5. システムの性能評価

システムの性能を評価する指標にはスループット、レスポンスタイム、ターンアラウンドタイムがある。

これらを評価する手法にはベンチマークテストがある。これは性能測定用のソフトウェアを使って、システムの各処理性能を数値化するものである。

9.5.1. レスポンスタイムとターンアラウンドタイム

レスポンスタイム

レスポンスタイムはコンピュータに処理を依頼し終えてから実際に何か応答が返されるまでの時間を示する。

ターンアラウンドタイム

ターンアラウンドタイムはコンピュータに処理を依頼し始めてその応答がすべて返されるまでに時間を示す。

9.5.2. スループット

スループットは単位時間あたりに処理できる仕事量を表す。

Image

9.6. 信頼性の基準と指標

9.6.1. 信頼性の基準(RASIS)

RASISはシステムの信頼性を評価する概念

Image

9.6.2. システムの信頼性と稼働率

稼働率はトラブルに内部時に使えていた期間を割合として示すものである。 この計算に用いる指標には平均故障間隔(MTBF)平均修理時間(MTTR) などが信頼性などを表す指標として用いられる。

平均故障間隔(MTBF)と平均修理時間(MTTR)とシステム稼働率

Image

9.6.3. 直列システムと並列システムの稼働率

直列システムの稼働率

直列システムの稼働率 = 稼働率A × 稼働率B

並列システムの稼働率

並列システムの稼働率 = 1 - ((1-故障率A) × (1-故障率B))

9.6.4. バスタブ曲線

故障の発生頻度と時間の関係をグラフにしたものはバスタブ曲線と呼ばれる。

Image

9.6.5. システムに必要な経費

システムに必要となるすべてのコストはTCO(Total Cost of Ownership) と呼ばれる。

TCO = 初期コスト + 運用コスト

9.7. バックアップ

バックアップを行う際には以下のような点に注意する。

  1. 定期的にバックアップを行う
  2. バックアップを行う媒体を分ける
  3. 業務作業中にバックアップをしない

バックアップの方法

バックアップには3種類の方法があり、これらを組み合わせることで効率よくバックアップを行うことができる。

フルバックアップ

保存されているすべてのデータをバックアップするのがフルバックアップである。 障害発生時に直前のバックアップだけで元の状態に戻せる。

差分バックアップ

前回のフルバックアップ以降に作成変更されたファイルだけをバックアップするのが差分バックアップである。 障害発生時に直近のフルバックアップと差分バックアップを使い元の状態に戻す。

増分バックアップ

バックアップの種類の関係なく、前回のフルバックアップ以降に作成変更されたファイルだけをバックアップするのが増分バックアップである。 障害発生時は元の状態に復元するために直近となるフルバックアップ以降のバックアップ全てが必要となる。

最終更新 2025.01.19: Added ss command (683d062)