阿里雲VM打包遷移至Azure(Linux Server)

將 CentOS 6.8 的虛擬機遷移到 Azure 環境
主要步驟
遷移的主要步驟分爲:準備環境,調整服務器配置,導出磁盤,上傳磁盤,建立新的虛擬機。在這幾個步驟中,調整服務器配置將對阿里雲中的配置進行調整以符合
Azure
的需求,因此將會涉及一些影響在阿里雲運行的調整。有幾個推薦的做法:
在調整前進行快照,操作錯誤時可進行回滾
如本地有 Hyper-V 機器,可先進行導出磁盤再進行調整服務器配置
因此,根據你的策略,流程可分爲
準備環境=>調整服務器配置=>導出磁盤=>上傳磁盤=>建立新的虛擬機
準備環境=>導出磁盤=>調整服務器配置=>上傳磁盤=>建立新的虛擬機
由於修改服務配置可能造成雲端服務中斷,而在本地則需要額外的資源及較長的操作時間,你可根據需要決定選擇何種流程,以下我們將針對各步驟進行詳細說明。
準備環境
首先,推薦先對現有磁盤進行快照。
接着,爲了導出虛擬機的磁盤,我們需要掛載數據盤以存放導出的虛擬磁盤文件(.vhd),大小建議爲需要備份的磁盤大小的兩倍,詳細方法請參考掛載數據盤,值得提醒的是,除了在阿里雲控制檯進行掛載,也需要在操作系統內進行配置。
最後,爲了準備上傳磁盤的空間,需要在 Azure
上創建一個存儲賬戶,值得注意的是這個存儲賬戶必須與虛擬機是同一種類型,這邊採用的是資源管理模式(Azure
Resource Manager),進行存儲賬戶創建,同時請創建一個容器(container),名爲
vhds。
調整服務器配置
在此步驟中,我們將進行服務器的調整以兼容於 Azure 的環境。
1.用具有管理員權限的賬戶登入阿里雲的 Linux 虛擬機。
2.修改 /etc/sysconfig/network
vi /etc/sysconfig/network
修改爲:
NETWORKING=yes
HOSTNAME=localhost.localdomain
在這裏插入圖片描述

3.修改 /etc/sysconfig/network-scripts/ifcfg-eth0
vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改爲:
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
TYPE=Ethernet
USERCTL=no
PEERDNS=yes
IPV6INIT=no
在這裏插入圖片描述
4.如果阿里主機上有eth1網卡,則我們需要修改eth1配置,如果沒有eth1,這步跳過。
修改 /etc/sysconfig/network-scripts/ifcfg-eth1,將其禁用。
vi /etc/sysconfig/network-scripts/ifcfg-eth1
修改爲:
DEVICE=eth1
#ONBOOT=yes
#BOOTPROTO=static
#IPADDR=1.1.1.1
#NETMASK=255.255.255.0

5.修改 udev 規則,以避免產生以太網接口的靜態規則。在 Azure 或 Hyper-V
中克隆虛擬機時,這些規則會引發問題:
sudo ln -s /dev/null
/etc/udev/rules.d/75-persistent-net-generator.rules
sudo rm -f /etc/udev/rules.d/70-persistent-net.rules
6.修改服務啓動的配置,禁用阿里雲的服務。
sudo chkconfig network on
sudo chkconfig aegis off
sudo chkconfig aliyun-util off
7.更新鏡像庫。
wget -q https://aliyunmigration.blob.core.chinacloudapi.cn/packages/CentOS-Base.repo -O
/etc/yum.repos.d/CentOS-Base.repo
8.修改 /etc/yum.conf
vi /etc/yum.conf
添加一行:
http_caching=packages
在這裏插入圖片描述
9.清除 yum 元數據並進行更新。
yum clean all
sudo yum -y update
在這裏插入圖片描述
10.安裝 Azure Linux 代理和依賴項。
sudo yum install python-pyasn1 WALinuxAgent
在這裏插入圖片描述
11.在 grub 配置中修改內核引導行,以使其包含 Azure 的其他內核參數。
爲此,請在文本編輯器(vi)中打開 /boot/grub/menu.lst,並確保默認內核包含以下參數。
console=ttyS0 earlyprintk=ttyS0 rootdelay=300
在這裏插入圖片描述
12.編輯磁盤文件,除系統盤之外,將其他不需用到的磁盤禁用。
vi /etc/fstab
在這裏插入圖片描述
至此,你已完成 CentOS 6.8 上傳至 Azure 磁盤前的準備。

遷移大概步驟是:1、在阿里主機上增加一塊存儲vhd鏡像的磁盤並格式化掛載到/mnt/下
2、將阿里雲主機系統打包成RAW鏡像
3、在阿里雲主機上使用qemu工具將raw鏡像轉換成vhd格式
4、將vhd鏡像上傳到Azure的存儲賬號下
5、Azure上創建新磁盤,使用vhd鏡像創建虛機

1、在阿里主機上增加一塊存儲vhd鏡像的磁盤並格式化掛載到/mnt/下

導出磁盤

在 Linux 中,我們所使用的工具是 dd,進行整個磁盤的備份,再備份完成後再用
qemu 工具,轉成vhd的文件格式。

查看更新的分區表:
Cat /proc/partitions
格式化 新加的分區表
Mkfs –t ext3 格式區
格式化後掛載到想要掛載的位置下(臨時掛載)
比如:mount /dev/sdb1 /mnt
查看是否掛載成功
Df

2、將阿里雲主機系統打包成RAW鏡像

首先,執行 dd 指令,這裏我導出的磁盤爲
/dev/vda,額外掛載作爲備份的磁盤爲 /mnt,導出的文件爲 aliyuncentos68.raw
dd if=/dev/vda of=/mnt/aliyuncentos68.raw bs=100M
在這裏插入圖片描述
等待 dd 完成後,安裝 qemu 工具。
sudo yum install qemu-kvm
在這裏插入圖片描述

3、在阿里雲主機上使用qemu工具將raw鏡像轉換成vhd格式

安裝完成後,進行格式轉換,其中 /mnt 爲剛纔的備份目錄,aliyuncentos68.raw
爲剛纔的備份文件,aliyuncentos68.vhd 則爲轉換後的文件
#cd/mnt
#qemu-img convert -f raw -o subformat=fixed -O vpc aliyuncentos68.raw aliyuncentos68.vhd
等待直至轉換磁盤完成。

4、將vhd鏡像上傳到Azure的存儲賬號下

上傳磁盤

在此我們將運用 Azure CLI 將剛纔導出的磁盤上傳至先前創建的存儲賬戶中。
首先需要安裝 NodeJS
curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -
sudo yum -y install nodejs
接着安裝 Azure CLI
npm install -g azure-cli
然後需要剛纔在 Azure 創建的存儲賬戶信息及密鑰組成連結字符串,如:
DefaultEndpointsProtocol=https;BlobEndpoint=storagename.blob.core.chinacloudapi.cn;AccountName=storagename;AccountKey=storagekey
接着執行指令進行上傳
cd /mnt
azure storage blob upload -c ‘DefaultEndpointsProtocol=https;BlobEndpoint=storagename.blob.core.chinacloudapi.cn;AccountName=storagename;AccountKey=storagekey’ -t page --container vhds -f aliyuncentos68.vhd
在這裏插入圖片描述
在這裏插入圖片描述

5、Azure上創建新磁盤,使用vhd鏡像創建虛機

當上述步驟都已經完成,在azure上新添加一塊磁盤。
在這裏插入圖片描述
創建好磁盤後,點擊創建VM虛機
在這裏插入圖片描述
在欄位中依序填入 VM 創建的地點,剛纔上傳的系統磁盤 url,OS
類型(這邊應該選Linux),VM 的大小及 VM 的名稱。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
接着點選創建,虛擬機將開始進行部署。
在這裏插入圖片描述
過一段時間之後,便可以連結上你所遷移的機器了。
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章