第9章 ターゲットボリュームのスペースを再利用
削除されたファイルまたはゼロデータのチャンクは、Ceph クラスター上のストレージ領域を占有する場合があり、その結果、利用可能なストレージ領域が不正確に報告されます。スペースの再利用操作では、ターゲットボリュームに対して次の操作を実行することで、このような不一致を削除します。
-
fstrim
: この操作は、Filesystem
モードのボリューム上で、スペース再利用操作の実行時にボリュームが Pod にマウントされている場合にのみ実行されます。 -
rbd sparsify
: この操作は、ボリュームがどの Pod にも接続されていないときに実行され、4M サイズのゼロ化データのチャンクによって占められていたスペースを回収します。
- スペースの回収操作は、Ceph RBD ボリュームでのみサポートされます。
- スペースのの回収操作の実行時には、パフォーマンスが低下します。
アップグレードされたクラスターの場合は、さらに続行する前に、以下のコマンドを実行します。
$ oc patch cm rook-ceph-operator-config -n openshift-storage -p $'data:\n "CSI_ENABLE_CSIADDONS": "true”'
以下のいずれかの方法を使用して、スペースを回収できます。
- Annotating PersistentVolumeClaims を使用したスペース再利用操作の有効化 (スペースの回収操作を有効にするために使用する推奨方法)
- ReclaimSpaceJob を使用したスペースの回収操作の有効化
- ReclaimSpaceCronJob を使用したスペースの回収操作の有効化
9.1. Annotating PersistentVolumeClaims を使用してスペースの回収操作を有効にする
この手順を使用して PersistentVolumeClaims
にアノテーションを付け、指定されたスケジュールに基づいてスペースの回収操作を自動的に呼び出すことができるようにします。
- スケジュール値は、定期的な操作リクエストの間隔を設定する Kubernetes CronJob と同じ形式です。
-
推奨されるスケジュール間隔は
@weekly
です。スケジュール間隔の値が空であるか無効な形式の場合、デフォルトのスケジュール値は@weekly
に設定されます。 -
スケジュールされた各操作間のサポートされる最小間隔は、少なくとも 24 時間です。たとえば、
@daily
(毎日 00:00) または0 3 * * *
(毎日 3:00) です。 -
ReclaimSpace
操作は、オフピーク、メンテナンス時間帯、またはワークロードの入出力が低いと予想される時間帯にスケジュールします。 -
ReclaimSpaceCronJob
は、schedule
が変更されると再作成されます。アノテーションが削除されると自動的に削除されます。
手順
永続ボリュームクレーム (PVC) の詳細を取得します。
$ oc get pvc data-pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE data-pvc Bound pvc-f37b8582-4b04-4676-88dd-e1b95c6abf74 1Gi RWO ocs-storagecluster-ceph-rbd 20h
アノテーション
reclaimspace.csiaddons.openshift.io/schedule=@monthly
を PVC に追加して、reclaimspacecronjob
を作成します。$ oc annotate pvc data-pvc "reclaimspace.csiaddons.openshift.io/schedule=@monthly"
persistentvolumeclaim/data-pvc annotated
reclaimspacecronjob
が "<pvc-name>-xxxxxxx" の形式で作成されていることを確認します。$ oc get reclaimspacecronjobs.csiaddons.openshift.io
NAME SCHEDULE SUSPEND ACTIVE LASTSCHEDULE AGE data-pvc-1642663516 @monthly 3s
このジョブを自動的に実行するようにスケジュールを変更します。
$ oc annotate pvc data-pvc "reclaimspace.csiaddons.openshift.io/schedule=@weekly" --overwrite=true
persistentvolumeclaim/data-pvc annotated
reclaimspacecronjob
のスケジュールが変更されていることを確認します。$ oc get reclaimspacecronjobs.csiaddons.openshift.io
NAME SCHEDULE SUSPEND ACTIVE LASTSCHEDULE AGE data-pvc-1642664617 @weekly 3s