posts - 167,  comments - 30,  trackbacks - 0


          轉(zhuǎn)載自:http://linuxtoy.org/archives/kvm-issue.html

          筆者在部署 KVM 虛擬機(jī)時(shí)曾遇到一個(gè)奇怪的問題,幾經(jīng)探索之后終于解決,現(xiàn)在寫出來跟大家分享一下。

          筆者在單位部署了一臺(tái)服務(wù)器,上面運(yùn)行著幾部 KVM 虛擬機(jī),分別執(zhí)行不同的任務(wù)。系統(tǒng)上線之后,需要再增加幾部虛擬機(jī)。因?yàn)楫?dāng)初部署服務(wù)器時(shí)做了虛擬機(jī)備份,所以就復(fù)制了一個(gè)備份的虛擬機(jī)。可是新虛擬機(jī)啟動(dòng)之后無法在本地網(wǎng)絡(luò)上找到新虛擬機(jī)的 IP 地址(本地網(wǎng)絡(luò)采用 DHCP 分配 IP 地址)!因?yàn)榉?wù)器是遠(yuǎn)程控制的,當(dāng)然新虛擬機(jī)也就無法使用了。

          為了查找原因,筆者把虛擬機(jī)復(fù)制到本地主機(jī)上,用正常方法開啟。啟動(dòng)過程及登錄都很正常,于是檢查網(wǎng)卡狀況:

          $ ifconfig 

          可是卻只有顯示 lo 信息! 怪了,eth0 呢?只有 lo 當(dāng)然是沒有辦法同網(wǎng)絡(luò)通訊的。于是查找一下啟動(dòng)信息:

          $ dmesg | grep eth 

          發(fā)現(xiàn)如下信息:

          udev: renamed network interface eth0 to eth1 

          原來 eth0 已經(jīng)沒有了,被命名為 eth1, 再看網(wǎng)卡配置

          $ cat /etc/network/interfaces auto eth0 iface eth0 inet dhcp 

          至此事情水落石出,原來 KVM 是在啟動(dòng)時(shí)傳遞 mac 參數(shù)的,如筆者是用下面命令啟動(dòng) KVM 虛擬機(jī):

          $ sudo kvm -m 256 -hda /data/kvm/mail.img -net nic,vlan=0,macaddr=52-54-00-12-30-05 -net tap,vlan=0,ifname=tap5,script=no -boot c -smp 2 -daemonize -nographic & 

          注意上面的 macaddr=52-54-00-12-30-05,這就是虛擬機(jī)啟動(dòng)后的網(wǎng)卡 mac,因?yàn)榫W(wǎng)絡(luò)內(nèi)不可以有相同的 mac,所以啟動(dòng)每個(gè)虛擬機(jī)的 mac 都要改。可是當(dāng)換了新的 mac 后,虛擬機(jī)里的系統(tǒng)就認(rèn)為換了新網(wǎng)卡,所以系統(tǒng)改變 eth0 為 eth1,而在網(wǎng)卡設(shè)置里面卻只設(shè)置了 eth0, 所以虛擬機(jī)啟動(dòng)之后并沒有啟動(dòng)新的 eth1 網(wǎng)卡,當(dāng)然就連不上網(wǎng)絡(luò)了。原因找到了之后問題的解決也就非常簡單:

          $ vi /etc/network/interfaces 

          增加以下內(nèi)容:

          auto eth1 iface eth1 inet dhcp 

          再重新啟動(dòng)網(wǎng)絡(luò):

          $ /etc/init.d/networking restart 

          至此問題應(yīng)該就完全解決了。不過有個(gè)問題還要注意,如果有多次用不同的 mac 啟動(dòng)虛擬機(jī),可能你的虛擬機(jī)里已經(jīng)有了 eth2, eth3 甚至是 10 都是有可能的,因?yàn)槟忝坑靡粋€(gè)新的 mac 去啟動(dòng)虛擬機(jī),系統(tǒng)就會(huì)增加一個(gè)網(wǎng)卡。可以修改下面這個(gè)文件:

          $ vi /etc/udev/rules.d/70-persistent-net.rules 

          刪除所有的的 ethX 行,重啟虛擬機(jī)即可。

          { Thanks 逸飛. }

          posted on 2013-02-20 11:41 David1228 閱讀(977) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          <2013年2月>
          272829303112
          3456789
          10111213141516
          17181920212223
          242526272812
          3456789

          常用鏈接

          留言簿(4)

          隨筆分類

          隨筆檔案

          文章檔案

          新聞分類

          新聞檔案

          相冊(cè)

          收藏夾

          Java

          Linux知識(shí)相關(guān)

          Spring相關(guān)

          云計(jì)算/Linux/虛擬化技術(shù)/

          友情博客

          多線程并發(fā)編程

          開源技術(shù)

          持久層技術(shù)相關(guān)

          搜索

          •  

          積分與排名

          • 積分 - 359260
          • 排名 - 154

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 南昌市| 威海市| 宁城县| 云安县| 西华县| 佳木斯市| 阿拉善盟| 安化县| 潞城市| 北安市| 聂荣县| 屯留县| 天祝| 张家口市| 克什克腾旗| 平南县| 冕宁县| 冷水江市| 夏邑县| 六枝特区| 麻阳| 墨脱县| 黔江区| 义马市| 龙门县| 吉水县| 溧阳市| 定结县| 当涂县| 昂仁县| 抚远县| 那坡县| 甘孜| 巨野县| 永清县| 桐乡市| 日土县| 银川市| 张家口市| 五大连池市| 怀化市|