现象:将网卡配置成了静态IP,重启服务器后,ip地址不是配置的那个
问题一:
修改网桥的配置文件,修改ip地址,然后重启服务器,发现ip地址是上一个,而不是我们修改的那个
原因:
在web页面添加主机的时候,vdsm对主机上网桥信息有一个persistence的操作;
保存在如下目录下
[root@engine ~]# ll /var/lib/vdsm/persistence/netconf/nets/
total 4
-rw-r--r--. 1 root root 206 Apr 25 18:07 hcimgmt
然后每次服务器重启,vdsm-network服务就会去根据这个文件来更新网卡配置文件(/etc/sysconfig/network-scripts/ifcfg-hcimgmt);
所以就导致了问题:为什么每次手动更新网卡配置文件,然后重启服务器后都不生效;
真的要修改网桥的IP,需要取修改文件“/var/lib/vdsm/persistence/netconf/nets/hcimgmt”
有一个vdsm-network服务,里面有一个脚本'vdsm-tool restore-nets',
就是这个脚本来控制读取persistence产生的文件,然后附加给网卡配置文件(/etc/sysconfig/network-scripts/ifcfg-hcimgmt);
vdsm里面有一个'vdsm-restore-net-config'脚本,里面有函数'def restore()';
具体是在这个函数里面执行的一系列的动作
问题二:
为什么在engine-setup前,已经将ip地址在配置文件里面修改为静态的了,但是经过engine-setup后,配置文件里面的ip变为dhcp的了
原因:
平台是根据'dhcpv4'属性来判断是否为动态ip或者静态ip;
'dhcpv4'是vdsm的API-'getCapabilities()'得到的,它的值为true(表示是dhcp) / false(表示是static ip);
vdsm层是如何得到这个值的?
它是根据文件夹'/var/lib/dhclient/dhclient*.lease' 和 '/var/lib/NetworkManager/dhclient*-*.lease'下是否存在网卡相关的配置文件
[root@node2 ~]# ll /var/lib/dhclient/
total 8
-rw-r--r-- 1 root root 370 Mar 10 15:31 dhclient-93e7dcdb-f29e-4402-8a58-ef6fea070154-eno2.lease
-rw-r--r-- 1 root root 1119 Apr 25 18:22 dhclient--hcimgmt.lease
如果存在相关网卡的配置文件,则'dhcpv4=true';
NOTE:就是说,不管你在网卡的配置文件里面是否配置为static,只要存在上面的配置文件engine就认为是网卡ip是dhcp的