LoginSignup
0
1

More than 1 year has passed since last update.

システム構成

Last updated at Posted at 2022-09-07

システム構成

企業のシステム(発電所の制御システム・航空会社の予約システム)は停止すると、社会が大混乱!
→ システムを止めない工夫をしている

* ミッションクリティカル: 停止すると社会にダメージを与えるシステム

デュアルシステム

二つのシステム:同じ処理、処理結果をチェック
→ 障害発生時 : 片方のシステムで処理
デュアルシステム.jpg

デュプレックスシステム

二つのシステム(現在系と待機系)で処理をする
→ 障害発生時 : 待機系に処理を移行する
デュプレックスシステム.jpg
待機系のシステムの待機方法

  • ホットスタンバイ : 暖かくスタンバイ(現用系と同システムを起動してスタンバイ)
  • コールドスタンバイ : 冷たくスタンバイ(現在系と違う処理をしてスタンバイ)

システムの処理形態

  • バッチ処理: データを一定期間貯める → まとめて処理 例)給与計算
  • オンラインリアルタイム処理: データの発生と同時に処理する形態  例)ATM

バックアップサイト

災害に備える → システムを遠隔地に用意、システム待機状態の種類↓

  • ホットサイト:現用系と同じように稼働・ネットワークを通してデータを常に更新
  • ウォームサイト: ハードウェアを準備・定期的にデータを搬入
  • コールドサイト: バックアップサイトのみ準備するもの

緊急事態の行動計画

  • BCP(Business Country Plan): 緊急事態に備えた、事前の行動計画
  • RTO(Recovery Time Objective): 中断 → 復旧までの時間
  • BCM(Business Country Management): BCPを管理すること

クラスタシステム(クラスタ:ブドウの房)

複数のサーバーを一台のサーバーに見せかける技術(目的ごとに2構成あり)
→ サーバーが房のようにぶら下がっているイメージ

1. HAクラスタ(High Availability Cluster)

■ 目的
高可用性 → 高信頼化

負荷分散型クラスタ                フェールオーバ型クラスタ
 負荷分散型クラスタ_フォールオーバー型クラスタ.jpg
■ データベースをクラスタで分散させたときの整合性をとる方法

  • 負荷分散型クラスタ: レプリケーション(迅速な複製)
  • フェールオーバー型クラスタ
    • 共有ディスク方式 : 現用系サーバ&予備系サーバ → 一つのディスクを共有
    • ミラーディスク方式 : 現用系サーバのデータ → 予備系サーバに同期

HPCクラスタ(High Performance Computing Cluster)

■ 目的
高性能化

HPC.jpg

グリットコンピューティング

ネットワークを通じて、複数のコンピュータを連携させることで、仮想的に1台のすごいコンピュータをつくる技術

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

ネットワークを通じて、複数のコンピュータが組み合わさって動く
→ 組み合わせ方は色々
集中処理 : 昔、主流、ホストコンピュータへ処理集中
分散処理 : 次、主流、多くのコンピュータで処理分散
クライアントサーバーシステム : 今、主流、処理をクライアント(サービスを要求する)サーバー(サービスを提供する)で分ける
クライアントサーバーシステム.jpg

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

プレゼンテーション層・ファンクション層・データベース層(3層構造)
Webサイト・サーバーを使ったシステム構成
プレゼンテーション_ファンクション_データベース層.jpg
* 大規模なWebサイトの構築 = Webサーバー + APサーバーを置く
(メリット)
・ 負荷の軽い静的なコンテンツ(会社情報)へのリクエスト→ Webサーバーで処理
・ 負荷の重い動的なコンテンツ(商品の絞り込み)へのリクエスト→APサーバーで処理

ストアドプロシージャ

クライアントサーバーシステム → DBへのアクセス:SQL文の負荷大
ストアプロシージャ : 利用頻度が多い命令をサーバーに用意
→ ネットワーク負担軽減

シンクライアントシステム(Thin:薄い)

クライアントの機能を薄くする(クライアントにデータ残らない=情報漏洩)

VDI(Virtual Desktop Infrastructure)

シンクライアントシステムを実装する仕組み
(サーバー)           (クライアント)
デスクトップ環境を作る   ←    サーバーに接続してデスクトップ画面を操作

* NAS(Network Attached Strage):ネットワーク(LAN)に接続して使うファイルサーバ専用機
→ ファイル単位で共有できる
 

サーバーの仮想化

コンピュータの中に複数の仮想的な(なんちゃって)サーバーを動かすこと

サーバー仮想化のやり方

ホスト型 ホストOS上:仮想化ソフトウェア動かす → 別のゲストOS動かす
ハイパバイザ型 ハードウェア上:仮想化ソフトウェア(ハイパバイザ)動かす → 複数のゲストOS動かす
コンテナ型 OS上:管理ソフトウェア(コンテナエンジン)動かす → 実行環境(コンテナ)動かす

■ 概要図
   ホスト型   ハイパバイザ型   コンテナ型
サーバ仮想化_形態.jpg
ライブマイグレーション
仮想サーバを停止せず、別の物理サーバへ移動させる技術

システムの処理能力を向上させる方法

  • スケールアップ: サーバーの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)= エラープルーフ

ヒューマンエラーをさせないシステムにする
例) 電子レンジ→扉が空いた状態では動かない

システムの性能評価

色々なシステムの構成があり、どのシステムが良いのかわからない...
→ システムの性能を評価する指標がある

指標 説明
スループット 単位時間でできる仕事(ジョブ)量
レスポンスタイム(応答時間) 処理依頼を終える 〜 処理結果の出力が始まる(オンラインリアルタイム処理で使用)
ターンアラウンドタイム 処理依頼を始める 〜 処理結果の出力が終わる(バッチ処理で使用)

レスポンス_ターンアラウンドタイム.jpg

ベンチマークテスト

プログラムを実行 → 処理性能を評価
■ どの数値を指標にするかで種類が分かれる

種類 内容
整数の計算 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 (%)

複数システムの稼働率

直列システム ↔︎ 並列システム = 全体の稼働率は異なる

直列システム

稼働率_直列接続.jpg
(稼働状況)

システムA システムB システム全体
✖️ ✖️
✖️ ✖️
✖️ ✖️ ✖️

* 全体が稼働 : A・B稼働時のみ
→ 電気回路:直列つなぎ
直列システムの稼働率 = 稼働率A × 稼働率B

並列システム

システム稼働率_並列システム.jpg
(稼働状況)

システムA システムB システム全体
✖️
✖️
✖️ ✖️ ✖️

* 全体が停止 : A・B故障時のみ
→ 電気回路:並列つなぎ

(配列システムの稼働率)
→ 配列システムの稼働率 = 1 ー 全体の故障率
→ 全体の故障率 = 故障率A × 故障率B
→ 故障率A(B) = 1 ー 稼働率A(B)

配列システム稼働率 = 1 ー ((1ー稼働率A) * (1ー稼働率B))

バスタブ曲線

(故障の発生頻度と時間の関係)
風呂の形と似ている
バスタブ曲線.jpg

初期故障期間 導入初期:設計の欠点→故障率高くなる
偶発故障期間 突発的な故障→故障率は一定
摩耗故障期間 製品の寿命→故障率高くなる
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1