Xen и DS4800. Многоканальный доступ к системе хранения данных

Реализация в среде Xen многоканального доступа к системе хранения данных IBM System Storage DS4800

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

Чеким Чуор, инженер-программист, I.B.M.

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



10.04.2008

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

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

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

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

Виртуализация и Xen

Много виртуальных чернил и виртуальной бумаги было потрачено на то, чтобы описать различные типы технологии виртуализации: аппаратные разделы, логические разделы, гипервизор и другие. Xen - это гипервизор с поддержкой паравиртуализации. Другими словами, гипервизор Xen - это программный слой, который работает поверх оборудования. Для работы с гипервизором Xen ядро гостевой операционной системы и драйвера должны быть соответствующим образом модифицированы.

Преимущество данного типа виртуализации состоит в том, что за счёт "сотрудничества" гостевой ОС и гипервизора при выполнении низкоуровневых вызовов в большинстве случаев производительность гостевого домена Xen близка к собственной (native). Стоит заметить, что этот тип виртуализации наиболее эффективен по производительности и работает на широком спектре оборудования.

Недостаток его состоит в том, что поддерживаются только соответствующим образом модифицированные ядра, поэтому вы не сможете использовать Xen со старыми операционными системами (например, Windows® 2000). Тем не менее, поскольку виртуализация становится такой популярной темой, производители микропроцессоров стремятся поддержать эту тенденцию. Процессоры с поддержкой технологий Intel-VT и AMD Pacifica способны обеспечить работу гипервизора Xen и с немодифицированными гостевыми ОС, правда, с некоторой потерей производительности.

На сегодняшний день наиболее распространён гипервизор Xen версии 3; некоторые поставщики Linux решили включить его в свои дистрибутивы. К примеру, Xen стабильно работает и поддерживается дистрибутивами Red Hat Enterprise Linux 5 и Novell SUSE Linux Enterprise Server 10, и, что не менее важно - он бесплатен!


Архитектура Xen

Когда вы запускаете хост Xen, гипервизор Xen первым берёт на себя управление системой. Затем он загружает гостевую ОС, или домен 0 (Dom0) в терминологии Xen. Пользователь взаимодействует с Xen посредством Dom0. Все драйверы устройств для доступа к оборудованию также загружаются в Dom0. Dom0 обеспечивает доступ других гостевых ОС, которые иногда называют доменом U (или DomU), к виртуальным блочным и сетевым устройствам. С этого момента я больше не буду считать Dom0 гостевой ОС, несмотря на то, что по существу это экземпляр гостевой ОС с некоторыми специальными возможностями.

Для доступа к виртуальным блочным и сетевым устройствам внутри каждого гостевого домена (DomU) используются "облегчённые" драйверы устройств - драйверы frontend (внешний интерфейс), в отличие от Dom0, где используются "тяжеловесные" драйверы backend (внутренний интерфейс). На рисунке 1 представлена схема архитектуры Xen.

Рисунок 1. Упрощённая схема архитектуры Xen
Упрощённая схема архитектуры Xen

Начиная с версии Xen 3.0.3, виртуальный блочный frontend реализован в модуле xenblk, а backend - в модулях blkbk и blktap. Виртуальный сетевой frontend реализован в модуле xennet, а backend - в модуле netbk. Чтобы выяснить, какие модули ядра загружены в вашей системе, а также получить информацию об этих модулях, используйте команды lsmod и modinfo.


Многоканальный доступ и система хранения данных SAN

Переход от прямого соединения между системой хранения данных и хостом к инфраструктуре совместно используемых систем хранения данных SAN - это существенное усложнение картины. То, что когда-то было выделенным интерфейсом SCSI или кабелем FC между хостом и системой хранения данных, сейчас представляет собой скопление кабелей FC, коммутаторов SAN, серверов хранения данных с контроллерами, дисками и т.д. Наряду с бесспорными преимуществами, SAN обладает и недостатками, ввиду высокой вероятности выхода из строя компонентов между хостом и жёсткими дисками. Многоканальный доступ к системам хранения данных - отличный способ решения таких проблем.

Фактически хост имеет возможность доступа к логическим дискам (используя логический номер устройства, или сокращённо LUN) на сервере хранения данных по нескольким независимым каналам. Драйвер многоканального доступа объединяет все маршруты доступа и "показывает" операционной системе только одно блочное устройство. Доступ к каждому LUN осуществляется по наилучшему маршруту, а в случае выхода маршрута из строя драйвер многоканального доступа направляет запросы ввода/вывода по альтернативным маршрутам. Драйверы многоканального доступа разных производителей обладают разной функциональностью: одни способны обеспечивать "интеллектуальную" балансировку нагрузки, другие поддерживают только переключение на резервные маршруты в случае сбоя. Для системы хранения данных DS4800 IBM поверх драйвера HBA (хост-адаптер шины) рекомендует использовать драйвер RDAC. Запомните: драйвер многоканального доступа не заменяет драйвер HBA, они дополняют друг друга. Драйвер многоканального доступа - аналог мозга, а драйвер HBA - аналог рук и ног. Современные операционные системы предлагают свои собственные многоканальные драйверы, но перед тем как их использовать, удостоверьтесь, что они сертифицированы производителем вашей системы хранения.


Оборудование и программное обеспечение

Достаточно теории, давайте перейдём к архитектуре тестовой среды. У меня стоит сервер IBM x3550 c хост-адаптером HBA, который оснащён двумя портами FC. Порты подключены к разным коммутаторам SAN. Система хранения данных DS4800 имеет два контроллера, оснащённых 4 портами FC каждый. Для простоты на рисунке 2 я указал только два FC-соединения. Порты FC системы хранения, также как и порты хоста, подключены к разным коммутаторам. Таким образом, сбой на одном из маршрутов не нарушит доступ хоста к системе хранения данных. Драйвер RDAC, установленный в домене 0, отвечает за выбор наилучшего маршрута при работе в нормальных условиях и переключение на альтернативный маршрут в случае возникновения сбоя. Гостевой ОС не требуется специального драйвера для того, чтобы иметь многоканальный доступ к внутренней системе хранения данных.

Рисунок 2. Архитектура тестовой среды
Архитектура тестовой среды

Вот список оборудования и программного обеспечения, которое я использовал в тестовой среде:

  • IBM System x3550
    • 2 двухъядерных процессора Intel Xeon, 4 ГБ оперативной памяти
    • HBA -адаптер QLogic QLE2462
    • Дистрибутив Red Hat Enterprise Linux 5 update 1
    • Драйвер IBM RDAC, версия 09.01.C5.11
    • Драйвер QLogic, версия qla2xxx 8.01.07.15
  • Система хранения данных IBM System Storage DS 4800, модель 1815-84A
    • 2 контроллера
    • 16 дисковых накопителей с интерфейсом FC ёмкостью 136 ГБ
    • 8 портов FC, скорость передачи 4 Гбит/с
  • Коммутаторы Brocade, модель 2109-F32
    • 32 порта, скорость передачи 2 Гбит/с

Настройка системы хранения данных

Серверы хранения данных SAN от IBM проектируются с учётом возможности многоканального доступа, поэтому вам не надо делать ничего особенного для того, чтобы логический диск был доступен по нескольким маршрутам. В случае DS4800 при создании логического тома, система автоматически меняет владельца среди контроллеров в целях балансировки нагрузки. Как показано на рисунке 3, я создал 4 LUN и отобразил их на мою группу хостов. Запомните, номера LUN должны идти по порядку, чтобы хост мог обнаружить все устройства, начав с 0. Если вы удаляете логический диск, проследите за тем, чтобы остальные номера LUN образовывали непрерывную последовательность!

Рисунок 3. Логические диски, созданные в DS4800 и отображённые на мою группу хостов
Логические диски, созданные в DS4800 и отображённые на мою группу хостов

В настройках коммутационной матрицы я поместил первый WWPN (WorldWide Port Name) хост-адаптера HBA в одну зону с WWPN контроллера А системы хранения данных. Второй WWPN хост-адаптера HBA я поместил в другую зону, вместе с WWPN контроллера B.


Установка хоста Xen

Установка гипервизора Xen и домена 0 предельно проста. Процедура проходит следующим образом:

  1. Установите на локальный диск дистрибутив RHEL 5.1. Вы можете установить его так, чтобы он загружался с системы хранения данных SAN, но описание данного процесса выходит за рамки этой статьи.
  2. После того, как вы получите работоспособную систему с RHEL 5.1, установите ядро с поддержкой Xen следующим образом:
    Листинг 1. Установка пакетов ядра с поддержкой Xen
    rpm -ivh kernel-xen-2.6.18-53.el5.i686.rpm
    rpm -ivh kernel-xen-devel-2.6.18-53.el5.i686.rpm
  3. Теперь в файле конфигурации /boot/grub/grub.conf должна появиться новая запись. Удостоверьтесь, что GRUB по умолчанию загружает ядро с поддержкой Xen. Перезагрузите систему.
  4. После перезагрузки проверьте, что у вас загружено ядро с поддержкой Xen:
    Листинг 2. Проверка версии ядра
    [root@xenhost ~]# uname -a
    Linux xenhost 2.6.18-53.el5xen #1 SMP Wed Oct 10 17:06:12 EDT 2007 i686 i686 i386 
     GNU/Linux
  5. Поздравляю! Теперь у вас установлен гипервизор Xen и работающий поверх него домен 0.

Установка утилит для работы с Xen

Утилиты для работы с Xen находятся в директории /VT источника установки RHEL 5.1. Утилиты командной строки - очень мощный, но не самый привлекательный инструмент. Утилиты с графическим интерфейсом просты в использовании, но не так эффективны. Как бы то ни было, давайте установим и те, и другие.

Для начала следует установить несколько пакетов, от которых зависят пакеты утилит для работы с Xen; вы найдёте их на установочном DVD (или CD) в директории /Server:

Листинг 3. Установка пакетов, от которых зависят пакеты утилит для работы с Xen
rpm -ivh bridge-utils-1.1-2.i386.rpm
rpm -ivh dnsmasq-2.39-2.el5.i386.rpm
rpm -ivh gnome-python2-gnomekeyring-2.16.0-1.fc6.i386.rpm
rpm -ivh xen-libs-3.0.3-41.el5.i386.rpm

При установке пакетов утилит для работы с Xen у меня возникли проблемы с зависимостями. Мне пришлось установить первый пакет без проверки зависимостей, а затем установить остальные пакеты в следующем порядке:

Листинг 4. Установка пакетов утилит для работы с Xen
rpm -ivh --nodeps libvirt-0.2.3-9.el5.i386.rpm
rpm -ivh libvirt-devel-0.2.3-9.el5.i386.rpm
rpm -ivh libvirt-python-0.2.3-9.el5.i386.rpm
rpm -ivh python-virtinst-0.103.0-3.el5.noarch.rpm
rpm -ivh xen-3.0.3-41.el5.i386.rpm
rpm -ivh xen-devel-3.0.3-41.el5.i386.rpm
rpm -ivh virt-manager-0.4.0-3.el5.i386.rpm
rpm -ivh gnome-applet-vm-0.1.2-1.el5.i386.rpm
rpm -ivh Virtualization-en-US-5.1.0-12.noarch.rpm

Давайте попробуем выполнить несколько команд. Только прежде чем это сделать, вам нужно запустить демона xend. Все утилиты управления Xen получают информацию от демона xend. Для запуска xend выполните команду xend start как пользователь root. Обычно демон xend запускается во время загрузки системы, поэтому вам не надо каждый раз выполнять эту команду.

Теперь вы можете выполнить команду xm info, чтобы получить некоторую информацию от гипервизора Xen.

Листинг 5. Вывод информации, полученной от гипервизора Xen
[root@xenhost ~]# xm info
host                   : xenhost
release                : 2.6.18-53.el5xen
version                : #1 SMP Wed Oct 10 17:06:12 EDT 2007
machine                : i686
nr_cpus                : 4
nr_nodes               : 1
sockets_per_node       : 2
cores_per_socket       : 2
threads_per_core       : 1
cpu_mhz                : 2992
hw_caps                : bfebfbff:20100000:00000000:00000140:0004e3bd:00000000:00000001
total_memory           : 4095
free_memory            : 20
xen_major              : 3
xen_minor              : 1
xen_extra              : .0-53.el5
xen_caps               : xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p
xen_pagesize           : 4096
platform_params        : virt_start=0xf5800000
xen_changeset          : unavailable
cc_compiler            : gcc version 4.1.2 20070626 (Red Hat 4.1.2-14)
cc_compile_by          : brewbuilder
cc_compile_domain      : build.redhat.com
cc_compile_date        : Wed Oct 10 16:30:55 EDT 2007
xend_config_format     : 2

Кроме того, вы можете выполнить команду xm list (или xentop), чтобы получить список запущенных виртуальных машин. Как и следовало ожидать, вы увидите, что запущен только домен 0.

Листинг 6. Список функционирующих гостевых доменов Xen
[root@xenhost ~]# xm list
Name                                      ID Mem(MiB) VCPUs State   Time(s)
Domain-0                                   0     2928     4 r-----  61790.3

Успешное выполнение команд xm info и xm list свидетельствует о том, что окружение Xen настроено правильно. Если xm не может подключиться к демону xend, попробуйте перезагрузить систему, или посмотреть журналы Xen в директории /var/log/xen.

Если вы предпочитаете графический интерфейс, загрузите Gnome, затем выберите в меню пункт Applications > System Tools > Virtual Machine Manager. Вы должны увидеть окно со статусом ваших виртуальных машин, как на рисунке 4.

Рисунок 4. Главная панель менеджера виртуальной машины (VMM)
Главная панель менеджера виртуальной машины (VMM)

Установка драйвера многоканального доступа

Среда Xen установлена и работает, пришло время установить драйверы для доступа к системе хранения данных SAN. Первым делом установим драйвер адаптера HBA, в моём случае это драйвер QLogic. Скачайте установочный пакет с драйвером QLogic с сайта производителя и установите его в соответствии с документацией. Нужно отключить активную по умолчанию опцию failover (переключение при сбое) в файле /etc/modprobe.conf следующим образом:

Листинг 7. Отключение опции failover драйвера QLogic
options qla2xxx ql2xfailover=0

Теперь установим драйвер RDAC с поддержкой многоканального доступа. Скачайте установочный пакет с сайта IBM (ссылка есть в разделе Ресурсы) и установите его в соответствии с документацией. Вам нужно скомпилировать исходный код, установить модуль и создать новый образ 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, вам определённо следует использовать многоканальный доступ, чтобы достичь высокой доступности, надёжности и ремонтопригодности.

Ресурсы

Научиться

  • Оригинал статьи "Multipath storage with Xen and DS4800 "(EN).
  • "Виртуальный Linux" - обзор методов виртуализации, архитектур и реализаций.
  • "Виртуализация с помощью coLinux" - использование, установка и конфигурирование Cooperative Linux.
  • Прошивки, ПО для управления системами хранения данных, ПО для HBA, различные диагностические и управляющие утилиты для DS4800 доступны по этой ссылке.
  • Xen.org основной источник актуальной информации о гипервизоре Xen - технологии виртуализации с поддержкой архитектур x86, x86_64, IA64, PowerPC и других, работающей на широком спектре операционных систем: Windows, Linux, Solaris и семействе BSD.
  • Раздел Linux сайта developerWorks Россия.
  • Оставайтесь в курсе последних событий, посещая раздел Семинары и обучение.

Получить продукты и технологии

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux
ArticleID=300568
ArticleTitle=Xen и DS4800. Многоканальный доступ к системе хранения данных
publish-date=04102008