Azure Lei Zhang的博客

weibo: LeiZhang的微博/QQ: 185165016/QQ群:319036205/邮箱:leizhang1984@outlook.com/TeL:139-161-22926

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  390 随笔 :: 0 文章 :: 394 评论 :: 0 引用

  Windows Azure Platform 系列文章目录

  

  本章介绍的内容是将本地Hyper-V的VHD,上传到Azure数据中心,作为自定义的虚拟机模板。

  注意:因为在制作VHD的最后执行了Sysprep命令,所以该VHD中的OS会重新部署。

 

  如果您想迁移本地的Hyper-V虚拟机,还需要保留该虚拟机中安装的软件配置。

  请参考: [New Portal]Windows Azure Virtual Machine (21) 将本地Hyper-V的VM上传至Windows Azure Virtual Machine 

 

  上一章内容中,笔者介绍了如何在本地通过Hyper-V制作Windows Server 2012中文版的虚拟机。

  本章我将首先介绍如何在Azure Storage中创建Container,然后介绍如何使用Azure PowerShell将本地的Server 2012 VHD上传至Azure数据中心。

  1.首先我们登陆Azure Management Portal。我已经创建了叫leivms的Storage Account,然后我们点击Add Container。如下图:

  

  2.然后在弹出的New Container窗口中,我们设置NAME为uploadvm,访问方式设置为Private(也可以设置为Public Container)。如下图:

  

  3.创建成功后,我们将来会通过访问http://leivms.blob.core.windows.net/uploadvm 这个URL,将本地的Server 2012 VHD上传至这个Blob Container。如下图:      

  

  4.之前做的工作都是在Azure Portal进行准备工作,接下来就正式进入上传VHD的过程了。

  5.请先确认已经安装最新的Azure SDK,目前最新的SDK版本是2.0,请在http://www.windowsazure.com/en-us/downloads/进行下载,笔者下载的是.NET SDK VS2012。下载完成后,会通过Web Installer进行安装。如下图:

 

  6.安装完成,以管理员身份运行CMD命令提示符,进入C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\v2.0\bin目录,执行csupload.exe命令,如下图:

  

  会发现黄色提示部分,微软建议下载Azure PowerShell工具......e........(折腾啊)..........

 

 

 

  建议读者以后使用Azure PowerShell,不要用CSUpload

  那我们通过http://go.microsoft.com/?linkid=9811175&clcid=0x409,继续下载PowerShell。随后通过Web Installer安装。

  7.安装完Azure PowerShell,以管理员身份运行Azure PowerShell。

  

 

 

  Update 2015-09-01

  发现一个新的命令。可以不需要导入PublishSetting文件。

  如果你使用的是国内由世纪互联运维的Azure China,请在PowerShell输入命令:

Add-AzureAccount -Environment AzureChinaCloud

  如果你使用的是国外的Azure Global,请在PowerShell输入命令:

Add-AzureAccount

  注意:我们在下面的步骤中下载的publishsettings这个文件,需要非常小心的保存。

  笔者建议在导入完毕后,直接删除这个publishsettings文件,防止被不坏好意的人重复利用。

 

=====================================这里是分隔符============================================

 

  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文件了。

  12.请在本地Azure PowerShell继续输入以下命令。

Add-AzureVhd -Destination <BlobStorageURL>/<YourImagesFolder>/<VHDName> -LocalFilePath <PathToVHDFile>

  上面的参数说明是这样的:

  之前我们创建的BlobStorageUrl为http://leivms.blob.core.windows.net

  YourImagesFolder为ContainerName,我们在本章步骤2例设置为uploadvm

  VHDName,我们可以设置上传的VHD名称,这个可以按照用户需要设置

  PathToVHDFile,需要制定我们上传的VHD的路径(文件夹+文件名)

 

  根据笔者的本地环境,我们可以在PowerShell输入以下命令:

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会做如下操作:

  a)将本地的VHD做MD5加密

  b)在Azure Storage创建Page Blob。

  c)将VHD上传至Azure Storage Page Blob

  注意:上传VHD的速度与你本地网络有关。

  

  所有的步骤完毕后,如下图:

  13.最后,我们可以通过Azure Management Portal查看到上传成功的40G的VHD

 

posted on 2013-07-02 14:20 Lei Zhang的博客 阅读(...) 评论(...) 编辑 收藏