Рубрика:
Администрирование /
Виртуализация
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
СЕРГЕЙ УРУШКИН, системный администратор ИТЦ Телрос, urusha.v1.0@gmail.com
Кластер виртуализации. Часть 1 Разворачиваем бюджетное отказоустойчивое решение
Подбор программного и аппаратного обеспечения и первоначальная настройка кластера
В бизнесе часто возникают задачи, требующие высокой доступности сервисов и данных. На сегодняшний день такие задачи эффективнее всего решаются с использованием виртуализации, частных или публичных облаков. Для малого и среднего бизнеса ежемесячные затраты на публичное облако подчас оказываются слишком высоки. В то же время развертывание частного облака требует больших единовременных вложений как в программное обеспечение (ПО) (VMware, Citrix, Microsoft), так и в аппаратную часть (брендовые серверы, СХД, сетевое оборудование).
В данной статье описано создание отказоустойчивого кластера виртуализации из двух серверов при использовании свободного ПО и бюджетной аппаратной части. Используя эту статью, можно с успехом разворачивать кластер и на дорогостоящем серверном оборудовании, масштабируя как горизонтально, так и вертикально. В первой части статьи обосновывается выбор ПО и оборудования и осуществляется первоначальная настройка ОС и кластера.
Концепция
Так как кластер бюджетный, будем обходиться без SAN, Fibre Channel и т.п. Предлагается использовать два сервера (узла), у каждого две сетевые карты. Одна обеспечивает связь узлов и виртуальных машин (ВМ) с внешним миром, вторая – приватная сеть между узлами для обмена данными кластера. Все данные ВМ будут синхронизироваться между узлами в реальном времени, станет возможна живая миграция ВМ с одного узла на другой. При падении одного узла все ВМ, запущенные на нем, автоматически запускаются на другом узле.
Необходимые знания
Для понимания дальнейшего материала, читателю необходимы следующие навыки:
- знание составных частей и принципов работы аппаратной архитектуры x86 и периферийных устройств;
- понимание семиуровневой модели OSI, принципов построения и маршрутизации сетей TCP/IP, технологии VLAN;
- понимание терминов: виртуальный хост, виртуальная машина, гипервизор, RAID, файловая система (ФС), LVM, пакетный менеджер, кластер;
- умение работать с командной строкой Linux на уровне администратора.
Программное обеспечение
Будет использоваться следующее свободное ПО:
- Гипервизор: KVM. Почему не XEN? Просто опыта работы больше с KVM, а на данный момент важных отличий по функциональности практически нет.
- Менеджер ВМ: libvirt. Обладает богатой функциональностью и широко используется в различных проектах облачного ПО, например, OpenStack.
- Хранение данных: DRBD + DLM + CLVM + GFS2. DRBD – реализация сетевого RAID1 для Linux, обеспечивает синхронизацию данных на узлах. DLM – распределенный менеджер блокировок. CLVM – менеджер томов с поддержкой кластеризации. GFS2 – кластерная ФС. Для максимальной производительности образы ВМ будут храниться как тома LVM. При такой схеме производительность ФС не важна, GFS2 тут вполне подходит. Остальные компоненты практически не имеют альтернатив.
- Менеджер кластера: Corosync + Pacemaker. Это основная связка, используемая в современных дистрибутивах.
- ОС: CentOS 7.0. Изначально схема была развернута на Ubuntu 14.04, но при тестировании отказоустойчивости наблюдались проблемы на связке Corosync + Pacemaker. В итоге был выбран CentOS. Это, по сути, RHEL, а, если судить по багтрекерам, именно в Red Hat кластерное ПО обкатывается особенно активно. К тому же в RHEL периодически интегрируется новая функциональность KVM/libvirt.
Аппаратное обеспечение
За основу были взяты бытовые PC на Intel i7. Кратко по конфигурации:
- Материнская плата – два слота PCIEx16 (или x8). Почему – см. ниже.
- CPU, RAM – по вашим потребностям. Главное – понимать, что, если один узлов выйдет из строя, на оставшемся должно хватить ресурсов, чтобы запустить все ВМ-кластеры.
- Аппаратный RAID с батарейкой (BBU). При использовании DRBD самый простой способ обеспечить высокую скорость и отзывчивость записи при сохранении надежности – BBU. Если скорости бытового HDD для задач достаточно, можно использовать и программное зеркало md-raid. В итоге при построении кластера использовался LSI Nytro 8100-4i + LSI00355 и 4 SATA HDD размером 3 Tб, собранные в RAID-10. SSD-кэш и BBU обеспечат высокую отзывчивость, а HDD – большой объем. Контроллер занимает один слот PCIEx8 (x16 также подойдет).
- Сетевые карты. Нужно как минимум две. Одна для управления и ВМ. В данном случае встроенная в материнскую плату гигабитная карта. У второй сетевой карты задача обеспечить синхронизацию данных между узлами с минимальными накладными расходами по пропускной способности и отзывчивости, т.е. производительность передачи данных не меньшую, чем у дискового массива. Опять же для бытового HDD достаточно гигабитной сетевой карты. Для выбранного RAID был взят 2x10Gbps Intel E10G42BTDA + 2 кабеля XDACBL1M, занимает второй слот PCIEx8 (x16).
- STONITH. В отказоустойчивом кластере при недоступности одного из узлов необходимо обеспечить fencing/STONITH – экстренное выключение сбойного узла. Это обязательная часть кластера. Без этого существует риск потерять данные. Механизмы бывают разные: IPMI, PDU и другие. В данном случае использовался PDU EG-PDU-002 (распределитель питания с удаленным управлением). Этот бюджетный вариант вполне подходит для кластера из двух узлов. Однако, если планируется масштабировать кластер и есть лишние средства, лучше взять PDU посерьезнее, например, APC. Если же в наличии серверное оборудование, можно использовать модули IPMI.
- SWITCH. Сетевой коммутатор/маршрутизатор для соединения узлов и ВМ с миром. По соображениям безопасности следует использовать коммутатор с поддержкой VLAN, хотя в принципе возможен и вариант без отдельных VLAN. В описании используется коммутатор компании Сisco.
- UPS – управляемый источник бесперебойного питания.
Итак, примерная стоимость сервера из приведенных выше компонентов с 32 Гб оперативной памяти – 110 000 руб., PDU – 10 000 руб. ИБП и коммутатор не считаем, т.к. эти компоненты необходимы для использования любого сервера. ПО бесплатное. Итого – 230 000 руб. Это сопоставимо со стоимостью одного брендового сервера аналогичной производительности, но в случае кластера имеется 100% резерв.
Сетевые системы хранения данных (СХД) обеспечивают высокую надежность и производительность, но одна такая система будет стоить не меньших средств. А ведь к СХД нужны еще и отдельные вычислительные узлы. Исходя из этого можно считать реализуемый кластер бюджетным, отказоустойчивым и обеспечивающим производительность ввода-вывода, близкую к производительности локальных дисковых массивов.
Основной минус бытового оборудования – ограниченное количество оперативной памяти. Если ваши нагрузки требуют (или могут вскоре потребовать) большего, чем 32 Гб, объема памяти или других ресурсов, следует смотреть в сторону серверного оборудования. Кластерное ПО будет работать эффективно на любых мощностях.
Статью целиком читайте в журнале «Системный администратор», №11 за 2014 г. на страницах 18-23.
PDF-версию данного номера можно приобрести в нашем магазине.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|