《Windows Azure Platform 系列文章目录》
在开始本章内容之前,请读者熟悉以下2篇博文:
[New Portal]Windows Azure Virtual Machine (8) Virtual Machine高可用(上)
[New Portal]Windows Azure Virtual Machine (9) Virtual Machine高可用与自动负载均衡(下)
按照上文的内容,我们分别创建2台不同的Virtual Machine:
第一台机器名为LeiZhangVMOne
第二台机器名为LeiZhangVMTwo
他们共享同一个CloudService Name: http://leizhangvm.cloudapp.net
当我们通过Azure Management Portal查看2台VM属性的时候,会发现以下内容:
通过上图红色区域我们发现,
-第一台VM和第二台VM的Internal IP ADDRESS不同
-Public Virtual IP (VIP) Address却是一样的
分析:Internal IP Address其实就是VM在Azure数据中心的内部网络地址,它是从DHCP获得的,所以每次关闭这台Azure VM一段时间再开机后,Internal IP就改变了。(如果要固定Internal IP Address,则需要使用Azure Virtual Network,我会在后面给大家介绍)。
为了验证笔者的看法,我们可以通过远程桌面连接,查看其中一台VM的网络属性。
LeiZhangVMOne这台机器的IPv4地址是100.80.76.15。与第一张图的Internal IP Address一致。
另外,如果我们在第一台虚拟机VMOne里设置共享文件夹ShareFolder并设置权限给Everyone。我们可以通过第二台虚拟机VMTwo的远程桌面连接,访问第一台虚拟机的共享文件夹。
请注意:因为VMOne和VMTwo共享同一个Cloud Service,并且在同一个Avaliability Set,所以这两台机器可以互相访问。同一个用户创建的其他Azure VM,如果没有设置同一个Avaliability Set,将无法与之前的VMOne和VMTwo进行网络访问。
第二个问题:什么是Public Virtual IP (VIP) Address呢?这个地址其实是Azure VM的公网IP地址。
但实这个IP地址并不属于某一个Azure VM,而是在Azure Load Balance里。VIP的主要功能是负载均衡(Load Balance),并且VM在被删除后,VIP将被系统回收。所以这个IP是Virtual的。
当在Internet上的其他客户端(比如笔者的笔记本电脑)。通过VIP访问Azure资源的时候,Load Balance会将该请求通过Endpoint,自动路由到Internal IP Address,可能会将请求发送给VMOne或者VMTwo。当VMOne或者VMTwo中有一台机器发生了异常,则Load Balance会将请求发送至正常的VM,以保证高可用。
为了验证笔者的说法,我们使用本地电脑打开CMD,然后运行nslookup命令。以查看http://leizhangvm.cloudapp.net这个DNS对应的IP地址。如下图:
可以看到http://leizhangvm.cloudapp.net这个DNS地址对应的IP地址(137.116.164.27)就是我们在Azure Portal上的Public Virtual IP (VIP) Address。
看到这里,有网友肯定会问:Azure VM为什么要使用Internal IP和Public Virtual IP呢?
当某些场景需要多台VM之间互相通信的,笔者建议使用Internal IP。因为Internal IP安全可靠,用户不需要去考虑安全认证、SSL等问题。而且在采用了Virtual Network(我会在随后几章进行介绍)之后,可以打通公司内网和Azure网络的连接,这样公司内网的机器就可以通过Azure Internal IP访问公有云上的VM了。用户可以充分利用云计算带来的弹性计算,以降低IT投入成本。
Public Virtual IP(VIP)的好处:笔者认为,Public Virtual IP最大的好处是可以做负载均衡(Load Balance)。
关于IP回收:
当用户同时删除了VMOne和VMTwo的时候,Internal IP Address和Public Virtual IP (VIP) Address也将会被Windows Azure收回。如果其他用户创建虚拟机的时候,可能会使用到被回收的Internal IP和VIP。
那如果用户使用SHUT DOWN关闭Azure VM呢?我会在下一章进行介绍。