我司财务有一套NC65,运行在Hyper-V高可用性故障转移群集上。物理机和虚拟机的系统都是Server 2012 R2。
该系统过去一年遇到过包括电网故障导致UPS耗尽,服务器冷重启等严重的停机故障,系统启动后都可以正常运行。
近日服务器维护性重启后,公司同事抱怨登录NC65进入模块时,提示“该产品的用户数已达到产品授权数”。
致电用友咨询,问我们最近是否更换了服务器的网卡?
突然想到Hyper-V虚拟机的网卡MAC地址是动态分配的,很可能就是这个原因造成的。
Hyper-V虚拟机网卡MAC地址由如下部分构成:
前三个八位组,固定是00-15-5D(由IEEE分配固定给Hyper-V虚拟机使用的)。
第四和第五个八位组,是物理机的IPv4地址的最后两个八位组。如物理机IP地址为10.0.0.20,则对应的就是00-14(0和20的十六进制)。
最后一个八位组是动态分配的(默认情况下),取值范围是0x00到0xFF。
需要注意的是,尽管部署了高可用性故障转移群集,但虚拟机MAC地址的第4、5个八位组并不会从群集虚拟IP地址中获得,而是从虚拟机启动时所在物理机的IP地址中获得。(即:虚拟机是在物理机A上启动的,那么虚拟机的动态MAC地址就利用物理机A的IP地址生成。)
在用友NC安装目录/bin下,有一个sysconfig.bat文件,运行它可以呼出NC的配置程序。
在配置程序左侧导航栏找到“其它设置——License”,然后点击“读取授权”,即可看到生成注册信息时原始的MAC地址。
将虚拟机的MAC地址设置为固定,重启服务器即可解决。
注:跟数据库服务器没关系,数据库服务器不需要重启。
参考:https://blog.csdn.net/u010890857/article/details/65444694