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