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

    Первый пост был оценен несколько критично но прозвучала здравая мысль выложить сразу весь цикл статей.
    К сожалению, все сразу оформить не получиться просто физически. А делать тяп-ляп не хочется.
    Эта статья посвящена добавлению драйверов в 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 для развертывания технологий виртуализации.
    Всем спасибо, жду Ваших вопросов.
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 9
    • 0
      Что будете делать, когда у вас появится второй сервер?
      • 0
        Если приглядеться, на скриншоте Вы сможете увидеть 3 ксенсервера подключенных к этой консоли, два из них объединены в пул, третий пока используется как полигон для экспериментов. В одной из статей буду рассказывать как организовать пул и как в нем настроить миграцию ВМ.
        • 0
          Пригляделся, да, был не прав.
          Я в прошлом году искал решение по опенсорсной системе вирутализации для кластера из двух серверов и общего хранилища. Пробовал и XCP, но работа в кластере была только в платной версии (миграция). Могу, конечно, ошибаться.
          В итоге остановился на Proxmox.
          Если кластерные функции доступны в бесплатной версии, то, может быть, подумаю о переходе.
      • 0
        Вы ведь знаете что Citrix Xenserver стал бесплатным и xcp более не актуален?
        И еще один важный, особенно для тех кто мало работал с Xenserver\XCP момент. После обновления все кастомные пакеты, конфиги и скрипты пропадают.
        • 0
          Насчет актуальности, сейчас систематизирую и обновляю тот материал на основании которого выбирал в свое время XCP, когда смогу опубликовать новый пост с этим материалом тогда можно будет подискутировать, пока не готов категорично утверждать да или нет.
          Пока что XCP 1,6 является последним стабильным релизом, 2.0 я еще не видел, и обновится до него не пробовал. Не думаю что это будет большой проблемой восстановить свои настройки, особенно учитывая пост в котором недавно рассказывалось как подружить GIT и конфиги.
          • +1
            XCP 2.0 вряд ли увидит свет. В нем больше нет необходимости. Вы хоть сегодня может совершенно бесплатно обновиться до XenServer premium 6.2.
            Обновления и сама концепция dom0 в xenserver не подразумевает установку дополнительных пакетов. И если mc не сделает погоды, то вот ставить дополнительные драйверы после каждого обновления вам придется. И под каждый релиз вам может понадобиться новая инструкция со своими особенностями.
            • +1
              XCP 1.6 является последним в принципе релизом XCP. 2.0 не будет. Он был полностью замещён XenServer 6.2 c тех пор, как последний стал полностью open source (конец июня этого года).

              Подробнее ознакомиться можно по ссылкам от Citrix и Xen Project

              Самая важная выжимка для пользователй XCP (не знаю, так ли это на самом деле)
              I am a user of XCP: how am I impacted?

              In the past, XCP ISOs have been built by Citrix and have been delivered to users via Xen.org. The XCP ISOs were migrated to the Xen Project. By fully open sourcing XenServer, the need to deliver new XCP ISOs via the Xen Project website has gone away. XCP ISOs will be replaced by open source XenServer binaries which are available from XenServer.org. The transition from XCP ISOs to XenServer should be smooth and painless:

              No functionality will be taken away from XCP users
              Users of XCP 1.6 will be able to upgrade to XenServer

              The main difference for you will be that you need to download the product from a different place and that it has been renamed. XCP users have been supporting each other through mailing lists (xen-xapi@lists.xenproject.org) and the #xen-api IRC channel. These mechanisms will of course not go away, but we hope that you will find the resources on XenServer.org useful.
          • +3
            XCP больше не существует, остался только XenServer.
            • 0
              А Selectel до сих пор использует XCP или же уже XenServer использует?

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.