Centos7

lvm - 將特定數據從一個邏輯卷移動到另一個

  • October 8, 2019

系統是 CentOS 7。

我有一個邏輯卷安裝在/.

在設置伺服器時,我忘記提供/home自己的邏輯卷。

現在我想把所有東西都/home移到它自己的邏輯卷中。

這樣做的最佳過程是什麼?lvm有內置的方法嗎?

我目前的做事方式是:

使其離線

  • 使伺服器離線(因此在操作期間無法訪問在其上執行的 Web 應用程序)
  • mv /home /old-home(防止在操作過程中更改文件)
  • 重新啟動伺服器,因此在 /home 中具有打開文件句柄的任何程序都會放棄該句柄並且在 /home 再次可用之前無法啟動

移動數據

  • 創建新的邏輯卷 (lv)
  • 在 /mnt/new-lv 掛載新的 lv
  • cp -r從 /home 到 /mnt/new-lv 的所有內容
  • 掛載新的 lv 在/home

檢查結果

  • 將伺服器重新聯機並測試應用程序
  • 如果一切正常,請保留/old-home一段時間作為緊急備份
  • rm -rf /old-home在稍後的某個時候

但也許有一種更少手動的方式?還是一種避免停機的方法?

編輯 1: 添加新的 lv/etc/fstab使其自動隨系統啟動。

編輯 2: 有問題的系統是我們主機數據中心中的虛擬系統,因此 afaik 引導到替代作業系統模式(如救援/最小)不是一種選擇。

這是我會做的:

  1. 為家打造 LV
  2. 使用所需的文件系統格式化 LV
  3. 使用 Live 或 System Rescue CD 重新啟動
  4. 山 /
  5. 將 /home 重命名為 /home-old
  6. 掛載 /home
  7. 對 /etc/fstab 進行必要的更改
  8. 複製數據rsync -av /home-old/* /home/
  9. 去檢查:diff -r /home-old /home

如果一切看起來都不錯,請將伺服器重新啟動到它自己的作業系統,你應該一切順利。

乾杯,OJ

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