一:知識點:node
將本地Hyper-V的VM上傳至Windows Azure Virtual Machinepython
本章介紹的內容是將本地Hyper-V的VHD,上傳到Azure數據中心,而且保留OS中的內容linux
1.首先在本地的Hyper-V上製做Server 2012的VHD,VHD Size必須爲固定大小。shell
2.經過Azure Powershell上傳 VHDwindows
登錄Azure Management Portal。找到已經建立了叫的Storage Account,而後咱們點擊Add Container。centos
3.而後在彈出的New Container窗口中,咱們設置NAME,訪問方式設置爲 Private(也能夠設置爲Public Container)安全
4.建立成功後,咱們未來會經過訪問這個URL,將本地的Server 2012 VHD上傳至這個Blob Container。服務器
5.而後就能夠作接下來就正式進入上傳VHD的過程了。網絡
6.請先確認已經安裝最新的Azure SDK,目前最新的SDK版本是2.0,http://www.windowsazure.com/en-us/downloads/進行下載,經過Web Installer進行安裝。dom
安裝完成,以管理員身份運CMD命令提示符,進入C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\v2.0\bin目錄,執行csupload.exe命令
7.同時也要下載Azure PowerShell工具經過http://go.microsoft.com/?linkid=9811175&clcid=0x409,繼續下載PowerShell。隨後經過Web Installer安裝。安裝完 Azure PowerShell,以管理員身份運行Azure PowerShell。
8.本地計算機和Azure創建可靠的安全鏈接。請在Azure PowerShell輸入如下命令:
Get-AzurePublishSettingsFile
9.這時候計算機會彈出新的IE窗口,導航至Windows Azure。並要求咱們輸入登錄Azure的用戶名和密碼並登錄。
10.登錄完畢後,系統會要求咱們保存擴展名爲publishsettings的文件,咱們保存至本地計算機的磁盤上。
11.而後咱們回到Azure PowerShell窗口,繼續輸入如下命令:
Import-AzurePublishSettingsFile <PathToFile>
PathToFile就是咱們保存步驟11中擴展名爲publishsettings的文件位置(文件路徑+文件名),好比我將該文件保存至D盤根目錄,咱們就輸入如下命令:
Import-AzurePublishSettingsFile 'D:\Windows Azure MSDN - Visual Studio Ultimate-7-2-2013-credentials.publishsettings'
上面的命令其實是將本地的publishsettings文件上傳至Azure的Management Certificates。咱們能夠打開Azure Management Portal。點擊Settings,並選擇 Management Certificates,查看上傳的publishsettings文件
這樣,本地計算機就和Azure創建了可靠安全的連接了。接下來就能夠上傳咱們的VHD文件了。
上傳VHD文件在以前的內容提到過。主要以Azure PowerShell 的命令上傳方式。
12.請在本地Azure PowerShell繼續輸入如下命令。
Add-AzureVhd -Destination <BlobStorageURL>/<YourImagesFolder>/<VHDName> -LocalFilePath <PathToVHDFile>
上面的參數說明是這樣的:例如:
Add-AzureVhd -Destination 'http://leivms.blob.core.windows.net/uploadvm/Server2012_CHN_64bit.vhd' - LocalFilePath 'D:\VHD\Server2012_CHN_64bit\Server2012_CHN_64bit.vhd'
接下來的Azure PowerShell會作出上傳VHD的操做。
13.最後,咱們能夠經過Azure Management Portal查看到上傳成功的VHD
上傳完畢後,咱們能夠在Azure Management Portal -> Azure Storage中觀察結果:
上傳以後將VHD外掛在VM 上
14.在Azure Management Portal中,選擇Virtual Machine,Disk,選擇Create A Disk 建立一個磁盤
15.在彈出的窗口中,選擇VHD URL。以前存放vhd的路徑
16.瀏覽到咱們上傳VHD的Storage路徑:
17.而後輸入其餘相關信息。這點上傳跟VHD上傳文件不一樣,這個VHD是有操做系統存在的。
18.而後咱們開始建立Azure Virtual Machine:
19.在mydisks 鏡像中選擇咱們以前上傳的操做系統。
20.Azure VM建立完畢後,咱們經過遠程桌面鏈接能夠觀察結果,VM的機器名與在本地Hyper-V上設置的一致。
CPU和內存是按照Azure VM Size來設置的,本地Hyper-V的設置已經再也不有效。
二:知識點:
1. MA介紹:MA是爲無縫遷移物理機、Vmware虛擬機、Amazon網頁服務以及微軟Hyper-V應用到Azure而設計的工具軟件,遷移時,可以自動發現源工做流,自動發現遠程客戶端,網絡適配器及配置。
2. Sysprep的做用:是一個「系統準備」工具,主要功能是在建立磁盤映像以前刪除當前操做系統的全部惟一性信息,便於Ghost之類的工具複製磁盤映像。在VHD上建立模板的時候,會用到這個功能。
3. 建立並上傳包含linux操做系統的VHD
在 Windows Azure 中建立的虛擬機運行您從支持的操做系統版本中選擇的操做系統。您能夠自定義虛擬機的操做系統設置以快速運行您的應用程序。您設置的配置存儲在磁盤上。您可使用虛擬硬盤 (VHD) 文件在 Windows Azure 中建立虛擬機。您能夠選擇使用映像庫中的 VHD 文件建立虛擬機,也能夠選擇建立您本身的映像,而後以 VHD 文件的形式將其上載到 Windows Azure。
1)在hype-v 上建立虛擬機以後,而後在虛擬機上建立存儲帳戶
2)準備要上載的映像,這裏以linux的CentOS 爲例
準備 CentOS 6.2 和 CentOS 6.3 操做系統
您必須在操做系統中完成特定的配置步驟才能使虛擬機在 Windows Azure 中運行。
1.在 Hyper-V 管理器的中間窗格中,選擇虛擬機。
2.單擊「鏈接」以打開該虛擬機的窗口。
3.經過運行如下命令卸載 NetworkManager:
rpm -e --nodeps NetworkManager
注意:若是未安裝此包,則該命令將失敗,並顯示一條錯誤消息。這是所指望的狀況。
4.在 /etc/sysconfig/ 目錄中建立一個名爲 network 的文件,該文件包含如下文本:
NETWORKING=yes HOSTNAME=localhost.localdomain
5.在 /etc/sysconfig/network-scripts/ 目錄中建立一個名爲 ifcfg-eth0 的文件,該文件包含如下文本:
DEVICE=eth0 ONBOOT=yes DHCP=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no
6.經過運行如下命令啓用網絡服務:
chkconfig network on
7.安裝適用於 Linux Integration Services 的驅動程序。
a) 從下載中心獲取包含適用於 Linux Integration Services 的驅動程序的 .iso 文件。
b) 在 Hyper-V 管理器中的「操做」窗格中,單擊「設置」。
c) 在「硬件」窗格中,單擊「IDE 控制器 1」。
d) 在「IDE 控制器」框中,單擊「DVD 驅動器」,而後單擊「添加」。
e) 選擇「映像文件」,瀏覽到「Linux IC v3.2.iso」,而後單擊「打開」。
f) 在「設置」頁中,單擊「肯定」。
g) 單擊「鏈接」以打開該虛擬機窗口。
h) 在命令提示符窗口中鍵入如下命令:
mount /dev/cdrom /media /media/install.sh` reboot
8.經過運行如下命令安裝 python-pyasn1:
sudo yum install python-pyasn1
9.將其 /etc/yum.repos.d/CentOS-Base.repo 文件替換爲如下文本
[openlogic] name=CentOS-$releasever - openlogic packages for $basearch baseurl=http://olcentgbl.trafficmanager.net/openlogic/$releasever/openlogic/$basearch/ enabled=1 gpgcheck=0 [base] name=CentOS-$releasever - Base baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#released updates [updates] name=CentOS-$releasever - Updates baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#additional packages that may be useful [extras] name=CentOS-$releasever - Extras baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#contrib - packages by Centos Users [contrib] name=CentOS-$releasever - Contrib baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/contrib/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
10.將下列行添加到 /etc/yum.confhttp_caching=packagesexclude=kernel*
11.經過編輯文件「/etc/yum/pluginconf.d/fastestmirror.conf」禁用 yum 模塊「fastestmirror」,並在 [main] 下面
設置 enabled=0
12.清除當前 Yum 元數據。您須要清除當前 yum 元數據:
yum clean all
13.經過運行如下命令來更新正在運行的 VM 的內核對於 CentOS 6.2,請執行:
sudo yum remove kernel-firmware
sudo yum --disableexcludes=main install kernel-2.6.32-279.14.1.el6.openlogic.x8664 kernel-firmware-2.6.32-279.14.1.el6.openlogic.x8664
對於 CentOS 6.3,請執行:yum install kernel-2.6.32-279.14.1.el6.openlogic.x86_64.rpm
14.確保您已修改內核引導行以包含如下內容的行
console=ttyS0(這將啓用串行控制檯輸出)rootdelay=300
15.確保您內核中安裝的全部 SCSI 設備都包含 300 秒或更長時間的 I/O 超時。
16.在 /etc/sudoers 中註釋掉 Defaults targetpw
17.默認狀況下,應包括 SSH 服務器
18.不該該在主機操做系統磁盤上建立 SWAP,若是須要,Linux 代理可請求在本地資源磁盤上建立 SWAP。能夠適當地修改 /etc/waagent.conf。
19.經過運行如下命令來安裝 Windows Azure Linux 代理 yum install WALinuxAgent-1.2-1
20.運行如下命令以取消設置虛擬機:
waagent –force –deprovision export HISTSIZE=0 logout
21.在 Hyper-V 管理器中單擊「關閉」。