CentOS 6 на Hyper-V - сетевой адаптер не работает (без функции контрольной суммы)
Я установил CentOS 6.0 на Hyper-V Server 2008 R2 SP1. В ВМ включен только синтетический сетевой адаптер. Установка прошла успешно (без какой-либо сети), затем я установил Linux Integration Services 3.1 из ISO, все тоже хорошо. Теперь все модули Hyper-V установлены (включая hv_netvsc), но сетевой адаптер не обнаружен.
Запуск dmesg | grep eth возвращает сообщение "Удаление NETIF_F_SG, поскольку функция контрольной суммы отсутствует". Повторный поиск в Интернете показывает, что контрольная сумма представляется важной функцией, без которой CentOS не может использовать сетевой адаптер и которая, по-видимому, не реализована модулем Microsoft LIS3.1.
Что я могу сделать, чтобы использовать синтетический сетевой адаптер в CentOS? Или я что-то сделал не так и должно работать как есть? Зависит ли возможности синтетического адаптера от аппаратной карты Ethernet, используемой на хост-компьютере? Версия ядра CentOS, похоже, 2.6.32-71.el6.x86_64, гипервизор R2 SP1 со всеми установленными обновлениями.
Второй вопрос в случае, если ответом на первый вопрос является "нет, это не сработает": существует ли значительное снижение производительности при использовании эмулированного (устаревшего) сетевого драйвера? Следует ли этого избегать в производственной среде?
3 ответа
Если у кого-то еще возникла такая же проблема, вот решение: адаптер должен быть настроен вручную путем добавления файлов /etc/sysconfig/network-scripts/ifcfg-eth0 и / etc / sysconfig / network / profile /default/ifcfg-eth0 после успешной установки LIS3.
Шаги, которые работали для меня:
- создать виртуальную машину как с сетевым адаптером, так и с устаревшим сетевым адаптером
- установить CentOS 6 и Linux Integration Services 3.1
- Создайте файлы /etc/sysconfig/network-scripts/ifcfg-eth1 и / etc / sysconfig / network / profile /default/ifcfg-eth1
- перезагрузите компьютер и проверьте, работают ли оба сетевых интерфейса
- удалите ifcft-eth0 и переименуйте ifcfg-eth1 в ifcfg-eth0 в обоих местах
- выключите, удалите устаревший адаптер в свойствах машины hyper-v и включите
Источники, где я нашел наиболее полезную информацию:
(Решена)
Пожалуйста, назначьте статический MAC-адрес в настройках Hyper-V. MAC должен быть таким же, как в вашей виртуальной машине Linux. Вы можете найти в MAC-адрес в /etc/sysconfig/network-scripts/ifcfg-eth0
,
Гуглил для "почему порт ethernet на eth1, а не eth0 для Hyper-v 2012"?
Удалите существующие правила UDEV для сетевых карт. Если вы добавляете / меняете сетевой адаптер, правила udev обнаруживают новое устройство и присваивают ему другое имя интерфейса. Инструкции см. В разделе Перенастройка интерфейса Ethernet в CentOS Linux на eth0 или Force CentOS 6 для повторного обнаружения сетевых устройств.
Как бы это счастье? Когда виртуальная машина клонирована. Например, вы берете машину с NIC, находящимся по адресу eth0, клонируете образ и создаете новую виртуальную машину для образа с другим MAC-адресом. NIC будет eth1, а не eth0.
Другие предположения? Я проверил это с помощью Hyper-V 2012, CentOS6.3 x64 и Microsoft Linux Integration Services 3.4