LPIC304学習用 分類 小分類 概要 項目 仮想化 全般 仮想

LPIC304学習用
分類
小分類
概要
項目
仮想化
全般
仮想化技術を用いて仮想化されるもの
サーバ, OS, セキュリティなどの物理デバイス
仮想化
全般
ハイパーバイザーについて
ベアメタル型とホスト型がある
ゲストOSに対して特権命令ができる
メモリやCPUを直接操作可能
仮想化
全般
ハイパーバイザーコール
準仮想化で使われる。
仮想OSで発行され、ハイパーバイザーへのハードウェア操作を依頼する。
仮想化
全般
完全仮想化(=ハードウェア仮想化)
CPUエミュレーション動作
ゲストOSの改変なく実行
仮想化
全般
仮想化ゲストのメモリ制限
1TB
仮想化
全般
仮想化における/proc/cpuinfo
flagsで完全CPUが仮想化に対応しているかどうかを確認できる
flags=vmx→intel-V
flags=svm→amd-v
仮想化
全般
仮想化支援機構が使えない仮想化の制限
windowsが使えない等(windowsは改変できない)
仮想化
vrish
vrish list
稼働中ゲストOSの一覧表示
--allで停止中可動中すべて表示
仮想化
vrish
vrish setvcpus [マシン名] cpu数
割り当てcpu数を変更
仮想化
vrish
vrish vcpupin [マシン名] 仮想CPU番号 物理CPU先
仮想化
vrish
vrish save [マシン名] ファイル名
仮想マシンを停止して、状態をファイルに保存する
仮想化
vrish
vrish restore [マシン名] ファイル名
ファイルから復元する
仮想化
vrish
vrish suspend [マシン名]
休止状態へ
仮想化
vrish
vrish resume [マシン名]
休止から復帰へ
仮想化
vrish
vrish dumpxml [マシン名]
設定を標準出力へxmlファイルとして出力
仮想化
Xen
Xenの特徴
複数の仮想マシンで物理リソースを共有し、ライブマイグレーションが可能である。
(あれ、、、特徴になってない。。。)
仮想化
Xen
Xenのデバイスドライバ
ゲストOS内にある
仮想化
Xen
xm create [-c] ファイル名(/etc/xen/配下orフルパス)
仮想マシンを起動
-cでコンソールに接続する
仮想化
Xen
xm shutdown
通常停止
仮想化
Xen
xm destroy
強制停止
仮想化
Xen
xm pause
一時停止
仮想化
Xen
xm migrate [マシン名] [ホスト名]
migrate(移動する)
-lで停止しないライブマイグレーション
通常は停止を伴う
仮想化
Xen
xm list
仮想マシンの一覧表示、
state: r 稼働中, b アイドル中, p 停止中, s シャットダウンや再起動の途中 ,c クラッシュ,
※完全にシャットダウンしている場合は表示されない
仮想化
Xen
uuidgen
仮想マシンのuuid発行
仮想化
Xen
/etc/xenの格納ファイル
xend-config.sxp:構成ファイル
仮想マシンの構成ファイル
※書式は=で文字列を""でかこむ。;はなし
仮想化
Xen
/boot/grub/grub.confで設定できる内容
mem:xen対応カーネルが利用できるメモリ容量
dom0_mem:dom0が使用するメモリ量
dom0_max_vcpus:dom0が使用する最大仮想CPU数
仮想化
Xen
ライブマイグレーション
共有ストレージ
再起動なし
メモリを順次コピー
準仮想化/完全仮想化問わず実施可能
※xend-config.sxpで関連する設定は以下
xend-relocation-port:マイグレーションポート
xend-relocation-server:マイグレーションの有効/無効を設定
xend-relocation-hosts-allow:マイグレーション先として指定するホスト
xend-relocation-address:移行サーバーを制約して特定のインターフェイス だけをリッスンするようにする
仮想化
Xen
xmが使えないとき
xendの停止有無を確認する
仮想化
Xen
自動起動
/etc/xen/auto内へ仮想あぷらいあんすの設定ファイルのリンクをおく
vrish autostart vm01コマンドを実行する
仮想化
KVM
KVMの特徴
完全仮想化/準仮想化をサポート(完全仮想化のときにwindows利用可)
virtioをつかってドライバを準仮想化のように動作させる
QEMU(マシンエミュレータ兼バーチャライザ)を使用
libvirtのツールを使って環境管理
・virt-clone:仮想マシンイメージをコピー
・virt-convert:diskイメージの保存フォーマットを変更
・virt-image:xmlファイルから仮想マシンを作成
・virt-install:仮想マシンをcui/guiでインストール
・virt-viewer:グラフィカルコンソールを表示
メモリはホストOSのメモリ管理システムを利用
QEMMはディスクOS用のメモリマネージャ
仮想化
KVM
完全仮想化に必要なモジュール
kvm-intel.ko/kvm-amd.ko
仮想化
KVM
仮想マシンのリソース上限
cpu16 メモリ512GB NIC8
仮想化
KVM
qemu-kvm オプション ディスクイメージ
ゲストOSのインストール
-usedevice tablet:ポインタのゼッタイ位置を特定/mouse:マウスをエミュレート
仮想化
KVM
インストール時に導入されるコンポーネント
bridge-utils
etherboot-zroms-kvm
kmod-kvm(kvmカーネルモジュール)
kvm-qemu-img
python-virtinst
virt-viewer
virt-manager
libvirt
仮想化
KVM
qemuのネットワーク
ユーザーモードネットワーク:外部インターネットを利用するのに使用。TCP/UDPのみ。ゲストOSはデフォルトでは許可されていない
TAP/TUN:ホストOSからゲストOSにアクセスできる。ただしホストOSにvpnのインストールが必須
仮想化
コンテナ
コンテナ仮想化
OpenVZ, virtuzzo, docker
仮想化
OpenVZ
OpenVZの特徴
ハイパーバイザーは利用しない(OSの仮想化)=windowsが使えない
サーバ仮想化ソフトウェア
仮想化
OpenVZ
vzpkg install template
テンプレートのインストール
仮想化
OpenVZ
vzpkg list
インストールされてEZテンプレートの一覧表示
LVSの概要
Linux Virtual Server
・LVSが仮想IPをもち、外部からのアクセスをロードバランスする
・IPVS(ip_vs.ko)にてレイヤ4のロードバランスを実行(TCP/UDPのみ)
・ipvsはipvsadmにて制御
・10種類のアグロリズムに対応
・3種類のパケット転送(Direct Routing/tunnel/NAT)
ロードバランサ LVS
仮想サーバーテーブルを制御する
<サブコマンド>
-A 仮想サービスを追加
-a 物理サーバを追加
-c テーブルクリア
-L/-l テーブル表示
--start-daemon master/backupコネクション同期デーモンを起動
<パラメータ>
-g --gatewaying : direct routing
-i --ipip :tunneling
-m --masquerading : nat
--mcast-interface <インターフェース> : masterがマルチキャストを送信/backupがマルチキャストを受けるインターフェースを指定
-r 物理サーバを指定
-s <LB-alg> : LBアルゴリズムを指定
dh:接続先ipハッシュテーブル/lblc:特定の物理へ同一の接続元から割り当て/lblcr コネクション最小にlblcを利用
lc: コネクション最小/ nq:アイドルサーバに割り当て / rr:ラウンドロビン / sed:遅延最小予測
sh:接続元ipハッシュ/wlc:重みとコネクション数の複合による/wrr:重み付けrr
-t <addr> :tcp サービスを指定
-u <addr>: udpサービスを指定
ダウンした物理サーバの取り扱い
0:ロードバランサは仮想サーバテーブルを維持したまま、パケットを廃棄する。コネクションは維持されるので、再接続されるまで、タ
イムアウト待ち
ロードバランサ LVS
ipvsadm
ロードバランサ LVS
net.ipv4.vs.expire_nodest_conn
ロードバランサ LVS
keepalivedの概要
LVSの可用性をたかめるために、IPVSと組み合わせて利用
IPVSには無い物理サーバへのヘルスチェックが可能
VRRPを利用してLB冗長も可能
ロードバランサ HAproxy
/etc/keepalived/keepalived.conf
global_defs:一般設定/ルータID/通知先など
router_id:ルータID
vrrp_script: 定期実行するスクリプトなど
script:定期実行するスクリプト
vrrp_sync_group: 同期するインスタンスグループを指定
group:同期するインスタンスグループ
vrrp_interface: LB同期間隔/認証設定/nicの指定/優先度/起動時の状態指定/vrrp_idの指定/仮想IPセクションの開始位置設定
advert_int: LBの同期間隔
auth_type:認証方法(PASSorAH)
auth_pass:認証パスワード
interface:LBがしようするNIC
priority: LB内の優先度→数値大がマスター(0-255)
state:起動時の状態
virtual_ipaddress:仮想IPセクションの開始位置を指定
virtual_route_id: ルータのID
vrrp_server_group: 仮想サーバのIP、ポートなどを指定
virtual_server: 物理サーバのチェック間隔タイムアウト時間、仮想ホスト指定、ロードバランサの重み付けなどを指定
delay_loop: 監視間隔
HTTP_GET:監視にhttpgetを利用
SSL_GET:SSLGETを利用して監視
lvs_sched:LBアルゴリズム指定
lvs_method:通信転送方法
persistance_timeout:タイムアウト時間を指定
protocol: tcp/udpを指定
virtualhost:仮想ホスト
weight:重みを指定
ロードバランサ HAproxy
HAproxyの概要
レイヤー7ロードバランサ
ipv6利用可能でTCP/HTTPベースのプロ棋士サーバとして動作
LVSなどの利用なくHAproxy単体で動作
global セクション
●プロセス管理/セキュリティ
chroot/daemon/description/gid/group/log/nbproc/node/pidfile/stats/uid/ulimit-n/user
●パフォーマンスチューニング
maxconn/maxpipes/noepoll/nokqueu/nopoll/nosepoll/nosplice/spread-checks
●debug関連
debug/quiet
proxy セクション
●defaults
<重要なパラメータ>
mode 動作モード。http、tcpなど。
timeout connect 接続タイムアウト
timeout client クライアント側のタイムアウト時間
timeout server サーバ側のタイムアウト時間
retries リトライ回数
option 各種動作オプション。詳しいのが出ないといいなあ。
●frontend
bind 待ち受けるIPアドレス、ポート等を指定
●backend
default_backend デフォルトの接続先実サーバ群を指定
balance 負荷分散アルゴリズム。roundrobin、static-rr、leastconn、source、uri、url_param、hdr、rdp-cookieから選択。
server 実サーバのIPアドレス、ポート番号などを指定
http-check HTTPモードでの実サーバ死活監視。レスポンス内容をチェックする。
cookie
acl アクセスリストのエントリ作成
http-request アクセスリストを元にした振り分け設定
redirect アクセスリストを元にしたリダイレクト設定
●listen
ロードバランサ HAproxy
balance
hdr(name) httpリクエストヘッダ名が検索される(acl hdr_sub)と同様、値を含まない場合はRR
lestconn 接続最小
roundrobin 重み付けラウンドロビン
source ソースIPハッシュ
static-rr 重みなしラウンドロビン
uri uriハッシュ
ロードバランサ HAproxy
acl
acl acl名 判定基準 値
hdr_sub(Head名)
ロードバランサ HAproxy
use_backend
use_backend <バックエンド> if/unless aclルール
aclルールからアプリケーションを判定し、設定したバックエンドへ振り分けます
ロードバランサ HAproxy
option
ロードバランサ LinuxPMI
LinuxPMIの概要
プロセス移動のカーネルパッチ
ロードバランサ HAproxy
ロードバランサ HAproxy
クラスタ管理
heartbeat
heartbeatの概要
HAクラスタソフト
メッセージ通信レイヤとリソース管理レイヤから構成
リソース管理レイヤの上にリソースエージェント(RA)が配置され、
リソースの監視起動停止を行う。
クラスタ管理
heartbeat
pacemaker
ver3.0からクラスタリソース制御機能はpacemakerに分離
heartbeatと併用してリソースの状態まで監視するhaクラスタ環境を構築可能
Resource Agentの一種
メッセージ通信レイヤとしてはOpenAIS, Corosync、heartbeat v3がつかえる。
クラスタ管理
heartbeat
heartbeat設定ファイル
/etc/ha.d/ha.cf:基本設定
/etc/ha.d/authkeys:ノード間の通信に使用するパスフレーズを定義するファイル
/var/lib/heartbeat/crm/cib.xml: クラスタ内の詳細な定義情報(ノードやリソースの状態・関係)を含むファイル
クラスタ管理
heartbeat
heartbeatとpacemakerを組み合わせる方法
ha.cfにcrm yes, crm respawnを設定する
STONITHはcrm respawnを指定すると有効化される
pacemaker構成コンポーネント
cib:クラスタのオプション、ノード、リソースの関係、現在の状態の全定義情報を含むファイル
crmd:pengineとLRMのメッセージ通信に利用し、クラスタ内の挙動を調整するためのDCというリーダーを選出
lrmd:クラスタ構成を意識しない共通インターフェースの提供。ra(スクリプト)と直接通信を行う
pengine:現在の状態と構成に基づきクラスタの遷移状態を算出。アクションと依存関係のリストを含む遷移状態図を作成
stonithd:heartbeat fencing用サブシステム
クラスタ管理
heartbeat
クラスタ管理
クラスタ管理
クラスタ管理
クラスタ管理
heartbeat
heartbeat
heartbeat
RHCS
STONITH概要
監視対象の他のノードが不安定になったときにそのノードを強制停止・再起動されるためのソフト。リソース競合を防ぐ
watchdogは自分を監視し、stonithは他者を管理する。
故障ノードがハングアップして停止できないことを避けるために、別アクセス経路として以下の専用ハードウェアSTONITHデバイスが
ある
・サーバ搭載のHW制御ボード(DRAC, iLO, IMM)
・IPMI
・インテリジェントPDU(Rack PDUなど)
・リモートパワースイッチ
・SSH
crm no-quorum-policy
ノードがguorumを獲得できなかった場合の動作。クラスタに参加するノードが過半数に満たない場合の動作ポリシーを指定
・ignore :設定無視quorum獲得した状態して稼動
・stop :サービス停止
・freeze :特に変更を加えない(サービスの停止・起動を行わない)
・suicide :ノード停止
cibadmin
cibに問い合わせ修正をおこなう
-C:オブジェクト作成
-E:CIBの削除
-M:ツリー上のオブジェクトを修正
-Q:内容表示
-R:再帰的に置換
-S:CIBリフレッシュを強制実行
-u:更新
-x:指定したファイルからオブジェクトを取得
-o:オブジェクトタイプを指定
nodes, resources, constraints, crm_config, rsc_defaults, op_defaults, status
RHCS概要
RHELに最適化されたクラスタ製品
・HAクラスタ(CMAN)
・IPロードバランサ(LVS)
●最大ノード数 16の模様
●NFS,CIFSをサポート、
●共有ストレージをサポート
●データの包括的整合性を確保
●SCSI、ファイバーチャネルをサポート
●サービスフェイルオーバーを実行
クラスタ管理
RHCS
RHCSコンポーネント
●ccs:ノード間クラスタ構成情報
●conga:webベースのリモート管理ツール
●cman:クラスタ全体の管理
●clvm:クラスタ用lvm
●DLM:排他制御のロック機構を管理し、共有リソースにアクセスするノードの同期
●Fence:fencingデバイスを管理(故障ノードをクラスタから切り離す)
●GFS:クラスタファイルシステム
●quorum:スプリットブレイン防止
●rgmanager
クラスタ管理
RHCS
clusvadm
クラスターユーザ管理
クラスタ管理
RHCS
clulog
ログをsyslogに送る
クラスタ管理
RHCS
clustat
クラスタの状態を表示
クラスタ管理
RHCS
clushutdown
クラスタ停止
クラスタ管理
RHCS
fence_apc
apc用fencingエージェント
クラスタ管理
RHCS
conga
RHCSを管理するwebベース管理ツール
luci:サーバコンポーネント
ricci:エージェントコンポーネント
クラスタ管理
RHCS
qdiskd
cmanと通信しノードの状態を決定する方法を提供する。定期的にquorumディスクを更新
DRBD
DRBD概要
ネットワーク上の2台のノード間のブロックデバイスをリアルタイムにミラーリングする方法(raid1)
設定ファイルは/etc/drbd.conf
下位レベルデバイスは以下。
・物理ディスク
・パーティション
・LVM
・EVMS
・ソフトウェアRAIDデバイス
・システム内のその他のブロックデバイス
クラスタ管理
DRBD
drbdの管理コマンド
attach:下位デバイスをアタッチ
connect:対抗ノードの対応するホストに接続
create-md:メタデータを初期化
cstate:両ノードのデバイス状態を表示
detach:下位デバイスをデタッチ
disconnect:対抗ノードの対抗ホストから切断
dstate:下位レベルデバイスの同期状態を表示(/proc/drbdを確認することでも対応可能)
primary:roleをpriにする
role:roleを表示
status:すべてのデバイスをxml形式で表示
syncer:同期パラメータを設定
drbdadm [オプション] <サブコマンド> [リソース名] verify;整合性検査
クラスタ管理
GFS
GFS概要
グローバルファイルシステム:クラスタファイルシステムでクライアントサーバの概念がないx
Fiberチャネル、iscsi, ata over ethernetを利用可能
全ノードから同じ共有ストレージにアクセス可能
クラスタ管理
GNBD
GNBD概要
グローバルネットワークデバイス:クライアントサーバ構成をとり、クライアントはtcp/ipを利用してサーバがエクスポートしたデバイ
クラスタ管理
クラスタ管理
CLVM
CLVM概要
クラスターロジカルボリュームマネージャー
GFS、GNBDと組み合わせて使用可能
RHCSではGFSを利用する際に必須ではない
※以下は必須
CCS,CMAN,DLM
クラスタ管理
GFS2
GFS to GFS2
gfs2_convertでgfsからgfs2へ変換できる
クラスタ管理
GFS2
withdraw機能
ファイルシステムの整合性を保つ機能
クラスタ管理
GFS2
mkfs.gfs2
-pでロックプロントを提供可能 lock_dlm, lock_nolock
クラスタ管理
OCFS2
OCFS2概要
オラクルクラスタファイルシステム2
複数ノードが同時にアクセスでき、ORAC, DRBDと組み合わせて利用可能
構成ファイル:/etc/ocfs2/cluster.conf
クラスタ管理
OCFS2
O2CB
OCFS2を稼動させるためのシンプルクラスタサービス
ノードマネージャ、ハートビートサービス、TCPプロトコルから構成
クラスタ管理
OCFS2
OCFS2コマンド
fsck.ocfs2/mkfs.ocfs2/mounted.ocfs2/o2cb_ctl/tune2fs.ocfs2
pacemaker環境でのocfs2稼動
ocfs2ファイルシステム用クーロンリソース
quorum
dlm
o2cb
クラスタ管理
OCFS2
クラスタ管理
AFS
AFS概要
Andrew File System
クライアントはローカルキャッシュし、ファイルアクセスを高速化する。
サーバやネットワーク障害時に影響を局所化する。
・kerberos認証/アクセス制御リストを持つ
クラスタ管理
Coda
Coda概要
AFS2後継分散ファイルシステム
クラスタ管理
GlusterFS
GFS概要
サーバクライアント構成/スケールアウト可能な分散ファイルシステム