НАСТРОЙКА » История » Версия 23
Николай Алексеев, 07.09.2015 12:40
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 | 1 | Владимир Ипатов | h2. Инициализация кластера |
94 | 14 | Dmitry Chernyak | |
95 | 14 | Dmitry Chernyak | Удостоверьтесь, что на обоих узлах установлено одинаковое время. |
96 | 14 | Dmitry Chernyak | |
97 | 14 | Dmitry Chernyak | <pre> |
98 | 14 | Dmitry Chernyak | # date |
99 | 14 | Dmitry Chernyak | Thu Mar 12 12:23:10 MSK 2015 |
100 | 14 | Dmitry Chernyak | </pre> |
101 | 14 | Dmitry Chernyak | |
102 | 14 | Dmitry Chernyak | Если нет - установите его командой |
103 | 14 | Dmitry Chernyak | |
104 | 14 | Dmitry Chernyak | <pre> |
105 | 14 | Dmitry Chernyak | # date -s "12 MAR 2015 12:23:00" |
106 | 14 | Dmitry Chernyak | </pre> |
107 | 2 | Владимир Ипатов | |
108 | 3 | Владимир Ипатов | Запустите: |
109 | 2 | Владимир Ипатов | |
110 | 2 | Владимир Ипатов | <pre> |
111 | 2 | Владимир Ипатов | # sci-setup cluster |
112 | 2 | Владимир Ипатов | </pre> |
113 | 2 | Владимир Ипатов | |
114 | 3 | Владимир Ипатов | Проверьте выведенные настройке и примите их, либо скорректируйте и запустите скрипт еще раз. |
115 | 3 | Владимир Ипатов | После принятия настроек запустится процесс инициализации кластера. |
116 | 3 | Владимир Ипатов | Далее Вы должны принять ssh ключ для второй ноды и набрать root пароль для второй ноды. |
117 | 3 | Владимир Ипатов | В конце Вы увидите вывод команды диагностики кластера. Он будет выглядеть наподобие этого: |
118 | 2 | Владимир Ипатов | <pre> |
119 | 2 | Владимир Ипатов | Verify |
120 | 1 | Владимир Ипатов | Wed Jan 12 15:36:10 2011 * Verifying global settings |
121 | 2 | Владимир Ипатов | Wed Jan 12 15:36:10 2011 * Gathering data (1 nodes) |
122 | 2 | Владимир Ипатов | Wed Jan 12 15:36:11 2011 * Verifying node status |
123 | 2 | Владимир Ипатов | Wed Jan 12 15:36:11 2011 * Verifying instance status |
124 | 2 | Владимир Ипатов | Wed Jan 12 15:36:11 2011 * Verifying orphan volumes |
125 | 2 | Владимир Ипатов | Wed Jan 12 15:36:11 2011 * Verifying orphan instances |
126 | 2 | Владимир Ипатов | Wed Jan 12 15:36:11 2011 * Verifying N+1 Memory redundancy |
127 | 2 | Владимир Ипатов | Wed Jan 12 15:36:11 2011 * Other Notes |
128 | 2 | Владимир Ипатов | Wed Jan 12 15:36:11 2011 * Hooks Results |
129 | 2 | Владимир Ипатов | Node DTotal DFree MTotal MNode MFree Pinst Sinst |
130 | 2 | Владимир Ипатов | gnt1.ganeti.example.org 100.0G 100.0G 1020M 379M 625M 0 0 |
131 | 2 | Владимир Ипатов | gnt2.ganeti.example.org 100.0G 100.0G 1020M 379M 625M 0 0 |
132 | 2 | Владимир Ипатов | If all is ok, proceed with /usr/local/sbin/sci-setup service |
133 | 2 | Владимир Ипатов | </pre> |
134 | 2 | Владимир Ипатов | |
135 | 3 | Владимир Ипатов | h2. Установка сервисной виртуальной машины |
136 | 2 | Владимир Ипатов | |
137 | 3 | Владимир Ипатов | Имя хоста для нашей сервисной виртуальной машине - sci, также имеются несколько алиасов. |
138 | 7 | Dmitry Chernyak | Ее основной ip адрес берется из @/etc/resolv.conf@ на первой ноде. |
139 | 3 | Владимир Ипатов | Эта виртуальная машина должна присутствовать в @/etc/hosts@ на обоих нодах. |
140 | 2 | Владимир Ипатов | |
141 | 3 | Владимир Ипатов | Запустите: |
142 | 2 | Владимир Ипатов | |
143 | 2 | Владимир Ипатов | <pre> |
144 | 2 | Владимир Ипатов | # sci-setup service |
145 | 2 | Владимир Ипатов | </pre> |
146 | 2 | Владимир Ипатов | |
147 | 3 | Владимир Ипатов | Вы увидите индикатор процесса синхронизации drbd дисков, затем: |
148 | 2 | Владимир Ипатов | <pre> |
149 | 2 | Владимир Ипатов | * running the instance OS create scripts... |
150 | 2 | Владимир Ипатов | </pre> |
151 | 2 | Владимир Ипатов | appears. The further may take a while. The process finishes with |
152 | 2 | Владимир Ипатов | <pre> |
153 | 2 | Владимир Ипатов | * starting instance... |
154 | 2 | Владимир Ипатов | </pre> |
155 | 2 | Владимир Ипатов | |
156 | 3 | Владимир Ипатов | Теперь Вы можете подключиться к консоли виртуальной машины: |
157 | 2 | Владимир Ипатов | |
158 | 2 | Владимир Ипатов | <pre> |
159 | 2 | Владимир Ипатов | # gnt-instance console sci |
160 | 2 | Владимир Ипатов | </pre> |
161 | 2 | Владимир Ипатов | |
162 | 3 | Владимир Ипатов | Логиньтесь под рутом, пароль пустой. |
163 | 3 | Владимир Ипатов | *ПРИМЕЧАНИЕ*: Т.е. рутовый пароль пуст, ssh соединения запрещены. Установите пароль и установите @openssh-server@. |
164 | 2 | Владимир Ипатов | |
165 | 3 | Владимир Ипатов | h2. Автонастройка сервисной машины |
166 | 2 | Владимир Ипатов | |
167 | 3 | Владимир Ипатов | Система будет настроена автоматически посредством puppet. |
168 | 3 | Владимир Ипатов | Вы можете следить за процессом выполнения в @/var/log/daemon.log@. |
169 | 3 | Владимир Ипатов | Поначалу в системе не будет команды @less@, но Вы можете использовать @more@, @cat@, @tail@ или @tail -f@ |
170 | 3 | Владимир Ипатов | пока @less@ не будет автоматически установлен. |
171 | 3 | Владимир Ипатов | В процессе автонастройки может потребоваться перезапустить puppet. По умолчанию он запускается каждые полчаса. |
172 | 3 | Владимир Ипатов | При желании можно перезапустить его руками: |
173 | 2 | Владимир Ипатов | <pre> |
174 | 2 | Владимир Ипатов | # /etc/init.d/puppet restart |
175 | 2 | Владимир Ипатов | </pre> |
176 | 1 | Владимир Ипатов | |
177 | 2 | Владимир Ипатов | Повторяйте это раз в несколько минут, пока не увидите, что puppet больше ничего не делает. |
178 | 3 | Владимир Ипатов | |
179 | 3 | Владимир Ипатов | h2. Установка новых виртуальных машин |
180 | 2 | Владимир Ипатов | |
181 | 3 | Владимир Ипатов | Новые виртуальные машины добавляются стандартными командами ganeti: |
182 | 2 | Владимир Ипатов | |
183 | 2 | Владимир Ипатов | <pre> |
184 | 1 | Владимир Ипатов | gnt-instance add -t drbd -o debootstrap+default -s 10g -B memory=256m -n NODE1_NAME:NODE2_NAME INSTANCE_NAME |
185 | 2 | Владимир Ипатов | </pre> |
186 | 1 | Владимир Ипатов | |
187 | 2 | Владимир Ипатов | Однако, наш проект дополняет процесс несколькими специфичными хуками: |
188 | 1 | Владимир Ипатов | # На каждую машину ставится @puppet@ для автоконфигурации, @openssh-client@ для обмена файлами и т.д. |
189 | 3 | Владимир Ипатов | # На каждую машину ставится pygrub. |
190 | 3 | Владимир Ипатов | # Сетевые настройки для машины могут быть назначены автоматически(см. ниже). |
191 | 2 | Владимир Ипатов | |
192 | 3 | Владимир Ипатов | h3. Автонастройка сети на виртуальных машинах. |
193 | 2 | Владимир Ипатов | |
194 | 3 | Владимир Ипатов | Если Вам необходимо, чтобы виртуальные машины могли быть подключены к нескольким сетям и Вам необходимы статичные |
195 | 7 | Dmitry Chernyak | настройки сети на них, Вы должны заполнить файл @/etc/ganeti/networks@ всеми нужными для подключения машин сетями. |
196 | 3 | Владимир Ипатов | Каждая строчка файла имеет формат: |
197 | 2 | Владимир Ипатов | |
198 | 1 | Владимир Ипатов | |NETWORK|NETMASK|BROADCAST|GATEWAY| |
199 | 1 | Владимир Ипатов | |
200 | 1 | Владимир Ипатов | |
201 | 3 | Владимир Ипатов | Ganeti instance debootstrap хук смотрит в этот файл, находит сеть для заданного ip и настраивает сеть |
202 | 3 | Владимир Ипатов | на виртуальной машине автоматически. |
203 | 1 | Владимир Ипатов | |
204 | 7 | Dmitry Chernyak | *ПРИМЕЧАНИЕ*: Этот файл заполняется при инициализации кластера, так что в большинстве случаев Вам не потребуется |
205 | 3 | Владимир Ипатов | туда что-то добавлять. |
206 | 7 | Dmitry Chernyak | *ПРИМЕЧАНИЕ*: файл networks должен присутствовать на каждой ноде (еще не автоматизировано). |
207 | 1 | Владимир Ипатов | |
208 | 12 | Владимир Ипатов | h2. Добавление фильтра в настройки lvm: |
209 | 11 | Владимир Ипатов | |
210 | 11 | Владимир Ипатов | При дефолтных настройках lvm многие операции с кластером могут быть сильно замедленными при большом количестве lvm томов. |
211 | 19 | Владимир Ипатов | Поэтому в sci по умолчанию используется фильтр в /etc/lvm/lvm.conf, который ищет vg только на md: |
212 | 11 | Владимир Ипатов | <pre> |
213 | 11 | Владимир Ипатов | filter = [ "a/md/", "r/.*/" ] |
214 | 1 | Владимир Ипатов | </pre> |
215 | 19 | Владимир Ипатов | Если Вы не используете md, фильтр нужно заменить на: |
216 | 19 | Владимир Ипатов | <pre> |
217 | 19 | Владимир Ипатов | filter = [ "a/.*/" ] |
218 | 19 | Владимир Ипатов | </pre> |
219 | 19 | Владимир Ипатов | |
220 | 11 | Владимир Ипатов | и выполнить |
221 | 11 | Владимир Ипатов | <pre> |
222 | 11 | Владимир Ипатов | vgscan |
223 | 1 | Владимир Ипатов | </pre> |
224 | 12 | Владимир Ипатов | |
225 | 15 | Dmitry Chernyak | h2. Добавление дополнительной VG |
226 | 15 | Dmitry Chernyak | |
227 | 15 | Dmitry Chernyak | Если в сервере есть два типа дисков, например 2xSATA + 8xSAS, то необходимо иницииализировать вторую VG и (при необходимости) сделать ее основной для создания виртуальных машин: |
228 | 16 | Dmitry Chernyak | |
229 | 22 | Владимир Ипатов | Действия выполняются на каждой ноде: |
230 | 16 | Dmitry Chernyak | Разметить диск: |
231 | 16 | Dmitry Chernyak | <pre> |
232 | 16 | Dmitry Chernyak | fdisk /dev/sdc |
233 | 16 | Dmitry Chernyak | </pre> |
234 | 16 | Dmitry Chernyak | создать primary раздел на весь диск |
235 | 16 | Dmitry Chernyak | |
236 | 16 | Dmitry Chernyak | Растиражировать разбивку на все диски (будьте осторожны, не промахнитесь дисками): |
237 | 16 | Dmitry Chernyak | <pre> |
238 | 17 | Dmitry Chernyak | for i in d e f g h i j; do sfdisk -d /dev/sdc|sfdisk /dev/sd$i; done |
239 | 16 | Dmitry Chernyak | </pre> |
240 | 1 | Владимир Ипатов | |
241 | 22 | Владимир Ипатов | Проинициализировать md, vg |
242 | 15 | Dmitry Chernyak | <pre> |
243 | 20 | Владимир Ипатов | mdadm --create -n8 -l10 /dev/md3 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1 /dev/sdj1 |
244 | 21 | Владимир Ипатов | pvcreate /dev/md3 |
245 | 23 | Николай Алексеев | vgcreate sas /dev/md3 |
246 | 22 | Владимир Ипатов | </pre> |
247 | 22 | Владимир Ипатов | |
248 | 22 | Владимир Ипатов | И, наконец, настроить кластер по умолчанию на использование новой vg (выполняется 1 раз, на мастере): |
249 | 22 | Владимир Ипатов | <pre> |
250 | 21 | Владимир Ипатов | gnt-cluster modify --vg-name=sas --disk-parameters=drbd:metavg=sas |
251 | 15 | Dmitry Chernyak | </pre> |
252 | 15 | Dmitry Chernyak | |
253 | 18 | Владимир Ипатов | По умолчанию для всех дисков в кластере устанавливается шедулер deadline |
254 | 18 | Владимир Ипатов | В случае, если используется аппаратный raid контроллер или отдельное хранилище, подключенное по FC/Infiniband/iSCSI, то, ВОЗМОЖНО, будет иметь смысл поставить шедулер noop. Однако, deadline подходит для всех типов дисков. |
255 | 18 | Владимир Ипатов | |
256 | 15 | Dmitry Chernyak | Статья про сравнение трех вариантов offset в raid10 (в SCI используется дефолтный, NEAR): |
257 | 15 | Dmitry Chernyak | 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 |
258 | 15 | Dmitry Chernyak | |
259 | 12 | Владимир Ипатов | h2. [[Настройка Hugepages]] |
260 | 11 | Владимир Ипатов | |
261 | 3 | Владимир Ипатов | h2. Операции с кластером |
262 | 3 | Владимир Ипатов | |
263 | 7 | Dmitry Chernyak | Читайте в [[ОПЕРАЦИИ]]. |