第2章 OpenShift 環境における Red Hat Gluster Storage Pod での操作
本章では、Red Hat Gluster Storage Pod(gluster Pod) で実行できるさまざまな操作を一覧表示します。
Pod を一覧表示するには、以下のコマンドを実行します。
# oc get pods -n <storage_project_name>
以下に例を示します。
# oc get pods -n storage-project NAME READY STATUS RESTARTS AGE storage-project-router-1-v89qc 1/1 Running 0 1d glusterfs-dc-node1.example.com 1/1 Running 0 1d glusterfs-dc-node2.example.com 1/1 Running 1 1d glusterfs-dc-node3.example.com 1/1 Running 0 1d heketi-1-k1u14 1/1 Running 0 23m
以下は、上記の例の gluster Pod です。
glusterfs-dc-node1.example.com glusterfs-dc-node2.example.com glusterfs-dc-node3.example.com
注記topology.json ファイルは、指定の 信頼済みストレージプール (TSP) のノードの詳細を提供します。上記の例では、3 つの Red Hat Gluster Storage ノードはすべて同じ TSP から取得されます。
gluster Pod シェルに入るには、以下のコマンドを実行します。
# oc rsh <gluster_pod_name> -n <storage_project_name>
以下に例を示します。
# oc rsh glusterfs-dc-node1.example.com -n storage-project sh-4.2#
ピアステータスを取得するには、以下のコマンドを実行します。
# gluster peer status
以下に例を示します。
# gluster peer status Number of Peers: 2 Hostname: node2.example.com Uuid: 9f3f84d2-ef8e-4d6e-aa2c-5e0370a99620 State: Peer in Cluster (Connected) Other names: node1.example.com Hostname: node3.example.com Uuid: 38621acd-eb76-4bd8-8162-9c2374affbbd State: Peer in Cluster (Connected)
信頼済みストレージプールの gluster ボリュームを一覧表示するには、以下のコマンドを実行します。
# gluster volume info
以下に例を示します。
Volume Name: heketidbstorage Type: Distributed-Replicate Volume ID: 2fa53b28-121d-4842-9d2f-dce1b0458fda Status: Started Number of Bricks: 2 x 3 = 6 Transport-type: tcp Bricks: Brick1: 192.168.121.172:/var/lib/heketi/mounts/vg_1be433737b71419dc9b395e221255fb3/brick_c67fb97f74649d990c5743090e0c9176/brick Brick2: 192.168.121.233:/var/lib/heketi/mounts/vg_0013ee200cdefaeb6dfedd28e50fd261/brick_6ebf1ee62a8e9e7a0f88e4551d4b2386/brick Brick3: 192.168.121.168:/var/lib/heketi/mounts/vg_e4b32535c55c88f9190da7b7efd1fcab/brick_df5db97aa002d572a0fec6bcf2101aad/brick Brick4: 192.168.121.233:/var/lib/heketi/mounts/vg_0013ee200cdefaeb6dfedd28e50fd261/brick_acc82e56236df912e9a1948f594415a7/brick Brick5: 192.168.121.168:/var/lib/heketi/mounts/vg_e4b32535c55c88f9190da7b7efd1fcab/brick_65dceb1f749ec417533ddeae9535e8be/brick Brick6: 192.168.121.172:/var/lib/heketi/mounts/vg_7ad961dbd24e16d62cabe10fd8bf8909/brick_f258450fc6f025f99952a6edea203859/brick Options Reconfigured: performance.readdir-ahead: on Volume Name: vol_9e86c0493f6b1be648c9deee1dc226a6 Type: Distributed-Replicate Volume ID: 940177c3-d866-4e5e-9aa0-fc9be94fc0f4 Status: Started Number of Bricks: 2 x 3 = 6 Transport-type: tcp Bricks: Brick1: 192.168.121.168:/var/lib/heketi/mounts/vg_3fa141bf2d09d30b899f2f260c494376/brick_9fb4a5206bdd8ac70170d00f304f99a5/brick Brick2: 192.168.121.172:/var/lib/heketi/mounts/vg_7ad961dbd24e16d62cabe10fd8bf8909/brick_dae2422d518915241f74fd90b426a379/brick Brick3: 192.168.121.233:/var/lib/heketi/mounts/vg_5c6428c439eb6686c5e4cee56532bacf/brick_b3768ba8e80863724c9ec42446ea4812/brick Brick4: 192.168.121.172:/var/lib/heketi/mounts/vg_7ad961dbd24e16d62cabe10fd8bf8909/brick_0a13958525c6343c4a7951acec199da0/brick Brick5: 192.168.121.168:/var/lib/heketi/mounts/vg_17fbc98d84df86756e7826326fb33aa4/brick_af42af87ad87ab4f01e8ca153abbbee9/brick Brick6: 192.168.121.233:/var/lib/heketi/mounts/vg_5c6428c439eb6686c5e4cee56532bacf/brick_ef41e04ca648efaf04178e64d25dbdcb/brick Options Reconfigured: performance.readdir-ahead: on
ボリュームのステータスを取得するには、以下のコマンドを実行します。
# gluster volume status <volname>
以下に例を示します。
# gluster volume status vol_9e86c0493f6b1be648c9deee1dc226a6 Status of volume: vol_9e86c0493f6b1be648c9deee1dc226a6 Gluster process TCP Port RDMA Port Online Pid ------------------------------------------------------------------------------ Brick 192.168.121.168:/var/lib/heketi/mounts/v g_3fa141bf2d09d30b899f2f260c494376/brick_9f b4a5206bdd8ac70170d00f304f99a5/brick 49154 0 Y 3462 Brick 192.168.121.172:/var/lib/heketi/mounts/v g_7ad961dbd24e16d62cabe10fd8bf8909/brick_da e2422d518915241f74fd90b426a379/brick 49154 0 Y 115939 Brick 192.168.121.233:/var/lib/heketi/mounts/v g_5c6428c439eb6686c5e4cee56532bacf/brick_b3 768ba8e80863724c9ec42446ea4812/brick 49154 0 Y 116134 Brick 192.168.121.172:/var/lib/heketi/mounts/v g_7ad961dbd24e16d62cabe10fd8bf8909/brick_0a 13958525c6343c4a7951acec199da0/brick 49155 0 Y 115958 Brick 192.168.121.168:/var/lib/heketi/mounts/v g_17fbc98d84df86756e7826326fb33aa4/brick_af 42af87ad87ab4f01e8ca153abbbee9/brick 49155 0 Y 3481 Brick 192.168.121.233:/var/lib/heketi/mounts/v g_5c6428c439eb6686c5e4cee56532bacf/brick_ef 41e04ca648efaf04178e64d25dbdcb/brick 49155 0 Y 116153 NFS Server on localhost 2049 0 Y 116173 Self-heal Daemon on localhost N/A N/A Y 116181 NFS Server on node1.example.com 2049 0 Y 3501 Self-heal Daemon on node1.example.com N/A N/A Y 3509 NFS Server on 192.168.121.172 2049 0 Y 115978 Self-heal Daemon on 192.168.121.172 N/A N/A Y 115986 Task Status of Volume vol_9e86c0493f6b1be648c9deee1dc226a6 ------------------------------------------------------------------------------ There are no active volume tasks
スナップショット機能を使用するには、いずれかのノードで以下のコマンドを使用してスナップショットモジュールを読み込みます。
# modprobe dm_snapshot
重要スナップショットの使用に関する制限
- スナップショットの作成後に、ユーザーサービス可能なスナップショット機能のみを使用してアクセスする必要があります。これは、以前のバージョンのファイルを必要な場所にコピーするために使用できます。
- ボリュームをスナップショットの状態に戻すことはサポートされていないため、データの一貫性を損傷する可能性があるため、実行しないでください。
- スナップショットのあるボリュームでは、ボリューム拡張などのボリューム変更操作を実行できません。
- gluster ブロックベースの PV の一貫したスナップショットを作成できません。
gluster ボリュームのスナップショットを作成するには、以下のコマンドを実行します。
# gluster snapshot create <snapname> <volname>
以下に例を示します。
# gluster snapshot create snap1 vol_9e86c0493f6b1be648c9deee1dc226a6 snapshot create: success: Snap snap1_GMT-2016.07.29-13.05.46 created successfully
スナップショットを一覧表示するには、以下のコマンドを実行します。
# gluster snapshot list
以下に例を示します。
# gluster snapshot list snap1_GMT-2016.07.29-13.05.46 snap2_GMT-2016.07.29-13.06.13 snap3_GMT-2016.07.29-13.06.18 snap4_GMT-2016.07.29-13.06.22 snap5_GMT-2016.07.29-13.06.26
スナップショットを削除するには、以下のコマンドを実行します。
# gluster snap delete <snapname>
以下に例を示します。
# gluster snap delete snap1_GMT-2016.07.29-13.05.46 Deleting snap will erase all the information about the snap. Do you still want to continue? (y/n) y snapshot delete: snap1_GMT-2016.07.29-13.05.46: snap removed successfully
スナップショットの管理に関する詳細は https://access.redhat.com/documentation/ja-jp/red_hat_gluster_storage/3.5/html-single/administration_guide/index#chap-Managing_Snapshots を参照してください。
Red Hat Openshift Container Storage 以外のリモートサイトへの geo レプリケーション用に、Red Hat Openshift Container Storage ボリュームを設定できます。geo レプリケーションは、マスター/スレーブモデルを使用します。ここでは、Red Hat Openshift Container Storage ボリュームはマスターボリュームとして機能します。geo レプリケーションを設定するには、gluster Pod で geo レプリケーションコマンドを実行する必要があります。gluster Pod シェルに入るには、以下のコマンドを実行します。
# oc rsh <gluster_pod_name> -n <storage_project_name>
geo レプリケーションの設定に関する詳細は https://access.redhat.com/documentation/ja-jp/red_hat_gluster_storage/3.5/html/administration_guide/chap-managing_geo-replication を参照してください。
ブリック多重化は、1 つのプロセスに複数のブリックを含めることができる機能です。これにより、リソース消費が減少し、同じメモリー消費量で前より多くのブリックを実行できるようになります。
ブリック多重化は、Container-Native Storage 3.6 以降デフォルトで有効になっています。これを無効にする場合は、以下のコマンドを実行します。
# gluster volume set all cluster.brick-multiplex off
glusterfs libfuse の
auto_unmount
オプションが有効になっていると、アンマウントを実行する別のモニタープロセスを実行することで、FUSE サーバーの終了時にファイルシステムがアンマウントされるようにします。Openshift の GlusterFS プラグインは、gluster マウントの
auto_unmount
オプションを有効にします。
2.1. ノードのメンテナーンス
2.1.1. メンテナーンスの前に必要な手順
glusterfs daemonset
のセレクターであるラベル glusterfs または同等のラベルを削除します。Pod が終了するまで待機します。以下のコマンドを実行して
node selector
を取得します。# oc get ds
以下に例を示します。
# oc get ds NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE glusterfs-storage 3 3 3 3 3 NODE SELECTOR AGE glusterfs=storage-host 12d
以下のコマンドを使用して glusterfs ラベルを削除します。
# oc label node <storge_node1> glusterfs-
以下に例を示します。
# oc label node <storge_node1> glusterfs- node/<storage_node1> labeled
glusterfs Pod が終了するまで待機します。以下のコマンドを使用して検証します。
# oc get pods -l glusterfs
以下に例を示します。
# oc get pods -l glusterfs NAME READY STATUS RESTARTS AGE glusterblock-storage-provisioner 1/1 Running 0 7m glusterfs-storage-4tc9c 1/1 Terminating 0 5m glusterfs-storage-htrfg 1/1 Running 0 1d glusterfs-storage-z75bc 1/1 Running 0 1d heketi-storage-1-shgrr 1/1 Running 0 1d
以下のコマンドを実行して、ノードをスケジュール対象外にします。
# oc adm manage-node --schedulable=false <storage_node1>
以下に例を示します。
# oc adm manage-node --schedulable=false <storage_node1> NAME STATUS ROLES AGE VERSION storage_node1 Ready,SchedulingDisabled compute 12d v1.11.0+d4cacc0
以下のコマンドを使用してノードをドレイン (解放) します。
# oc adm drain --ignore-daemonsets <storage_node1>
注記メンテナーンスを実行し、必要に応じて再起動します。
2.1.2. メンテナーンス後の必要な手順
以下のコマンドを使用して、ノードをスケジューリング可能な状態にします。
# oc adm manage-node --schedulable=true <storage_node1>
以下に例を示します。
# oc adm manage-node --schedulable=true <storage_node1> NAME STATUS ROLES AGE VERSION node1 Ready compute 12d v1.11.0+d4cacc0
glusterfs daemonset
のセレクターであるラベル glusterfs または同等のラベルを追加します。Pod が使用できる状態になるまで待機します。以下のコマンドを実行して
node selector
を取得します。# oc get ds
以下に例を示します。
# oc get ds NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE glusterfs-storage 3 3 3 3 3 NODE SELECTOR AGE glusterfs=storage-host 12d
上記のノードセレクターと以下のコマンドを使用して glusterfs ノードにラベルを付けます。
# oc label node <storage_node1> glusterfs=storage-host
以下に例を示します。
# oc label node <storage_node1> glusterfs=storage-host node/<storage_node1> labeled
Pod が Ready 状態になるまで待機します。
# oc get pods
以下に例を示します。
# oc get pods NAME READY STATUS RESTARTS AGE glusterblock-storage-provisioner 1/1 Running 0 3m glusterfs-storage-4tc9c 0/1 Running 0 50s glusterfs-storage-htrfg 1/1 Running 0 1d glusterfs-storage-z75bc 1/1 Running 0 1d heketi-storage-1-shgrr 1/1 Running 0 1d
Pod が 1/1 Ready 状態になるまで待機します。
以下に例を示します。
# oc get pods NAME READY STATUS RESTARTS AGE glusterblock-storage-provisioner 1/1 Running 0 3m glusterfs-storage-4tc9c 1/1 Running 0 58s glusterfs-storage-htrfg 1/1 Running 0 1d glusterfs-storage-z75bc 1/1 Running 0 1d heketi-storage-1-shgrr 1/1 Running 0 1d
修復が完了するまで待ち、oc rsh を使用して glusterfs Pod のシェルを取得し、以下のコマンドを使用して修復を監視し、Number of entries がゼロ (0) になるまで待機します。
# for each_volume in
gluster volume list
; do gluster volume heal $each_volume info ; done以下に例を示します。
# for each_volume in
gluster volume list
; do gluster volume heal $each_volume info ; done Brick 10.70.46.210:/var/lib/heketi/mounts/vg_64e90b4b94174f19802a8026f652f6d7/brick_564f7725cef192f0fd2ba1422ecbf590/brick Status: Connected Number of entries: 0 Brick 10.70.46.243:/var/lib/heketi/mounts/vg_4fadbf84bbc67873543472655e9660ec/brick_9c9c8c64c48d24c91948bc810219c945/brick Status: Connected Number of entries: 0 Brick 10.70.46.224:/var/lib/heketi/mounts/vg_9fbaf0c06495e66f5087a51ad64e54c3/brick_75e40df81383a03b1778399dc342e794/brick Status: Connected Number of entries: 0 Brick 10.70.46.224:/var/lib/heketi/mounts/vg_9fbaf0c06495e66f5087a51ad64e54c3/brick_e0058f65155769142cec81798962b9a7/brick Status: Connected Number of entries: 0 Brick 10.70.46.210:/var/lib/heketi/mounts/vg_64e90b4b94174f19802a8026f652f6d7/brick_3cf035275dc93e0437fdfaea509a3a44/brick Status: Connected Number of entries: 0 Brick 10.70.46.243:/var/lib/heketi/mounts/vg_4fadbf84bbc67873543472655e9660ec/brick_2cfd11ce587e622fe800dfaec101e463/brick Status: Connected Number of entries: 0