Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)

Ontico
OnticoOntico
Отказоустойчивый 
микрокластер своими 
руками 
Виталий Гаврилов
Суть доклада 
• Построение отказоустойчивой «фермы» 
• Блочные устройства с высоким уровнем 
доступности и актуальности 
• «Живая» миграция виртуальных машин 
внутри «фермы» 
• «Отказоустойчивые» ip сервисы на базе 
corosync/pacemaker или carp/ucarp
Типовые решения 
• Полноценный кластер – дорого, 
сложно, тяжело поддерживать
Типовые решения 
• Некластеризованные 
виртуальные/реальные 
сервера с 
синхронизацией данных 
«по необходимости» 
либо «по расписанию» с 
дублированием – 
избыточные ресурсы, 
дополнительные 
расходы на 
синхронизацию
Цель доклада 
Отказоустойчивый 
микрокластер 
«собранный» из 
попарно соединенных 
физических серверов. 
Бюджетно и надежно.
Схема сетевой линковки
Схема сетевой линковки
Операционная система 
Операционная система – Oracle Linux 
• Бесплатная поддержка (обновления) 
• Единый репозиторий как для 
коммерческих так и для платных 
условий поддержки 
• Продолжительный период поддержки
Разбивка диска 
• /boot/ - 200 Mb 
• SWAP – от 0.5 до 2.0 от объема RAM 
• Остальное под LVM (группа vg0) 
– / - 10Gb (volume_name = root) 
– Остальное не распределяем 
/boot 
data 
swap 
root
Конфигурация сетевых интерфейсов (bonding) 
/etc/sysconfig/network-scripts/eth[0-1] 
DEVICE="eth[0-1]" 
BOOTPROTO="static" 
HWADDR=“XX:XX:XX:XX:XX:XX" 
NM_CONTROLLED="no" 
ONBOOT="yes" 
MASTER=bond0 
SLAVE=yes 
TYPE="Ethernet" 
/etc/sysconfig/network-scripts/bond0 
DEVICE=bond0 
BOOTPROTO=none 
ONBOOT=yes 
IPADDR=EXT IP (LEFT|RIGHT) 
NETMASK=X.X.X.X 
TYPE=Bonding 
USERCRL=no 
BONDING_OPTS="mode=1 miimon=100" 
/etc/sysconfig/network-scripts/eth[2-3] 
DEVICE="eth[2-3]" 
BOOTPROTO="static" 
HWADDR=“XX:XX:XX:XX:XX:XX" 
NM_CONTROLLED="no" 
ONBOOT="yes" 
MASTER=bond1 
SLAVE=yes 
MTU=9000 
TYPE="Ethernet“ 
/etc/sysconfig/network-scripts/bond1 
DEVICE=bond0 
BOOTPROTO=none 
ONBOOT=yes 
IPADDR=INT IP (LEFT|RIGHT) 
NETMASK=255.255.255.252 
TYPE=Bonding 
USERCRL=no 
MTU=9000 
BONDING_OPTS="mode=0 miimon=100"
Конфигурация сетевых интерфейсов (bridge) 
/etc/sysconfig/network-scripts/bond0 
DEVICE=bond0 
BOOTPROTO=none 
ONBOOT=yes 
TYPE=Bonding 
USERCRL=no 
BONDING_OPTS="mode=1 miimon=100" 
BRIDGE=br0 
/etc/sysconfig/network-scripts/ifcfg-br0 
DEVICE=br0 
BOOTPROTO=static 
IPADDR=EXT IP (LEFT|RIGHT) 
NETMASK=X.X.X.X 
ONBOOT=yes 
TYPE=Brige 
IPV6INIT=no 
STP=(on|off) 
/etc/sysconfig/network-scripts/bond1 
DEVICE=bond0 
BOOTPROTO=none 
ONBOOT=yes 
TYPE=Bonding 
USERCRL=no 
BONDING_OPTS="mode=0 miimon=100“ 
MTU=9000 
BRIDGE=br1 
/etc/sysconfig/network-scripts/ifcfg-br1 
DEVICE=br1 
BOOTPROTO=static 
IPADDR=INT IP (LEFT|RIGHT) 
NETMASK=255.255.255.252 
ONBOOT=yes 
TYPE=Brige 
IPV6INIT=no 
MTU=9000 
STP=off
Настраиваем Firewall 
#/etc/sysconfig/iptables 
-A INPUT -i br1 -j ACCEPT 
#service iptables restart
Результаты 
• Пара серверов 
• Отказоустойчивая связность между 
собой с размером пакеты mtu=9000 
• Отказоустойчивый выход в сеть 
• Операционная система с поддержкой 
файловой системы OCFS2
Дисковое пространство 
• Создаем на каждом сервере раздел 
lvcreate --name=data --size=(полный объем свободного места в группе) vg0 
• Конфигурируем DRBD 
/etc/drbd.d/shared.res 
resource shared { 
protocol C; 
net { 
allow-two-primaries; 
sndbuf-size 0; 
} 
disk { 
no-disk-barrier; 
no-disk-flushes; 
} 
startup { 
become-primary-on both; 
} 
on HOSTNAME_LEFT { 
device minor 1; 
disk /dev/vg0/data; 
address INT IP LEFT:7789; 
meta-disk internal; 
} 
on HOSTNAME_RIGHT { 
device minor 1; 
disk /dev/vg0/data; 
address INT IP RIGHT:7789; 
meta-disk internal; 
} 
}
Дисковое пространство 
• Инициализируем раздел на обоих серверах 
# drbdadm create-md shared 
• Запускаем DRBD на обоих серверах 
# service drbd start 
# chkconfig drbd on 
• На любом сервере 
# drbdadm invalidate shared 
• Ожидаем пока #service drbd status покажет 
завершение синхронизации 
• На обоих узлах 
# drbdadm primary shared
Результат 
• Настроенная пара серверов с 
синхронизируемым дисковым 
пространством (блочным устройством) 
без файловой системы 
• На каждом сервере устройство 
доступно лдя чтения и записи
Файловая система 
• Ставим нужные пакеты 
# yum install ocfs2-tools 
• Настраиваем 
# /etc/ocfs2/cluster.conf 
node: 
ip_port = 7777 
ip_address = INT IP LEFT 
number = 0 
name = HOSTNAME_LEFT 
cluster = ocfs2 
node: 
ip_port = 7777 
ip_address = INT IP RIGHT 
number = 1 
name = HOSTNAME_RIGHT 
cluster = ocfs2 
cluster: 
node_count = 2 
name = ocfs2 
# service o2cb configure
Файловая система (продолжение) 
• Создаем файловую систему 
на любом сервере 
# mkfs.ocfs2 -F -N 3 -J block64 -L drbd_ocfs --mount 
cluster -T (datafiles|vmstore) /dev/drbd/by-res/shared 
• Настраиваем таблицу разделов 
на обоих серверах 
# /etc/fstab 
/dev/drbd1 /mnt/shared ocfs2 
defaults,noexec,nosuid,noacl,nouser_xattr,errors=remount-ro,localflocks 
• Монтируем файловую систему 
на обоих узлах 
# mkdir –p /mnt/shared/;chkconfig ocfs2 on;service ocf2 start
Проверка 
• Перезагружаем любой сервер 
и убеждаемся что все работает 
• Делаем чтобы работало 
• Не забываем что узлов 2
Результат 
• Получили пару серверов с надежной 
файловой системой при этом в случае 
отказа одного из серверов все данные 
будут доступны 
• Можно переходить к виртуальным 
машинам
Структура раздела /mnt/shared 
• /mnt/shared/ 
• /mnt/shared/data/ 
• /mnt/shared/data/image1.bin 
• … 
• /mnt/shared/xml/ 
• /mnt/shared/xml/vhost1.xml 
• …
А дальше все просто! 
• Запускаем установку ОС 
• # virt-install -n vhost1 -l 
http://mirror.yandex.ru/centos/6.5/os/x86_64/ 
--vnc --disk path=/mnt/shared/data/iamge1- 
root.bin,size=200 –prompt 
• Ставим ОС 
• Сохраняем конфигурацию 
• # virsh dumpxml vhost1 > 
/mnt/shared/xml/vhost1.xml
А дальше все просто! 
• Живая миграция виртуальной машины 
# virsh --connect=qemu:///system --quiet migrate 
--live vhost1 qemu+ssh://INT_IP/system 
(лучше происать внутренние адреса серверов в 
/etc/hosts) 
• Один сервер умер, срочно запускам на втором 
# virsh define /mnt/shared/xml/vhost1.xml 
# virsh start vhost1
А как бы автоматизировать 
• Pacemaker/corosync 
• Не забываем про STONITH девайсы 
• Ставим на мониторинг 
• Переодически проверяем
Отказоустойчивость сервиса 
• Оперативный запуск виртуальных 
машин – 1-15 минут в зависимости от 
сервиса 
• Наличие пассивного дублера – 
миграция ip адресов 
• Поддержка двух активных сервисов с 
автоматическим запуском по факту 
отказа
Отказоустойчивые ip адреса и 
сервисы 
Решений много 
1. HSRP – надежное аппаратное решение, требует 
наличия поддерживающего оборудования. Не 
знает ничего про другие сервисы, чем и 
ограничивается возможность применения. 
2. carp/ucarp – просто, надежно. Не знает ничего про 
другие сервисы, чем и ограничивается 
возможность применения. 
3. Heartbeat – фактически предок pacemaker/corosync. 
Конфигурировать сложно 
4. Pacemaker/corosync – аналог heartbeat но проще 
настраивать.
Отказоустойчивые ip адреса и 
сервисы 
Инструмент 
Управление 
сервисами 
Простота 
настройки Особенности 
HSRP Нет 
Зависит от конечного 
решения Требуется аппаратная поддержка 
UCARP Нет Просто 
heartbeat Да Сложно 
Может некорректно работать при 
высокой нагрузке на систему 
pacemaker/corosync Да Средне 
Может некорректно работать при 
высокой нагрузке на систему
Ограничение решения 
• Виртуальные машины не могут быть 
смигрированы за пределы своей пары хостов 
• Операции ввода-вывода медленнее чем при 
некластерной (например ext3) файловой 
системе или локальном блочном устройстве 
выделенном через LVM 
• На каждом хосте необходимо иметь 
достаточно памяти для размещения всех 
критичных виртуальных машин этой пары 
хостовых машин
Типовые проблемы и решения 
• Рассинхронизация DRBD после 
перезагрузки или аварийного сбоя 
Не запускать виртуальные машины на 
хосте. На котором идет восстановление 
drbd до его завершения. 
Минимизирвоать операции ввода- 
вывода на неповрежденном хосте. При 
необходимости остановить 
синхронизацию и запустиьт ее в менее 
нагруженный интервал времени.
Вопросы
1 von 30

Recomendados

Модификации KVM для работы в кластере, Андрей Шетухин von
Модификации KVM для работы в кластере, Андрей ШетухинМодификации KVM для работы в кластере, Андрей Шетухин
Модификации KVM для работы в кластере, Андрей ШетухинOntico
2K views35 Folien
Использование Hadoop в Badoo, Валерий Старынин (Badoo) von
Использование Hadoop в Badoo, Валерий Старынин (Badoo)Использование Hadoop в Badoo, Валерий Старынин (Badoo)
Использование Hadoop в Badoo, Валерий Старынин (Badoo)Ontico
1.5K views32 Folien
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix) von
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)Ontico
11.5K views29 Folien
Анатомия веб сервиса (HighLoad-2014) von
Анатомия веб сервиса (HighLoad-2014)Анатомия веб сервиса (HighLoad-2014)
Анатомия веб сервиса (HighLoad-2014)Andrey Smirnov
18K views44 Folien
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel) von
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)Ontico
776 views20 Folien
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п... von
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...Ontico
449 views19 Folien

Más contenido relacionado

Was ist angesagt?

Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C... von
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Ontico
1.9K views48 Folien
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte) von
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Ontico
1.1K views25 Folien
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS) von
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)Ontico
2.2K views69 Folien
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta... von
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Ontico
2.9K views52 Folien
HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut... von
HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...
HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...Ontico
899 views15 Folien
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве... von
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Ontico
2K views50 Folien

Was ist angesagt?(20)

Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C... von Ontico
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Ontico1.9K views
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte) von Ontico
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Ontico1.1K views
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS) von Ontico
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
Ontico2.2K views
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta... von Ontico
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Ontico2.9K views
HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut... von Ontico
HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...
HDD, SSD, RAM, RAID, и кого на ком кэшировать / Михаил Конюхов (Perfect Solut...
Ontico899 views
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве... von Ontico
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Ontico2K views
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд... von Ontico
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
Ontico17.7K views
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо... von Ontico
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Как считать и анализировать сотни гигабит трафика в секунду, Станислав Николо...
Ontico1.7K views
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск... von Ontico
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Ontico3.8K views
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай von Ontico
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайnoBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
Ontico772 views
Анатомия веб-сервиса (РИТ-2014) von Andrey Smirnov
Анатомия веб-сервиса (РИТ-2014)Анатомия веб-сервиса (РИТ-2014)
Анатомия веб-сервиса (РИТ-2014)
Andrey Smirnov2.8K views
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS) von Ontico
Путь от монолита на PHP к микросервисам на Scala  / Денис Иванов (2GIS)Путь от монолита на PHP к микросервисам на Scala  / Денис Иванов (2GIS)
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)
Ontico3K views
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru) von Ontico
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)
Ontico2.1K views
VMUG Moscow 2014 Проблемы с дисками? von Anton Zhbankov
VMUG Moscow 2014 Проблемы с дисками?VMUG Moscow 2014 Проблемы с дисками?
VMUG Moscow 2014 Проблемы с дисками?
Anton Zhbankov7.2K views
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба) von Ontico
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Ontico1.1K views
Максим Дунин, Nginx, Inc. von Ontico
Максим Дунин, Nginx, Inc.Максим Дунин, Nginx, Inc.
Максим Дунин, Nginx, Inc.
Ontico2.9K views
Балансировка нагрузки и отказоустойчивость в Одноклассниках von Ontico
Балансировка нагрузки и отказоустойчивость в ОдноклассникахБалансировка нагрузки и отказоустойчивость в Одноклассниках
Балансировка нагрузки и отказоустойчивость в Одноклассниках
Ontico1.4K views
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis) von Ontico
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
Ontico704 views
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк) von Ontico
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
Ontico1.4K views

Similar a Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)

Конференция Highload++ 2014, "Отказоустойчивый микрокластер своими руками", "... von
Конференция Highload++ 2014, "Отказоустойчивый микрокластер своими руками", "...Конференция Highload++ 2014, "Отказоустойчивый микрокластер своими руками", "...
Конференция Highload++ 2014, "Отказоустойчивый микрокластер своими руками", "...Lenvendo
3.9K views31 Folien
Другая виртуализация von
Другая виртуализацияДругая виртуализация
Другая виртуализацияYandex
1.6K views35 Folien
Практический опыт использования некоторых современных решений репликации MySQL von
Практический опыт использования некоторых современных решений репликации MySQLПрактический опыт использования некоторых современных решений репликации MySQL
Практический опыт использования некоторых современных решений репликации MySQLAlex Chistyakov
1.9K views45 Folien
Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018 von
Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018
Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018GigaCloud
336 views20 Folien
GRANIT — Global Russian Advanced Network Initiative von
GRANIT — Global Russian Advanced Network InitiativeGRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network InitiativeARCCN
614 views28 Folien
TMPA-2013 Sartakov: Genode von
TMPA-2013 Sartakov: GenodeTMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeIosif Itkin
638 views35 Folien

Similar a Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)(20)

Конференция Highload++ 2014, "Отказоустойчивый микрокластер своими руками", "... von Lenvendo
Конференция Highload++ 2014, "Отказоустойчивый микрокластер своими руками", "...Конференция Highload++ 2014, "Отказоустойчивый микрокластер своими руками", "...
Конференция Highload++ 2014, "Отказоустойчивый микрокластер своими руками", "...
Lenvendo 3.9K views
Другая виртуализация von Yandex
Другая виртуализацияДругая виртуализация
Другая виртуализация
Yandex1.6K views
Практический опыт использования некоторых современных решений репликации MySQL von Alex Chistyakov
Практический опыт использования некоторых современных решений репликации MySQLПрактический опыт использования некоторых современных решений репликации MySQL
Практический опыт использования некоторых современных решений репликации MySQL
Alex Chistyakov1.9K views
Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018 von GigaCloud
Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018
Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018
GigaCloud336 views
GRANIT — Global Russian Advanced Network Initiative von ARCCN
GRANIT — Global Russian Advanced Network InitiativeGRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network Initiative
ARCCN614 views
TMPA-2013 Sartakov: Genode von Iosif Itkin
TMPA-2013 Sartakov: GenodeTMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: Genode
Iosif Itkin638 views
Обзор Continuous integration инструментов von Vitalii Morvaniuk
Обзор Continuous integration инструментовОбзор Continuous integration инструментов
Обзор Continuous integration инструментов
Vitalii Morvaniuk423 views
Контейнеры в OpenStack: простое решение сложных проблем von Yandex
Контейнеры в OpenStack: простое решение сложных проблемКонтейнеры в OpenStack: простое решение сложных проблем
Контейнеры в OpenStack: простое решение сложных проблем
Yandex1.2K views
Контейнеры в OpenStack: простое решение сложных проблем von OpenVZ
Контейнеры в OpenStack: простое решение сложных проблемКонтейнеры в OpenStack: простое решение сложных проблем
Контейнеры в OpenStack: простое решение сложных проблем
OpenVZ383 views
DataCore case studies von korn_aaf
DataCore case studies DataCore case studies
DataCore case studies
korn_aaf290 views
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера von Cisco Russia
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдераАвтономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
Cisco Russia 484 views
Hosting for forbes.ru_ von drupalconf
Hosting for forbes.ru_Hosting for forbes.ru_
Hosting for forbes.ru_
drupalconf449 views
Вебинар по отказоустойчивости, 13.04.2017 von S-Terra CSP
Вебинар по отказоустойчивости, 13.04.2017Вебинар по отказоустойчивости, 13.04.2017
Вебинар по отказоустойчивости, 13.04.2017
S-Terra CSP264 views
Считаем Рунет или миллион pps в секунду / Дмитрий Смирнов (TNS Russia) von Ontico
Считаем Рунет или миллион pps в секунду / Дмитрий Смирнов (TNS Russia)Считаем Рунет или миллион pps в секунду / Дмитрий Смирнов (TNS Russia)
Считаем Рунет или миллион pps в секунду / Дмитрий Смирнов (TNS Russia)
Ontico545 views
Пакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностей von Cisco Russia
Пакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностейПакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностей
Пакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностей
Cisco Russia 468 views
Опыт внедрения OpenStack von Yandex
Опыт внедрения OpenStackОпыт внедрения OpenStack
Опыт внедрения OpenStack
Yandex2.1K views
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуре von DEPO Computers
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуреСХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуре
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуре
DEPO Computers950 views
Linux Terminal Server Project von Ilya Siganov
 Linux Terminal Server Project Linux Terminal Server Project
Linux Terminal Server Project
Ilya Siganov252 views

Más de Ontico

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье... von
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...Ontico
3.4K views50 Folien
Масштабируя DNS / Артем Гавриченков (Qrator Labs) von
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Ontico
1.1K views78 Folien
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft) von
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
1.3K views24 Folien
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса... von
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
1.1K views58 Folien
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre... von
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Ontico
1.1K views28 Folien
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres) von
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)Ontico
2.3K views35 Folien

Más de Ontico(20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье... von Ontico
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
Ontico3.4K views
Масштабируя DNS / Артем Гавриченков (Qrator Labs) von Ontico
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Ontico1.1K views
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft) von Ontico
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Ontico1.3K views
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса... von Ontico
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Ontico1.1K views
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre... von Ontico
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Ontico1.1K views
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres) von Ontico
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
Ontico2.3K views
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve... von Ontico
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Ontico4.3K views
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский... von Ontico
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Ontico440 views
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona) von Ontico
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
Ontico766 views
MySQL Replication — Advanced Features / Петр Зайцев (Percona) von Ontico
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
Ontico429 views
Внутренний open-source. Как разрабатывать мобильное приложение большим количе... von Ontico
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Ontico1.2K views
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев... von Ontico
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Ontico544 views
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ... von Ontico
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Ontico372 views
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs) von Ontico
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Ontico450 views
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС) von Ontico
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
Ontico361 views
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU) von Ontico
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Ontico2K views
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.) von Ontico
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Ontico1.7K views
100500 способов кэширования в Oracle Database или как достичь максимальной ск... von Ontico
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
Ontico286 views
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает... von Ontico
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Ontico434 views
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P... von Ontico
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Ontico379 views

Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)

  • 1. Отказоустойчивый микрокластер своими руками Виталий Гаврилов
  • 2. Суть доклада • Построение отказоустойчивой «фермы» • Блочные устройства с высоким уровнем доступности и актуальности • «Живая» миграция виртуальных машин внутри «фермы» • «Отказоустойчивые» ip сервисы на базе corosync/pacemaker или carp/ucarp
  • 3. Типовые решения • Полноценный кластер – дорого, сложно, тяжело поддерживать
  • 4. Типовые решения • Некластеризованные виртуальные/реальные сервера с синхронизацией данных «по необходимости» либо «по расписанию» с дублированием – избыточные ресурсы, дополнительные расходы на синхронизацию
  • 5. Цель доклада Отказоустойчивый микрокластер «собранный» из попарно соединенных физических серверов. Бюджетно и надежно.
  • 8. Операционная система Операционная система – Oracle Linux • Бесплатная поддержка (обновления) • Единый репозиторий как для коммерческих так и для платных условий поддержки • Продолжительный период поддержки
  • 9. Разбивка диска • /boot/ - 200 Mb • SWAP – от 0.5 до 2.0 от объема RAM • Остальное под LVM (группа vg0) – / - 10Gb (volume_name = root) – Остальное не распределяем /boot data swap root
  • 10. Конфигурация сетевых интерфейсов (bonding) /etc/sysconfig/network-scripts/eth[0-1] DEVICE="eth[0-1]" BOOTPROTO="static" HWADDR=“XX:XX:XX:XX:XX:XX" NM_CONTROLLED="no" ONBOOT="yes" MASTER=bond0 SLAVE=yes TYPE="Ethernet" /etc/sysconfig/network-scripts/bond0 DEVICE=bond0 BOOTPROTO=none ONBOOT=yes IPADDR=EXT IP (LEFT|RIGHT) NETMASK=X.X.X.X TYPE=Bonding USERCRL=no BONDING_OPTS="mode=1 miimon=100" /etc/sysconfig/network-scripts/eth[2-3] DEVICE="eth[2-3]" BOOTPROTO="static" HWADDR=“XX:XX:XX:XX:XX:XX" NM_CONTROLLED="no" ONBOOT="yes" MASTER=bond1 SLAVE=yes MTU=9000 TYPE="Ethernet“ /etc/sysconfig/network-scripts/bond1 DEVICE=bond0 BOOTPROTO=none ONBOOT=yes IPADDR=INT IP (LEFT|RIGHT) NETMASK=255.255.255.252 TYPE=Bonding USERCRL=no MTU=9000 BONDING_OPTS="mode=0 miimon=100"
  • 11. Конфигурация сетевых интерфейсов (bridge) /etc/sysconfig/network-scripts/bond0 DEVICE=bond0 BOOTPROTO=none ONBOOT=yes TYPE=Bonding USERCRL=no BONDING_OPTS="mode=1 miimon=100" BRIDGE=br0 /etc/sysconfig/network-scripts/ifcfg-br0 DEVICE=br0 BOOTPROTO=static IPADDR=EXT IP (LEFT|RIGHT) NETMASK=X.X.X.X ONBOOT=yes TYPE=Brige IPV6INIT=no STP=(on|off) /etc/sysconfig/network-scripts/bond1 DEVICE=bond0 BOOTPROTO=none ONBOOT=yes TYPE=Bonding USERCRL=no BONDING_OPTS="mode=0 miimon=100“ MTU=9000 BRIDGE=br1 /etc/sysconfig/network-scripts/ifcfg-br1 DEVICE=br1 BOOTPROTO=static IPADDR=INT IP (LEFT|RIGHT) NETMASK=255.255.255.252 ONBOOT=yes TYPE=Brige IPV6INIT=no MTU=9000 STP=off
  • 12. Настраиваем Firewall #/etc/sysconfig/iptables -A INPUT -i br1 -j ACCEPT #service iptables restart
  • 13. Результаты • Пара серверов • Отказоустойчивая связность между собой с размером пакеты mtu=9000 • Отказоустойчивый выход в сеть • Операционная система с поддержкой файловой системы OCFS2
  • 14. Дисковое пространство • Создаем на каждом сервере раздел lvcreate --name=data --size=(полный объем свободного места в группе) vg0 • Конфигурируем DRBD /etc/drbd.d/shared.res resource shared { protocol C; net { allow-two-primaries; sndbuf-size 0; } disk { no-disk-barrier; no-disk-flushes; } startup { become-primary-on both; } on HOSTNAME_LEFT { device minor 1; disk /dev/vg0/data; address INT IP LEFT:7789; meta-disk internal; } on HOSTNAME_RIGHT { device minor 1; disk /dev/vg0/data; address INT IP RIGHT:7789; meta-disk internal; } }
  • 15. Дисковое пространство • Инициализируем раздел на обоих серверах # drbdadm create-md shared • Запускаем DRBD на обоих серверах # service drbd start # chkconfig drbd on • На любом сервере # drbdadm invalidate shared • Ожидаем пока #service drbd status покажет завершение синхронизации • На обоих узлах # drbdadm primary shared
  • 16. Результат • Настроенная пара серверов с синхронизируемым дисковым пространством (блочным устройством) без файловой системы • На каждом сервере устройство доступно лдя чтения и записи
  • 17. Файловая система • Ставим нужные пакеты # yum install ocfs2-tools • Настраиваем # /etc/ocfs2/cluster.conf node: ip_port = 7777 ip_address = INT IP LEFT number = 0 name = HOSTNAME_LEFT cluster = ocfs2 node: ip_port = 7777 ip_address = INT IP RIGHT number = 1 name = HOSTNAME_RIGHT cluster = ocfs2 cluster: node_count = 2 name = ocfs2 # service o2cb configure
  • 18. Файловая система (продолжение) • Создаем файловую систему на любом сервере # mkfs.ocfs2 -F -N 3 -J block64 -L drbd_ocfs --mount cluster -T (datafiles|vmstore) /dev/drbd/by-res/shared • Настраиваем таблицу разделов на обоих серверах # /etc/fstab /dev/drbd1 /mnt/shared ocfs2 defaults,noexec,nosuid,noacl,nouser_xattr,errors=remount-ro,localflocks • Монтируем файловую систему на обоих узлах # mkdir –p /mnt/shared/;chkconfig ocfs2 on;service ocf2 start
  • 19. Проверка • Перезагружаем любой сервер и убеждаемся что все работает • Делаем чтобы работало • Не забываем что узлов 2
  • 20. Результат • Получили пару серверов с надежной файловой системой при этом в случае отказа одного из серверов все данные будут доступны • Можно переходить к виртуальным машинам
  • 21. Структура раздела /mnt/shared • /mnt/shared/ • /mnt/shared/data/ • /mnt/shared/data/image1.bin • … • /mnt/shared/xml/ • /mnt/shared/xml/vhost1.xml • …
  • 22. А дальше все просто! • Запускаем установку ОС • # virt-install -n vhost1 -l http://mirror.yandex.ru/centos/6.5/os/x86_64/ --vnc --disk path=/mnt/shared/data/iamge1- root.bin,size=200 –prompt • Ставим ОС • Сохраняем конфигурацию • # virsh dumpxml vhost1 > /mnt/shared/xml/vhost1.xml
  • 23. А дальше все просто! • Живая миграция виртуальной машины # virsh --connect=qemu:///system --quiet migrate --live vhost1 qemu+ssh://INT_IP/system (лучше происать внутренние адреса серверов в /etc/hosts) • Один сервер умер, срочно запускам на втором # virsh define /mnt/shared/xml/vhost1.xml # virsh start vhost1
  • 24. А как бы автоматизировать • Pacemaker/corosync • Не забываем про STONITH девайсы • Ставим на мониторинг • Переодически проверяем
  • 25. Отказоустойчивость сервиса • Оперативный запуск виртуальных машин – 1-15 минут в зависимости от сервиса • Наличие пассивного дублера – миграция ip адресов • Поддержка двух активных сервисов с автоматическим запуском по факту отказа
  • 26. Отказоустойчивые ip адреса и сервисы Решений много 1. HSRP – надежное аппаратное решение, требует наличия поддерживающего оборудования. Не знает ничего про другие сервисы, чем и ограничивается возможность применения. 2. carp/ucarp – просто, надежно. Не знает ничего про другие сервисы, чем и ограничивается возможность применения. 3. Heartbeat – фактически предок pacemaker/corosync. Конфигурировать сложно 4. Pacemaker/corosync – аналог heartbeat но проще настраивать.
  • 27. Отказоустойчивые ip адреса и сервисы Инструмент Управление сервисами Простота настройки Особенности HSRP Нет Зависит от конечного решения Требуется аппаратная поддержка UCARP Нет Просто heartbeat Да Сложно Может некорректно работать при высокой нагрузке на систему pacemaker/corosync Да Средне Может некорректно работать при высокой нагрузке на систему
  • 28. Ограничение решения • Виртуальные машины не могут быть смигрированы за пределы своей пары хостов • Операции ввода-вывода медленнее чем при некластерной (например ext3) файловой системе или локальном блочном устройстве выделенном через LVM • На каждом хосте необходимо иметь достаточно памяти для размещения всех критичных виртуальных машин этой пары хостовых машин
  • 29. Типовые проблемы и решения • Рассинхронизация DRBD после перезагрузки или аварийного сбоя Не запускать виртуальные машины на хосте. На котором идет восстановление drbd до его завершения. Минимизирвоать операции ввода- вывода на неповрежденном хосте. При необходимости остановить синхронизацию и запустиьт ее в менее нагруженный интервал времени.