基本情報技術者試験など情報処理技術者試験を受験する方にとっては必須の,システム構成についてシンプルにまとめています。はじめに,システムの処理方式(バッチ処理とリアルタイム処理,集中処理と分散処理)について説明します。次に,システムの高信頼化(フォールトアボイダンス,フォールトトレランスなど)について説明します。その後,システム構成(シンプレックスシステム,デュアルシステム,デュプレックスシステム)について説明し,最後に,クライアントサーバーシステム,RAID,ネットワークストレージ(DAS,NAS,SAN)などについて説明します。たくさんあって,シンプルではなくなってきましたが頑張りましょう。
システムの処理方式
処理を行うタイミングによる分類
バッチ処理(一括処理)
バッチ処理とは,一定期間に発生したデータを蓄積しておき,あとで,まとめて(一括で)処理する方式のことをいいます。給与計算など,大量のデータを一定期間ごとに処理する業務に適しています。
※ 金融機関などでは,夜間にバッチ処理を行うことが多いです。
リアルタイム処理
オンライントランザクション処理
オンライントランザクション処理とは,利用者などが端末から入力したデータを即座に処理する方式のことをいいます。大量のデータを遅延なく処理する必要があるため,システムには高い性能が要求されます。また,処理途中で中断できないため,高い信頼性も要求されます。座席予約やチケットの予約,金融機関の入出金,オンラインショッピングなどの業務に適しています。
リアルタイム制御処理
リアルタイム制御処理とは,利用者からの指示や機器などの状態の変化,まわりの環境の変化などに応じて,即座に機器の制御を行う方式のことをいいます。工場のロボットや,家電などに用いられています。
ハードリアルタイムシステム
ハードリアルタイムシステムは,遅延が許されない(遅延が発生した場合,致命的な問題が生じる)システムをいいます。
例)エアバッグ制御システム,ペースメーカーなど
処理を行う場所による分類
集中処理
集中処理とは,1か所(または1台)で処理することをいいます。アプリケーションやデータを中央に配置し,複数の端末で共有します。個々の端末では処理は実行せず,データの入出力などを行います。
長所
- 管理が容易(資源が中央に集中しているため)なので,効率よく運用できる
- セキュリティの確保が容易
短所
- 中央の装置は複雑になりやすい
- 中央の装置が故障すると,システム全体が停止する恐れがある
分散処理
分散処理とは,複数箇所で(分散して)処理することをいいます。それぞれのコンピューターの性能は平凡でも,多数のコンピューターが連携すると,全体としては高い性能を得ることができます。
長所
- 拡張時の対応が該当部分だけでよいため容易
- 単純な構成であるため,保守が容易
- 障害発生時に,障害箇所を特定しやすい
短所
- データが分散するため更新に時間がかかり,また,不整合も発生しやすい
- セキュリティの確保が難しい
システムの高信頼化
システムの信頼性を高めるためには,障害が発生しないようにしたり,万が一,障害が発生した場合でも影響を最小限に抑えるようにしなければなりません。
フォールトアボイダンス
フォールトアボイダンスとは,信頼性の高い機器を使用したり,定期保守を行ったりして,障害が発生しないようにすることをいいます。
※ アボイダンス(avoidance)は「回避」という意味。
フォールトトレランス
フォールトトレランスとは,(障害が起きることを前提に)障害が発生した場合でも,機能を保ち,稼働を続けるようにすることをいいます。システムの一部に障害が発生した場合に,予備の系統に切り替えるなどします。
フェイルセーフ
フェイルセーフとは,障害が発生した場合に,安全な状態になるよう制御することをいいます。
- 信号機が故障した場合,すべての信号を赤に切り替え,安全性を確保する
- 電気ヒーターが転倒した場合,自動的にオフにする
フェイルソフト
フェイルソフトとは,障害が発生した場合に,障害箇所を切り離して一部の機能を停止し,残りの部分で稼働を続けることをいいます。
フェイルオーバー
フェイルオーバーとは,待機系の機器を用意(システムを二重化する)しておき,障害が発生した場合に,自動で待機系に切り替えることをいいます。
- 情報システム機器やネットワークを二重化して信頼性を高める
フォールバック(縮退運転)
フォールバックとは,障害が発生した場合に,障害箇所を切り離し,処理能力を落とした状態で稼働を続けることをいいます。
- 飛行機のエンジン1つが故障した場合,故障したエンジンを停止し,残りのエンジンで飛行を続ける
フールプルーフ
フールプルーフとは,利用者の誤操作を防ぐしくみや,利用者が誤操作をした場合でも,障害が発生したり,危険が生じたりしないような設計をすることをいいます。
- 電気ポットは,ロックを解除しないと給湯できない
- 電子レンジは,ドアが完全に閉まらなければ起動しない
- 自動車は、ギアがパーキングに入っていないとエンジンをかけられない
システム構成の基本
シンプレックスシステム
シンプレックスシステムは,必要最小限の機器で構成されたシステムです。経済的でコストを抑えることができますが,障害が発生した場合はシステム全体に影響が及ぶため信頼性は高くありません。
デュアルシステム
デュアルシステムは,同じ構成のシステムを二重化したシステムです。2系統ともに同じ処理を行い,処理結果を定期的に照合することで信頼性を高めています。一方のシステムに障害が発生した場合でも,処理を中断することなく,もう一方のシステムで処理を続けることができます。ただし,コストは高くなります。
デュプレックスシステム
デュプレックスシステムは,主系(現用系)と従系(待機系)の2系統で構成されたシステムです。主系のシステムでは,主に,中断することのできないオンライン処理などを実行させ,従系のシステムでは,バッチ処理などを実行するか待機するかしておきます。主系のシステムに障害が発生した場合は,従系のシステムに切り替えることで信頼性を高めることができます。主系と従系で異なる処理を並行して実行することができるので,デュアルシステムよりコストを抑えられます。
主系から従系への切替方式には,次のようなものがあります。
ホットスタンバイ | 主系のシステムと従系のシステムを同じ状態で起動しておき,主系のシステムに障害が発生した場合は,自動的に従系のシステムに切り替える |
ウォームスタンバイ | 従系のシステムはOSを起動(業務システムは起動しない)しておき,主系のシステムに障害が発生した場合は,従系のシステムに切り替えて業務システムを起動する |
コールドスタンバイ | 従系のシステムは,他の処理をするか待機しておき,主系のシステムに障害が発生した場合は,(従系のシステムが他の処理を実行していた場合は,その処理を中断し)従系のシステムに切り替えて業務システムを起動する |
※ 従系のシステムへの切り替えの速さは,速い方から,ホットスタンバイ,ウォームスタンバイ,コールドスタンバイとなります。
さまざまなシステム
クライアントサーバーシステム
クライアントサーバーシステムは,代表的な分散処理形態のシステムであり,サービスを要求するクライアントと,サービスを提供するサーバーで構成されます。
※ サーバーは,ハードウェアとしてではなく,サービスを提供するプログラムとして割り当てられます。1台のコンピューターに複数のサーバーが存在したり,1台のコンピューターにクライアントとサーバーが存在することもあります。
サーバーの種類
サーバーは,サービスを提供するプログラムとして割り当てられるので,1台のコンピューターで複数のサーバーを稼働させることができます。
Webサーバー | クライアントのWebブラウザから入力されたリクエストに応じて,HTMLやCSSなどを返すサーバー |
メールサーバー | 電子メールを配信するサーバー |
ファイルサーバー | ファイルやプログラムの共有や公開をするサーバー |
プリントサーバー | 複数のクライアントでプリンターを共有する際に使用するサーバー |
データベースサーバー | データベースの管理や,アクセス制御をするサーバー |
コミュニケーションサーバー | 他との通信機能を提供するサーバー |
3層クライアントサーバーシステム
3層クライアントサーバーシステムは,データベースを利用するシステムにおいて,次の3つの機能を,それぞれの層で表し構成したものです。
3 | データベース層 | データベースを管理する機能 |
2 | ファンクション層 (アプリケーション層) | データの加工や,処理をする機能 |
1 | プレゼンテーション層 | ユーザーインタフェース(GUIなど)を提供する機能 |
3層クライアントサーバーシステムの場合,処理は,すべてサーバー側(アプリケーションサーバーとデータベースサーバー)で行います。クライアントにはサーバーから送られてきたHTMLなどから,その内容がWebブラウザに表示されますので入出力処理などを行います。このようにすることで,クライアントとサーバーの間のデータ転送量を抑えることができます。また,プログラムの修正をする場合でも,サーバー側の対応だけで済みますので保守も容易になります。
2層クライアントサーバーシステム
2層クライアントサーバーシステムの場合は,各クライアントに専用アプリケーションを導入する必要があります。そのため,専用アプリケーションを修正する場合は,すべてのクライアントで作業しなければなりません。また,データベースへアクセスする際も,データがそのまま送られるため,ネットワーク上のデータ量も増大します。
※ 上記の理由から,現在は,3層クライアントサーバーシステムが一般的となっています。
ストアドプロシージャ
ストアドプロシージャとは,利用頻度の高い処理や,連続する複数の処理をひとつにまとめたプログラムのことをいいます。ストアドプロシージャは,データベース管理システム(DBMS)に保存され,外部から利用する場合は,プロシージャ名を指定し実行します。
利点
- データベースサーバーに対して,SQL文を発行する必要がない
- 事前にSQL文の構文解析などが済んだ状態で準備されているため高速に実行できる
- ネットワークの負荷などを減らすことができる
シンクライアント
シンクライアントとは,ユーザーが操作するクライアントに必要最低限の機能だけを持たせたものをいいます。外部記憶装置を持たないので,情報漏洩やウイルス感染のリスクを低減できます。
RAID(Redundant Array of Independent (Inexpensive) Disk)
RAIDは,複数の磁気ディスク装置を,1台の仮想的な装置として利用できるようにする技術です。システムの信頼性を高めたり,高速化することができます。
RAIDの技術
ストライピング
ストライピングとは,データをビット単位やバイト単位,ブロック単位に分割したものを,複数の磁気ディスク装置に振り分けて管理する方式のことをいいます。複数の磁気ディスク装置に同時にアクセスしますので,高速に読み書きすることができます。
ミラーリング
ミラーリングとは,同じデータを複数の磁気ディスク装置に書き込むことをいいます。
パリティチェック
データにエラーがあるのかをチェックすることをいいます。
RAIDの場合は,パリティデータ(冗長コード)を障害発生時に使用します。たとえば,RAID5の場合,1台の磁気ディスク装置が故障した場合でも,残りの磁気ディスク装置とパリティデータを使用して復元することができます。
RAIDの種類
RAID0
RAID0の場合,ストライピングにより,高速化・大容量化できます。しかし,信頼性は低いです。
RAID1
RAID1の場合,ミラーリングにより,複数の磁気ディスク装置に同じデータを保存します。そのため,障害に強いです。しかし,使用効率は低いです。
RAID2
RAID2は,コストが高いので,ほとんど使われていません。
※ ストライピングとECCの技術が利用されています。
RAID3,RAID4
RAID3,RAID4は,ストライピングとパリティチェックにより,高速化・大容量化ができ,障害にも強いです。パリティ専用の磁気ディスク装置を使用し(図の場合,ディスク3),1台の磁気ディスク装置が故障した場合でも,残りの磁気ディスク装置とパリティデータを使用して復元することができます。RAID3は,データをビット単位,または,バイト単位で,RAID4は,データをブロック単位で扱います。
RAID5
RAID5も,ストライピングとパリティチェックにより,高速化・大容量化ができ,障害にも強いです。RAID5では,データとパリティデータを分散配置します。また,データはブロック単位で扱います。
RAID6
RAID6の場合は,パリティデータを2つ作成し,分散配置します。磁気ディスク装置2台が故障した場合でも復元できますので,RAID5よりも障害に強いです。また,データはブロック単位で扱います。
ネットワークストレージ
ネットワークストレージとは,ストレージ(補助記憶装置)をネットワークに接続したものをいいます。
DAS ( Direct Attached Storage )
DASとは,ストレージをSATAやATA,SCSIなどの接続方式でサーバーに接続したものをいいます。
NAS(Network Attached Storage)
NASとは,OSやストレージ,ネットワーク接続装置などで構成されるファイルサーバー専用の装置をネットワークに接続したものをいいます。利用者は,ファイル共有プロトコル(NFSやCIFSなど)を使用し,ファイルを共有したりします。
SAN(Storage Area Network)
SANとは,ストレージとサーバーをファイバーチャネルにより接続したものをいいます。
※ ファイバーチャネルとは,ストレージなどとサーバーを光ファイバーで接続する方式のことをいいます。高速伝送を可能にします。
マルチプロセッサシステム
マルチプロセッサシステムは,複数のプロセッサ(CPU)で処理を分担し並列に処理するシステムです。次の2つに分類できます。
- 密結合マルチプロセッサシステム
- 疎結合マルチプロセッサシステム
※ マルチプロセッサの詳細は,「プロセッサ -情報処理シンプルまとめ」を参照してください。
クラスタリングシステム
クラスタリングシステムは,複数のコンピューターを組み合わせて,1台のコンピューターのように動作させるシステムです。
HPCクラスタ(High Performance Computing cluster)
HPCクラスタは,多数のコンピューターを組み合わせて並列処理を行わせることで,1台の高性能のコンピューターのように動作させる方式です。
※ スーパーコンピューターを構成する方法の一つ
※ 障害が発生した場合は,当該コンピューターを切り離して,残りのコンピューターで稼働を続ける(フェイルソフト)
HAクラスタ(High Availability cluster)
HAクラスタは,複数のコンピューターを用意して,可用性を高める方式です。
※ 障害が発生したコンピューターを,システムを運用したまま交換することができる(ホットスタンバイ)
負荷分散クラスタ
負荷分散クラスタは,すべてのコンピューターを同時に稼働させ,処理を分散させる方式です。
※ 障害が発生した場合は,当該コンピューターを切り離して,残りのコンピューターで稼働を続ける(フェイルソフト)
まとめ
今回は,システム構成について,シンプルにまとめてみました。たくさんありましたが,今回の内容は,基本情報技術者試験や応用情報技術者試験など,実際の情報技術者試験で出題されます。繰り返し読んで覚えるようにしましょう。