進行伺服器數據遷移的不太複雜的方法?
對於 SO 來說,這可能是一個過於具體/個人化的問題,但這裡是:
我繼承了目前執行單個硬碟驅動器的伺服器,通過預設的 Ubuntu 16.04 伺服器設置,它在以下分區方案中執行其磁碟:
sda1 : 512 Mb : Boot : primary/physical partition sda2 : Rest of Disk : Extended Partition sda5 : Rest of Disk : Logical, Linux LVM Partition
LVM 中有一個卷組,僅由該磁碟構成。它分為:
swap_1 (2.00 GB) root (remaining space)
最終目標是將此驅動器的內容(和結構)移動到兩個更大的、可單獨引導的 RAID1 驅動器上。
話雖如此,我的“目標”是針對每個新的 sdb,sdc 是:
/dev/md0 將成為 sdb1 和 sdc1 之間的 raid1,它將被格式化並(希望)是 sda1 的副本。Md0 不會被 LVM 直接使用(所以我們可以從它啟動)
/dev/md1 將成為 sdb2 和 sdc2 之間的 raid1。/dev/md1 將用作新 VG 的唯一 PV,與上麵類似地劃分(2GB 用於交換,其餘用於儲存)。
所以,我假設的過程包括使用恢復 CD 啟動到這個系統,設置 md0 和 md1,在 md1 上創建 LVM,並使用 dd 從 sda1 複製數據到 md0 和 /dev/vg1/root 到 /dev/vg2/根,分別。當然,將 grub 安裝到 /sdb 和 /sdc。
初步測試看起來很有希望,但有沒有更好的實踐方法來做到這一點?
您正在做的事情似乎沒有什麼特別錯誤(或複雜),但由於您使用的是 LVM,您有另一個選擇:您可以使用
pvmove
將數據移動到新數組。優點是您可以線上執行此操作,幾乎消除了停機時間。要使用 pvmove,您需要擴展現有捲組 (
pvcreate /dev/md1 && vgextend existing-group /dev/md1
),然後使用 pvmove 移動邏輯卷 (pvmove --atomic /dev/sda5 /dev/md1
),最後從卷組 (vgreduce existing-group /dev/sda5
) 中刪除 sda5。您可以線上複製 /boot(使用
dd
),因為它在正常操作期間不使用 - 只需先解除安裝它。無論哪種方式,請確保更新您的 initramfs — 它現在需要啟動 mdraid,而以前不需要。
計劃下一次重新啟動並準備好恢復光碟以防萬一出現問題(例如,未正確生成 initramfs)。當然,首先測試和閱讀手冊頁是個好主意。