VMware/vSphere克隆主機網卡啓動失敗

主標題: VMware/vSphere製作模板操作系統

副標題: VMware/vSphere克隆主機網卡啓動失敗


VMware/vSphere中新安裝好的虛擬機把以下兩個文件添加註釋後關機,即可轉換爲虛擬機模板

[root]# cat /etc/udev/rules.d/70-persistent-net.rules
# SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:50:56:8c:19:a6", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# 註釋此行 SUBSYSTEM
# 多塊網卡時會有多個SUBSYSTEM, 全部註釋即可

[root]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# HWADDR=00:50:56:8C:19:A6
# 註釋此行 HWADDR
# 多塊網卡時會有ifcfg-eth1,ifcfg-eth2等, 把全部文件中的HWADDR項註釋

註釋後關機,把服務器轉換爲模板或者用來克隆主機, 系統啓動後,所有網卡會正常啓動並獲取IP地址.

讀者不用擔心註釋這兩項內容會對操作系統有不良影響, 大膽去做, 下文會解釋.
vSphere 系統轉換爲模板步驟: 右擊主機(關機狀態)->模板->克隆爲模板/轉換爲模板
VMware 克隆主機步驟: 右擊主機(關機狀態)->管理->克隆
 

克隆主機網卡啓動失敗的原理:
CentOS系統啓動的時候,會探測網卡MAC地址並寫入/etc/udev/rules.d/70-persistent-net.rules,例如前文的就是 "00:50:56:8c:19:a6", 它對應的網卡接口是eth0. 網卡文件/etc/sysconfig/network-scripts/ifcfg-eth0 , DEVICE=eth0 對應的同樣是 00:50:56:8C:19:A6 .所以 ifcfg-eth0 和 70-persistent-net.rules 兩個文件中的eth0和MAC地址映射關係是一樣的.
vmware或vSphere克隆操作系統,會給網卡分配一個新MAC地址,比如新MAC是 01:50:56:8C:19:A6. 那麼原來的"00:50:56:8c:19:a6"已經不復存在了. 操作系統啓動以後探測到這個MAC地址後繼續寫入70-persistent-net.rules文件中,並按照eth0,eth1,eth2的順序依次來命名. 原來已經存在eth0. 所以新MAC地址 01:50:56:8C:19:A6 則會對應eth1. 但是 ifcfg-eth0 對應的是HWADDR地址 00:50:56:8C:19:A6 (舊). 這是導致網卡啓動失敗原因, 因爲MAC地址和eth0的對應關係就錯亂了. 因此, 70-persistent-net.rules的MAC和eth0的對應關係和 ifcfg-eth0文件中的HWADDR 和eth0的對應文件保持一致, 那麼網絡啓動就沒有問題. 需要注意的一點就是MAC地址要以70-persistent-net.rules文件的爲基準, ifcfg-eth0的 HWADDR 只是方便人查看的.
所以, 註釋 70-persistent-net.rules 的內容是爲了系統在啓動的時候探測到新MAC地址並對應eth*時, 保持從eth0起始命名的順序. 而註釋 ifcfg-eth0 的 HWADDR 是爲了使ifcfg-eth0 可以映射任意的新MAC而並非固定一個. 所以 系統啓動後的, 新MAC -> eth0 -> ifcfg-eth0 .


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章