システム構成
企業のシステム(発電所の制御システム・航空会社の予約システム)は停止すると、社会が大混乱!
→ システムを止めない工夫をしている
* ミッションクリティカル: 停止すると社会にダメージを与えるシステム
デュアルシステム
二つのシステム:同じ処理、処理結果をチェック
→ 障害発生時 : 片方のシステムで処理
デュプレックスシステム
二つのシステム(現在系と待機系)で処理をする
→ 障害発生時 : 待機系に処理を移行する
待機系のシステムの待機方法
- ホットスタンバイ : 暖かくスタンバイ(現用系と同システムを起動してスタンバイ)
- コールドスタンバイ : 冷たくスタンバイ(現在系と違う処理をしてスタンバイ)
システムの処理形態
- バッチ処理: データを一定期間貯める → まとめて処理 例)給与計算
- オンラインリアルタイム処理: データの発生と同時に処理する形態 例)ATM
バックアップサイト
災害に備える → システムを遠隔地に用意、システム待機状態の種類↓
- ホットサイト:現用系と同じように稼働・ネットワークを通してデータを常に更新
- ウォームサイト: ハードウェアを準備・定期的にデータを搬入
- コールドサイト: バックアップサイトのみ準備するもの
緊急事態の行動計画
- BCP(Business Country Plan): 緊急事態に備えた、事前の行動計画
- RTO(Recovery Time Objective): 中断 → 復旧までの時間
- BCM(Business Country Management): BCPを管理すること
クラスタシステム(クラスタ:ブドウの房)
複数のサーバーを一台のサーバーに見せかける技術(目的ごとに2構成あり)
→ サーバーが房のようにぶら下がっているイメージ
1. HAクラスタ(High Availability Cluster)
■ 目的
高可用性 → 高信頼化
負荷分散型クラスタ フェールオーバ型クラスタ
■ データベースをクラスタで分散させたときの整合性をとる方法
- 負荷分散型クラスタ: レプリケーション(迅速な複製)
- フェールオーバー型クラスタ
- 共有ディスク方式 : 現用系サーバ&予備系サーバ → 一つのディスクを共有
- ミラーディスク方式 : 現用系サーバのデータ → 予備系サーバに同期
HPCクラスタ(High Performance Computing Cluster)
■ 目的
高性能化
グリットコンピューティング
ネットワークを通じて、複数のコンピュータを連携させることで、仮想的に1台のすごいコンピュータをつくる技術
クライアントサーバーシステム
ネットワークを通じて、複数のコンピュータが組み合わさって動く
→ 組み合わせ方は色々
集中処理 : 昔、主流、ホストコンピュータへ処理集中
分散処理 : 次、主流、多くのコンピュータで処理分散
クライアントサーバーシステム : 今、主流、処理をクライアント(サービスを要求する)・ サーバー(サービスを提供する)で分ける
3層クライアントサーバシステム
プレゼンテーション層・ファンクション層・データベース層(3層構造)
Webサイト・サーバーを使ったシステム構成
* 大規模なWebサイトの構築 = Webサーバー + APサーバーを置く
(メリット)
・ 負荷の軽い静的なコンテンツ(会社情報)へのリクエスト→ Webサーバーで処理
・ 負荷の重い動的なコンテンツ(商品の絞り込み)へのリクエスト→APサーバーで処理
ストアドプロシージャ
クライアントサーバーシステム → DBへのアクセス:SQL文の負荷大
→ ストアプロシージャ : 利用頻度が多い命令をサーバーに用意
→ ネットワーク負担軽減
シンクライアントシステム(Thin:薄い)
クライアントの機能を薄くする(クライアントにデータ残らない=情報漏洩)
VDI(Virtual Desktop Infrastructure)
シンクライアントシステムを実装する仕組み
(サーバー) (クライアント)
デスクトップ環境を作る ← サーバーに接続してデスクトップ画面を操作
* NAS(Network Attached Strage):ネットワーク(LAN)に接続して使うファイルサーバ専用機
→ ファイル単位で共有できる
サーバーの仮想化
コンピュータの中に複数の仮想的な(なんちゃって)サーバーを動かすこと
サーバー仮想化のやり方
ホスト型 | ホストOS上:仮想化ソフトウェア動かす → 別のゲストOS動かす |
ハイパバイザ型 | ハードウェア上:仮想化ソフトウェア(ハイパバイザ)動かす → 複数のゲストOS動かす |
コンテナ型 | OS上:管理ソフトウェア(コンテナエンジン)動かす → 実行環境(コンテナ)動かす |
■ 概要図
ホスト型 ハイパバイザ型 コンテナ型
※ ライブマイグレーション
仮想サーバを停止せず、別の物理サーバへ移動させる技術
システムの処理能力を向上させる方法
- スケールアップ: サーバーのCPU・メモリを増強する(サーバー自体を強化)
- スケールアウト: サーバーの台数を増やす
RAIDと信頼性設計
RAID(Redundant Arrays of Inexpensive Disks)
複数のハードディスクを組み合わせて、ハードディスクのアクセス・信頼性を上げる
種類 | ハードディスクにデータを書き込む方法 |
---|---|
RAID0 | 1データ:複数のディスクに分けて書く(ストライピング)→ 並列にアクセスするので高速 |
RAID1 | ディスク2台:同じデータを書く(ミラーリング)→バックアップなので信頼性高 |
RAID3 | ストライピング + パリティ(故障時、データ修復の情報をディスク1台に書く) |
RAID5 | データ・パリティ → ストライピング(最低3台HDD必要) |
信頼性設計
世の中「諸行無常」いつか壊れる
→ 「壊れても大丈夫」なシステムにする
フォールトトレランス(Fault Tolerance) Tlerance:許容
壊れても、必要な機能は維持するシステム
例) 小惑星探査機: 4基エンジン搭載 → 実際必要なのは3基(1基故障してもOK)
フェールセーフ(Fail Safe)
壊れたら、安全重視!
故障したときの設計)信号機:赤になる ストーブ:自動的に火が消える
フェールソフト(Fail Soft)
壊れても、継続重視! 一部のシステムを止めて運転を続ける(縮退運転)
しかし、頻繁に壊れるのもよくない。。。。。
フォールトアボイダンス(Fault Avoidance) Avoidance:回避
故障そのものを回避するシステム
例) 部品の性能高める、定期的に保守点検
フールプルーフ(fool proof)= エラープルーフ
ヒューマンエラーをさせないシステムにする
例) 電子レンジ→扉が空いた状態では動かない
システムの性能評価
色々なシステムの構成があり、どのシステムが良いのかわからない...
→ システムの性能を評価する指標がある
指標 | 説明 |
---|---|
スループット | 単位時間でできる仕事(ジョブ)量 |
レスポンスタイム(応答時間) | 処理依頼を終える 〜 処理結果の出力が始まる(オンラインリアルタイム処理で使用) |
ターンアラウンドタイム | 処理依頼を始める 〜 処理結果の出力が終わる(バッチ処理で使用) |
ベンチマークテスト
プログラムを実行 → 処理性能を評価
■ どの数値を指標にするかで種類が分かれる
種類 | 内容 |
---|---|
整数の計算 | SPECint |
浮動点少数の計算 | SPECfp |
トランザクションの処理 | TPCベンチマーク |
CPUの性能指標
MIPS(Million Instructions Per Second)
「1秒ごとに命令する数」で性能を評価
20MIPS のCPU:2000万個/1秒の命令ができる
100MIPS のCPU:10000万個/1秒の命令ができる
→ 後者のCPUが処理性能は高い
命令ミックス
CPUの命令は種類によってバラバラ(MIPSはどの命令を基準に計算するか?)
→ よく使われる命令をセットにする(命令ミックス)
(命令ミックス)
命令種別 | 実行時間(μs) | 出現頻度(%) |
---|---|---|
整数演算命令 | 1.0 | 50 |
移動命令 | 5.0 | 30 |
分岐命令 | 5.0 | 20 |
1×0.5+5×0.3+5×0.2 = 3.0マイクロ秒 (命令ミックスを実行するのにかかる時間)
→ MIPSで表す(1秒間に何百万回実行できるか?)
1(秒) /3.0(マイクロ秒)
→ 1/3.0 × 10⁻⁶ = 333,333.333・・・・
→ 約0.3MIPS
システムの信頼性評価
システムの信頼性を評価するための項目
→ RASIS(ラシス)
頭文字 | 指標 | 説明 | 具体的な指標値 |
---|---|---|---|
R | Reliability(信頼性) | 正常に動いてること | MTBF |
A | Availability(可用性) | 使いたい時に使えること | 稼働率 |
S | Serviceability(保守性) | 故障時、復旧しやすいこと | MTTR |
I | Integrity(保全性) | 情報に一貫性があること | ー |
S | Security(安全性/機密性) | 情報漏洩、不正使用を防止すること | ー |
評価するための指標
信頼性の指標
MTBF(Mean Time Between Failures):平均故障間隔
故障間隔が大きい = 信頼性高い
→ 予防保守(劣化部品を故障前に交換) = MTBF 長
保守性の指標
MTTR(Mean Time To Repair):平均修理時間
修理時間が短い = 保守性高い
→ 遠隔保守 = MTTR 短 (MTBF 長くなるとは限らない)
→ 保守センタを分散 = MTTR 短 (MTBF と関係はない)
可用性の指標
稼働率:正常に動いている割合
100%に近い = 品質が高い
(求め方)
稼働率 = MTBF / MTBF + MTTR (%)
複数システムの稼働率
直列システム ↔︎ 並列システム = 全体の稼働率は異なる
直列システム
システムA | システムB | システム全体 |
---|---|---|
● | ● | ● |
● | ✖️ | ✖️ |
✖️ | ● | ✖️ |
✖️ | ✖️ | ✖️ |
* 全体が稼働 : A・B稼働時のみ
→ 電気回路:直列つなぎ
→ 直列システムの稼働率 = 稼働率A × 稼働率B
並列システム
システムA | システムB | システム全体 |
---|---|---|
● | ● | ● |
● | ✖️ | ● |
✖️ | ● | ● |
✖️ | ✖️ | ✖️ |
* 全体が停止 : A・B故障時のみ
→ 電気回路:並列つなぎ
(配列システムの稼働率)
→ 配列システムの稼働率 = 1 ー 全体の故障率
→ 全体の故障率 = 故障率A × 故障率B
→ 故障率A(B) = 1 ー 稼働率A(B)
配列システム稼働率 = 1 ー ((1ー稼働率A) * (1ー稼働率B))
バスタブ曲線
① | 初期故障期間 | 導入初期:設計の欠点→故障率高くなる |
② | 偶発故障期間 | 突発的な故障→故障率は一定 |
③ | 摩耗故障期間 | 製品の寿命→故障率高くなる |