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概要 サーバクライアント構成/スケールアウト可能な分散ファイルシステム
© Copyright 2024 Paperzz