Azure上Linux虚拟机Mac地址的持久化

有些用户在使用Azure Linux 虚拟机安装软件时,有些软件的license会和当前系统的mac地址绑定,那么在Azure VM重启,reszie(改变尺寸大小),停止然后再启动的时候,虚拟机的Mac地址会不会发生变化呢?Azure VM上的Mac地址是如何持久化的呢?

我们分VM在vNet和不在vNet中的情况来做一个测试。

不在vNet中的虚拟机

我们快速创建一台测试的Linux Ubuntu虚拟机,不设置vNet, 意思是该虚拟机不在设定的vNet中,一般是作为测试使用

登录到系统里面,记录系统当前的mac地址:

00:17:fa:00:4f:9b

Azure上Linux虚拟机Mac地址的持久化

然后我们重启虚拟机,reboot系统,然后得到mac地址,可以看到mac地址和原来一样,没有发生变化:

00:17:fa:00:4f:9b

Azure上Linux虚拟机Mac地址的持久化

当前虚拟机大小是A3,那么我们来坐下resize,将其升成A4大小的机器:

Azure上Linux虚拟机Mac地址的持久化

Azure上Linux虚拟机Mac地址的持久化

升级完成之后,系统会重启,然后我们登录进系统检查mac地址,发现内部的IP地址已经发生了变化,但mac地址保持不变:

00:17:fa:00:4f:9b

Azure上Linux虚拟机Mac地址的持久化

同样的测试流程将机器从A4降到A2,

Mac地址:00:17:fa:00:4f:9b

Azure上Linux虚拟机Mac地址的持久化

Azure上Linux虚拟机Mac地址的持久化

最后测试一下,在Azure的管理界面,停止虚拟机,取消分配的情况下,mac地址的变化。我们先停止虚拟机,选择"关闭":

Azure上Linux虚拟机Mac地址的持久化

通过这种方式将虚拟机停止后,你会看到界面显示"已停止(取消分配)",在这种情况下,虚拟机资源被完全释放掉,不计算计算费用,只计算存储费用

启动虚拟机,然后检查mac地址:

Azure上Linux虚拟机Mac地址的持久化

虚拟机Mac地址变为:00:17:fa:00:3a:29 和之前的Mac地址00:17:fa:00:4f:9b不同,也就是说只有在虚拟机停止(取消分配)的情况下,Mac地址才会发生变化。

vNet中的虚拟机

测试方法和上面不在vnet中虚拟机类似,差别在于在本测试案例中,虚拟机在vnet中,如下图所示:

Azure上Linux虚拟机Mac地址的持久化

为节约篇幅,此处不再一一列举测试过程,和不在vnet中虚拟机的测试过程一样,分别测试:

重启虚拟机

升级到大尺寸虚拟机

降低到小尺寸虚拟机

停止(取消分配),然后重新启动

总结

目前Azure的虚拟机在一下情况下,无论VM是否在vNet中,MAC地址都不会发生变化:

重启虚拟机

升级到大尺寸虚拟机(resize)

降级到小尺寸虚拟机(resize)

在下面情况下,无论VM是否在vNet中,MAC地址都会发生变化:通过Azure的管理界面停止虚拟机,显示取消分配,然后再启动mac地址会发生变化.

请注意,如果你是通过虚拟机内部执行命令shutdown/poweroff,虚拟机并不会关闭或者断电,而是会继续计费,当然这个时候MAC地址也不会被释放,当你重启机器的时候,依然保持不变。

Azure上Linux虚拟机Mac地址的持久化

所以对于那些依赖MAC地址做license绑定的用户,如果你的虚拟机不需要关机,停止分配,重启,resize等都不会有问题,在未来Azure也会发布新的功能,保持Azure虚拟机无论在哪种场景下,MAC地址都不会改变。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/3a2645d27c48c857d124af39541831d7.html