LVMとスナップショットを使用する製品があります。基本インストールを作成したら、次のようにパーティションスナップショットを作成します。
lvcreate -L 15G -s -n lv_root_gold /dev/vg_sys/lv_root
lvcreate -L 15G -s -n lv_home_gold /dev/vg_sys/lv_home
lvcreate -L 1G -s -n lv_services_gold /dev/vg_sys/lv_services
私のシステムでは、ほとんどのソフトウェアは/servicesにインストールされているlv_services lvにインストールされます。これにより、lv_services_goldスナップショットに多くの変更が行われます。
ソフトウェアアップデートを展開するときは、システム全体を初期スナップショットにロールバックします。すべてのコンピュータが同じ状態でインストールされていることを確認するためにこれを行います。再起動したら、「元の」状態のボックスの新しいスナップショットを撮り、新しいソフトウェアのインストールに進みます。
以下を使用してシステムをロールバックするとき:
lvconvert --merge -y /dev/vg_sys/lv_root_gold
lvconvert --merge -y /dev/vg_sys/lv_services_gold
lvconvert --merge -y /dev/vg_sys/lv_home_gold
すべてのパーティションがマウントされているため、再起動が必要です。ただし、再起動すると、パーティションの1つがAtr(O)riginに保持され、スナップショットがマージされます。
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv_home vg_sys -wi-ao---- 15.00g
lv_services vg_sys Owi-aos--- 1.00g 0.00
lv_root vg_sys -wi-ao---- 20.00g
"lvdisplay vg_sys/lv_services_gold"コマンドは、マージのためにスナップショットがまだ存在することを示します。ただし、スナップショットはlvsコマンドでは表示されません。
システムの起動時にスナップショットを完全にマージし、システムがオンラインになった後に「O」属性を防ぐためにブロックするように「lvconvert」に指定できる修飾子はありますか?再起動すると、lv_services LVは「オリジナルがスナップショットとマージされる」モードではなくなりました。
この時点で私の解決策は、システムの起動時にスナップショットがあったことを確認することです。それ以外の場合は、LVが「O」状態であることを確認してください。その場合は、すべてのLVが「マージされたスナップショットを含むソース」になるまで再起動してください。その後、新しいスナップショットを撮ってソフトウェアをインストールします。繰り返し再起動を避けたいです。
答え1
質問を投稿してすぐに答えを見つけました。 lvs がマージ状態を報告すると、「Data%」列の値が 0.00 に低下します。 [O]マージされたスナップショットフィールドを持つriginは、次のコマンドを実行して消去できます。
lvchange --refresh <<VG_NAME>>
はい(lvconvert --mergeおよび再起動後の初期lvsコマンド):
root@testbox:~# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv_services vg_sys Owi-aos--- 1.00g 0.00
root@testbox:~# lvchange --refresh vg_sys
root@testbox:~# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv_services vg_sys -wi-ao---- 1.00g