Repository navigation
feat(storage): PV の置き場を OpenEBS LVM LocalPV(thin)にする — Z440 で入れ直すときの切り方 - #642
Conversation
- talos.sops.yaml: UserVolumeConfig local-path をやめ、RawVolumeConfig lvm(残り全部)と LVMVolumeGroupConfig data にする。dm_thin_pool を読む。external-snapshotter の版を先頭に - lvm-localpv-values.yaml / storage.yaml: OpenEBS LVM LocalPV、StorageClass local-path(既定。名前はそのまま)、 VolumeSnapshotClass、thin プールを VG の 90% で作る DaemonSet lvm-thinpool(Talos は thin を作れない) - render.sh: local-path-provisioner を外し、chart と snapshot-controller・VolumeSnapshot の CRD(URL)を足す - talos-boot: PVC の bind、VolumeSnapshot、スナップショットからの PVC、再起動のあとまでを見る - recovery/pv.sh: fit(戻すものが PVC の requests に入るか)と backup-all(入れ直す前の最後のバックアップ) - adguardhome: クエリログが 1 日 10 GB 近くあり 5Gi に入らないので、保持を 1d、PVC を 30Gi に - docs: z440-migration を「入れ直して restic から戻す」流れに。ROADMAP・decisions・README Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T9PbUfqG4pPxus99UeLiJs
|
Claude finished @5ym's task in 54s —— View job レビュー結果
不具合・境界値
|
- lvcreate の --wipesignatures は thin プールに使えず、lvm-thinpool が CrashLoop していた(talos-boot) - lvm-thinpool の RBAC をノード main に絞る - pv.sh: backup-all は Schedule が無ければすぐ止める、bytes は小数をはっきり弾く、fit が読む plan の列を書いておく Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T9PbUfqG4pPxus99UeLiJs
|
Claude finished @5ym's task in 30s —— View job レビュー結果最新のコミット ( 前回の指摘のうち、次の 4 点はこのコミットで直っています。
ブロッカーはありません。 要確認
所感
総評: 問題無し。上の 1 と 2 だけ、入れ直す前に確かめてください。 |
t-src は起き直すたびに marker を書いていたので、再起動のあとの中身の確かめが意味をなさなかった。 t-dst の dataSource は yq の代入を括弧でくくり、出来たものを確かめる。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T9PbUfqG4pPxus99UeLiJs
|
Claude finished @5ym's task in 27s —— View job レビュー結果最新のコミット ブロッカーはありません。 この変更は前回までの指摘を増やしません。
軽い指摘(任意)
前回までの未解決の要確認(入れ直す前に確かめてください)
総評: 問題無し。 |
再起動のあと vgchange -ay が dmeventd の無いことで失敗の終了コードを返し、pool が CrashLoop していた(talos-boot)。 PV の中身と Postgres は戻っていた。readiness の間隔も 60 秒に。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T9PbUfqG4pPxus99UeLiJs
|
Claude finished @5ym's task in 21s —— View job レビュー結果最新のコミット ブロッカーはありません。
要確認
総評: 問題無し。 |
今日 Z440 へ移すときに Talos を入れ直す(SSD は上書き)ので、そのときしか変えられないディスクの切り方を変え、PV の置き場を local-path から OpenEBS LVM LocalPV(thin)にする(docs/decisions.md「Z440 で、ストレージを OpenEBS LVM LocalPV に…」)。machine config を変えるだけで、効くのは入れ直したとき。 いまの DL360 には当てない。VolSync と k8up の置き換えはまだ(ROADMAP)。
ディスクと StorageClass
EPHEMERALr-lvmRawVolumeConfig→LVMVolumeGroupConfigで VGdatadata_thinpoolbootstrap/storage.yamlの DaemonSetlvm-thinpool(Talos のLVMLogicalVolumeConfigは linear と raid だけ)local-pathのまま(既定)にしたので、各リポジトリの PVC は書き換えないlvm-thinpoolがプールを作ってからノードにラベルを付け、OpenEBS のノードの Pod はそのラベルで動く(LVM のメタデータを書く者を 1 つにする)storageCapacity: false(thin なので PVC の合計がプールを超えてよい。denpa は 1Ti + 300Gi)dm_thin_poolをmachine.kernel.modulesに。snapshot-controller と VolumeSnapshot の CRD は chart の同梱ではなく external-snapshotter のタグの URL で(版は talos.sops.yaml の先頭、Renovate が上げる)bootstrap/local-path.yaml)は消したtalos-boot が見ること(足したもの)
VG と thin プール(VG の 9 割)、OpenEBS・snapshot-controller が上がる、infisical の Postgres の PVC が bind、テストの PVC が xfs で bind して書ける、VolumeSnapshot が readyToUse、スナップショットから作った PVC に中身が戻る、
talosctl rebootのあとも PV の中身と Postgres が戻る(thin プールの有効化は Talos がする)。戻す側(recovery/pv.sh)
pv.sh は PVC を Pod から触るだけで、local-path のディレクトリには依存していなかった。変わるのは PVC の requests が本当の上限になること(いまの
adguardhome-workは 5Gi に 68 GB 入っている)ので:fit: folder で戻すもののrestic statsを PVC の requests と比べ、9 割を超えたら止める。plan-allが表示し、restore-allは上書きする前に見るbackup-all: 入れ直す前の最後のバックアップ(Schedule のある namespace ごとにBackupを作って待つ)ほか
adguardhome-workを 5Gi → 30Gi に。DL360 の上では local-path が広げられず、Argo CD がこの PVC の同期でエラーを出す(入れ直せば消える)。移す前に UI でクエリログを消す(手順書)fsGroupの無かった worklog は fj.doany.io の doa/worklog-cloud#179 でfsGroup: 1000を足すrestore-all)手元で
render.shとtalosctl validate --mode metal、sops -d、renovate-config-validator を通した。🤖 Generated with Claude Code
https://claude.ai/code/session_01T9PbUfqG4pPxus99UeLiJs