一:知识点: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 管理器中单击“关闭”。