Centos7
lvm - 將特定數據從一個邏輯卷移動到另一個
系統是 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 引導到替代作業系統模式(如救援/最小)不是一種選擇。
這是我會做的:
- 為家打造 LV
- 使用所需的文件系統格式化 LV
- 使用 Live 或 System Rescue CD 重新啟動
- 山 /
- 將 /home 重命名為 /home-old
- 掛載 /home
- 對 /etc/fstab 進行必要的更改
- 複製數據
rsync -av /home-old/* /home/
- 去檢查:
diff -r /home-old /home
如果一切看起來都不錯,請將伺服器重新啟動到它自己的作業系統,你應該一切順利。
乾杯,OJ