Hyper-V下的Linux虛擬機網(wǎng)卡丟失問題原因及解決辦法
Hyper-V下的Linux虛擬機網(wǎng)卡丟失問題原因及解決辦法
虛擬化大勢所趨
公司推行了虛擬化,全部用的是Microsoft Windows 2008 R2 Enterprise with Hyper-V做集群跑Hyper-V虛擬機。這是個好東西,節(jié)約資源,集中管理,省電,部署超快,關(guān)鍵是可以實時遷移。
我們使用Dell MD3000i盤柜做集群的共享磁盤,它是基于iSCSI的千兆以太網(wǎng)網(wǎng)絡(luò)存儲,一坨Dell PowerEdge R610服務(wù)器做了一個Windows Cluster,交換設(shè)備是juniper EX22000-48t-4G全千兆交換機,并開啟了巨幀支持。
眾所周知,微軟的Hyper-V對于自家的windows虛擬機支持很好的,而且還有專門的驅(qū)動程序。即使這樣linux我們也跑了好多臺虛擬機,主要是因為windows的Hyper-V便宜,比ESX實惠。
下面來說一說Linux虛擬機與Hyper-V的一些尷尬事兒
1. 網(wǎng)卡要選老的,驅(qū)動剛剛發(fā)布
在Hyper-V上開Linux虛擬機最致命的一點就是網(wǎng)卡驅(qū)動,我們創(chuàng)建一個新的linux虛擬機的時候,轉(zhuǎn)好了linux系統(tǒng)之后發(fā)現(xiàn)網(wǎng)卡不能用,因為不管是RHEL還是Ubuntu還是大便的Linux系統(tǒng)都不支持Hyper-V的網(wǎng)卡驅(qū)動。這需要我們在Hyper-V Manager把掛載給Linux虛擬機的network Adapter網(wǎng)卡刪除,然后添加一塊Legacy Network Adapter,這種網(wǎng)卡可以模擬成經(jīng)典的老式網(wǎng)卡,Linux一般都集成這種網(wǎng)卡的驅(qū)動,裝好了網(wǎng)絡(luò)就可以用了。
好消息是微軟8月剛發(fā)布了可以支持RHEL和Ubuntu的Hyper-V下的虛擬機驅(qū)動,需要的朋友可以網(wǎng)上google一下,只有幾百K,很小的。
2. 神吶~我的網(wǎng)卡呢?
做了集群,那么遷移就是不可不免得,有時候我們某一臺服務(wù)器需要重啟維護一下,需要把跑在它身上的虛擬機實時遷移到其他服務(wù)器上面去,遷移很順利,但是發(fā)現(xiàn)Linux系統(tǒng)遷移后,網(wǎng)卡找不到了,ifconfig只能看到一個lo的本地回環(huán)網(wǎng)卡,eth0跑哪兒去了?
趕緊查看網(wǎng)絡(luò)配置,sudo vi /etc/network/interfaces,發(fā)現(xiàn)配置都在,那是為啥eth0沒了呢?
使用ifconfig -a 來查看所有網(wǎng)卡,發(fā)現(xiàn)eth0沒了,卻多出來了eth1。靈機一動,改了一下interfaces文件
sudo vi /etc/network/interfaces
把eth0替換成eth1,然后重啟網(wǎng)絡(luò)服務(wù)
sudo /etc/init.d/networking restart
哈哈,網(wǎng)卡好啦~~
3. 又悲劇了
再后來,有一臺ubuntu 9.10 64位版本遷移后,這招不好使了,因為eth1也沒找到,后來手動刪除了ubuntu的網(wǎng)絡(luò)配置文件后重啟,就好了。
sudo rm /etc/udev/rules.d/70-persistent-net.rules
之后總結(jié)了一下,linux之所以網(wǎng)卡會丟失是因為Hyper-V新建一個虛擬機默認(rèn)分配的網(wǎng)卡MAC地址是動態(tài)的,每次宿主的遷移會導(dǎo)致重新分配新的MAC給ubuntu,然后丫就找不到eth0了,有時候會自動生成一個eth1。如果你能記得以前的MAC地址,在Hyper-V Manager上手動把MAC指定成遷移之前的老MAC也能解決問題,但問題是誰他媽會記MAC地址啊~~~?
所以啊~~清空ubuntu的網(wǎng)絡(luò)配置緩存文件才是王道,或者在Hyper-V Manager上把分配給Linux的MAC地址設(shè)為靜態(tài)的。
Hyper-V下安裝Linux虛擬機注意事項
1. 創(chuàng)建虛擬機時先別急著裝系統(tǒng),把網(wǎng)卡替換成Legacy Network Adapter
2. 網(wǎng)卡MAC地址別用動態(tài)的,指定成靜態(tài)的
3. 微軟剛出了新的Hyper-V下的linux驅(qū)動,趕緊安裝
4. 網(wǎng)卡丟失后ifconfig -a看看是不是eth0沒了,多出來了eth1,然后改interfaces配置
5. 終極大法就是刪除linux網(wǎng)絡(luò)配置緩存sudo rm /etc/udev/rules.d/70-persistent-net.rules
關(guān)鍵詞:Hyper-V,Linux,虛擬機網(wǎng)卡
閱讀本文后您有什么感想? 已有 人給出評價!
- 0
- 0
- 0
- 0
- 0
- 0