重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
Created by
一,實(shí)驗(yàn)環(huán)境
從微軟Azure云,遷移到AWS
主機(jī)A 操作系統(tǒng)CentOs6.9 內(nèi)核vmlinuz-2.6.32-696.3.2.el6.x86_64
本地虛擬主機(jī)B操作系統(tǒng)CentOs6.9 內(nèi)核vmlinuz-2.6.32-696.el6.x86_64
保證兩個(gè)主機(jī)內(nèi)核版本一定要一致,如果不一致的話最好可以用yum把兩個(gè)內(nèi)核更新到一致的版本,這次我遷移的時(shí)候才發(fā)現(xiàn)兩個(gè)內(nèi)核版本不一致。解決方法如下
二,實(shí)驗(yàn)步驟
1. 在本地準(zhǔn)備好和要遷移的主機(jī)操作系統(tǒng)一樣的虛擬主機(jī)B,最小化安裝就可以,我這里用的是VMware,開(kāi)機(jī)快速按F2,進(jìn)入BIOS模式,選擇如下圖,
2. 進(jìn)入救援模式
3. 選擇語(yǔ)言
4. 選擇鍵盤(pán)
5. 配置網(wǎng)絡(luò)確保能夠連上你要遷移的主機(jī)
6. 因?yàn)槭且w移主機(jī)上所有的數(shù)據(jù)到本地虛擬機(jī),所以,這邊要選擇跳過(guò),選擇繼續(xù)的話,系統(tǒng)會(huì)掛載你的磁盤(pán),這樣,你就不好格式化根分區(qū),所以選擇Skip
7. 進(jìn)入到bash終端
8. 配置ssh
ssh-keygen -t rsa
確保能夠免密登陸要被克隆的主機(jī)。
9. 我這里本地虛擬機(jī)分了兩個(gè)分區(qū)/dev/sda1 mount on /boot 和 /dev/sda2 mount /
在bash里我創(chuàng)建了個(gè)目錄 /backup 并且把/dev/sda2 掛載到了這上邊,一定要確保在掛載之前/dev/sda2沒(méi)有其他的掛載
掛載好以后,刪除/backup 目錄里的所有東西,從新格式化/dev/sda2也可以,但是不建議,因?yàn)楦袷交暌院笠残枰獟燧d,而且格式化磁盤(pán)容易出錯(cuò)。
10. 準(zhǔn)備工作完成后我們開(kāi)始同步數(shù)據(jù),這里我使用的是dump/restore
ssh Azure@targetPC dump -0 -f - / | restore -r -f -
這里targetPC是你目標(biāo)電腦的IP地址。參數(shù)“-0”表示完全備份,“-f-”表示使用stdin/stdout做為文件描述符,而“-r”意思是指示restore去重新創(chuàng)建通過(guò)網(wǎng)絡(luò)傳送的文件系統(tǒng)到目標(biāo)電腦上去。更多內(nèi)容請(qǐng)參考dump(8) 和 restore(8)。下面你看到的是傳送主文件系統(tǒng)的輸出。
開(kāi)始后會(huì)顯示:
DUMP: Date of this level 0 dump: Tue Feb 22 15:50:12 2005
DUMP: Dumping /dev/hda3 (/) to standard output
DUMP: Label: debian
DUMP: Writing 10 Kilobyte records
DUMP: mapping (Pass I) [regular files]
DUMP: mapping (Pass II) [directories]
DUMP: estimated 547312 blocks.
DUMP: Volume 1 started with block 1 at: Tue Feb 22 15:50:14 2005
DUMP: dumping (Pass III) [directories]
DUMP: dumping (Pass IV) [regular files]
DUMP: Volume 1 completed at: Tue Feb 22 15:51:43 2005
DUMP: Volume 1 546590 blocks (533.78MB)
DUMP: Volume 1 took 0:01:29
DUMP: Volume 1 transfer rate: 6141 kB/s
DUMP: 546590 blocks (533.78MB)
DUMP: finished in 89 seconds, throughput 6141 kBytes/sec
DUMP: Date of this level 0 dump: Tue Feb 22 15:50:12 2005
DUMP: Date this dump completed: Tue Feb 22 15:51:43 2005
DUMP: Average transfer rate: 6141 kB/s
DUMP: DUMP IS DONE
Restore通常會(huì)創(chuàng)建一個(gè)名叫restoresymtable的文件,如果你確信在文件系統(tǒng)重建過(guò)程中沒(méi)有錯(cuò)誤發(fā)生,你可以將這個(gè)文件刪掉。完成主文件系統(tǒng)的復(fù)制,下面我們依次完成其他子分區(qū)的復(fù)制。從/usr開(kāi)始吧(假定你現(xiàn)在的工作目錄是未來(lái)的主文件系統(tǒng))。
11. 數(shù)據(jù)拉取下來(lái)以后,由于云上的主機(jī)是都在一個(gè)分區(qū),所以,直接dump / 會(huì)把系統(tǒng)數(shù)據(jù)全部來(lái)下來(lái),如果還有其他掛載磁盤(pán),直接拷貝,或者用上邊dump方法都可以。
12. 我這里兩臺(tái)主機(jī)內(nèi)核不一致,我把 從A主機(jī)拉取下來(lái)的 boot/vmlinuz-2.6.32-696.3.2.el6.x86_64 直接覆蓋掉vmlinuz-2.6.32-696.el6.x86_64,但是文件名字還是vmlinuz-2.6.32-696.el6.x86_64
和initramfs-2.6.32-696.3.2.el6.x86_64.img 覆蓋掉initramfs-2.6.32-696.el6.x86_64.img 文件名還保持initramfs-2.6.32-696.el6.x86_64.img,不變
13. 設(shè)置開(kāi)機(jī)自動(dòng)掛載,注意這個(gè)文件是從A主機(jī)拉取下來(lái)的,所以要把磁盤(pán)掛載情況搞清楚。本地的磁盤(pán)還是和以前的一樣掛載,我這邊就改了兩個(gè)UUID。
15. 然后reboot,Azure云主機(jī)應(yīng)該是會(huì)帶一個(gè)walinuxagent的東西,啟動(dòng)的時(shí)候會(huì)報(bào)錯(cuò),由于內(nèi)核發(fā)生變化kdump也會(huì)發(fā)出警告,而且每次開(kāi)機(jī)重啟都會(huì)更新,進(jìn)去以后把他們都關(guān)掉。
這樣還不能直接導(dǎo)出OVA,然后上傳到AWS做成AMI,可能是內(nèi)核發(fā)生改變的原因,我試了好幾次,浪費(fèi)了不少時(shí)間,會(huì)報(bào)ClientError: Multiple different grub/menu.lst files found,這個(gè)錯(cuò)。然后我又從在本地最小化安裝了新的虛擬機(jī)C,這次在這里邊先yum update ,升級(jí)kernel,并設(shè)置開(kāi)機(jī)優(yōu)先使用,把主機(jī)B的kernel也調(diào)成一樣的,這樣在把B的主機(jī)同步到C主機(jī),這次boot直接用本地的就可以。做好以后確定數(shù)據(jù),機(jī)器沒(méi)問(wèn)題就可以導(dǎo)出OVA啦,然后在用生成的vmdk文件導(dǎo)入AWS制作成AMI,就可以在云上開(kāi)心的使用啦。
aws ec2 import-image --description "CentOs6.9 VMDK" --license-type BYOL --disk-containersfile://H:1.json
1.json