ODF (OpenShift Data Foundation) を使用しているシステムで、データを削除すると該当PVCの使用量が減少することを確認できる一方で、いつまで待ってもターゲットストレージ使用量の減少は確認できず不審に思っていました。以下のページを参照し、スペース回収操作がデフォルトで有効になっていると理解していたのですが、これが勘違いでした。
ODFで何も設定しないと、ターゲットストレージのスペース回収操作(Reclaim)は行われないので、注意が必要です。
もともとこちらのページに、(現在は記載がなくなりましたが)次のような記載があったため、新規にインストールしたクラスターではスペース回収操作が有効になっていると思い込んでいました。
*ここで言及している新しくインストールしたクラスターの場合デフォルトで有効になっている
のは、rook-ceph-operator-config
configmap の設定 CSI_ENABLE_CSIADDONS=true
の設定のことだったようです。
実際には、スペース回収操作を有効にするには、ReclaimSpace
Jobを実行する必要があり、3通りのやり方がマニュアルに記載されています。今回は、推奨である「Annotating PersistentVolumeClaims を使用したスペース再利用操作の有効化」の実施例を紹介します。
PVCにアノテーションを付ける
回収操作を有効にしたいPVCごとに設定する必要があります。
PVC data-0
にアノテーションを付けるコマンド例:
# oc annotate pvc data-0 "reclaimspace.csiaddons.openshift.io/schedule=@midnight"
persistentvolumeclaim/data-0 annotated
確認コマンド例:
# oc get reclaimspacecronjobs.csiaddons.openshift.io
NAME SCHEDULE SUSPEND ACTIVE LASTSCHEDULE AGE
data-0-1701951350 @midnight 16s
一度でも実行されると、LASTSCHEDULE
に前回いつ実行されたかが表示されます。
# oc get reclaimspacecronjobs.csiaddons.openshift.io
NAME SCHEDULE SUSPEND ACTIVE LASTSCHEDULE AGE
data-0-1701951350 @midnight 59s 7d11h
*cronjobと同様、UTC
でスケジュールされるので注意が必要です。例えば、@midnightと設定すると、JSTの9時にスケジュールされます。
参考:毎日JST 12:15に実行したい場合のコマンド例:
# oc annotate pvc data-0 "reclaimspace.csiaddons.openshift.io/schedule=15 3 * * *"
アノテーションの削除
回収操作を無効にしたいPVCに対しては、次のようなコマンドを実行してアノテーションを削除します。
# oc annotate pvc data-0 "reclaimspace.csiaddons.openshift.io/schedule-"
persistentvolumeclaim/data-0 annotated