НАСТРОЙКА » История » Версия 26
« Предыдущее -
Версия 26/36
(Разница(diff)) -
Следующее » -
Текущая версия
Dmitry Chernyak, 19.06.2016 20:41
НАСТРОЙКА¶
- НАСТРОЙКА
OVERVIEW | INSTALL | BUILD-ISO | SETUP | OPERATIONS | GITMAGIC | LICENSE | STATUS
ОБЗОР | УСТАНОВКА | НАСТРОЙКА | ОПЕРАЦИИ | МАГИЯ GIT | ЛИЦЕНЗИЯ | СОСТОЯНИЕ
Перед началом настройки убедитесь, что обе ноды включены и функционируют.
Если Вы планируете использовать второй сетевой адаптер для drbd линка, перед инициализацией кластера Вы должны настроить его.
Войдите на первую ноду через консоль или по ssh. (При соединении по ssh, из-за недоступности в этот момент DNS-сервиса, перед запросом пароля возможна
пауза до минуты).
Настройка сети¶
Схемы настройки сети могут сильно различаться в зависимости от условий установки и назначения кластера.
Здесь приведена типовая схема с двумя интерфейсами - один для интерлинка (ganeti и drbd), а другой для локальной сети.
Эта схема предпочтительна для большинства ситуаций.
Она не требует наличия гигабитных коммутаторов, предоставляет неплохую надежность и производительность при низких затратах.
Два гигабитных интерфейса на узлах подключены друг к другу напрямую или через гигабитный коммутатор(если Вы хотите более чем 2 узла в кластере).
Два других интерфейса подключаются к LAN.
В этой схеме сбой в локальной сети не влияет на работоспособность кластера.
Пример конфигурации /etc/network/interfaces:
auto xen-br0 iface xen-br0 inet static address 192.168.236.1 netmask 255.255.255.0 network 192.168.236.0 broadcast 192.168.236.255 bridge_ports eth0 bridge_stp off bridge_fd 0 # uncomment it to enable jumbo frame # up ifconfig eth0 mtu 9000 auto xen-lan iface xen-lan inet static address 192.168.5.55 netmask 255.255.255.0 network 192.168.5.0 broadcast 192.168.5.255 gateway 192.168.5.1 bridge_ports eth1 bridge_stp off bridge_fd 0
Мост xen-br0 используется для drbd и ganeti обмена, он автоматически настраивается при установке узлов.
Также адрес DNS сервера настроен установщиком - это будет адрес нашей сервисной машины(sci).
Мост xen-lan используется для подключения к локальной сети и должен быть настроен вручную (в файле interfaces есть заготовка).
В такой конфигурации Вы должны заполнить следующие переменные в sci.conf:
NODE1_IP - Уже настроено установщиком.
NODE1_NAME - Уже настроено установщиком.
NODE2_IP - укажите ip адрес второй ноды на интерлинке (например, 192.168.236.2)
NODE2_NAME - укажите имя второй ноды (напр. gnt2)
NODE1_LAN_IP - ip адрес первой ноды в локальной сети. Он будет доступен в днс под именем $NODE1_NAME-lan.$DOMAIN
NODE2_LAN_IP - ip адрес второй ноды в локальной сети. Он будет доступен в днс под именем $NODE2_NAME-lan.$DOMAIN
CLUSTER_IP - Адрес кластера в локальной сети. НЕ должен совпадать с любым другим существующим адресом. Напр. 192.168.5.35.
CLUSTER_NAME - Имя кластера в локальной сети. Будет доступно в днс под $CLUSTER_NAME.
SCI_LAN_IP - если Вы хотите, чтобы виртуальная машина sci присутствовала в lan, назначьте этот адрес, напр. 192.168.5.95
На странице Настройка сети вы можете посмотреть и выбрать другие схемы на разные случаи жизни.
Задание параметров для кластера¶
Для задания параметров следует отредактировать /etc/sci/sci.conf
Большинство параметров уже было описано выше в секции "Настройка сети".
Здесь указаны дополнительные замечания по поводу настройки:
- Вы должны указывать параметры двух узлов в соответствии с тем, как Вы их настроили.
- ПРИМЕЧАНИЕ: Вы можете настроить кластер и с одним узлом. В этом случае оставьте переменные NODE2_* пустыми.
По факту это опасная конфигурация, о чем Вы и будете предупреждены во время инициализации кластера.
Обязательные параметры:
- CLUSTER_IP - Вы обязательно должны указать ip адрес кластера. Это адрес, по которому можно всегда попасть на мастер ноду кластера.
- NODE2_NAME и NODE2_IP - Вы обязательно должны вписать имя и ip адрес второго узла, если он присутствует.
Необязательные параметры:
- NODE#_SAN_IP - ip адрес узлов в отдельной сети для drbd. Используется, если в сети присутствует отдельный сегмент для drbd. Должен быть указан для обоих нод или ни для одной.
- NODE#_LAN_IP - ip адрес узлов в LAN подсети. Должен быть указан для обоих нод или ни для одной.
- Если Вы не имеете подключения к интернету или имеете локальные зеркала для apt, скорректируйте переменные APT_*
- Если Вы хотите передавать запросы на сторонние DNS сервера, заполните DNS_FORWARDERS (не забудьте на конце ';').
- MASTER_NETDEV - имя сетевого интерфейса для поднятия ip адреса кластера. По умолчанию определяется автоматически.
- LAN_NETDEV - Сетевой интерфейс по умолчанию для виртуальных машин. По умолчанию определяется автоматически.
- RESERVED_VOLS - Список lvm томов, игнорируемых ganeti. Разделяется запятой. Следует указывать VG для каждого элемента списка.
Инициализация кластера¶
Удостоверьтесь, что на обоих узлах установлено одинаковое время.
# date Thu Mar 12 12:23:10 MSK 2015
Если нет - установите его командой
# date -s "12 MAR 2015 12:23:00"
Запустите:
# sci-setup cluster
Проверьте выведенные настройке и примите их, либо скорректируйте и запустите скрипт еще раз.
После принятия настроек запустится процесс инициализации кластера.
Далее Вы должны принять ssh ключ для второй ноды и набрать root пароль для второй ноды.
В конце Вы увидите вывод команды диагностики кластера. Он будет выглядеть наподобие этого:
Verify Wed Jan 12 15:36:10 2011 * Verifying global settings Wed Jan 12 15:36:10 2011 * Gathering data (1 nodes) Wed Jan 12 15:36:11 2011 * Verifying node status Wed Jan 12 15:36:11 2011 * Verifying instance status Wed Jan 12 15:36:11 2011 * Verifying orphan volumes Wed Jan 12 15:36:11 2011 * Verifying orphan instances Wed Jan 12 15:36:11 2011 * Verifying N+1 Memory redundancy Wed Jan 12 15:36:11 2011 * Other Notes Wed Jan 12 15:36:11 2011 * Hooks Results Node DTotal DFree MTotal MNode MFree Pinst Sinst gnt1.ganeti.example.org 100.0G 100.0G 1020M 379M 625M 0 0 gnt2.ganeti.example.org 100.0G 100.0G 1020M 379M 625M 0 0 If all is ok, proceed with /usr/local/sbin/sci-setup service
Установка сервисной виртуальной машины¶
Имя хоста для нашей сервисной виртуальной машине - sci, также имеются несколько алиасов.
Ее основной ip адрес берется из /etc/resolv.conf
на первой ноде.
Эта виртуальная машина должна присутствовать в /etc/hosts
на обоих нодах.
Запустите:
# sci-setup service
Вы увидите индикатор процесса синхронизации drbd дисков, затем:
* running the instance OS create scripts...
appears. The further may take a while. The process finishes with
* starting instance...
Теперь Вы можете подключиться к консоли виртуальной машины:
# gnt-instance console sci
Логиньтесь под рутом, пароль пустой.
ПРИМЕЧАНИЕ: Т.е. рутовый пароль пуст, ssh соединения запрещены. Установите пароль и установите openssh-server
.
Автонастройка сервисной машины¶
Система будет настроена автоматически посредством puppet.
Вы можете следить за процессом выполнения в /var/log/daemon.log
.
Поначалу в системе не будет команды less
, но Вы можете использовать more
, cat
, tail
или tail -f
пока less
не будет автоматически установлен.
В процессе автонастройки может потребоваться перезапустить puppet. По умолчанию он запускается каждые полчаса.
При желании можно перезапустить его руками:
# /etc/init.d/puppet restart
Повторяйте это раз в несколько минут, пока не увидите, что puppet больше ничего не делает.
Установка новых виртуальных машин¶
Новые виртуальные машины добавляются стандартными командами ganeti:
gnt-instance add -t drbd -o debootstrap+default -s 10g -B memory=256m -n NODE1_NAME:NODE2_NAME INSTANCE_NAMEОднако, наш проект дополняет процесс несколькими специфичными хуками:
- На каждую машину ставится
puppet
для автоконфигурации,openssh-client
для обмена файлами и т.д. - На каждую машину ставится pygrub.
- Сетевые настройки для машины могут быть назначены автоматически(см. ниже).
Автонастройка сети на виртуальных машинах.¶
Если Вам необходимо, чтобы виртуальные машины могли быть подключены к нескольким сетям и Вам необходимы статичные
настройки сети на них, Вы должны заполнить файл /etc/ganeti/networks
всеми нужными для подключения машин сетями.
Каждая строчка файла имеет формат:
NETWORK | NETMASK | BROADCAST | GATEWAY |
Ganeti instance debootstrap хук смотрит в этот файл, находит сеть для заданного ip и настраивает сеть
на виртуальной машине автоматически.
ПРИМЕЧАНИЕ: Этот файл заполняется при инициализации кластера, так что в большинстве случаев Вам не потребуется
туда что-то добавлять.
ПРИМЕЧАНИЕ: файл networks должен присутствовать на каждой ноде (еще не автоматизировано).
Добавление фильтра в настройки lvm:¶
При дефолтных настройках lvm многие операции с кластером могут быть сильно замедленными при большом количестве lvm томов.
Поэтому в sci по умолчанию используется фильтр в /etc/lvm/lvm.conf, который ищет vg только на md:
filter = [ "a/md/", "r/.*/" ]
Если Вы не используете md, фильтр нужно заменить на:
filter = [ "a/.*/" ]
и выполнить
vgscan
Добавление дополнительной VG¶
Если в сервере есть два типа дисков, например 2xSATA + 8xSAS, то необходимо иницииализировать вторую VG и (при необходимости) сделать ее основной для создания виртуальных машин:
Действия выполняются на каждой ноде:
Разметить диск:
fdisk /dev/sdc
создать primary раздел на весь диск
Растиражировать разбивку на все диски (будьте осторожны, не промахнитесь дисками):
for i in d e f g h i j; do sfdisk -d /dev/sdc|sfdisk /dev/sd$i; done
Проинициализировать md, vg
mdadm --create -n8 -l10 /dev/md3 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1 /dev/sdj1 pvcreate /dev/md3 vgcreate sas /dev/md3
И, наконец, настроить кластер по умолчанию на использование новой vg (выполняется 1 раз, на мастере):
gnt-cluster modify --vg-name=sas --disk-parameters=drbd:metavg=sas
По умолчанию для всех дисков в кластере устанавливается шедулер deadline
В случае, если используется аппаратный raid контроллер или отдельное хранилище, подключенное по FC/Infiniband/iSCSI, то, ВОЗМОЖНО, будет иметь смысл поставить шедулер noop. Однако, deadline подходит для всех типов дисков.
Статья про сравнение трех вариантов offset в raid10 (в SCI используется дефолтный, NEAR):
http://www.ilsistemista.net/index.php/linux-a-unix/35-linux-software-raid-10-layouts-performance-near-far-and-offset-benchmark-analysis.html?start=1
Настройка Hugepages¶
Операции с кластером¶
Читайте в ОПЕРАЦИИ.