1. 程式人生 > >阿里雲至 Windows Azure 的 Linux 虛擬機器遷移

阿里雲至 Windows Azure 的 Linux 虛擬機器遷移

在Windows Azure中,使用者可以對部署在Azure中的虛擬機器的映像、磁碟以及快照進行生成和下載。使用者可以方便地將Azure中的虛擬機器例項遷移到本地、私有云甚至其他公有云平臺進行測試、擴充套件或者再部署。但是,除Azure外,大部分公有云供應商並不提供虛擬機器映像的下載服務。使用者如要遷移自己的應用,必須重新配置虛擬機器環境。為了解決這個問題,本文以阿里雲遷移至Azure為例,提供了一種無須重新部署、利用Linux dd命令直接拷貝阿里雲中的虛擬機器映像、並上傳至Azure的方法。

  • 本文以 Ubuntu 14.04 為例,其他Linux版本可參考以上鍊接。
  • 本文所有操作均在源虛擬機器命令列視窗中執行,無需切換至Linux圖形介面、Windows系統或依靠Hyper-V等第三方工具。

1.  Azure環境準備

1)  將阿里雲映像中的現有源倉庫替換為 Azure 源倉庫。

# cp /etc/apt/sources.list/etc/apt/sources.list.bak

# sed -i s/mirrors.aliyun.com/azure.archive.ubuntu.com/g/etc/apt/sources.list

# sed -i /aliyuncs/d /etc/apt/sources.list

2)   將作業系統核心更新為最新版本。

# apt-get update

# apt-get install hv-kvp-daemon-init

# apt-get dist-upgrade

# reboot

3)   修改 Grub 的核心啟動項,使其包含 Azure 的附加核心引數。

編輯“/etc/default/grub”,將GRUB_CMDLINE_LINUX_DEFAULT引數行替換成如下:

GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0 earlyprintk=ttyS0 rootdelay=300"

並且執行:

# update-grub

4)   安裝 Azure Linux Agent。(此操作將會移除NetworkManager和NetworkManager-gnome程式包)

# apt-get update

# apt-get install walinuxagent

5)   將網路配置從“靜態”修改為“DHCP”,並將其他網路配置行註釋掉(請參見以下螢幕截圖)。

編輯“/etc/network/interfaces”:

修改前:


修改後:


6)   新增有效的 DNS 伺服器。

編輯“/etc/resolv.conf”,新增如下DNS伺服器:

nameserver 8.8.8.8 #Google

nameserver 223.5.5.5 #Ali

7)   將附加盤資訊從檔案系統表中移除。

編輯“/etc/fstab”:

修改前:


修改後:


8)   移除該 VM上的使用者配置資訊,並清除歷史記錄。

# waagent -force -deprovision

# export HISTSIZE=0

2.  生成 VM 映像

1)   新增一個獨立雲磁碟到阿里虛擬機器上,用來儲存生成的虛擬機器映像檔案,並且掛載該磁碟至虛擬機器(參考)。(該獨立雲磁碟容量至少應為系統盤的兩倍)

2)   利用dd命令備份系統磁碟至獨立雲磁碟。

# dd if=/dev/xvda of=/mnt/ImageName.raw bs=100M

3)   安裝 qemu-utils 工具以轉換映像檔案格式。

# apt-get install qemu-utils

4)   將生成的映像檔案從 *.raw 轉換為 *.vhd。

# cd /mnt

# qemu-img convert -f raw -o subformat=fixed -O vpc ImageName.raw ImageName.vhd

至此,映像檔案已經準備完畢。下面將在Azure上建立儲存賬號,用來儲存準備好的映像檔案。注:所有執行在Azure上的虛擬機器,它們的映像、磁碟和快照都儲存在Azure儲存賬號中,方便使用者直接操作和管理。

3.  新建Azure儲存賬號

  • 使用者可以使用Azure Powershell、呼叫API或者直接在管理門戶網站上建立儲存賬號、新建虛擬機器或者管理Azure其它服務(參考:Azure文件中心)。本文使用Azure Linux命令列工具,使使用者快速、方便地進行儲存賬號和虛擬機器的建立和配置。
  • 在使用Azure服務前,請確保您擁有有效的Azure訂閱。使用者可以通過Azure中國官網:http://www.windowsazure.cn/ 獲取Azure訂閱。

1)   安裝 Azure Linux命令列工具:

# apt-get update

# apt-get install nodejs

# apt-get install npm

# ln -s /usr/bin/nodejs /usr/bin/node

# npm install azure-cli -g

2)   連線到Azure訂閱:

# azure login -u<azureusername> -p <auzrepassword> -e<environment>

例:# azure login -u [email protected] -p mypasswd -e AzureChinaCloud

若您使用Azure中國版服務,Azure訂閱使用者名稱<azureusername>的格式為:*@*.partner.onmschina.cn,且必須指定引數-e<environment>為‘AzureChinaCloud’;若您使用Azure國際版服務,可根據該參考建立組織賬號,相應的<azureusername>的格式為:*@*.onmicrosoft.com ,引數-e可省略。

3)   新建Azure儲存賬號:

# azure storage account create <storageaccountname> -l <location>

例:# azure storage account create myaccount -l "ChinaEast"

-l引數指定儲存賬號所在地域,使用者可以使用如下命令檢視可用地域:

# azure vm location list

中國至今(2015年1月)擁有兩個地域: China East和China North,分別位於上海和北京。

注意:儲存賬號和虛擬機器必須部署在同一地域,請根據業務需求選擇賬號所在位置。

4)   獲取儲存賬號祕鑰:

# azure storage account connectionstring show --blob-endpoint <blobEndpoint> <storageaccountname>

例:# azure storage account connectionstring show --blob-endpoint myaccount.blob.core.chinacloudapi.cn myaccount

該命令返回如下結果,其中高亮 部分將作為下一步操作中的<connectionstring>:


5)   新建儲存容器:

儲存容器相當於檔案系統中的資料夾,可以對在其內的blob檔案進行統一許可權管理。預設情況下,建立的容器為私有容器。

#azure storage container create <containername> -c <connectionstring>

例:#azure storage container create mycontainer -c 'DefaultEndpointsProtocol=https;BlobEndpoint=teststorageaccount.blob.core.chinacloudapi.cn;AccountName=teststorageaccount;AccountKey=xMPA3UJD56VqhtmEdnWZ4vLHmJQzaQJfTGUj7R+eMwEGMkBmbEPiUF4qJIL3QqIuWy/t7qeb6RZm72NsBzKiKA=='

4.  上傳映像至Azure

1)   將生成的映像檔案上傳到 Azure Storage。

# cd /mnt

# azure storage blob upload -c <connectionstring> -f ImageName.vhd --container <containername> --blob ImageName.vhd --blobtype page

5. 新建Azure虛擬機器

1)   將上傳的映像檔案新建成虛擬機器映象:

2)   新建一個Azure虛擬機器例項:

# azure vm create <dnsname> <imagename> -u <vmusername> -p <vmpassword> -l <location>

例:# azure vm create mylinuxvm.chinacloudapp.cn myimage -u vmuser -p mypassword  -l "China East"

至此,您已成功將阿里雲上的Linux虛擬機器遷移至Azure中。通過預設SSH埠:22和DNS地址:*.chinacloudapp.cn,即可遠端對建立的Azure虛擬機器進行管理和操作。並且,您還能利用遷移的映像檔案建立多個虛擬機器例項,來保證應用的可用性和可靠性。



相關推薦

阿里 Windows AzureLinux 虛擬機器遷移

在Windows Azure中,使用者可以對部署在Azure中的虛擬機器的映像、磁碟以及快照進行生成和下載。使用者可以方便地將Azure中的虛擬機器例項遷移到本地、私有云甚至其他公有云平臺進行測試、擴充套件或者再部署。但是,除Azure外,大部分公有云供應商並不提供虛擬機器

Windows Azure Linux虛擬機器獲取root許可權的辦法

之前Windows Azure有免費試用的活動,小z申請通過並建立了一臺Linux的虛擬機器,一切進行得比較順利,但是在建立使用者的時候並沒有提示設定root使用者密碼,而只是讓新建一個普通使用者。 沒有root許可權導致無法進行一些特殊操作,這個問題讓我糾結了很久

centos7 通過kvm+vnc 實現遠端桌面虛擬化和建立windowsLinux虛擬機器

感謝朋友支援本部落格,歡迎共同探討交流,由於能力和時間有限,錯誤之處在所難免,歡迎指正! 如果轉載,請保留作者資訊。 部落格地址:http://blog.csdn.net/qq_21398167 原

Azure Linux 虛擬機器常見導致無法遠端的操作

對Azure虛擬機器的一些操作可能會導致無法遠端連線,本文羅列了以下導致不能遠端連線的場景: 場景1 在配置檔案(/etc/sysconfig/network-scripts/ifcfg-eth0)中配置固定的IP地址或MAC地址: 複製 DHCP_HOSTNAME

[Azure]Linux虛擬機器使用rc.local啟動指令碼進行磁碟掛在

Azure Linux虛擬機器如果在啟動過程中出現磁碟檢測失敗,會導致虛擬機器無法成功啟動,這種情況下,由於沒有控制檯的登入方式,往往需要通過將系統磁碟掛在到其他虛擬機器上進行fstab檔案的修改或者磁碟修復,修復完成後再使用修復後的磁碟重建虛擬機器。這種方法相對比較耗時,

frp內網穿透--------------------阿里linux+本地linux虛擬機器實現

為了實現外部主機能訪問區域網伺服器(私有ip),我選擇了用frp來做內網穿透,當然還可以用ngrok、花生殼等等。 frp frp 是一個可用於內網穿透的高效能的反向代理應用,支援 tcp, udp, http, https 協議 內網穿透講解:    

redis在Linux虛擬機器上安裝了,在windows下無法訪問的問題

redis在Linux虛擬機器上安裝了,在windows下無法訪問的問題 1:ifconfig檢視虛擬機器分配的ip 2:redis.conf中bind 指定虛擬機器的ip 3:redis-server …/redis.comf 參考了一些網上的資料,主要的步驟是: 1.window

如何實現windows系統與虛擬機器linux系統間的通訊,使linux系統能夠上網,兩個系統間可以進行檔案互傳。

       我使用的虛擬機器軟體為virtual box,系統為redhat 6.6,本機系統為win10旗艦版。當然,其他環境具體操作起來或許會有細微差別,但大體方向相同。        一、使虛擬機器系統能夠上

windows 使用VMware建立linux虛擬機器,安裝作業系統CentOS7.5

1、按照嚮導建立虛擬機器 以下是安裝虛擬機器的步驟,沒有寫的直接下一步 【1】主頁-建立新虛擬機器    【2】選擇 自定義(高階)   【3】選擇稍後安裝作業系統     【4】給虛擬機器命名並指定所在位置  

windows上配置並連線Linux虛擬機器上的HDFS系統

1.將hadoop-eclipse-plugin-2.7.5.jar放到myeclipse的安裝目錄下的plugins目錄下,並重啟myeclipse 2.在windows->preferences下可看見hadoop Map/Reduce介面,路徑選擇你WINDOWS下的hadoop解壓

Windows系統和Linux虛擬機器之間檔案上傳和下載

方法一:使用xshell(簡單) 用X shell 傳輸檔案 ① xshell是非常好用的工具,但是想在window與linux之間傳輸檔案。   很簡單,就是在linux中安裝lrzsz,安裝即

Linux虛擬機器Windows主機ssh通訊

Windows主機端的準備 這個軟體是用來替代SSH Secure File Transfer Client的,後者在win10下不好用。 Linux端準備 1.ifconfig看一下IP地址。 使用ssh進行檔案傳輸 在Windows端開啟Tectia

windows使用xftp連線本機上的linux虛擬機器

1.首先知道linux虛擬機器的ip地址 2.開啟linux虛擬機器,在windows下,測試是否能ping通Linux的IP地址; 如果ping不通的話,可以按照下面兩種方法處理:

windows下安裝虛擬機器並安裝linux系統

首先要下載一個vmware虛擬機器然後在下載一個linux的映象檔案 一:進入這個介面 二:點選第一個New Vitual Machine(或按Ctrl+N)新建一個虛擬機器 三:(進入此介面注意選第二個選項)然後點選下一步 四:注意畫紅線的地方要選擇好,然後點選下一步 五:選擇第三項選項

Windows使用SecureCRT連線Linux虛擬機器失敗解決方法

連線的時候一直連線不上,並出現connection timeout 開啟cmd.exe使用ping命令,發現全部都是無法訪問目標主機 找了些資料後發現其實是需要將虛擬機器的網路配置設定成自動橋接的模

Docker在Linux上執行NetCore系列(二)把本地編譯好的映象釋出到線上阿里倉庫 Docker在Linux/Windows上執行NetCore文章系列

原文: Docker在Linux上執行NetCore系列(二)把本地編譯好的映象釋出到線上阿里雲倉庫 轉發請註明此文章作者與路徑,請尊重原著,違者必究。   系列文章:https://www.cnblogs.com/alunchen/p/10121379.html  

linux虛擬機器或伺服器在windows下對映網路資料夾

 1:通過putty遠端虛擬機器 1:虛擬機器的網路設定改為橋接模式, 2:apt-get install ssh,reboot後,ifconfig檢視虛擬機器ip 3:在putty上登陸即可 2:對映網路資料夾 1、Samba的幾個套件:samba,samba-

如何在windows下進行LINUX虛擬機器搭建

   Linux是一套免費使用和自由傳播的類Unix作業系統,非常適用於搭建網路伺服器等,我本人日常工作時,是使用的LINUX和WIN7雙作業系統,但每次更換系統總要關機重啟很不方便,所以也在WIN7下搭建了LINUX虛擬機器。      本篇經驗,是以UBUNTU為例,不過您搭建其他版本的LINUX系統,比

windows環境下通過xshell把檔案傳遞給Linux虛擬機器

第一步,下載並xshell遠端登入軟體,開啟xshell,點選左上角的“新建”選項 得到如下介面 請在住主機選項出填寫linux虛擬機器的IP地址,在選擇“確定”,如果不知道IP地址,可以先返回虛擬機器,並在終端介面書寫命令#ifconfig,便可以檢視IP地址 第二步,遠端登入linux系統 第一步