ロードバランサ
複数サーバによる信頼性の向上
稼働率の低い複数のサーバを組み合わせる。
負荷分散(DNSラウンドロビン)
nslookup
DNSサーバに問い合わせて、同じサービスを提供する複数のサーバを用意しておき、アクセスを振り分けて分散させる。
nslookup www.google.co.jp
サーバー: UnKnown
Address: 192.168.0.1権限のない回答:
名前: www.google.co.jp
Addresses: 2404:6800:4004:804::101f
74.125.235.151
74.125.235.152
74.125.235.159
アドレス変換(NAT) 型負荷分散
※NATとはプライベートアドレスをグローバルアドレスに変換してインターネットにつなげる技術
ダイレクトルーティング型負荷分散
※ひとつのネットワークにLBもサーバもいる状態
※レスポンスはLBを通らないのでボトルネックになりにくい
1.リクエスト
2.振り分け
3.振り分け先サーバAからクライアントへレスポンス
分散アルゴリズム
1.ラウンドロビン
順番アクセス
2.ランダム型
完全ランダム
3.送信もとIPアドレス
同じクライアントが同じサーバを利用する
4.サーバ負荷連動型
処理能力に余裕のあるサーバに振る
5.重み付け
通信の冗長化
ポート番号
20,21 FTP
22 SSH
23 Telnet
25 SMTP
53 DNS
80 HTTP
110 POP3
143 imap
443 HTTPS
0-1023までをウィルノウンポート
IPアドレス
32bit
オクテッド 8
MACアドレス
12桁
全二重、半二重
片方しかデータが送れないデータを半二重通信、
受信と送信を同時に遅れるものを全二重通信という
CSMA/CD方式
機器
リピーターハブ
ハブはL1の機器、スイッチングハブはL2の機器
ハブは通信を受け取ると、受信したポート以外のポートにフラッディングという通信を行う。
ブリッジ L2機器
スイッチ L2機器
ルータ L3の機器
ブロードキャストドメイン
1対1通信をユニキャスト通信、1対n通信をブロードキャスト通信という。
ネットワークアドレス
ネットワーク部 andで計算する
ホスト文 全部0
ブロードキャストアドレスの計算
ネットワーク部 andで計算する
ホスト文 全部1
データのループ
冗長構成をとりつつうっかりループする構成を作ってしまうことがある。
冗長化
サーバの稼働率をあげる
CPUやメモリといったコンポーネントを冗長化させる
1.CPU
2.メモリ
3.LANセグメント
4.ディスクアダプタ
5.ディスクコントローラ
6.ディスクボリューム
7.ファン
8.電源
FTサーバ
フォールトトレラントサーバ
ディスクの構造
※ディスクは故障率が高い
RAID
Redundant Array of Inexpensive DIsks レイド
複数代の安価なハードディスクを組み合わせて、冗長かさせた1台のハードディスクとして管理する技術
RAID0 RAID1 RAID5
ソフトウェアRAIDとハードウェアを使用するハードウェアRAIDの2種類ある。
RAID0
ストライピングする
速さ 速い
信頼性 ない
容量 n
RAID1
ミラーリングで書き込みを行う
速さ 遅い
信頼性 ある
容量 1
RAID10(1+0)
速さ 速い
信頼性 高い
容量 n/2
ソフトウェアRAIDとハードウェアRAID
ハードウェアRAIDではRAIDコントローラーカードを使う
ネットワークインタフェースの冗長化
ネットワークインタフェースが故障してしまえば無意味
bonding
Linuxでは複数のインタフェースを束ねた仮想的なインタフェースを作ることが出来る。
ボンディングインタフェースと呼ばれ、bond0、bond1のように名称が付いている。
高信頼性システム
ミッションクリティカルシステム
24時間、365日止まらないことを要求される基幹業務
RASIS
信頼性評価の指標
R Reliability 信頼性 故障が少ない 平均故障時間
A Avaiability 可用性 稼働率が高い 稼働率
S Serviceability 保守性 障害修復時間が少ない 平均修理時間
I Integlity 保全性 データの矛盾が発生しない
S Security 機密性 不正アクセスが起きない
RASは数値化される
Reliability
Availability
Serviceability
単独障害点
単一障害点
SPOF
冗長化
二重化
複数コンピュータを使用してシステムの信頼性を高めること
フォールトトレラントシステム
耐故障性を備える
システムの一部が故障しても、全体としては必要な機能を維持する
システム監視
監視 -> 検知 -> 通知
ITIL
1.サービスサポート
2.サービスデリバリ
サービスサポート
運用手法
1.インシデント管理 応急処置
2.問題管理 原因究明
3.変更管理 IT環境の変更
4.リリース管理 新バージョンのソフトウェア導入など
5.構成管理 ハードウェアやソフトウェアの構成を管理する
サービスデリバリ
中長期的なサービス管理手法
1.サービスレベル管理 サービスレベルの維持、記録
2.可用性管理 稼働率をあげる
3.キャパシティ管理 負荷を把握
4.ITサービス財務管理 費用の管理
5.ITサービス継続性管理 災害、テロ時の対応
SLA
Service Level Agreement
1.項目数をむやみに増やさない
2.測定可能な項目を設定しない
3.あいまいな項目は設定しない
TILメリット
1.満足度
2.収益の増加
3.損失時間
4.市場投入までの時間短縮
5.意思決定の改善とリスクの最適化
NoSQL
NoSQL種類
1.キーバリューストア
2.列指向
3.ドキュメント指向
列指向
※MapReduce 大規模データ用のクラスタ用フレームワーク
列単位でのデータ管理
keyとバリューのデータが列ごとに作成される
1.key Value , key Value….
HBase
BigTable
Cassandra
NoSQLまとめ
NoSQLをいれることはそれ自体がスループットをあげる
単純なしくみなので、むしろアプリケーションの設計をNoSQLにあわせる形になる
NoSQLとCAP定理
分散コンピュータ間の情報複製についての定理
1.Consistency
2.Availability
3.Partition-tolerance
consistency 一貫性
どのノードでも一貫性があることを示す
レプリ遅延時はconsistencyがないと言える
Availability 可用性
内部で問題が起きても、外部からみて問題ないこと
Partition-trelance 分割耐性
データノードが分割された場合でも、継続して正常な動作が行えるか
ジレンマ
※CAP定理のうち、2つは満たせるが3つを満たすことは出来ない
1.CA (RDBMS)
一貫性と可用性を持つ。
分割耐性がない。
2.AP Cassandra,CouchDB
分割グループでサービス継続可
一貫性は保たれない
3.PC MongoDB,HBase
分割しても 一貫性を保つ。
※分割グループを切りはなす
一般的にPは前提であるので、CかAか
Cを保たなければいけない場合はあまりないので、CPが基本。
BASE
ビッグデータを扱うのに、トランザクションのようなACIDの考え方は邪魔
BA Basically Avaiable まず可用性
S Soft-State 状態繊維
E Eventual Consistency 結果的な整合性
Consistent Hashing
ハッシュが一番一様に分散してくれる
インパクトを限定的にしてくれる
Hadoop
大量データを処理する
1.HDFS ファイルシステム (Hadoop Distributed FIle System)
2.MapReduce 分散基盤
HDFSではひとつのファイルを複数のノードに分散配備する
1.データー...データサイズ ペタバイト単位
2.アクセス...バッチ処理が基本、インタラクティブ (リアルタイム)
3.更新…何度も書き込める
4.構造...動的スキーマ
5.整合性…高い
6…スケーラビリティ…直線的
MapReduceの設計が難しい
SQLに対して、解析が難しい
そこで、MapReduceの設計を簡単にするために中間言語が生まれた。
1.Pig
2.Hive
=> Hadoop + HBase + (PigLatin,Hive)によって弱点なし
注意点
JBOD
※普通のストレージ装置を使う