Hyper-V下的Linux虚拟机网卡丢失

  HyperV下的Linux虚拟机网卡丢失问题原因及解决办法

  虚拟化大势所趋

  公司推行了虚拟化全部用的是Microsoft Windows R Enterprise with HyperV做集群跑HyperV虚拟机这是个好东西节约资源集中管理省电部署超快关键是可以实时迁移

  我们使用Dell MDi盘柜做集群的共享磁盘它是基于iSCSI的千兆以太网网络存储一坨Dell PowerEdge R服务器做了一个Windows Cluster交换设备是juniper EXtG全千兆交换机并开启了巨帧支持

  众所周知微软的HyperV对于自家的windows虚拟机支持很好的而且还有专门的驱动程序即使这样linux我们也跑了好多台虚拟机主要是因为windows的HyperV便宜比ESX实惠

  下面来说一说Linux虚拟机与HyperV的一些尴尬事儿

   网卡要选老的驱动刚刚发布

  在HyperV上开Linux虚拟机最致命的一点就是网卡驱动我们创建一个新的linux虚拟机的时候转好了linux系统之后发现网卡不能用因为不管是RHEL还是Ubuntu还是大便的Linux系统都不支持HyperV的网卡驱动这需要我们在HyperV Manager把挂载给Linux虚拟机的network Adapter网卡删除然后添加一块Legacy Network Adapter这种网卡可以模拟成经典的老式网卡Linux一般都集成这种网卡的驱动装好了网络就可以用了

  好消息是微软月刚发布了可以支持RHEL和Ubuntu的HyperV下的虚拟机驱动需要的朋友可以网上google一下只有几百K很小的

   神呐~我的网卡呢?

  做了集群那么迁移就是不可不免得有时候我们某一台服务器需要重启维护一下需要把跑在它身上的虚拟机实时迁移到其他服务器上面去迁移很顺利但是发现Linux系统迁移后网卡找不到了ifconfig只能看到一个lo的本地回环网卡eth跑哪儿去了?

  赶紧查看网络配置sudo vi /etc/network/interfaces发现配置都在那是为啥eth没了呢?

  使用ifconfig a 来查看所有网卡发现eth没了却多出来了eth灵机一动改了一下interfaces文件

  sudo vi /etc/network/interfaces

  把eth替换成eth然后重启网络服务

  sudo /etc/initd/networking restart

  哈哈网卡好啦~~

   又悲剧了

  再后来有一台ubuntu 位版本迁移后这招不好使了因为eth也没找到后来手动删除了ubuntu的网络配置文件后重启就好了

  sudo rm /etc/udev/rulesd/persistentnetrules

  之后总结了一下linux之所以网卡会丢失是因为HyperV新建一个虚拟机默认分配的网卡MAC地址是动态的每次宿主的迁移会导致重新分配新的MAC给ubuntu然后丫就找不到eth了有时候会自动生成一个eth如果你能记得以前的MAC地址在HyperV Manager上手动把MAC指定成迁移之前的老MAC也能解决问题但问题是谁他妈会记MAC地址啊~~~?

  所以啊~~清空ubuntu的网络配置缓存文件才是王道或者在HyperV Manager上把分配给Linux的MAC地址设为静态的

  HyperV下安装Linux虚拟机注意事项

   创建虚拟机时先别急着装系统把网卡替换成Legacy Network Adapter

   网卡MAC地址别用动态的指定成静态的

   微软刚出了新的HyperV下的linux驱动赶紧安装

   网卡丢失后ifconfig a看看是不是eth没了多出来了eth然后改interfaces配置

   终极大法就是删除linux网络配置缓存sudo rm /etc/udev/rulesd/persistentnetrules

而更像是听见了天地间冥冥中的呼唤,

Hyper-V下的Linux虚拟机网卡丢失

相关文章:

你感兴趣的文章:

标签云: