3.2.3. ブロックボリューム拡張
ブロック永続ボリューム要求 (PVC) を拡張して、アプリケーション Pod のストレージの量を増やすことができます。これには、オフラインサイズ変更およびオンラインサイズ変更の 2 つの方法があります。
3.2.3.1. オフラインのサイズ変更
ブロック PVC を拡張する前に、ブロックホストボリュームに十分なサイズがあることを確認します。
PVC の Heketi ブロックボリューム ID を取得するには、プライマリー OCP ノードで以下のコマンドを実行します。
# oc get pv $(oc get pvc <PVC-NAME> --no-headers -o=custom-columns=:.spec.volumeName) -o=custom-columns=:.metadata.annotations."gluster\.org/volume-id"
ブロックボリューム ID を取得するには、以下のコマンドを実行します。
# heketi-cli blockvolume info <block-volume-id>
ブロックホスティングボリューム情報を取得するには、以下のコマンドを実行します。
# heketi-cli volume info <block-hosting-volume-id>
注記十分な空きサイズがあることを確認します。
- アプリケーション Pod を停止します。
heketi-cli を使用してブロックボリュームを拡張するには、以下のコマンドを実行します。
# heketi-cli blockvolume expand <block-volume-id> --new-size=<net-new-size>
以下に例を示します。
# heketi-cli blockvolume expand d911d4bcfd4f11bf07b9688a4798b5dc --new-size=7 Name: blk_glusterfs_claim2_fc40d362-aaf9-11ea-bb32-0a580a820004 Size: 7 UsableSize: 7 Volume Id: d911d4bcfd4f11bf07b9688a4798b5dc Cluster Id: 8d1656d29fb8dc6780388cf797351a6d Hosts: [10.70.53.185 10.70.53.203 10.70.53.198] IQN: iqn.2016-12.org.gluster-block:8ce8eb4c-4951-4777-9b42-244b7ea525cd LUN: 0 Hacount: 3 Username: 8ce8eb4c-4951-4777-9b42-244b7ea525cd Password: b83a74be-df90-4fd7-b1a1-928fdcfed8c4 Block Hosting Volume: 2224ac1da64c1737604456a1f511574e
注記expandの出力で Size および UsableSize が一致するようにしてください。ステップ 4 から 8 は、Size と UsableSize が一致する場合に実行できます。
PVC-NAME
を実際の PVC に置き換え、ブロックボリュームサイズを更新するためのジョブを作成します。apiVersion: batch/v1 kind: Job metadata: name: refresh-block-size spec: completions: 1 template: spec: containers: - image: rhel7 env: - name: HOST_ROOTFS value: "/rootfs" - name: EXEC_ON_HOST value: "nsenter --root=$(HOST_ROOTFS) nsenter -t 1 -m" command: ['sh', '-c', 'echo -e "# df -Th /mnt" && df -Th /mnt && DEVICE=$(df --output=source /mnt | sed -e /^Filesystem/d) && MOUNTPOINT=$($EXEC_ON_HOST lsblk $DEVICE -n -o MOUNTPOINT) && $EXEC_ON_HOST xfs_growfs $MOUNTPOINT > /dev/null && echo -e "\n# df -Th /mnt" && df -Th /mnt'] name: rhel7 volumeMounts: - mountPath: /mnt name: block-pvc - mountPath: /dev name: host-dev - mountPath: /rootfs name: host-rootfs securityContext: privileged: true volumes: - name: block-pvc persistentVolumeClaim: claimName: <PVC-NAME> - name: host-dev hostPath: path: /dev - name: host-rootfs hostPath: path: / restartPolicy: Never
Pod のログで新規サイズを確認するには、以下のコマンドを実行します。
# oc logs refresh-block-size-xxxxx
注記xfs_growfs
後のdf -Th
の出力が新しいサイズを反映することを確認します。以下に例を示します。
# oc logs refresh-block-size-jcbzh # df -Th /mnt Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/mpatha xfs 5.0G 33M 5.0G 1% /mnt
# df -Th /mnt Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/mpatha xfs 7.0G 34M 6.0G 1% /mnt
ジョブが成功したことを確認するには、以下のコマンドを実行します。
# oc get jobs NAME DESIRED SUCCESSFUL AGE refresh-block-size 1 1 36m
ジョブを正常に実行したら削除するには、以下のコマンドを実行します。
# oc delete job refresh-block-size job.batch "refresh-block-size" deleted
- アプリケーション Pod を起動した後に新規サイズを使用できます。