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----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

[New Portal]Windows Azure Virtual Machine (12) 在本地使用Hyper-V制作虚拟机模板,并上传至Azure (2)的更多相关文章

  1. [New Portal]Windows Azure Virtual Machine (14) 在本地制作数据文件VHD并上传至Azure(1)

    <Windows Azure Platform 系列文章目录> 之前的内容里,我介绍了如何将本地的Server 2012中文版 VHD上传至Windows Azure,并创建基于该Serv ...

  2. [New Portal]Windows Azure Virtual Machine (21) 将本地Hyper-V的VM上传至Windows Azure Virtual Machine

    <Windows Azure Platform 系列文章目录> 本章介绍的内容是将本地Hyper-V的VHD,上传到Azure数据中心,并且保留OS中的内容. 注意:笔者没有执行Syspr ...

  3. [New Portal]Windows Azure Virtual Machine (11) 在本地使用Hyper-V制作虚拟机模板,并上传至Azure (1)

    <Windows Azure Platform 系列文章目录> 本章介绍的内容是将本地Hyper-V的VHD,上传到Azure数据中心,作为自定义的虚拟机模板. 注意:因为在制作VHD的最 ...

  4. [New Portal]Windows Azure Virtual Machine (13) 在本地使用Hyper-V制作虚拟机模板,并上传至Azure (3)

    <Windows Azure Platform 系列文章目录> 本章介绍的内容是将本地Hyper-V的VHD,上传到Azure数据中心,作为自定义的虚拟机模板. 注意:因为在制作VHD的最 ...

  5. [New Portal]Windows Azure Virtual Machine (15) 在本地制作数据文件VHD并上传至Azure(2)

    <Windows Azure Platform 系列文章目录> 在上一章内容里,我们已经将包含有OFFICE2013 ISO安装文件的VHD上传至Azure Blob Storage中了. ...

  6. [New Portal]Windows Azure Virtual Machine (16) 使用Azure PowerShell创建Azure Virtual Machine

    <Windows Azure Platform 系列文章目录> 注:本章内容和之前的[New Portal]Windows Azure Virtual Machine (12) 在本地制作 ...

  7. [SDK2.2]Windows Azure Storage (16) 使用WCF服务,将本地图片上传至Azure Storage (上) 客户端代码

    <Windows Azure Platform 系列文章目录> 前一章我们完成了服务器端的代码,并且已经发布到了Windows Azure云端. 本章我们将实现客户端的代码,客户端这里我们 ...

  8. [New Portal]Windows Azure Virtual Machine (23) 使用Storage Space,提高Virtual Machine磁盘的IOPS

    <Windows Azure Platform 系列文章目录> 注意:如果使用Azure Virtual Machine,虚拟机所在的存储账号建议使用Local Redundant.不建议 ...

  9. [New Portal]Windows Azure Virtual Machine (18) Azure Virtual Machine内部IP和外部IP

    <Windows Azure Platform 系列文章目录> 在开始本章内容之前,请读者熟悉以下2篇博文:       [New Portal]Windows Azure Virtual ...

随机推荐

  1. Git凭证存储(简单易懂,一学就会,认真看)

    今天给自己提了一个问题,当我们在github.com或者gitlab上面新建仓库,并克隆到本地,首次使用的时候,会被问及用户名密码,但是这两个信息存在哪里呢? 带着这个问题,我开始搜索,并在<P ...

  2. MySQL JDBC 出现多个 SHOW VARIABLES 语句。

    一次偶然的机会,show processlist 的时候,发现有个 Client 一直在执行  "mysql-connector-java-5.1.21 ( Revision: ${bzr. ...

  3. 从一个简单例子来理解js引用类型指针的工作方式

    <script> var a = {n:1}; var b = a; a.x = a = {n:2}; console.log(a.x);// --> undefined conso ...

  4. 【Bugly安卓开发干货分享】Android APP 快速 Pad 化实现

    项目背景 采用最新版本手机 APP(之后称为 MyApp)代码,实现其 Pad 化,为平板和大屏手机用户提供更好的体验.为实现 MyApp 的 Pad 化工作,需要我们首先来了解一下 MyApp 项目 ...

  5. 使用ACE_Get_Opt解析命令行

    当我们用C++开发一些C++控制台小工具时,会需要一些用户输入的参数来决定程序如何工作和执行,而用户输入参数的方式大部分都是采用命令行参数的方式. 比如上一篇文章 玩转Windows服务系列--命令行 ...

  6. AWS系列之三 使用EBS

    Amazon Elastic Block Store(EBS)可作为EC2实例的持久性数据块级存储.其具有高可用性和持久性的特点,可用性高达99.999%.给现有的EC2实例扩展新的存储块只需要几分钟 ...

  7. XCode v8.11 重量级分表分库(无视海量数据)

    XCode天生就有分表分库功能,设计于2005年!历时9年,这是分表分库功能第一次针对性正式更新. 在XCode里面,分表分库非常简单,在操作数据(查询/更新)前修改Meta.ConnName/Met ...

  8. cmd 下通过NTML代理访问Maven 库

    公司用web代理,NTLM验证的,这样在普通CMD下无法使用mvn命令访问网上的maven库,使用CNTLM工具解决. 下载CNTLM工具,安装,修改安装路径下的cntlm.ini,改成实际的ntlm ...

  9. Java基础之泛型

    泛型: (1)为什么会出现泛型? 因为集合存放的数据类型不固定,故往集合里面存放元素时,存在安全隐患, 如果在定义集合时,可以想定义数组一样指定数据类型,那么就可以解决该类安全问题. JDK1.5后出 ...

  10. Android开发学习之路-自定义ListView(继承BaseAdapter)

    大三学生一个,喜欢编程,喜欢谷歌,喜欢Android,所以选择的方向自然是Android应用开发,开博第一篇,希望以后会有更多的进步. 最近在做一个记账App的时候,需要一个Activity来显示每个 ...