《Windows Azure Platform 系列文章目录

  Update 2016-03-30

  一个VM的多张网卡可以在一个VNet的同一个Subnet子网下,笔者亲自测试过了。

  如果我们需要在同一个DNS下,用多个Azure VM实现负载均衡。

  则创建的第一台Azure VM必须是多网卡才行。

  不支持第一台虚拟机是单网卡,以后创建的虚拟机是多网卡

  Windows Azure VM在默认情况下,是一张网卡,2个IP地址。在很多情况下,我们需要Azure支持多张网卡,在这里笔者简单介绍一下。

  假设我们创建了一个虚拟网络,3个Subnet子网,分为命名为Frondend, MidTier和Backend,具有不同的CIDR地址。如下图:

  

  那我们可以创建一个具有三个网卡的Azure VM,每张网卡对应不同的subnet。如下图:

  

  这里特别强调一下,创建多网卡的Azure VM是有限制的:

  (1)必须先创建Azure虚拟网络(Virtual Network),才可以使用多网卡功能

  (2)只能在标准类型(Standard)的Azure VM创建多网卡VM,基本类型(Basic)的Azure VM是不支持多网卡的。

  (3)必须通过PowerShell,在创建Azure VM的时候指定多网卡。已经创建完毕的Azure VM不支持添加多网卡

  (4)Azure VM默认的网卡是支持面向Internet的。其他创建的网卡不支持负载均衡集。

  (5)Azure VM可支持的网卡数量与VM Size虚拟机配置大小有关

虚拟机配置 支持网卡数量
A3和A6 2
A4和A7 4
A9 2
D3 2
D4 4
D13 4

  

  接下来我们Demo一下。

  1.使用管理员身份,运行Azure PowerShell

  2.创建虚拟网络VNETDEMO,设置3个Subnet,命名为Front-Subnet, Middle-Subnet, End-Subnet。对应不同的CIDR地址。

  3.设置订阅和存储账号

Set-AzureSubscription -SubscriptionName '[SubscriptioName]' -CurrentStorageAccountName '[StorageAccountName]'

  4.设置当前订阅

Select-AzureSubscription -SubscriptionName '[SubscriptionName]' -Current

  5.获得虚拟机镜像

$image=get-azurevmimage | where {$_.imagename -like "*Windows-Server-2012-R2*"} 

  6.设置用户名、密码

$adminusername="azureuser"
$adminpassword="[YourPassword]"

  7.设置子网和网卡地址

  注意:网卡的IP地址必须和虚拟网络的子网地址相对应。

$Subnet1Name="Front-Subnet"
$Subnet2Name="Middle-Subnet"
$Subnet3Name="End-Subnet" $NIC1IP="10.11.0.20"
$NIC2IP="10.12.0.20"
$NIC3IP="10.13.0.20"

  8.创建虚拟机

$vm = New-AzureVMConfig -Name "MultiNicVM001" -InstanceSize "ExtraLarge" -Image $image[$image.count-].ImageName

Add-AzureProvisioningConfig –VM $vm -Windows -AdminUserName $adminusername -Password $adminpassword

#设置默认的网卡地址
Set-AzureSubnet -SubnetNames $Subnet1Name -VM $vm
Set-AzureStaticVNetIP -IPAddress $NIC1IP -VM $vm #增加第一张网卡
Add-AzureNetworkInterfaceConfig -Name "NIC2" -SubnetName $Subnet2Name -StaticVNetIPAddress $NIC2IP -VM $vm #增加第二张网卡
Add-AzureNetworkInterfaceConfig -Name "NIC3" -SubnetName $Subnet3Name -StaticVNetIPAddress $NIC3IP -VM $vm #创建虚拟机
New-AzureVM -ServiceName "multivmpool" -VNetName "VNETDEMO" -VM $vm -Location 'China North'

  

  注意:本次笔者用的A4 VM,最多支持4张网卡。Azure VM可支持的网卡数量与VM Size虚拟机配置大小有关

参考资料:http://azure.microsoft.com/blog/2014/10/30/multiple-vm-nics-and-network-virtual-appliances-in-azure/

Windows Azure Virtual Machine (24) Azure VM支持多网卡功能的更多相关文章

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

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

  2. Windows Azure Virtual Machine (35) Azure VM通过Linked DB,执行SQL Job

    <Windows Azure Platform 系列文章目录> 今天遇到一个Case,客户在使用Azure Automation,执行Azure SQL Database 存储过程的时候, ...

  3. Windows Azure Virtual Machine (34) Azure VM挂载WebDAV

    <Windows Azure Platform 系列文章目录> 之前使用Azure VM,挂载box网盘.发现不能正常挂载,这里简单记录一下. 1.WebDAV的网络映射,需要WebCli ...

  4. Windows Azure Virtual Machine (33) Azure虚拟机删除重建

    <Windows Azure Platform 系列文章目录> 注意:本文介绍的重建Azure虚拟机,必须在同一个订阅内删除重建,必须在同一个订阅内删除重建,必须在同一个订阅内删除重建. ...

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

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

  6. Windows Azure Virtual Machine (26) 使用高级存储(SSD)和DS系列VM

    <Windows Azure Platform 系列文章目录> Update: 2016-11-3,如果大家在使用Linux VM,使用FIO进行IOPS测试的时候,请使用以下命令: su ...

  7. Windows Azure Virtual Machine (29) 修改Azure VM 数据磁盘容量

    <Windows Azure Platform 系列文章目录> 当我们使用Windows Azure管理界面,创建Azure虚拟机的时候,默认挂载的磁盘是固定大小的 1.比如我创建1个Wi ...

  8. Windows Azure Virtual Machine (30) 修改Azure VM 的Subnet

    <Windows Azure Platform 系列文章目录> 我在使用Azure Virtual Machine虚拟机的时候,常常会结合Virtual Network虚拟网络一起使用. ...

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

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

随机推荐

  1. libj 0.8.2 发布,Java/JavaScript API 的 C++ 实现

    libj 0.8.2 增加了一些新的字符串相关的方法. libj 是一个跨平台的运行库,相当于提供了类似 Java/JavaScript API.libj 的内存管理是自动的,基于 shared_pt ...

  2. 【C语言学习】《C Primer Plus》第2章 C语言的概述

    学习总结 1.#include是C预处理命令之一,#include指向的是头文件,如#include <stdio.h>,这个stdio.h就是程序需要引用的C标准库之一.里面包含了pri ...

  3. 海量用户-高并发SAAS产品测试上线流程

    海量用户高并发SAAS产品测试上线流程 SAAS产品测试上线流程-以Web插件产品为例子 1   概述 在互联网产品中,IT公司之间更加注重产品功能之间的协作,SAAS形态的产品扮演着越来越重要的作用 ...

  4. Nim教程【十二】

    排除指定符号 一般情况下使用import语句,会把一个模块内的符号都导入进来 如果你像排除特定的符号(不想让某些符号被导入进来) 可以使用except子句 就像下面这样 import mymodule ...

  5. DDD领域驱动设计之聚合、实体、值对象

    关于具体需求,请看前面的博文:DDD领域驱动设计实践篇之如何提取模型,下面是具体的实体.聚合.值对象的代码,不想多说什么是实体.聚合等概念,相信理论的东西大家已经知晓了.本人对DDD表示好奇,没有在真 ...

  6. Flyway, 数据库Schema管理利器

    整天跟数据库打交道的程序员都知道,当数据库的Schema发生改变时是多么痛苦的事情.尤其是一个在不断开发完善的项目,随着需求变化,数据库的schema也会跟着变化,而追踪记录这些变化一向都是费时费力. ...

  7. 实战使用Axure设计App,使用WebStorm开发(3) – 构建页面架构

    系列文章 实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求  实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目   实战使 ...

  8. Atitit  如何让精灵控件运动

    Atitit  如何让精灵控件运动 ##让Sushi精灵动起来 上面的代码,我们创建了静态的sushiSprite,现在我们让它动起来.使它从屏幕顶部下落到屏幕底部.在addSushi方法中添加如下代 ...

  9. YaHoo 前端优化军规

    1.Minimize HTTP Requests 减少HTTP请求 图片.css.script.flash等等这些都会增加http请求数,减少这些元素的数量就能减少响应时间.把多个JS.CSS在可能的 ...

  10. git回滚到任意版本

    git回滚到任意版本 先显示提交的log $ git log -3 commit 4dc08bb8996a6ee02f Author: Mark <xxx@xx.com> Date: We ...