LPIC304

Plan your projects and define important tasks and actions

登録は簡単!. 無料です
または 登録 あなたのEメールアドレスで登録
Rocket clouds
LPIC304 により Mind Map: LPIC304

1. 仮想化

1.1. 概要

1.1.1. 仮想化とは

1.1.2. メリットデメリット

1.1.2.1. メリット

1.1.2.1.1. システムの柔軟性と拡張性

1.1.2.1.2. コスト削減

1.1.2.2. デメリット

1.1.2.2.1. 性能劣化が早い

1.1.3. 仮想化方式の種類

1.1.3.1. ホストOS型

1.1.3.2. ハイパーバイザー型

1.1.3.2.1. ホストOSよりパフォーマンスが高い

1.1.3.3. コンテナ型

1.1.3.3.1. パフォーマンスが高い

1.1.3.3.2. リソース消費が少ない

1.1.3.3.3. 構成の自動化や運用管理が容易

1.1.4. 仮想マシンの移行

1.1.4.1. P2V

1.1.4.2. V2V

1.1.5. 準仮想化と完全仮想化

1.1.5.1. 準仮想化

1.1.5.1.1. ゲストOSに修正必要

1.1.5.1.2. デバイスドライバはゲストOS上にインストール

1.1.5.2. 完全仮想化

1.1.5.2.1. 修正なし

1.1.5.2.2. 処理のオーバーヘッドが大きい

1.1.6. CPUモードと特権モード

1.1.6.1. 特権モード

1.1.6.2. ユーザモード

1.1.7. CPUの仮想化支援機能とCPUフラグ

1.1.7.1. CPUの仮想化支援

1.1.7.1.1. IntelVT

1.1.7.1.2. AMD-V

1.1.7.2. CPUフラグ

1.1.7.2.1. /prc/cpuinfoに格納

1.1.7.2.2. vmxかsvmの記載

1.1.8. クラウドコンピューティング

1.1.8.1. 定義 NIST SP800−145

1.1.9. クラウドのサービスモデル

1.1.9.1. SaaS

1.1.9.2. PaaS

1.1.9.3. IaaS

1.1.9.3.1. AWS

1.2. Xen

1.2.1. 概要

1.2.1.1. ハイパー型仮想化テクノロジー

1.2.1.2. Ver3.0以降64bitやSMPにも対応

1.2.2. アーキテクチャ

1.2.2.1. 管理OSのドメイン Domain-0(dom0)

1.2.2.2. ゲストOSのドメイン Domain-U(domU)

1.2.2.3. ハイパーバイザを軽量化

1.2.2.4. デバイス制御はLinuxカーネル

1.2.2.5. ストレージアクセス

1.2.2.5.1. Domain-Uの仮想ストレージ 仮想ブロックデバイス

1.2.2.6. 準仮想デバイスと完全仮想デバイス

1.2.2.6.1. HVMドメイン

1.2.3. Xenの設定

1.2.3.1. 設定ファイル

1.2.3.1.1. /etc/xen/ドメイン名

1.2.3.1.2. 項目

1.2.3.2. 完全仮想化ゲスト(HVM)を動かす場合

1.2.3.2.1. builder='hvm'

1.2.3.3. Domain-Uの自動起動の設定

1.2.3.3.1. 設定ファイル /etc/xen/auto

1.2.3.3.2. シンボリックリンク /etc/xenディレクトリ

1.2.3.3.3. xendomainsが自動起動するように設定

1.2.3.4. メモリの割り当て

1.2.3.4.1. ブートローダにdom0_memを使用

1.2.3.5. ネットワークインターフェイス

1.2.3.5.1. Xenゲストドメインの設定ファイルでxifディレクティブで定義

1.2.4. ユーティリティとツールスタック

1.2.4.1. LibXenlight(共通のライブラリ)

1.2.4.2. xentop

1.2.4.2.1. システムリソースの使用状況確認

1.2.4.3. xenstore-ls

1.2.4.3.1. Xenドメイン実行時情報にアクセス

1.2.4.4. xl

1.2.4.4.1. /etc/xen/xl.conf

1.2.4.4.2. /etc/xen/xl.cfg

1.2.4.4.3. xl list

1.2.4.5. XAPI/XE

1.2.4.5.1. xe

1.2.4.6. xentop

1.2.5. XenStore

1.2.5.1. xenstoredデーモン

1.2.5.2. xenstore-ls

1.2.5.2.1. XenStore格納のキーと値の情報を一覧表示

1.3. KVM

1.3.1. 概要

1.3.1.1. 完全仮想化

1.3.1.1.1. Windowsも対応

1.3.2. アーキテクチャ

1.3.2.1. ハードウェアデバイスのエミュレータが必要

1.3.2.1.1. QEMUがメモリやディスクI/Oで現在使用されている

1.3.2.2. 仮想CPU

1.3.2.2.1. 最大16

1.3.2.2.2. カーネル2.6.23以降SMPゲストもサポート

1.3.2.3. メモリ管理

1.3.2.3.1. Linuxカーネルのメモリ管理システム

1.3.3. セットアップ

1.3.3.1. 必要なコンポーネント

1.3.3.1.1. kvm.ko

1.3.3.1.2. qemu

1.3.3.1.3. libvirt

1.3.3.1.4. bridge-utils

1.3.3.2. CPU仮想化支援機能

1.3.3.2.1. kvm-intel.ko

1.3.3.2.2. kvm-amd.ko

1.3.4. ユーティリティ

1.3.4.1. qemu-img

1.3.4.2. KVMのスナップショット

1.3.4.2.1. qcow

1.3.4.3. QEMUモニター

1.3.4.3.1. Ctrl+Alt+2

1.3.4.4. qemu-kvm

1.3.4.4.1. KVMを管理する

1.3.4.5. 起動パラメータを指定

1.3.4.5.1. qemu-kvm -boot

1.3.4.6. 新しいドライブのアタッチ

1.3.4.6.1. qemu-kvm -drive

1.3.4.7. 起動イメージの指定

1.3.4.7.1. -append

1.3.4.7.2. -initrd

1.3.4.7.3. -kernel

1.3.5. ネットワーキング

1.3.5.1. libvirtdデーモンで管理

1.3.5.1.1. virbr0仮想ブリッジ

1.3.5.1.2. vnet〜TAPデバイス

1.3.5.2. brctl

1.3.5.2.1. ブリッジの管理

1.3.5.3. tunctl

1.3.5.3.1. TUN/TAPデバイスの作成管理

1.4. その他仮想化ソリューション

1.4.1. OpenVZ

1.4.1.1. コンテナ型仮装ソフトウェア

1.4.1.1.1. Red Hat Enterprise Linux RHEL

1.4.1.2. EZテンプレート

1.4.1.2.1. さまざまなOSのテンプレ

1.4.1.2.2. vzpkg install template

1.4.1.3. OpenVZのユーティリティ

1.4.1.3.1. vzctl

1.4.2. LXC

1.4.2.1. Linux用コンテナ型仮想化技術

1.4.2.1.1. 最新のLinuxカーネルに準拠

1.4.2.2. テンプレートの保存先 /usr/share/lxc/templates

1.4.2.3. ユーティリティ

1.4.2.3.1. lxc-console

1.4.2.3.2. lxc-create

1.4.2.3.3. lxc-destroy

1.4.2.3.4. lxc-start

1.4.2.3.5. lxc-stop

1.4.3. その他の仮想化テクノロジー

1.4.3.1. VirtualBox

1.4.3.1.1. Oracle社の仮想化ソフトウェア

1.4.3.1.2. VBoxManage コマンドツール

1.4.3.1.3. VirtualBoxManager GUIの管理ツール

1.4.3.2. Vagrant

1.4.3.2.1. 仮想マシンの作成や管理を簡単にするためのツール

1.4.3.2.2. Vagrantfile 環境構築用の設定ファイル

1.4.3.2.3. プロビジョニング機能 ゲストOS起動時に特定のコマンドを実行

1.4.3.2.4. box パッケージングされた仮想マシン環境

1.4.3.2.5. vagrant 管理コマンド

1.4.3.3. Packer

1.4.3.3.1. Vagrantで作成されたboxを様々な環境に対応したマシンイメージにビルドするソフト

1.4.3.4. Docker

1.4.3.4.1. コンテナ型仮想化ソフトウェア

1.4.3.4.2. もっとも普及している

1.5. Libvirtおよび関連ツール

1.5.1. 概要

1.5.1.1. 仮想化環境の操作・管理のための共通インターフェース(抽象化ライブラリ)

1.5.1.2. libvirt communityによって開発

1.5.2. アーキテクチャ

1.5.2.1. libvirtdデーモン

1.5.2.1.1. 設定ファイル /etc/libvirt/libvirtd.conf

1.5.2.2. 利用可能なツール

1.5.2.2.1. virt-clone

1.5.2.2.2. virt-image

1.5.2.2.3. virt-install

1.5.2.2.4. virt-manager

1.5.2.2.5. virt-viewer

1.5.2.3. ネットワーキング

1.5.2.3.1. デフォルトのNATブリッジが作成 「default」

1.5.2.3.2. 認証プロトコル

1.5.2.4. ストレージ管理

1.5.2.4.1. ボリューム

1.5.2.4.2. プール

1.5.3. virshによるlibvirtの操作

1.5.3.1. libvirtが提供する標準のコマンドラインツール

1.5.3.2. ゲスト一覧表示

1.5.3.2.1. list

1.5.3.3. ゲストの起動

1.5.3.3.1. start

1.5.3.4. ゲストOSのコンソール接続

1.5.3.4.1. console

1.5.3.5. 別のホストに移行

1.5.3.5.1. migrate

1.5.3.6. 仮想ネットワークの管理

1.5.3.6.1. net-list

1.5.3.6.2. 起動net-start default

1.5.3.6.3. 自動起動 net-autosatrt default

1.5.3.7. ネットワークの設定

1.5.3.7.1. net-edit

1.5.3.8. 仮想CPUの情報

1.5.3.8.1. vcpuinfo

1.5.3.9. CPUアフィニティ

1.5.3.9.1. vcpupin

1.5.3.9.2. 仮想CPUと物理CPUの対応づけ

1.5.3.10. イメージファイルの一覧

1.5.3.10.1. vol-list

1.5.3.11. 仮想マシンの復元 restore

1.5.4. oVirt

1.5.4.1. KVMの管理ツール

1.5.4.2. 特徴

1.5.4.2.1. 複数の仮想マシンの配備と管理

1.5.4.2.2. リソース利用率のモニタリングとクォータの管理

1.5.4.2.3. ユーザビリティに優れたWebインターフェース

1.5.4.2.4. ハイパーバイザ間でのライブマイグレーション

1.6. クラウド管理ツール

1.6.1. OpenStack

1.6.1.1. IaaS用プラットフォーム

1.6.1.2. 主要コンポーネント

1.6.1.2.1. Cinder

1.6.1.2.2. Glance

1.6.1.2.3. Keystone

1.6.1.2.4. Neutron

1.6.1.2.5. Nova

1.6.1.2.6. Swift

1.6.1.3. オプション

1.6.1.3.1. Horizon

1.6.2. CloudStack

1.6.2.1. Apache CloudStackとして開発

1.6.2.2. 管理サーバがハイパーバイザと通信する基盤を提供

1.6.2.2.1. KVM

1.6.2.2.2. XenServer

1.6.2.2.3. VMware vSphere

1.6.2.2.4. Hyper-V

1.6.3. その他クラウド構築管理ツール

1.6.3.1. Eucalyptus

1.6.3.2. OpenNebula

2. クラスタ管理

2.1. 概要

2.1.1. クラスタとは論理的な1つの塊

2.1.2. 高可用クラスタ

2.1.2.1. 可溶性を高めるクラスタ

2.1.2.2. システムに冗長性を持たせ耐障害性を向上

2.1.3. 可溶性指標

2.1.3.1. MTBF 平均故障間隔

2.1.3.2. MTTR 平均復旧間隔

2.1.3.3. 稼働性

2.1.4. ロードバランスクラスタ

2.1.4.1. 負荷分散クラスタ

2.1.4.1.1. 単独のリスク

2.1.4.2. ロードバランサ

2.1.4.2.1. パフォーマンス向上

2.1.5. フェイルオーバークラスタ

2.1.5.1. 障害が発生した場合、別のサーバーでサービスを起動し、継続して提供

2.1.5.2. アクティブ/パッシブ

2.1.5.2.1. 待機ノードは停止

2.1.5.3. アクティブ/アクティブ

2.1.5.3.1. 待機ノードはあらかじめ起動

2.1.5.4. シェアードディスク

2.1.5.4.1. 共有ディスク方式

2.1.5.5. シェアードナッシング

2.1.5.5.1. 共有ディスクを使わない

2.1.6. クラスタアーキテクチャの設計

2.1.6.1. スプリットブレイン

2.1.6.1.1. 複数ノードがマスターになったり、サービスの二重起動状態

2.1.6.2. フェンシング

2.1.6.2.1. 障害ノードをクラスタから切断する仕組み

2.1.6.3. クオーラム

2.1.6.3.1. 一定数以上の正常ノードがあれば有効グループとみなす

2.1.6.3.2. 専用のディスクに書き込みを行なっているかどうか

2.1.6.4. ディザスタリカバリ

2.1.6.4.1. RPO

2.1.6.4.2. RTO

2.2. ロードバランスクラスタ

2.2.1. LVS

2.2.1.1. オープンソースのロードバランサ

2.2.1.2. 実際にサービス提供サーバ

2.2.1.2.1. リアルサーバ

2.2.1.2.2. バックエンドサーバ

2.2.1.3. 割り振るサーバ

2.2.1.3.1. 仮想サーバ

2.2.1.3.2. ロードバランサ

2.2.1.4. レイヤ4スイッチング

2.2.1.4.1. トランスポート層

2.2.1.5. IPVS(IP Virtual Server)

2.2.1.5.1. ip_vsモジュール

2.2.1.5.2. メインデーモンlvsd

2.2.1.5.3. LVSフォワーディング

2.2.1.5.4. 接続スケジューリングアルゴリズム

2.2.1.5.5. ipvsadm

2.2.2. keepalived

2.2.2.1. リアルサーバの監視状況を監視

2.2.2.2. ロードバランサ自体を冗長化

2.2.2.3. 設定ファイル

2.2.2.3.1. /etc/keepalived/lkeepalived.conf

2.2.2.4. VRRP

2.2.2.4.1. ルータを冗長化

2.2.2.4.2. 認証方法

2.2.3. ldirectord

2.2.3.1. Linux Director Daemon

2.2.3.2. LVSクラスタにおいてHeartbeatと連携して動作する負荷分散システム

2.2.3.3. 設定ファイル

2.2.3.3.1. /etc/ha.d/ldirectord.cf

2.2.4. HAProxy

2.2.4.1. TCPプロキシ、HTTPリバースプロキシ、SSLターミネータ機能を提供するオープンソース

2.2.4.2. レイヤ7で動作するロードバランサ

2.2.4.2.1. ルーティングポリシーが高度で複雑

2.2.4.2.2. ACLに基づいた振り分けが可能

2.2.4.2.3. パフォーマンスがボトルネックになりやすい

2.2.4.3. 振り分けアルゴリズム

2.2.4.3.1. ラウンドロビン

2.2.4.4. 設定ファイル

2.2.4.4.1. /etc/haproxy/haproxy.cfg

2.3. フェイルオーバークラスタ

2.3.1. Pacemaker

2.3.1.1. フェイルオーバークラスタのリソースマネージャのオープンソース

2.3.1.2. 元はHeartbeat

2.3.1.3. OpenAIS

2.3.1.3.1. 高可用性ソフトウェア仕様AISのオープンソース実装

2.3.2. Pacemakerのアーキテクチャ

2.3.2.1. cib.xml

2.3.2.1.1. 全てのノード間で自動で作成、クラスタ全体を管理

2.3.2.2. リソースとリソースエージェント

2.3.3. リソースクラス

2.3.3.1. LSB

2.3.3.2. OCF

2.3.3.3. Upstart

2.3.3.4. Systemd

2.3.4. Pacemakerの管理とユーティリティ

2.3.4.1. cibadmin

2.3.4.1.1. cib.xmlファイルの編集コマンド

2.3.4.2. crmコマンド、crmshシェル

2.3.4.2.1. cibadminのラッパーとして機能

2.3.4.3. crmsh

2.3.4.3.1. 対話型のシェル

2.3.4.4. pcs

2.3.4.4.1. PacemakerやCorosyncの制御や設定用のツール

2.3.5. リソースの制約

2.3.5.1. スコア値

2.3.5.1.1. リソースを起動するノードの優先度

2.3.5.2. location制約

2.3.5.2.1. リソースをどのノードで実行するか

2.3.5.2.2. pcs constrain location

2.3.5.3. order制約

2.3.5.3.1. リソースを実行する順番

2.3.5.3.2. pcs constraint order

2.3.5.4. colocation制約

2.3.5.4.1. 同一リソース上で一緒に実行すべきリソース

2.3.5.4.2. pcs constraint add ~ with

2.3.6. STONITH対応デバイス

2.3.6.1. Pacemakerクラスタにおいてスプリットブレインを防ぐフェンシング機能として実装

2.3.6.2. ノードの電源をリモートから切断

2.3.6.3. fence_apc

2.3.6.3.1. APCが提供するラックPDUデバイス

2.3.7. Corosyncの設定と管理

2.3.7.1. Pacemakerのクラスタエンジンとして利用

2.3.7.2. /etc/corosync/corosync.conf

2.3.7.3. 主なコマンド

2.3.7.3.1. corosync-cfgtool

2.3.7.3.2. corosync-cmapctl

2.3.7.3.3. corosync-keygen

2.3.7.3.4. corosync-quorumtool

2.3.7.4. 認証鍵

2.3.7.4.1. corosync-keygen

2.3.7.4.2. /etc/corosyncディレクトリ

2.4. エンタープライズLinux

2.4.1. RHELの高可用性アドオン

2.4.1.1. CMAN

2.4.1.2. DLM

2.4.2. SUSE Linuxエンタープライズの高可用性拡張

3. クラスタストレージ

3.1. DRBDおよびcLVM

3.1.1. DRDB概要

3.1.1.1. ブロックデバイスのミラーリング機能を提供

3.1.1.2. ネットワークを介したRAID1

3.1.1.3. Red Hat High Availability Add-on

3.1.1.4. 特徴

3.1.1.4.1. アプリケーションから透過的にリアルタイムでデータを複製する

3.1.1.4.2. データの複製は同期非同期両方対応

3.1.1.4.3. カーネルレベルで動作するため高速

3.1.1.5. リソース

3.1.1.5.1. プライマリとセカンダリ(ロール)

3.1.1.5.2. デフォルトでは1台のノードのみがプライマリロールをもつ

3.1.1.5.3. データの読み書きに制約はない

3.1.1.5.4. 対応するプライマリノードからのデータの更新のみ受付

3.1.1.5.5. 自ノードのアプリケーションからのデータの読み書きは一切できない

3.1.1.6. リソースのステータス情報

3.1.1.6.1. /proc/drbd

3.1.1.7. PacemakerクラスタでのDRBDの使用

3.1.1.7.1. レプリケーションリソース

3.1.1.7.2. 仮想IPリソース

3.1.1.7.3. DRBDストレージをマウントするためのファイルシステムリソース

3.1.1.8. レプリケーションモード

3.1.1.8.1. 同期/非同期に対応3種類のレプリケーションモード

3.1.1.9. 3ノードレプリケーション

3.1.1.9.1. 3番目のノードを追加

3.1.1.10. DRBDのデュアルプライマリモードによる負荷分散

3.1.1.10.1. /etc/drbd.conf

3.1.1.10.2. allow-two-primaries

3.1.2. DRBDの管理用ユーティリティ

3.1.2.1. drbadm

3.1.2.1.1. DRBDの管理

3.1.2.2. drbdsetup

3.1.2.3. drbdmeta

3.1.3. cLVM概要

3.1.3.1. LVMのクラスタ用拡張

3.1.3.1.1. clvmdデーモン

3.1.4. cLVMのユーティリティ

3.1.4.1. vgs

3.1.4.1.1. ボリュームグループの一覧表示

3.1.4.2. vgchange

3.1.4.2.1. ボリューム属性の変更

3.2. クラスタファイルシステム

3.2.1. 概要

3.2.1.1. クラスタ環境で利用に最適化されたファイルシステム

3.2.1.2. 複数ノードから同時アクセス可能

3.2.1.3. 更新情報の繁栄やロックの解除の適切処理

3.2.2. GFS2

3.2.2.1. ファイルシステムをマウントするにはジャーナルが必要

3.2.2.2. gfs2_jadd

3.2.3. OCFS2

3.2.3.1. コマンド

3.2.3.2. tunefs.ocfs2 パラメータの調整

3.2.4. O2CBクラスタスタック

3.2.4.1. コンポーネント

3.2.4.1.1. o2nm

3.2.4.1.2. o2hb

3.2.4.1.3. o2net

3.2.4.1.4. o2dlm

3.2.4.1.5. dlmfs

3.2.4.2. 設定ファイル

3.2.4.2.1. /etc/ocfs2/cluster.conf

3.2.4.2.2. /etc/sysconfig/o2cb 基本設定

3.2.5. その他の分散ファイルシステム(クラスタファイルシステム)

3.2.5.1. GlusterFS

3.2.5.2. CephFS

3.2.5.3. AFS