本稿ではLinux認定試験のLPICで必要とされる知識のうち見直すべきポイントをまとめます。
High Availability Cluster Management
LVSとは
Linux Virtual Serverの略称で,カーネルに組み込まれた負荷分散ソリューション
LVSはカーネルモジュールを利用するか
ip_vsというカーネルモジュールを利用する。
LVSのデーモンとプロセスの関係を説明せよ
lvsdがnannyという子プロセスを生成してリアルサーバと1対1で対応付けられる
この仕組みがカーネルのip_vsモジュールで提供されます。
LVSのデフォルトの接続スケジューリングアルゴリズムは何か
重み付け最小コネクション(wlc)
LVSとkeepalivedを組み合わせる理由は何か
仮想サーバ(ロードバランサ)の信頼性と可用性を高めるため
/etc/keepalived/keepalived.confでVRRPの設定を行うディレクティブ
vrrp_instance EXTERNAL {}
EXTERNALは任意の名前です。
/etc/keepalived/keepalived.confで仮想IPアドレスとリアルサーバのひも付けを行うディレクティブ
virtual_server 10.0.0.1 80 {
lb_algo rr
lb_kind NAT
protocol TCP
real_server 192.168.1.20 80 {
TCP_CHECK { connect_timeout 10 }
}
real_server 192.168.1.21 80 {
TCP_CHECK { connect_timeout 10 }
}
}
/etc/keepalived/keepalived.confのpriorityは大きい方が高いか,小さい方が高いか
大きい方が高い
/etc/keepalived/keepalived.confでMASTERが復帰してもMASTERに戻さない設定を述べよ
vrrp_instance内のnopreempt
/etc/keepalived/keepalived.confのvirtual_serverで接続スケジューリングアルゴリズムを指定する項目
lb_algo・lvs_sched
/etc/keepalived/keepalived.confのvirtual_serverでフォワーディング方式を指定する項目
lb_kind・lvs_method(NAT・DR・TUNを指定可能)
/etc/keepalived/keepalived.confの例を眺めよ
global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface eth0
priority 101
advert_int 1
nopreempt
authentication {
auth_type AH
auth_pass 1234
}
virtual_ipaddress {
192.168.1.100
}
}
virtual_server 192.168.1.100 80 {
delay_loop 6
lb_algo wrr
lb_kind NAT
protocol TCP
real_server 192.168.1.101 80 {
weight 1
}
real_server 192.168.1.102 80 {
weight 1
}
}
keepalivedで死活チェックに利用するハッシュ値をあらかじめ求めておくコマンド
genhash
LVSを管理するためのコマンドは何か
ipvsadm(通常はkeepalivedで自動設定)
複数のサーバ間でリソースやサービスを自動的に切り替えられるクラスタリングソフトウェアは何か
pacemaker
クラスタエンジンとリソースマネージャを説明せよ
- クラスタエンジン:ノード間の通信や状態制御等を行う(Corosync)
- リソースマネージャ:リソースの起動・停止・再開等を行う(Pacemaker)
一般的にはこれらをまとめてPacemakerと呼びます。
CIBとは
Cluster Information Baseの略称で,Pacemakerで管理しているクラスタの状態をXMLで記録して管理するデータベースのことを指す
CIBで記録するファイルの場所
/var/lib/pacemaker/cib/cib.xml
OFCとは
Open Cluster Frameworkの略称で,Pacemakerがリソースエージェントを記述するための標準仕様
Pacemakerで実際にクラスタを操作するためのコマンド
pcs
従来はcrmやcrmshが利用されていました。
Pacemakerのリソース制約をまとめよ
- location(場所の制約)
- order(順序の制約)
- colocation(同居の制約)
Quorumを持っているグループのノード数は偶数か,奇数か
奇数
ldirectordとは
Linux Director Daemonの略称で,LVSクラスタにおいてHeartbeatと連携して動作する負荷分散システムの監視および管理ツール。ipvsadmの上位互換のイメージ。
「l」「director」「d」と分解して覚えます。
ldirectordの設定ファイル
/etc/ha.d/ldirectord.cf
keepalivedとldirectordの違いを簡単に説明せよ
- keepalived:VRRPのイメージ。ロードバランサ自体の冗長化を担当。
- ldirectord:LVSとの連携のイメージ。負荷分散を担当。
HAProxyとは
各種プロキシを実現できるソフトウェアで,LVSと同様にロードバランサにも利用できる
LVSとHAProxyの違いとは
- LVS:L4
- HAProxy:L7
HAProxyの設定ファイル
/etc/haproxy/haproxy.cfg
HAProxyの設定ファイルでX-Forwarded-Forを付加するフィールド
option forwardedfor
LVSのプライマリ・バックアップサーバー間でセッション情報を同期するデーモンを起動
--start-daemon
Corosyncの設定や状態を管理するCLI
corosync-cfgtool
Corosyncで動作中の状態を管理するデータストアを操作するCLI
corosync-cmapctl
Corosyncのquorumを管理するCLI
corosync-quorumtool
pingを行うRA
ocf:pacemaker:ping
リソース使用量の監視を行うRA
ocf:pacemaker:NodeUtilization
クラスタノードの状態やリソースの健全性をチェックするための情報を提供するRA
ocf:pacemaker:ocf:SysInfo
CPUのヘルスチェックを行うRA
ocf:pacemaker:HealthCPU
ハードディスクやストレージデバイスのヘルスチェックを行うRA
ocf:pacemaker:HealthSMART
HAクラスタストレージ
DRBDとは
Distributed Replicated Block Deviceの略称で,ディスクのレプリケーションを提供するツールのことを指す
DRBDはカーネルモジュールを利用するか
drbdというモジュールを利用する
DRBDのプロトコルA・プロトコルB・プロトコルCを説明せよ
プライバリのディスクに書き込まれたデータが…
- プロトコルA:TCP送信バッファに送られた時点で書き込み完了とする
- プロトコルB:セカンダリに届いた時点で書き込み完了とする
- プロトコルC:セカンダリのディスクに書き込まれた時点で書き込み完了とする
DRBDでメタストレージの初期化を行うコマンド
drbdadm create-md r0
クラスタファイルシステムを2つ挙げて違いを説明せよ
- GFS2:RHELのAdd-Onにより提供され,企業向けの一般的な用途に最適
- OCFS2:Oracle製品と組み合わせて用いられ,特にOracleデータベースを使用している環境に最適
GFSはGlobal File Systemの略称,OCFSはOracle Cluster File Systemの略称,RHELはRed Hat Enterprise Linuxの略称です。
DLMとは
Distributed Lock Managerの略称で,複数のノードが共有リソースにアクセスする際にデータの生合成を保つツール
cLVMとは
Cluster Logical Volume Managerの略称で,クラスタ内の論理ボリュームを管理するためのツール
SBDとは
Shared Block Deviceの略称で,クラスタ環境で使用されるデバイスのことを指す
フェンシングデバイスを初期化する方法
- sbd -d /dev/sdc createを実行
- /etc/sysconfig/sbdにSBD_DEVICE=/dev/sdcを記述
- systemctl restart sbdの実行
フェンシングデバイスを認識するpacemakerのリソースは何か
stonith
stonithはShoot The Other Node In The Headの略称で,障害が発生したノードを強制的にシャットダウンする仕組みを指す。フェンシングデバイスはその名の通り「フェンシングを行うデバイス」であることから,stonithがリソース名になるのも納得がいきます。
DLMを認識するpacemakerのリソースは何か
controld
クラスタエンジンとリソースマネージャの組み合わせを述べよ
リソースマネージャ | クラスタエンジン |
---|---|
Pacemaker | Heartbeat3/Corosync |
OpenAIS | Corosync |
PacemakerのCIBとは
Cluster Information Baseの略称で,クラスタの設定と状態をcib.xmlで管理する
PacemakerのCRMdとは
Cluster Resource Management Daemonの略称で,クラスタのリソース管理を行うデーモン
PacemakerのLRMdとは
Local Resource Management Daemonの略称で,ローカルノードにおけるリソース管理を行うデーモン
PacemakerのPEngineとは
Policy Engineの略称で,CIBの情報に基づいて適切な処理を行うエンジン
PacemakerのSTONITHdとは
スプリットブレインを防ぐ目的でフェンシングを提供するデーモン
DCとは
Designated Co-ordinatorの略称で,Pacemakerクラスタ全体の管理役として指定されたノード
リソースエージェントとは
リソースに対する起動・停止・監視を記述したシェルスクリプト
DCのCRMdから呼び出されたLRMdがRAを実行するというフローになっています。
クラスタリングの標準仕様を表すリソースクラス
OCF
フェンシングを表すリソースクラス
STONITH
cib.xmlを操作するcibadminのラッパー
- crm
- crmsh
CRMはCluster Resource Managerの略称です。最近ではcrmコマンドは削除されてpcsコマンドが推奨されています。
Pacemakerクラスタに新しいリソースrsc1を追加するコマンド
- crm configure primitive rsc1
- pcs resource create rsc1
pcsコマンドは何の略か
Pacemaker/Corosync Configuration System
フェールオーバーを可能にするpcs propertyの設定値
no-quorum-policyにignoreを指定する。quorumが取れなくてもリソースを稼働し続ける必要があるため。
OpenAISとは
高可用性ソフトウェアの仕様で,リソースマネージャのOpenAISとクラスタエンジンのCorosyncに分離した
corosync.confでリソースマネージャを指定するセクション
service {
name: pacemaker
ver: 1
}
Software-Defined Storageの一つ
LINSTOR。KubernetesやOpenShiftなどのコンテナ環境に永続的なLinuxブロックストレージを提供する。CephやPacemakerなどのクラスタリングツールと組み合わせて使用される。
LinuxとStorageを合わせた造語と理解しましょう。
DRBDデバイスを作成・管理するコマンド
drbdsetup
DRBDのメタデータを作成・バックアップ・復元するコマンド
drbdmeta
iSCSIのターゲットとイニシエータを説明せよ
- ターゲット:ストレージの提供側
- イニシエータ:ストレージの利用側
iSCSIターゲットのCLIおよび設定ファイル
tgtadm・targets.conf
iSCSIイニシエータのCLIおよび設定ファイル
iscsiadm・iscsid.conf
複数の経路によるストレージアクセスの管理を行う技術および設定ファイル
DM-MPIO・/etc/multipath.conf
DM-MPIOは、Device Mapper Multipath I/Oの略称です。
ディスクイメージの中にあるパーティションを仮想デバイスとしてマウントするためのツール
kpartx。パーティションを検出して/dev/mapperを作るイメージ。
おそらくkernel partition extractの略称だと考えられます。
vgchangeでLVMをアクティブ/非アクティブ化することはできるか
できる
Lustreとは
高性能を発揮するクラスタファイルシステム
GFS2ファイルシステムを拡張するコマンド
gfs2_grow
GFS2のメタデータを直接編集するコマンド
gfs2_edit
GFS2に新しいジャーナルを追加するコマンド
gfs2_jadd
OCFS2のクラスタノードの情報などを取得するコマンド
o2info
OCFS2のメタデータをバックアップ・復元するコマンド
o2image
Fibre Channelトポロジを3つ挙げよ
- Point-to-point
- Fabric(SANスイッチに繋げるスター型)
- FC-AL(Arbitrated Loopの略称でループ状に配置)
FC-STARというトポロジはありません。
FC-ALトポロジで接続可能な最大デバイス数
126
Fabricトポロジで接続可能な最大デバイス数
1600万
iSCSIターゲットパラメータ変更に使用するコマンド
iscsiadm modify target-param
iSCSIイニシエータの全ターゲット向けパラメータ変更コマンド
iscsiadm modify initiator-node
クラスタモードでLVMを有効化するコマンド
vgchange -c y
OCFS2のメタデータをイメージファイルから復元するo2imageコマンドのオプション
-I(アイ)
GFS2ファイルシステムをPacemakerで管理する際に注意するべき操作
umount/mountコマンドで再マウントすること。意図しないフェンシングが発生してしまう。pcsコマンドを利用する必要がある。
GFS2ファイルシステムの修復時に自動修復を許可するオプション
fsck.gfs2 -y /dev/testvg/testlv
O2CBクラスタスタックのステータス確認コマンド
service o2cb status
GFS2のwithdraw機能を無効化するマウントオプション
mount /dev/vg01/lvol0 /mygfs2 -o errors=panic
panicにしてしまってデータ不整合の保護(withdraw)を無効化するイメージです。
HA分散ストレージ
GlusterFSとは
Red Hatにより提供されているスケーラブルな分散ストレージ。カーネル空間ではなくユーザ空間で動作するが,FUSE(Filesystem in Userspace)の最適化を行うことで性能が低下しないようになっている。
Cephとは
スケーラブルな分散ストレージ。
- オブジェクトストレージ(RADOSGW:RADOS Gateway)
- ブロックストレージ(RBD:RADOS Block Device)
- ファイルストレージ(Ceph FS:Ceph File System)
の3つの機能を有する。
RADOSはReliable Autonomic Distributed Object Storeの略称です。
OSDとは
Object Storage Daemonの略称で,オブジェクトとしてデータを格納するデーモンのことを指す。オブジェクトをストレージに分散配置する重要な役割を担っている。
OSDはどの単位で作られるか
ディスク・ファイルシステムとセット。このセットに対してOSDがデータを分散配置する。
OSDで用いられるアルゴリズムとは
オブジェクトをストレージに配置する際にCRUSHアルゴリズムが用いられる
CRUSHはControlled Replication Under Scalable Hashingの略称で,ハッシュ関数と事前に定義されたCRUSHマップに基づいてデータを分散配置するアルゴリズム。
Ceph MonitorとCeph Managerの違いとは
- Ceph Monitor(MON):クラスタメタデータを保持してCephクラスタ全体の一貫性を保証
- Ceph Manager(MGR):Ceph Monitorをもとにパフォーマンスメトリクス収集やダッシュボードを提供
RADOSを改めて説明せよ
「ディスク・ファイルシステム・OSD」および「Monitor・Manager」 の集まりのこと
Cephのbootstrapを実行したノードに付けられるラベルは何か
_admin
MDSとは
Meta Data Serverの略称で,Cephファイルシステムをマウントする際にメタデータを管理するために必要となるサーバのこと
Cephのプールとは何か
オブジェクトを保存するために使用される論理パーティション
DRBDが含まれているRed Hatのパッケージは何か
Red Hat High Availability Add-On
GFS2が含まれているRed Hatのパッケージは何か
Red Hat Resilient Storage Add-On
GFS2の利用に必要なクラスター管理機能はRHEL High Availability Add-Onによって提供されます。
DRBDでディアルプライマリーモードを有効化する方法
/etc/drbd.confでallow-two-primariesと記述する
DRBDリソースを有効にするコマンド
- drbdadm attach {リソース名}
- drbdadm syncer {リソース名}
- drbdadm connect {リソース名}
cLVMでボリュームグループの一覧を表示するコマンド
vgs
DLM/GFS2/cLVMの関係を整理せよ
- DLM:ロック管理
- GFS2:ファイルシステム
- cLVM:ボリューム管理
O2CBとは
分散システムにおけるトランザクションのコミットを管理するためのプロトコル。OCFS2で利用され,複数のコンポーネント(o2nm・o2hb・o2net・o2dlm・dlmfs)から構成される。クラスタスタックとよばれることもある。
O2CBの設定ファイルを述べよ
- /etc/ocfs2/cluster.conf:クラスタの配置に関する基本設定(クラスタ内のノード数やクラスタ名など)
- /etc/sysconfig/o2cb:O2CBクラスタスタックに関する設定(Heartbeat関連やネットワーク関連など)
AFSとは
Andrew File Systemの略称で,セキュリティ機能やキャッシング機能に優れた分散ファイルシステム。現在はOpenAFSとして提供されている。
GlusterFSでサーバをクラスタに追加するコマンド
gluster peer probe node2
GlusterFSでサーバをクタスタから削除するコマンド
gluster peer detach node2
GlusterFSでボリュームを自己修復するコマンド
gluster volume heal vol1
fullを付けるとボリューム上のすべてのファイルで強制的に自己修復を実行します。
GlusterFSでボリュームの自己修復情報の情報を表示するコマンド
gluster volume heal vol1 info
GlusterFSでブリックを追加・削除するサブコマンド
- gluster volume add-brick
- gluster volume remove-brick(startというオプションを最後付けて実行)
- gluster volume remove-brick(commitというオプションを最後付けて実行)
GNFSとは
GlusterFSに組み込まれているNFSサーバ
Cephのプール・Placement group(PG)・OSDの関係をまとめよ
プールは複数のPGを持ち,PGはOSDにデータを分散させる
Cephのストレージバックエンドの方式を二つ答えよ
- FileStore(ジャーナル領域が必要。古い手法。)
- BlueStore(WALを利用するためジャーナル領域は不要。新しい手法。)
Cephの初期化で利用するコマンド
ceph-deploy
RBDとは
Rados Block Deviceの略称で,Cephが提供する仮想ブロックデバイスのこと
CephでRBDのimageを作成するコマンド
- ceph osd pool create rbd_pool(プールの作成)
- rbd create my_image --size 10240 --pool rbd_pool(imageの作成)
CephでRBDをマウントするコマンド
rbd map my_image --pool rbd_pool
CephFSをマウントするコマンド
mount -t ceph
CephFSボリュームを作成するコマンド
ceph fs volume create cephfsvol
CephFSスナップショットを有効化するコマンド
ceph fs set cephfs01 allow_new_snaps true
現在のCRUSHマップの内容を表示する
ceph osd crush dump
ceph osd crushを塊として覚えてしまいましょう。
Cephクラスタのアップデートの順番
MON→MGR→OSD→MDS
Cephでデーモンの認証鍵を作成するコマンド
ceph-authtool
Cephでストレージバックエンドを操作するコマンド
ceph-bluestore-tool
CRUSHマップの作成を行うコマンド
crushtool
Cephのスケールアップ時に新しいOSDを追加するためのコマンド
- OSDの作成:ceph-volume lvm create --bluestore --data /dev/sd1
- OSDのCRUSHマップへの追加:ceph osd crush add {OSDのID} {weight} host={ホスト名}
Cephクラスタの完全性を検証するためのコマンド
ceph scrub
CephのOSDを手動で削除するコマンド
- ストレージクラスターからOSDを削除:ceph osd out osd.{OSD ID}
- CRUSHマップからOSDを削除:ceph osd crush remove osd.${OSD_ID}
- 認証キーを削除:ceph auth del osd.${OSD_ID}
- 完全に削除:ceph osd rm ${OSD_ID}
GlusterFSでクライアント接続に使用するデフォルトのTCPポート番号
24007
GlusterFSでボリューム拡張時のコマンドシーケンス
- gluster peer attach <new_node>
- gluster volume add-brick <VOLNAME> <new_brick>
- gluster volume rebalance <VOLNAME> start
障害発生時のログ調査で最初に確認すべきファイル
/var/log/glusterfs/glusterd.log
クラスター設定をバックアップする際にコピーすべきディレクトリ
/var/lib/glusterd/
BlueStoreを使用したOSD作成に推奨される管理ツール
ceph-volume
単一ノードHA
/dev/sdaのS.M.A.R.T.の状態を確認するコマンド
smartctl -a /dev/sda
UPSとは
停電などの電力供給が途切れた際にシステムを安全にシャットダウンする仕組み
UPSのデーモン
apcupsd
UPSが正しく機能しているか確認するコマンド
apctest
/etc/smartd.confのオプションで-a/-m/-s/-o/-Wを説明せよ
- -a:全ての属性を監視
- -o:オンラインデータの自動収集(onで有効化)
- -s:定期的なディスクチェック
- -W:ディスクの温度に関するwarn/criticalのアラートを行う閾値(diff,warn,crit)
- -m:エラーが発生した場合にメール送信
/dev/sda -a -o on -s (S/../.././02|L/../../6/03) -W 4,45,50 -m admin@example.com
システムのリソースの監視やプロセスの管理を行うツールと設定ファイルのパス
monit・/etc/monitrc
監視したいリソースに「メモリ使用率が80%を超えた場合にアラートする」などを記述するファイル
/etc/monit/monitrc
監視したいリソースに「メモリ使用率が80%を超えた場合にアラートする」などを記述するコマンド
check system myserver if memory usage > 90% then alert
SSDで利用される高速なストレージインタフェースに対応したS.M.A.R.T.ログを取得
nvme smart-log /dev/nvme0
/dev/sd1のS.M.A.R.T.詳細テストを行うコマンド
smartctl -t long /dev/sd1
RAIDデバイスの作成・監視・管理を行うコマンド
mdadm
mdは「multiple devices」と覚えましょう。
RAIDデバイスの現在の状態を確認するためのファイル
/proc/mdstat
RAIDのパラメータ設定やジオメトリに関連する設定を配置するディレクトリ
/proc/sys/dev/raid/
RAID構成のレベルを変更するコマンド
mdadm --grow
LVMのスナップショットを作成するコマンド
lvcreate
LVMボリュームグループから物理ボリュームを削除するコマンド
vgreduce
LVMの設定に関連するパラメータを変更するために編集すべきファイル
/etc/lvm/lvm.conf
LVMで単一の論理ボリュームをRAID構成にするコマンド
lvconvert
シンプールとシックプールを説明せよ
- シンプール:ボリュームにデータを実際に書き込むまではストレージを割り当てない方式
- シックプール:指定した容量を最初に全て確保する方式
ボリュームグループと論理ボリュームはどちらを先に作成するか
ボリュームグループ(vg**)→論理グループ(lv**)
ネットワークインタフェースのボンディング方式のbalance-tlbとは
アクティブなインターフェースに負荷を分散させ,受信は1つのインターフェースに集約させる方式
ネットワークインタフェースのボンディング方式のbalance-albとは
送信・受信両方の負荷分散を行う方式
ボンディングをサポートするカーネルモジュール
bonding.ko
ボンディングの状態を監視する仮想ディレクトリ
/sys/class/net/bonding_masters
ボンディングインターフェースにインターフェースを追加・削除するコマンド
ifenslave
Debian系(Ubuntuなど)でネットワークインタフェースの設定を行うファイル
/etc/network/interfaces
Red Hat系(CentOSなど)でネットワークインタフェースの設定を行うファイル
/etc/sysconfig/networking-scripts/ifcfg-*
systemdを用いたネットワーク設定で用いられる拡張子を二つ挙げよ
- *.network(デバイスにIPアドレス・ゲートウェイ・DNSなどを適用)
- *.netdev(VLANやトンネルなどの仮想デバイスを作成)
ボンディングインターフェースの監視設定を行う仮想ファイル
/sys/class/net/bond/bonding/miimon*
ボンディングインターフェースに関連付けられたスレーブインターフェースを管理するための情報
/sys/class/net/bond*/bonding/slaves
スレーブインタフェースとは物理的なネットワークインターフェースのことを指します。
ボンディングインターフェースの現在のモードを確認するファイル
/sys/class/net/bond0/bonding/mode
ボンディングインターフェースのスレーブインターフェースを設定するファイル
/sys/class/net/bond0/bonding/slaves
eth0に対するボンディング設定ファイルのパス
/etc/sysconfig/network-scripts/ifcfg-eth0
802.3adモードを有効にするために編集するファイル
/etc/sysconfig/network-scripts/ifcfg-bond0
ボンディングの「miimon」パラメータが示すものは何か
ネットワーク接続の監視間隔
VLANを設定するために使用するインターフェース設定ファイル
/etc/network/interfaces
トラフィックシェーピングの設定ファイル
/etc/network/interfaces
トラフィックシェーピングを設定するためのユーティリティ
tc
monitでプロセス監視を設定する際に使用するディレクティブ
check process
NVMeデバイスの自己診断テストを開始するコマンド
nvme self-test start -n 1 /dev/nvme0
-n 1はshortテスト,-n 2はlongテスト,-n 3はExtendedテストを表します。
障害発生したディスクをRAIDアレイから削除するmdadmコマンドのオプション
--remove
RAID 5アレイにホットスペアディスクを追加するコマンド
mdadm --manage /dev/md0 --add /dev/sdd1
障害復旧後にRAIDアレイを再同期するコマンド
mdadm --manage /dev/md0 --re-add /dev/sdb1
論理ボリュームのサイズを2GB拡張するコマンド
lvextend -L +2G /dev/vg01/lv01
expandではなくextendです。
シンプロビジョニングプールを作成するlvcreateのオプション
--type thin-pool
ストライプ数2で論理ボリュームを作成するlvcreateのオプション
-i 2
ボリュームグループから欠損状態の物理ボリュームを削除するオプション
--removemissing
既存の論理ボリュームにキャッシュプールを追加するコマンド
lvconvert --cache
ボンディングモードの数値を全て説明せよ
- モード0:balance-rr
- モード1:active-backup
- モード2:balance-xor(送信元MACアドレスと宛先MACアドレスに基づいて分散)
- モード3:broadcast(全てのインタフェースに送信)
- モード4:802.3ad(LACPに基づくリンクアグリゲーション)
- モード5:balance-tlb(送信の負荷分散)
- モード6:balance-alb(送受信の負荷分散)
NetworkManagerでボンディング接続を作成するコマンド
nmcli con add type bond
引っかかりポイント
LVSはフォワーディングとよばれる転送方式はサポートするか
サポートしない。NAT・ダイレクトルーティング・トンネリングの3つでNAT・DR・TUNと覚える。
keepalived.confにおける設定項目はlb_kindでしたね。
pcsのサブコマンドとしてlist/statusのどちらが存在するか
status
「DRBDが対象とするファイルシステムはジャーナリングに対応している必要がある」は正しいか
正しくない。ジャーナルが必要なのはGFS2ファイルシステムのマウント。
「DRBDは上位レイヤのファイルシステムの異常を検知できる」は正しいか
正しくない。透過的に作用すると理解する。
GFS2はカーネルに統合されているか
統合されていない
Pacemakerの設定変更を安全にテストしてプレビューする際に利用するコマンド
- crm_shadow(本番環境に反映する前にサンドボックスで実行する)
- crm_simulate(設定内容を確認するためのシミュレーション)
Red Hat Availability Add-OnにCMANは含まれるか
含まれる(RHEL6以前)
Red Hat Availability Add-OnにCorosyncは含まれるか
含まれる(RHEL7以降)
Red Hat Availability Add-OnにDLMは含まれるか
含まれる(RHEL6以前もRHEL7以降も)
Red Hat Availability Add-OnにGlusterFSは含まれるか
追加コンポーネントとして含まれる
Red Hat Availability Add-OnにcLVMは含まれるか
追加コンポーネントとして含まれる
Red Hat Availability Add-OnにLVSは含まれるか
追加コンポーネントとして含まれる
Red Hat Availability Add-Onに含まれる管理ツール
- RGManager/Conga/ccs/Luci/Ricci(RHEL6以前)
- Pacemaker/pcs/pcsd(RHEL7以降)
HAProxyのロードバランシングアルゴリズムにforwardは含まれるか
含まれない
HAProxyのロードバランシングアルゴリズムにleastconnは含まれるか
含まれる
HAProxyのロードバランシングアルゴリズムにsourceは含まれるか
含まれる
HAProxyのロードバランシングアルゴリズムにdestinationは含まれるか
含まれない
HAProxyのロードバランシングアルゴリズムにweighted-hashは含まれるか
含まれない
「OCFS2にはO2CBが含まれているため他のソフトウェアを追加せずに使用できる」は正しいか
正しい
「OCFS2はファイルシステム以外にも他のクラスタサービスを扱うことができる」は正しい説明か
正しくない。クラスタサービスの管理にはPacemakerを利用する。
OCFS2とHeartbeatを統合する際にO2CB_HEARTBEAT_MODEに設定する値
user
PacemakerのSTONITHデバイスにSCSIは対応しているか
対応していない
逆に対応しているのはUPS/PDU/IPMIなどですが,ここまで覚えると大変なので「SCSIは対応していない」という引っかけだけ押さえておくようにします。
PacemakerのXMLファイル内に<cluster>と<state>は存在するか
存在しない
PacemakerのXMLファイル内に<nodes>と<services>は存在するか
存在しない
PacemakerのXMLファイル内に<configuration>と<status>は存在するか
存在する
HAProxyの設定項目であるbackend serversではserverとhostのどちらを利用するか
server
「LVSの設定ではバックエンドサーバのMACアドレスが必要」という説明は正しいか
正しくない。IPアドレスを利用する。
vgchangeでLVMにおけるボリュームグループの共有制御を行うオプション
-c(--clustered)
DRBDのために使用可能な低レベルデバイスに物理HDDは含まれるか
含まれる
DRBDのために使用可能な低レベルデバイスにLVM論理ボリュームは含まれるか
含まれる
DRBDのために使用可能な低レベルデバイスに再書き込み可能なCDは含まれるか
含まれない
DRBDのために使用可能な低レベルデバイスに仮想テープライブラリは含まれるか
含まれない
PacemakerでOCFS2のリソースを利用するために共有ストレージは必要か
必要
PacemakerでOCFS2のリソースを利用するためにDLMは必要か
必要
GFS2のリソースを利用するためにcLVMは必要か
必要
OCFS2の利用に際してcLVMは必須か
不要(OCFS2にはクラスタ管理機能であるO2CBが組み込まれているため)
keepalived.confでadvert_intとは
マスタノードがバックアップノードに定期的に送信するアドバタイズメントの間隔。デフォルトは1秒。
CMANとは
Cluster Managerの略称で,クラスタエンジン。後継としてCorocync。リソースエンジンのPacemakerと連携する。
HAProxyで使用可能な負荷分散方式はweighted-roundrobinとleastconnのどちらか
leastconn
HAProxyで使用可能な負荷分散方式にcookie-persistenceは存在するか
存在しない。rdp-cookieが利用される。
Pacemakerに同梱されているSTONITHプラグイン
- apcmaster
- external/xen0
- ibmhmc
- ssh
とにかくscsiが梱包されていない点が引っかけです。
Red Hat Enterprise Linux High Availability Add-Onに含まれるソフトウェアコンポーネント
- Pacemaker
- LVM
- cLVM
- LVS
もちろんLXCは含まれません。GlusterFSも含まれません。
「高可用クラスタは複数のクラスタに処理を割り振り負荷分散をする」は正しいか
正しくない。負荷分散を行うのはロードバランスクラスタ。
Pacemakerで結果を確認するのはcrm_emulateとcrm_simulateのどちらか
crm_simulate
負荷分散装置自体にミラーリング等の複製機能はあるか
ない
負荷分散装置自体にダイナミックルーティングなどのルーティング機能はあるか
ない
Heartbeatの一部としてサービスの死活監視機能をLVSに提供するソフトウェア
ldirectord。keepalivedと混同しないように。
HAProxyで重み付けの動的な変更が可能な設定
roundrobin。weightedと付く設定値がないことに注意してください。
送信元IPアドレスのハッシュ値に基づいてリクエストを転送する設定
- LVS(ipvsadm):sh(source hashing)
- HAProxy:source
keepalived/haproxy/ldirectordの設定ファイル
- /etc/keepalived/keepalived.conf
- /etc/haproxy/haproxy.cfg
- /etc/ha.d/ldirectord.cf
拡張子はconf→cfg→cfと一文字減のイメージで覚えてしまいましょう。
keepalived.confで実サーバの監視間隔を指定する設定項目
- virtual_server:delay_loop
- vrrp_instance:advert_int
keepalived.confでVRRPの設定を行うセクション
vrrp_instance。vrrp_serverのようにvirtual_serverと混同しないように注意してください。
ipvsadmでサーバを追加するオプション
ipvsadm {-a|--add-server} [-t|-u] <仮想サービスアドレス> -r <リアルサーバ>
-Aにするとサービスの追加になってしまいます。また-t/-uがそれぞれ仮想サービスに対するTCP/UDPを規定していて,-rがリアルサーバを指定しているという違いも理解しましょう。
/etc/haproxy/haproxy.cfgで負荷分散の方式を指定する項目
balance
/etc/ha.d/ldirectord.cfで負荷分散の方式を指定する項目
scheduler
keepalivedの死活監視チェックモジュールを列挙せよ
- HTTP_GET
- SSL_GET
- TCP_CHECK
- SMTP_CHECK
- DNS_CHECK
- MISC_CHECK
GETはHTTP/SSLだけである点,およびCHECKはTCP/SMTP/DNS/MISCとHTTP/SSLがない点がポイントです。
ipvsadmの-eと-Eの違い
- -e:実サーバを編集
- -E:仮想サービスを編集
小文字は実サーバ,大文字は仮想サービスである感覚が非常に大切です。これはdeleteでも同様ですが,-dが実サーバの削除で-Dが仮想サービスの削除です。また-Cが仮想サービスのテーブルの削除です。
ipvsadmでパケット転送方式にトンネリングを使用するオプション
-i(--ipip)
-tや--tunnelingと引っかからないように。ダイレクトルーティングは-g(--gatewaying)になります。
OCFS2の利用に際してcLVMは必須か
必須でない
GlusterFSの特徴
FUSE(FileSystem in Userspace)を採用しているため導入が容易
ipvsadmでUDPの仮想サービスを追加するオプション
-u(--udp-service)
--udpだけでない点に注意してください。
fence_apcでsshを使用するためのオプション
-x(--ssh)
vgsの#SNとは
スナップショットの数
「RHEL6以前のAdd-OnでRGManagerはクラスタ管理を行う」は正しいか
正しくない。リソース管理を行う。クラスタ管理を行うのはCMAN。
Red Hat High Availability Add-Onのまとめ
機能 | RHEL7〜 | 〜RHEL6 |
---|---|---|
クラスタ管理 | Corosync | CMAN |
ロック制御 | DLM | DLM |
リソース管理 | Pacemaker | RGManager |
管理ツール | pcs(CUI) pcsd(GUI) | ccs(CUI) Conga(GUI) Luci(CongaのベースUI) Ricci(Luciからの指示に基づいて処理を行うデーモン) |
コメント