Linux

送出或恢復 Linux LVM 快照?

  • June 18, 2019

我即將在我的 CentOS 5 伺服器上進行實驗性升級。如果升級失敗,我希望能夠撤銷對文件系統的更改。這種情況似乎類似於LVM HOWTO 的第 3.8 節中用於 LVM2 讀寫快照的範例 - 但該範例在實際操作方法中相當缺乏。

  1. 我將如何送出更改,將它們合併回原始分區?
  2. 我將如何還原更改,將文件系統恢復到原始狀態?我是否應該假設我需要重新啟動多個服務,如果不是徹底重新啟動?
  3. 是否可以僅對分區上的某些目錄進行快照,還是分區範圍的操作?

如果您正在執行 Linux 2.6.33+ 並使用 LVM 2.0.58+,則可以使用 LVM2/設備映射器快照合併功能:

lvconvert --merge

看到這篇文章:http ://www.jonnor.com/2010/02/lvm-snapshot-merging-avaliable/

它引用了http://kernelnewbies.org/Linux_2_6_33(查看第 5 節,MD/DM)和 2.0.58 的 LVM 更改日誌:ftp: //sources.redhat.com/pub/lvm2/WHATS_NEW

但我還不能告訴你如何正確使用它;-)

我剛剛嘗試使用 Ubuntu 進行基於快照的升級。是的,我需要重新啟動幾次。首先將原始 root-lv 重命名為其他名稱,這樣您就可以為快照指定原始名稱(因為升級會產生大量更改,並且快照上的更改比原始名稱更快):

# lvrename lvm root root-old
# lvcreate -n root -s lvm/root-old -L 10G

大小應選擇適當。然後重新啟動,因此“新”lvm/ubuntu 以 root 身份掛載,您可以執行升級。現在您可以通過以下方式測試新版本甚至更改為舊系統

# lvrename lvm root root-new
# lvrename lvm root-old root
# reboot

如果您想放棄升級,只需執行(從舊系統)

# lvremove lvm/root-new

如果您想送出更改,只需執行(從舊系統)

# lvconvert --merge lvm/root-new

或者,從新系統

# lvrename lvm root root-new
# lvconvert --merge lvm/root-new
# lvrename lvm root-old root

然後重新啟動。系統將拒絕立即進行合併,因為卷是打開的。因此,合併將在引導期間開始,並在您已經可以使用系統時繼續。

哦,順便說一句:在系統之間進行更改時,請記住使用適當的核心。由於 /boot 不是 lvm 的一部分,新舊核心將並排放置在那裡。

引用自:https://serverfault.com/questions/128878