Pull to refresh

XCP для тех кто хочет, но боится 2

Reading time5 min
Views10K
Первый пост был оценен несколько критично но прозвучала здравая мысль выложить сразу весь цикл статей.
К сожалению, все сразу оформить не получиться просто физически. А делать тяп-ляп не хочется.
Эта статья посвящена добавлению драйверов в XCP, на примере установки сетевой карты.



Для решения поставленных задач 2х сетевых карточек мне не хватало, в нашем регионе достать что-то нужное довольно сложно, поэтому приходится довольствоваться тем что есть. Прогулявшись по магазинам были закуплены сетевушки D-Link DGE-560T (PCI Express v. 1.1, гигабитная, низкопрофильная, со сменными крепежными пластинками).
Вставив сетевую карту в корпус, скрестив пальцы, запустил машину, в биосе карточка видна — уже хорошо. Дожидаемся старта XCP и видим первое разочарование, во вкладке NIC мы видим только 2 наших встроенных карточки


Значит дровишек у нас нет, будем искать. Проверим видит ли наша ось саму железку (XCP базируется на Centos 5.7 (Linux kernel v2.6.32.43)) поможет нам в этом команда:
lspci
> 07:00.0 Ethernet controller: D-Link System Inc DGE-528T Gigabit Ethernet Adapter (rev 06)

Уже хорошо, ось нашу железку видит (хотя и не совсем правильно).

Здесь маленькой отступление, в комментариях было указано что установка гипервизора, не такой уж и тернистый путь, пусть для некоторых это так — но когда ты делаешь по чьей-то инструкции, то не задумываешься что стояло за этой инструкцией, и автор редко рассказывает о тех действиях которые приводили к ошибкам или давали не верный результат. Например при установке сетевой карты я как и всякий разумный человек пошел на сайт производителя, нашел устройство, скачал последние драйвера и 2 дня мучился пытаясь их подружить с системой, можно было бы списать это на мой небольшой опыт работы с unix-like системами, но и привлечение знакомых спецов со стороны не помогло, гугл говорил о том что для этих драйверов это распространенная проблема и решения для нее никто не описывал. На одном забугорном ресурсе была высказана мысль попробовать более старые драйвера и о чудо они действительно подошли и заработали. Как видите, даже такое краткое описание занимает целый абзац (имхо не очень нужного) текста, посему примите на веру что проблемы были и я выкладываю оптимальный, на мой не искушенный взгляд, путь решения.

Итак надо будет установить драйвера, но все не так просто как кажется, поэтому предлагаю Вашему вниманию последовательность действий. Для установки дров надо будет установить библиотеки для сборки gcc gcc44 glibc-devel dkms. Но сначала надо будет отредактировать несколько файлов конфигурации репозитариев, что бы наш Yum мог качать и ставить то что надо.
Открываем файлики и меняем все ключи в enable=0 на 1:
nano /etc/yum.repos.d/CentOS-Base.repo
nano /etc/yum.repos.d/CentOS-Vault.repo


Для удобства рекомендую поставить несколько полезных утилит MC, HTOP, MTR.
yum install mc

Также для сборки понадобиться утилита make.
yum install make

Дальше придется подключить дополнительный репозиторий, т.к. кое что в базовом репозитории найти нельзя ( в том числе htop и dkms) я использую репозиторий RPM Forge.
Вот тут списки репозиториев для Centos.
А вот тут инструкция по подключению конкретно нужного нам репозитория.
Для начала определимся с версией Centos и типом системы:
uname -a
Linux XenSecond 2.6.32.43-0.4.1.xs1.6.10.734.170748xen #1 SMP Thu Nov 22 18:23:25 EST 2012 i686 i686 i386 GNU/Linux

rpm -q centos-release
centos-release-5-7.el5.centos

Отлично, мы определились с чем имеем дело и теперь точно знаем какую версию репозитория надо подключать, что собственно и делаем. Качаем по ссылке выше rpm пакет и устанавливаем его командой (не забудьте перейти в папку со скачанным пакетом — я заливал его по SSH в папочку /home).
yum --nogpgcheck localinstall rpmforge-release-0.5.3-1.el5.rf.i386.rpm
Устанавливаем ключ репозитория.
rpm --import apt.sw.be/RPM-GPG-KEY.dag.txt

Теперь доустанавливаем все, что понадобиться нам при установке драйверов:
yum install gcc gcc44 glibc-devel dkms htop

Осталась самая малость установить пакеты ядра под XCP — вот тут пришлось повозиться для поиска именного его 2.6.32.43-0.4.1.xs1.6.10.734.170748xe версии — потому что если просто ввести
yum install kernel-xen-devel — поэтому не делаем этого!!!
То нам предложат установить пакет 2.6.18-371.1.2.el5.centos.plus, который почему-то очень не нравиться инсталяшке драйвера.
Гуглим и скачиваем kernel-xen-devel-2.6.32.43-0.4.1.xs1.6.10.734.170748.i686.rpm и ставим его
rpm -i kernel-xen-devel-2.6.32.43-0.4.1.xs1.6.10.734.170748.i686.rpm
Дальше скачиваем дровишки под нашу карточку Dlink DGE-560T. скажу по секрету, дрова скачанные с сайта оказались очень капризными, потому я скопировал драйвера с диска, идущего в комплекте, после чего, перейдя в папку драйверами, запустил установку командой
sh autorun.sh
Если теперь зайти в XenCenter и во вкладке NICs нажать кнопочку Rescan то мы увидим новый сетевой адаптер. Если вы думаете что это финиш не спешите, как оказалось XCP после перезагрузки может запросто поменять имена интерфейсов местами, а потом сиди и гадай почему VLAN не поднимается.Для решения такой проблемы идем вот сюда и читаем до полного просветления или просто делаем вот по такой инструкции:
1. делаем ifconfig и запомниаем HWaddr всех наших интерфейсов.
2. делаем nano /etc/sysconfig/network-scripts/interface-rename-data/static-rules.conf и добавляем в этот файлик записи вот такого вида
eth0: mac ="E4:11:5B:A9:BE:F0"
eth2: mac ="AC:F1:DF:3F:EF:FB"
eth1: mac ="E4:11:5B:A9:BE:F1"

в качестве значений для mac вставляем запомненные ранее HWaddr.
3. запускаем вот такую страшную команду
etc/sysconfig/network-scripts/interface-rename.py -r
4. Для успокоения совести можем поглядеть в логе все ли у нас хорошо:
cat /var/log/interface-rename.log.
5. Теперь сделаем Ксенсерверу рескан сетевых интерфейсов:
xe pif-scan host-uuid=
6. А теперь обязательно перегрузить машинку.
7. Если в результате ваших действий возникают мертвые интерфейсы, удалить которые не получается, необходимо проделать вот что:
а. xe network-list (ищем лишнюю сетевую и запоминаем ее UUID)
б. xe network-destroy uuid=60afcf0e-668f-02ad-5110-84408c41fd9 (нам выдаст ошибочку The network contains active PIFs and cannot be deleted. pifs: 60679ca5-9f06-9847-b5d2-d1bcffb6e2fe и укажет нам ПИФ который надо удалить)
в. делаем xe pif-forget uuid=60679ca5-9f06-9847-b5d2-d1bcffb6e2fe
г. и снова делаем xe network-destroy uuid=60afcf0e-668f-02ad-5110-84408c41fd9
В результате к Вашему XCP вернется душевное равновесие и спокойствие.

Для более удобной работы устанавливаем утилиты
yum install htop mtr
Не забудьте, после всего этого, снова отредактировать все файлы конфигурации репозиториев и вернуть 0 вместо 1.
nano /etc/yum.repos.d/CentOS-Base.repo
nano /etc/yum.repos.d/CentOS-Vault.repo

Для полноценного крепкого сна, стоит также отключить и RPM репозиторий — но я этого делать не стал, так как опыты продолжаются.

В следующей статье я постараюсь выложить сравнительный анализ и пояснить почему я выбрал именно XCP для развертывания технологий виртуализации.
Всем спасибо, жду Ваших вопросов.
Tags:
Hubs:
Total votes 5: ↑4 and ↓1+3
Comments9

Articles