CentOs6.9跨雲主機總體系統遷移

CentOs6.9跨雲主機總體系統遷移

                                                                                                             Created by    戰鬥的小涵linux

                                                                                                                            2017-10-22json

一,實驗環境bash

 從微軟Azure雲,遷移到AWS網絡

主機A 操做系統CentOs6.9 內核vmlinuz-2.6.32-696.3.2.el6.x86_64app

本地虛擬主機B 操做系統CentOs6.9 內核vmlinuz-2.6.32-696.el6.x86_64ssh

保證兩個主機內核版本必定要一致,若是不一致的話最好能夠用yum把兩個內核更新到一致的版本,此次我遷移的時候才發現兩個內核版本不一致。解決方法以下this

二,實驗步驟spa

1.   在本地準備好和要遷移的主機操做系統同樣的虛擬主機B,最小化安裝就能夠,我這裏用的是VMware,開機快速按F2,進入BIOS模式,選擇以下圖,操作系統

 

2.  進入救援模式rest

3.  選擇語言

4.  選擇鍵盤

5.  配置網絡確保可以連上你要遷移的主機

6.   由於是要遷移主機上全部的數據到本地虛擬機,因此,這邊要選擇跳過,選擇繼續的話,系統會掛載你的磁盤,這樣,你就很差格式化根分區,因此選擇Skip

7.  進入到bash終端

8.  配置ssh

ssh-keygen -t rsa 

確保可以免密登錄要被克隆的主機。

9.  我這裏本地虛擬機分了兩個分區/dev/sda1 mount on /boot 和 /dev/sda2 mount /

在bash裏我建立了個目錄 /backup 而且把/dev/sda2 掛載到了這上邊,必定要確保在掛載以前/dev/sda2沒有其餘的掛載

掛載好之後,刪除/backup 目錄裏的全部東西,重新格式化/dev/sda2也能夠,可是不建議,由於格式化完之後也須要掛載,並且格式化磁盤容易出錯。

10.  準備工做完成後咱們開始同步數據,這裏我使用的是dump/restore

ssh  Azure@targetPC  dump -0 -f - / | restore -r -f - 

這裏targetPC是你目標電腦的IP地址。參數「-0」表示徹底備份,「-f-」表示使用stdin/stdout作爲文件描述符,而「-r」意思是指示restore去從新建立經過網絡傳送的文件系統到目標電腦上去。更多內容請參考dump(8) 和 restore(8)。下面你看到的是傳送主文件系統的輸出。 

開始後會顯示:

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一般會建立一個名叫restoresymtable的文件,若是你確信在文件系統重建過程當中沒有錯誤發生,你能夠將這個文件刪掉。完成主文件系統的複製,下面咱們依次完成其餘子分區的複製。從/usr開始吧(假定你如今的工做目錄是將來的主文件系統)。 

11.   數據拉取下來之後,因爲雲上的主機是都在一個分區,因此,直接dump / 會把系統數據所有來下來,若是還有其餘掛載磁盤,直接拷貝,或者用上邊dump方法均可以。

12.   我這裏兩臺主機內核不一致,我把 從A主機拉取下來的 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.   設置開機自動掛載,注意這個文件是從A主機拉取下來的,因此要把磁盤掛載狀況搞清楚。本地的磁盤仍是和之前的同樣掛載,我這邊就改了兩個UUID。

15.   而後reboot,Azure雲主機應該是會帶一個walinuxagent的東西,啓動的時候會報錯,因爲內核發生變化kdump也會發出警告,並且每次開機重啓都會更新,進去之後把他們都關掉。

這樣還不能直接導出OVA,而後上傳到AWS作成AMI,多是內核發生改變的緣由,我試了好幾回,浪費了很多時間,會報ClientError: Multiple different grub/menu.lst files found,這個錯。而後我又從在本地最小化安裝了新的虛擬機C,此次在這裏邊先yum update ,升級kernel,並設置開機優先使用,把主機B的kernel也調成同樣的,這樣在把B的主機同步到C主機,此次boot直接用本地的就能夠。作好之後肯定數據,機器沒問題就能夠導出OVA啦,而後在用生成的vmdk文件導入AWS製做成AMI,就能夠在雲上開心的使用啦。

aws ec2 import-image --description "CentOs6.9 VMDK" --license-type BYOL --disk-containers file://H:\1.json

1.json

相關文章
相關標籤/搜索