НАСТРОЙКА » История » Версия 13
Владимир Ипатов, 22.04.2014 16:05
1 | 1 | Владимир Ипатов | h1. НАСТРОЙКА |
---|---|---|---|
2 | 1 | Владимир Ипатов | |
3 | 2 | Владимир Ипатов | {{toc}} |
4 | 2 | Владимир Ипатов | |
5 | 10 | Dmitry Chernyak | [[OVERVIEW]] | [[INSTALL]] | [[BUILD-ISO]] | [[SETUP]] | [[OPERATIONS]] | [[GITMAGIC]] | [[LICENSE]] | [[STATUS]] |
6 | 10 | Dmitry Chernyak | на Русском: [[ОБЗОР]] | [[СБОРКА-ISO]] | [[УСТАНОВКА]] | [[НАСТРОЙКА]] | [[ОПЕРАЦИИ]] | [[МАГИЯ GIT]] | [[ЛИЦЕНЗИЯ]] | [[СОСТОЯНИЕ]] |
7 | 4 | Dmitry Chernyak | |
8 | 2 | Владимир Ипатов | Перед началом настройки убедитесь, что обе ноды включены и функционируют. |
9 | 2 | Владимир Ипатов | |
10 | 2 | Владимир Ипатов | Если Вы планируете использовать второй сетевой адаптер для drbd линка, перед инициализацией кластера Вы должны настроить его. |
11 | 7 | Dmitry Chernyak | Войдите на первую ноду через консоль или по ssh. (При соединении по ssh, из-за недоступности в этот момент DNS-сервиса, перед запросом пароля возможна |
12 | 7 | Dmitry Chernyak | пауза до минуты). |
13 | 2 | Владимир Ипатов | |
14 | 1 | Владимир Ипатов | h2. Настройка сети |
15 | 2 | Владимир Ипатов | |
16 | 8 | Dmitry Chernyak | Схемы настройки сети могут сильно различаться в зависимости от условий установки и назначения кластера. |
17 | 8 | Dmitry Chernyak | Здесь приведена типовая схема с двумя интерфейсами - один для интерлинка (ganeti и drbd), а другой для локальной сети. |
18 | 2 | Владимир Ипатов | |
19 | 2 | Владимир Ипатов | Эта схема предпочтительна для большинства ситуаций. |
20 | 8 | Dmitry Chernyak | Она не требует наличия гигабитных коммутаторов, предоставляет неплохую надежность и производительность при низких затратах. |
21 | 8 | Dmitry Chernyak | Два гигабитных интерфейса на узлах подключены друг к другу напрямую или через гигабитный коммутатор(если Вы хотите более чем 2 узла в кластере). |
22 | 8 | Dmitry Chernyak | Два других интерфейса подключаются к LAN. |
23 | 2 | Владимир Ипатов | В этой схеме сбой в локальной сети не влияет на работоспособность кластера. |
24 | 8 | Dmitry Chernyak | Пример конфигурации /etc/network/interfaces: |
25 | 2 | Владимир Ипатов | <pre>auto xen-br0 |
26 | 2 | Владимир Ипатов | iface xen-br0 inet static |
27 | 2 | Владимир Ипатов | address 192.168.236.1 |
28 | 2 | Владимир Ипатов | netmask 255.255.255.0 |
29 | 2 | Владимир Ипатов | network 192.168.236.0 |
30 | 2 | Владимир Ипатов | broadcast 192.168.236.255 |
31 | 2 | Владимир Ипатов | bridge_ports eth0 |
32 | 2 | Владимир Ипатов | bridge_stp off |
33 | 2 | Владимир Ипатов | bridge_fd 0 |
34 | 13 | Владимир Ипатов | # uncomment it to enable jumbo frame |
35 | 2 | Владимир Ипатов | # up ifconfig eth0 mtu 9000 |
36 | 2 | Владимир Ипатов | |
37 | 2 | Владимир Ипатов | auto xen-lan |
38 | 2 | Владимир Ипатов | iface xen-lan inet static |
39 | 2 | Владимир Ипатов | address 192.168.5.55 |
40 | 2 | Владимир Ипатов | netmask 255.255.255.0 |
41 | 2 | Владимир Ипатов | network 192.168.5.0 |
42 | 2 | Владимир Ипатов | broadcast 192.168.5.255 |
43 | 2 | Владимир Ипатов | gateway 192.168.5.1 |
44 | 2 | Владимир Ипатов | bridge_ports eth1 |
45 | 2 | Владимир Ипатов | bridge_stp off |
46 | 2 | Владимир Ипатов | bridge_fd 0 |
47 | 2 | Владимир Ипатов | </pre> |
48 | 8 | Dmitry Chernyak | |
49 | 8 | Dmitry Chernyak | Мост xen-br0 используется для drbd и ganeti обмена, он автоматически настраивается при установке узлов. |
50 | 8 | Dmitry Chernyak | Также адрес DNS сервера настроен установщиком - это будет адрес нашей сервисной машины(sci). |
51 | 8 | Dmitry Chernyak | Мост xen-lan используется для подключения к локальной сети и должен быть настроен вручную (в файле interfaces есть заготовка). |
52 | 2 | Владимир Ипатов | В такой конфигурации Вы должны заполнить следующие переменные в sci.conf: |
53 | 1 | Владимир Ипатов | NODE1_IP - Уже настроено установщиком. |
54 | 1 | Владимир Ипатов | NODE1_NAME - Уже настроено установщиком. |
55 | 7 | Dmitry Chernyak | NODE2_IP - укажите ip адрес второй ноды на интерлинке(например, 192.168.236.2) |
56 | 1 | Владимир Ипатов | NODE2_NAME - укажите имя второй ноды(напр. gnt2) |
57 | 2 | Владимир Ипатов | NODE1_LAN_IP - ip адрес первой ноды в локальной сети. Он будет доступен в днс под именем $NODE1_NAME-lan.$DOMAIN(напр. 192.168.5.55) |
58 | 2 | Владимир Ипатов | NODE2_LAN_IP - ip адрес второй ноды в локальной сети. Он будет доступен в днс под именем $NODE2_NAME-lan.$DOMAIN(напр. 192.168.5.56) |
59 | 7 | Dmitry Chernyak | CLUSTER_IP - Адрес кластера в локальной сети. НЕ должен совпадать с любым другим существующим адресом. Напр. 192.168.5.35. |
60 | 2 | Владимир Ипатов | CLUSTER_NAME - Имя кластера в локальной сети. Будет доступно в днс под $CLUSTER_NAME. |
61 | 1 | Владимир Ипатов | SCI_LAN_IP - если Вы хотите, чтобы виртуальная машина sci присутствовала в lan, назначьте этот адрес, напр. 192.168.5.95 |
62 | 2 | Владимир Ипатов | |
63 | 8 | Dmitry Chernyak | На странице [[Настройка сети]] вы можете посмотреть и выбрать другие схемы на разные случаи жизни. |
64 | 2 | Владимир Ипатов | |
65 | 3 | Владимир Ипатов | h2. Задание параметров для кластера |
66 | 2 | Владимир Ипатов | |
67 | 3 | Владимир Ипатов | Для задания параметров следует отредактировать @/etc/sci/sci.conf@ |
68 | 1 | Владимир Ипатов | |
69 | 3 | Владимир Ипатов | Большинство параметров уже было описано выше в секции "Настройка сети". |
70 | 3 | Владимир Ипатов | Здесь указаны дополнительные замечания по поводу настройки: |
71 | 2 | Владимир Ипатов | |
72 | 9 | Dmitry Chernyak | * Вы должны указывать параметры двух узлов в соответствии с тем, как Вы их настроили. |
73 | 2 | Владимир Ипатов | |
74 | 9 | Dmitry Chernyak | * *ПРИМЕЧАНИЕ*: Вы можете настроить кластер и с одним узлом. В этом случае оставьте переменные NODE2_* пустыми. |
75 | 3 | Владимир Ипатов | По факту это опасная конфигурация, о чем Вы и будете предупреждены во время инициализации кластера. |
76 | 2 | Владимир Ипатов | |
77 | 3 | Владимир Ипатов | * Вы обязательно должны указать имя кластера и его ip адрес |
78 | 1 | Владимир Ипатов | |
79 | 3 | Владимир Ипатов | * NODE#_SAN_IP должен быть указан для обоих нод или ни для одной. |
80 | 2 | Владимир Ипатов | |
81 | 3 | Владимир Ипатов | * NODE#_LAN_IP должен быть указан для обоих нод или ни для одной. |
82 | 1 | Владимир Ипатов | |
83 | 3 | Владимир Ипатов | * Если Вы не имеете подключения к интернету или имеете локальные зеркала для apt, скорректируйте переменные APT_* |
84 | 1 | Владимир Ипатов | |
85 | 9 | Dmitry Chernyak | * Если Вы хотите передавать запросы на сторонние DNS сервера, заполните DNS_FORWARDERS (не забудьте на конце ';'). |
86 | 1 | Владимир Ипатов | |
87 | 9 | Dmitry Chernyak | * MASTER_NETDEV - имя сетевого интерфейса для поднятия ip адреса кластера. По умолчанию определяется автоматически. |
88 | 1 | Владимир Ипатов | |
89 | 9 | Dmitry Chernyak | * LAN_NETDEV - Сетевой интерфейс по умолчанию для виртуальных машин. По умолчанию определяется автоматически. |
90 | 1 | Владимир Ипатов | |
91 | 3 | Владимир Ипатов | * RESERVED_VOLS - Список lvm томов, игнорируемых ganeti. Разделяется запятой. Следует указывать VG для каждого элемента списка. |
92 | 1 | Владимир Ипатов | |
93 | 2 | Владимир Ипатов | |
94 | 3 | Владимир Ипатов | h2. Инициализация кластера |
95 | 2 | Владимир Ипатов | |
96 | 3 | Владимир Ипатов | Запустите: |
97 | 2 | Владимир Ипатов | |
98 | 2 | Владимир Ипатов | <pre> |
99 | 2 | Владимир Ипатов | # sci-setup cluster |
100 | 2 | Владимир Ипатов | </pre> |
101 | 2 | Владимир Ипатов | |
102 | 3 | Владимир Ипатов | Проверьте выведенные настройке и примите их, либо скорректируйте и запустите скрипт еще раз. |
103 | 3 | Владимир Ипатов | После принятия настроек запустится процесс инициализации кластера. |
104 | 3 | Владимир Ипатов | Далее Вы должны принять ssh ключ для второй ноды и набрать root пароль для второй ноды. |
105 | 3 | Владимир Ипатов | В конце Вы увидите вывод команды диагностики кластера. Он будет выглядеть наподобие этого: |
106 | 2 | Владимир Ипатов | <pre> |
107 | 2 | Владимир Ипатов | Verify |
108 | 1 | Владимир Ипатов | Wed Jan 12 15:36:10 2011 * Verifying global settings |
109 | 2 | Владимир Ипатов | Wed Jan 12 15:36:10 2011 * Gathering data (1 nodes) |
110 | 2 | Владимир Ипатов | Wed Jan 12 15:36:11 2011 * Verifying node status |
111 | 2 | Владимир Ипатов | Wed Jan 12 15:36:11 2011 * Verifying instance status |
112 | 2 | Владимир Ипатов | Wed Jan 12 15:36:11 2011 * Verifying orphan volumes |
113 | 2 | Владимир Ипатов | Wed Jan 12 15:36:11 2011 * Verifying orphan instances |
114 | 2 | Владимир Ипатов | Wed Jan 12 15:36:11 2011 * Verifying N+1 Memory redundancy |
115 | 2 | Владимир Ипатов | Wed Jan 12 15:36:11 2011 * Other Notes |
116 | 2 | Владимир Ипатов | Wed Jan 12 15:36:11 2011 * Hooks Results |
117 | 2 | Владимир Ипатов | Node DTotal DFree MTotal MNode MFree Pinst Sinst |
118 | 2 | Владимир Ипатов | gnt1.ganeti.example.org 100.0G 100.0G 1020M 379M 625M 0 0 |
119 | 2 | Владимир Ипатов | gnt2.ganeti.example.org 100.0G 100.0G 1020M 379M 625M 0 0 |
120 | 2 | Владимир Ипатов | If all is ok, proceed with /usr/local/sbin/sci-setup service |
121 | 2 | Владимир Ипатов | </pre> |
122 | 2 | Владимир Ипатов | |
123 | 3 | Владимир Ипатов | h2. Установка сервисной виртуальной машины |
124 | 2 | Владимир Ипатов | |
125 | 3 | Владимир Ипатов | Имя хоста для нашей сервисной виртуальной машине - sci, также имеются несколько алиасов. |
126 | 7 | Dmitry Chernyak | Ее основной ip адрес берется из @/etc/resolv.conf@ на первой ноде. |
127 | 3 | Владимир Ипатов | Эта виртуальная машина должна присутствовать в @/etc/hosts@ на обоих нодах. |
128 | 2 | Владимир Ипатов | |
129 | 3 | Владимир Ипатов | Запустите: |
130 | 2 | Владимир Ипатов | |
131 | 2 | Владимир Ипатов | <pre> |
132 | 2 | Владимир Ипатов | # sci-setup service |
133 | 2 | Владимир Ипатов | </pre> |
134 | 2 | Владимир Ипатов | |
135 | 3 | Владимир Ипатов | Вы увидите индикатор процесса синхронизации drbd дисков, затем: |
136 | 2 | Владимир Ипатов | <pre> |
137 | 2 | Владимир Ипатов | * running the instance OS create scripts... |
138 | 2 | Владимир Ипатов | </pre> |
139 | 2 | Владимир Ипатов | appears. The further may take a while. The process finishes with |
140 | 2 | Владимир Ипатов | <pre> |
141 | 2 | Владимир Ипатов | * starting instance... |
142 | 2 | Владимир Ипатов | </pre> |
143 | 2 | Владимир Ипатов | |
144 | 3 | Владимир Ипатов | Теперь Вы можете подключиться к консоли виртуальной машины: |
145 | 2 | Владимир Ипатов | |
146 | 2 | Владимир Ипатов | <pre> |
147 | 2 | Владимир Ипатов | # gnt-instance console sci |
148 | 2 | Владимир Ипатов | </pre> |
149 | 2 | Владимир Ипатов | |
150 | 3 | Владимир Ипатов | Логиньтесь под рутом, пароль пустой. |
151 | 3 | Владимир Ипатов | *ПРИМЕЧАНИЕ*: Т.е. рутовый пароль пуст, ssh соединения запрещены. Установите пароль и установите @openssh-server@. |
152 | 2 | Владимир Ипатов | |
153 | 3 | Владимир Ипатов | h2. Автонастройка сервисной машины |
154 | 2 | Владимир Ипатов | |
155 | 3 | Владимир Ипатов | Система будет настроена автоматически посредством puppet. |
156 | 3 | Владимир Ипатов | Вы можете следить за процессом выполнения в @/var/log/daemon.log@. |
157 | 3 | Владимир Ипатов | Поначалу в системе не будет команды @less@, но Вы можете использовать @more@, @cat@, @tail@ или @tail -f@ |
158 | 3 | Владимир Ипатов | пока @less@ не будет автоматически установлен. |
159 | 3 | Владимир Ипатов | В процессе автонастройки может потребоваться перезапустить puppet. По умолчанию он запускается каждые полчаса. |
160 | 3 | Владимир Ипатов | При желании можно перезапустить его руками: |
161 | 2 | Владимир Ипатов | <pre> |
162 | 2 | Владимир Ипатов | # /etc/init.d/puppet restart |
163 | 2 | Владимир Ипатов | </pre> |
164 | 1 | Владимир Ипатов | |
165 | 2 | Владимир Ипатов | Повторяйте это раз в несколько минут, пока не увидите, что puppet больше ничего не делает. |
166 | 3 | Владимир Ипатов | |
167 | 3 | Владимир Ипатов | h2. Установка новых виртуальных машин |
168 | 2 | Владимир Ипатов | |
169 | 3 | Владимир Ипатов | Новые виртуальные машины добавляются стандартными командами ganeti: |
170 | 2 | Владимир Ипатов | |
171 | 2 | Владимир Ипатов | <pre> |
172 | 1 | Владимир Ипатов | gnt-instance add -t drbd -o debootstrap+default -s 10g -B memory=256m -n NODE1_NAME:NODE2_NAME INSTANCE_NAME |
173 | 2 | Владимир Ипатов | </pre> |
174 | 1 | Владимир Ипатов | |
175 | 2 | Владимир Ипатов | Однако, наш проект дополняет процесс несколькими специфичными хуками: |
176 | 1 | Владимир Ипатов | # На каждую машину ставится @puppet@ для автоконфигурации, @openssh-client@ для обмена файлами и т.д. |
177 | 3 | Владимир Ипатов | # На каждую машину ставится pygrub. |
178 | 3 | Владимир Ипатов | # Сетевые настройки для машины могут быть назначены автоматически(см. ниже). |
179 | 2 | Владимир Ипатов | |
180 | 3 | Владимир Ипатов | h3. Автонастройка сети на виртуальных машинах. |
181 | 2 | Владимир Ипатов | |
182 | 3 | Владимир Ипатов | Если Вам необходимо, чтобы виртуальные машины могли быть подключены к нескольким сетям и Вам необходимы статичные |
183 | 7 | Dmitry Chernyak | настройки сети на них, Вы должны заполнить файл @/etc/ganeti/networks@ всеми нужными для подключения машин сетями. |
184 | 3 | Владимир Ипатов | Каждая строчка файла имеет формат: |
185 | 2 | Владимир Ипатов | |
186 | 1 | Владимир Ипатов | |NETWORK|NETMASK|BROADCAST|GATEWAY| |
187 | 1 | Владимир Ипатов | |
188 | 1 | Владимир Ипатов | |
189 | 3 | Владимир Ипатов | Ganeti instance debootstrap хук смотрит в этот файл, находит сеть для заданного ip и настраивает сеть |
190 | 3 | Владимир Ипатов | на виртуальной машине автоматически. |
191 | 1 | Владимир Ипатов | |
192 | 7 | Dmitry Chernyak | *ПРИМЕЧАНИЕ*: Этот файл заполняется при инициализации кластера, так что в большинстве случаев Вам не потребуется |
193 | 3 | Владимир Ипатов | туда что-то добавлять. |
194 | 7 | Dmitry Chernyak | *ПРИМЕЧАНИЕ*: файл networks должен присутствовать на каждой ноде (еще не автоматизировано). |
195 | 1 | Владимир Ипатов | |
196 | 12 | Владимир Ипатов | h2. Добавление фильтра в настройки lvm: |
197 | 11 | Владимир Ипатов | |
198 | 11 | Владимир Ипатов | При дефолтных настройках lvm многие операции с кластером могут быть сильно замедленными при большом количестве lvm томов. |
199 | 11 | Владимир Ипатов | Чтобы этого избежать, нужно в /etc/lvm/lvm.conf добавить фильтр (пример для ноды, использующей mdadm): |
200 | 11 | Владимир Ипатов | <pre> |
201 | 11 | Владимир Ипатов | filter = [ "a/md/", "r/.*/" ] |
202 | 11 | Владимир Ипатов | </pre> |
203 | 11 | Владимир Ипатов | и выполнить |
204 | 11 | Владимир Ипатов | <pre> |
205 | 11 | Владимир Ипатов | vgscan |
206 | 1 | Владимир Ипатов | </pre> |
207 | 12 | Владимир Ипатов | |
208 | 12 | Владимир Ипатов | h2. [[Настройка Hugepages]] |
209 | 11 | Владимир Ипатов | |
210 | 3 | Владимир Ипатов | h2. Операции с кластером |
211 | 3 | Владимир Ипатов | |
212 | 7 | Dmitry Chernyak | Читайте в [[ОПЕРАЦИИ]]. |