Задолго до того, как технология виртуализации обрела нынешнее
широкое распространение и признание, она десятилетиями применялась в
мэйнфреймах IBM. Недавний всплеск интереса к виртуализации вызван тем,
что промышленные центры данных больше не могут удовлетворять
потребности новых приложений путём увеличения количества стоек с
серверами. Центры данных уже превысили разумные пределы по количеству
серверов, потребляемому электричеству, тепловыделению на единицу
выделенной площади.

Виртуализация является
превосходным решением проблемы такого роста требований. Её применение
ведёт к увеличению полезной нагрузки, уменьшению количества серверов и
снижению эксплуатационных расходов. С другой стороны, виртуализация
может оказывать негативное влияние на готовность системы, так как
серверы вынуждены обслуживать большее количество приложений. Любой сбой
может привести к более разрушительным последствиям для бизнеса.

Один из способов избежать такого развития событий — реализовать
многоканальный доступ к внешним устройствам SAN (сеть хранения данных).
Таким образом вы сможете уменьшить количество сбоев, вызванных
невозможностью доступа к подсистеме хранения данных.

В
этой статье мы показываем, как обеспечить многоканальный доступ хосту
Xen и гостевым доменам к системе хранения данных IBM System Storage
DS4800, используя дистрибутив Red Hat Enterprise Linux 5 update 1 (RHEL
5.1), а также распространяемый компанией IBM драйвер RDAC
(RAID-контроллер) c поддержкой многоканального доступа.

Ресурсы)
и установите его в соответствии с документацией. Вам нужно
скомпилировать исходный код, установить модуль и создать новый образ
initrd. Чтобы использовать новый образ initrd, вам придётся вручную
изменить конфигурационный файл (/etc/grub/grub.conf) вашего менеджера
загрузки. Будьте осторожны, не используйте пример, который
поставляется со скриптом установки, так как он не применим к системам с
Xen. Вместо этого используйте уже существующую запись в файле
grub.conf, заменив initrd-xyz.img на mpp-xyz.img.

Мой файл выглядит вот так:

Листинг 8. Опции загрузки в файле grub.conf

 
title Red Hat Enterprise Linux Server with RDAC driver (2.6.18-53.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-53.el5
module /vmlinuz-2.6.18-53.el5xen ro root=LABEL=/ rhgb quiet
module /mpp-2.6.18-53.el5xen.img

Выведите список всех логических дисков с помощью команды /opt/mpp/lsvdev. Если в списке присутствуют не все LUN, выполните команду mppBusRescan.

Листинг 9. Список всех LUN, обнаруженных в домене 0

 
[root@xenhost ~]# /opt/mpp/lsvdev
Array Name Lun sd device
-------------------------------------
ARCJMTDS48K1 0 -> /dev/sdb
ARCJMTDS48K1 1 -> /dev/sdc
ARCJMTDS48K1 2 -> /dev/sdd
ARCJMTDS48K1 3 -> /dev/sde

Теперь у вас есть многоканальный доступ к вашей системе хранения данных SAN из домена 0.

Установка гостевых доменов Xen

Перед тем как устанавливать гостевые домены Xen, нужно выполнить на хосте следующее:

  1. Удостоверьтесь, что виртуальная сеть правильно настроена.
  2. Источник
    установки должен быть доступен гостевым доменам Xen по сети, через
    HTTP, FTP или NFS (не используйте локально примонтированный образ ISO!).

Свою виртуальную сеть я привязал к реальному сетевому интерфейсу eth0.
Вы можете использовать для этого менеджер виртуальных машин (VMM);
выберите в меню пункт Edit > Host details > Virtual Networks, чтобы отредактировать настройки уже существующей виртуальной сети или добавить новую.

Рисунок 5. Настройка виртуальной сети в VMM

Настройка виртуальной сети в VMM

Для организации источника установки я просто извлёк все файлы с
DVD-образа в директорию /var/www/html/rhel51, а затем командой service httpd start
запустил Web-сервер Apache. Все файлы стали доступны гостевым доменам
Xen по адресу http://192.168.100.1/rhel51. Проверьте, что iptable не
блокирует входящие соединения на 80-й порт.

Гостевой домен test0

Для первой гостевой ОС я хотел, чтобы три логических диска напрямую
отображались в три LUN системы хранения данных DS4800, естественно,
через Dom0.

Рисунок 6. Отображение устройств хранения для гостевого домена test0

Отображение устройств хранения для гостевого домена test0

Готовы? Поехали.

  1. Нажмите кнопку New на главной панели VMM.

    Рисунок 7. Главная панель VMM с доменом 0

    Главная панель VMM с доменом 0

  2. Дайте имя гостевому домену, например test0.
  3. Выберите режим Paravirtualized.
  4. На следующем шаге введите:
    http://192.168.100.1/rhel51

    в поле Install Media URL.
  5. Выберите пункт Normal Disk Partition и в поле Partition введите /dev/sdb (диск на хосте Xen). Оставшиеся диски могут быть добавлены позже.

    Рисунок 8. Выделение дискового пространства гостевому домену test0

    Выделение дискового пространства гостевому домену test0

  6. Выберите виртуальную сеть, которую вы настроили ранее.
  7. Выделите
    память гостевому домену. Начальный размер выделяемой оперативной памяти
    я сделал равным 512 МБ, максимальный — 1 ГБ. Количество виртуальных
    процессоров — 2.

    Рисунок 9. Выделение памяти гостевому домену test0

    Выделение памяти гостевому домену test0

  8. Вот что мы получили в итоге:

    Рисунок 10. Настройки гостевого домена test0

    Настройки гостевого домена test0

  9. Нажмите кнопку Finish, чтобы начать процесс создания гостевого домена.
  10. На
    этом этапе вы должны увидеть приглашение начать установку Red Hat
    Enterprise Linux. Следуйте дальнейшим указаниям программы установки.
    Это, как обычно, не займёт много времени.

    Рисунок 11. Начало установки RHEL 5.1 в гостевом домене test0

    Начало установки RHEL 5.1 в гостевом домене test0

  11. Вы
    можете добавить в этот гостевой домен два оставшихся логических диска в
    любое время после окончания установки. Выберите гостевой домен test0 на
    главной панели VMM и нажмите кнопку Details.

    Рисунок 12. Главная панель VMM с одним гостевым доменом

    Главная панель VMM с одним гостевым доменом

  12. На закладке Hardware, нажмите кнопку Add.

    Рисунок 13. Панель управления оборудованием гостевого домена test0

    Панель управления оборудованием гостевого домена test0

  13. Выберите значение по умолчанию пункта Storage device.
  14. Выберите пункт Normal Disk Partition и в поле Partition введите /dev/sdc.
  15. Нажмите кнопку Finish для завершения процесса.
  16. Повторите предыдущие шаги для того, чтобы добавить /dev/sdd.
  17. Теперь в гостевом домене test0 установлено три диска.

    Рисунок 14. После добавления двух устройств хранения в гостевой домен test0

    После того как мы добавили 2 устройства хранения в гостевой домен test0

  18. Перезагрузите гостевой домен, чтобы изменения вступили в силу. Хост Xen можно не перезагружать.

Для доступа к гостевой ОС:

  • Вы можете использовать графическую консоль, как во время установки ОС.
  • В терминальной сессии на хосте Xen выполните команду xm console test0 для доступа к текстовой консоли.
  • Вы можете подключиться через ssh, если знаете, какой IP-адрес test0 получил от сервера DHCP.

Чтобы вывести список дисков гостевой ОС, введите команду fdisk -l. При желании вы можете с помощью fdisk создать разделы на дисках, которые мы добавили.

Конфигурация гостевого домена хранится в обычном текстовом файле,
который расположен в директории /etc/xen. Для примера я приведу
содержимое файла /etc/xen/test0:

Листинг 10. Файл конфигурации гостевого домена test0

 
[root@xenhost ~]# cat /etc/xen/test0
name = "test0"
uuid = "dddf02f6-5f90-74a5-0098-365a51b54282"
maxmem = 1000
memory = 500
vcpus = 2
bootloader = "/usr/bin/pygrub"
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "restart"
vfb = [ "type=vnc,vncunused=1,keymap=en-us" ]
disk = [ "phy:/dev/sdb,xvda,w", "phy:/dev/sdc,xvdb,w", "phy:/dev/sdd,xvdc,w" ]
vif = [ "mac=00:16:3e:79:2f:e1,bridge=vnet0" ]

Создание файла
конфигурации «с нуля» — непростая задача, зато редактировать его
вручную очень просто. Например, если вы хотите изменить размер
выделяемой гостевому домену памяти или количество виртуальных
процессоров, вам нужно просто изменить этот файл, а затем перезагрузить
гостевой домен командами xm shutdown test0 и xm create test0. Также для этой цели можно использовать утилиту VMM.

Чтобы поупражняться в редактировании конфигурационного файла, я изменил имена, относящиеся к каждому диску в гостевом домене (xvdx
на hdx
) следующим образом:

Листинг 11. Смена имён виртуальных устройств

 
disk = [ "phy:/dev/sdb,hda,w", "phy:/dev/sdc,hdb,w", "phy:/dev/sdd,hdc,w" ]

На самом деле неважно, как вы назовёте их, вы можете попробовать даже sdx
.
Гостевой домен просто загрузит первое блочное устройство в списке. Вот
что я получил в гостевом домене test0 после создания разделов и
файловых систем на виртуальных дисках:

Листинг 12. Список всех файловых систем в гостевом домене test0

 
[root@test0 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00 3.8G 1.8G 1.8G 51% /
/dev/hda1 99M 13M 82M 14% /boot
tmpfs 251M 0 251M 0% /dev/shm
/dev/hdb1 2.0G 36M 1.9G 2% /mnt/disk1
/dev/hdc1 2.0G 36M 1.9G 2% /mnt/disk2

Это завершающий
этап процесса установки гостевого домена test0, который теперь имеет
многоканальный доступ к трём LUN системы хранения данных DS4800.

Гостевой домен test1

Файлы образов в Dom0 должны отображаться в виртуальные диски гостевого
домена test1. LUN #3 системы хранения данных DS4800 сделан доступным
для Dom0 как /dev/sde. Я создал раздел и файловую систему на этом диске
с помощью команд fdisk и mkfs. Затем я примонтировал файловую систему к директории /var/lib/xen/images, где по умолчанию располагаются файлы образов Xen.

Рисунок 15. Отображение устройств хранения для гостевого домена test1

Отображение устройств хранения для гостевого домена test1

Теперь давайте продолжим создание гостевого домена test1, повторив процедуру, которую мы выполнили ранее. Нажмите кнопку New на главной панели VMM, в поле System Name введите test1, затем выберите режим Paravirtualized. В следующем окне выберите пункт Simple File и в поле File Location введите /var/lib/xen/images/test1-xvda.img. Задайте размер файла и установите опцию Allocate entire virtual disk now (выделить место виртуальному диску сразу).

Рисунок 16. Выделение дискового пространства гостевому домену test1

Выделение дискового пространства гостевому домену test1

После настройки остальных параметров (можете сделать их такими же, как
у test0) вы опять увидите приглашение программы установки Red Hat
Enterprise Linux. Пока идёт установка, откройте в VMM свойства
гостевого домена test1 и установите ещё два виртуальных диска. В
качестве имён файлов образов введите /var/lib/xen/images/test1-xvdb.img и /var/lib/xen/images/test1-xvdc.img. Теперь в гостевом домене test1 установлено три диска.

Рисунок 17. Панель управления оборудованием гостевого домена test1

Панель управления оборудованием гостевого домена test1

Это файл конфигурации гостевого домена test1:

Листинг 13. Файл конфигурации гостевого домена test1

 
[root@xenhost ~]# cat /etc/xen/test1
name = "test1"
uuid = "53b39c1e9edc6143a06d4011154beab9"
maxmem = 1000
memory = 600
vcpus = 2
bootloader = "/usr/bin/pygrub"
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "restart"
vfb = [ "type=vnc,vncunused=1,keymap=en-us" ]
disk = [ "tap:aio:/var/lib/xen/images/test1-xvda.img,xvda,w",
"tap:aio:/var/lib/xen/images/test1-xvdb.img,xvdb,w", "tap:aio:/var/lib/xen/images/
test1-xvdc.img,xvdc,w" ]
vif = [ "mac=00:16:3e:7b:78:63,bridge=vnet0" ]

Тег tap:aio используется для обозначения логического диска, использующего файл образа, в то время как тег phy обозначает физический диск. После установки ОС перезагрузите test1. Убедитесь, что диски видны системе, с помощью команды fdisk -l. Вот что я получил в гостевом домене test1 после создания разделов и файловых систем на этих дисках:

Листинг 14. Список всех файловых систем в гостевом домене test1

 
[root@test1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00 4.7G 1.8G 2.9G 39% /
/dev/xvda1 99M 13M 82M 14% /boot
tmpfs 301M 0 301M 0% /dev/shm
/dev/xvdb1 2.0G 35M 1.8G 2% /mnt/disk1
/dev/xvdc1 2.0G 35M 1.8G 2% /mnt/disk2

На данном этапе
оба гостевых домена полностью установлены и настроены для
многоканального доступа к соответствующим виртуальным дискам через
домен 0. Открыв VMM, вы увидите следующее:

Рисунок 18. Главная панель VMM с двумя гостевыми доменами

Главная панель VMM с двумя гостевыми доменами

Выдёргиваем кабель

Для того чтобы убедиться, что многоканальный доступ работает, я
запустил встроенную утилиту от IBM для создания рабочей нагрузки на
подсистему ввода-вывода в каждом гостевом домене. Утилита непрерывно
записывает блоки данных на все три диска, а затем читает и проверяет
их. После этого я выдернул из порта один из кабелей FC, соединяющий
хост и коммутатор. Утилита зависла примерно на 5 секунд и продолжила
свою работу как ни в чём не бывало.

Для имитации выхода из строя коммутатора SAN
я отключил порт со стороны хоста на одном из коммутаторов. И опять
утилита смогла продолжить свою работу.

И напоследок я отключил один из контроллеров
системы хранения данных DS4800. Как и следовало ожидать, утилита
сработала безупречно! В перерывах между тестами я «восстанавливал»
работоспособность тестовой среды и ждал несколько минут, чтобы драйвер
многоканального доступа мог снова подключиться по восстановленному
маршруту.

Заключение

В этой статье вы научились устанавливать и настраивать среду Xen и
обеспечивать многоканальный доступ к системе хранения данных IBM
DS4800. Вы убедились, что многоканальный доступ может существенно
увеличить уровень готовности виртуальных машин Xen в случае отказа
канала доступа к устройству хранения или технического обслуживания
инфраструктуры хранения.

Вы можете настроить 4
или даже 8 альтернативных маршрутов, если вам не хватает пропускной
способности и надёжности двух. Серверы хранения данных класса high-end
способны обеспечивать «интеллектуальную» балансировку нагрузки
маршрутов. Таким образом, если вы создаёте виртуализованную среду с
системами хранения данных SAN, вам определённо следует использовать
многоканальный доступ, чтобы достичь высокой доступности, надёжности и
ремонтопригодности.

Об авторе

фотография автора

Чеким Чуор (CheKim Chhuor)
работает в группе OSL по тестированию систем хранения данных в
лаборатории Systems and Technology IBM в Шанхае, Китай. Его текущие
интересы — технологии хранения данных и архитектура систем. Раньше он
работал в центре IBM в Паукипси, штат Нью-Йорк, над различными
продуктами управления системами, а также как консультант IBM в Монреале
(Канада). Чуор имеет многолетний опыт работы консультантом по
Web-инфраструктуре, а также множество сертификатов по продуктам IBM:
WebSphere®, DB2® и модели бизнеса по требованию.

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34