Апгрейд с wheezy на stretch (2x до 3х) » История » Версия 33
Владимир Ипатов, 18.05.2023 18:42
1 | 6 | Владимир Ипатов | h1. Апгрейд с wheezy на stretch (2.x до 3.х) |
---|---|---|---|
2 | 1 | Владимир Ипатов | |
3 | 1 | Владимир Ипатов | Данный апгрейд может проводиться с минимальным простоем, т.к. внутри одного кластера могут успешно работать узлы версии 2.х и 3.х, в том числе работает репликация DRBD между узлами версии 2.х и 3.х |
4 | 1 | Владимир Ипатов | |
5 | 1 | Владимир Ипатов | В случае Linux виртуальных машин требуется только одна перезагрузка при переносе с 2.x узла на 3.х узла. |
6 | 1 | Владимир Ипатов | |
7 | 1 | Владимир Ипатов | В случае Windows виртуальных машин иногда требуется однократная загрузка в безопасном режиме и/или заход под пользователем в локальную консоль виртуальной машины для установки "нового" эмулируемого диска и сетевой карты. |
8 | 1 | Владимир Ипатов | |
9 | 1 | Владимир Ипатов | h2. Общая процедура апгрейда |
10 | 1 | Владимир Ипатов | |
11 | 1 | Владимир Ипатов | 1) обновляются все резервные узлы кластера. Это можно сделать обновлением дистрибутива (см. выше) или переустановкой узлов с нуля. Переустановка узлов с нуля - менее сложный процесс, но более длительный, т.к. придется заново ресинкать все тома всех виртуальных машин. |
12 | 1 | Владимир Ипатов | 2) после обновления всех резервных узлов делаются настройки кластера, позволяющие работать в смешанном окружении. Смешанный кластер до момента перенастройки не может выполнять операции по старту/остановке виртуальных машин, их переносу, перенастройке и т.д. |
13 | 1 | Владимир Ипатов | 3) все виртуальные машины переносятся на резервные узлы, их проверяется работоспособность. |
14 | 1 | Владимир Ипатов | 4) обновляются узлы второй половины кластера. |
15 | 1 | Владимир Ипатов | |
16 | 1 | Владимир Ипатов | h2. Апгрейд узла |
17 | 1 | Владимир Ипатов | |
18 | 1 | Владимир Ипатов | Для апгрейда узла два способа: |
19 | 1 | Владимир Ипатов | 1) Переустановка узла (легкий, но долгий путь, требует ресинка дрбд на всех виртуальных машинах) |
20 | 1 | Владимир Ипатов | 2) Обновление пакетов (трудоемкий путь, но позволяет быстрее выполнить миграцию, не требует ресинка дрбд) |
21 | 1 | Владимир Ипатов | |
22 | 1 | Владимир Ипатов | h3. Переустановка узла |
23 | 1 | Владимир Ипатов | |
24 | 1 | Владимир Ипатов | Для апгрейда с переустановкой узла требуется: |
25 | 1 | Владимир Ипатов | |
26 | 1 | Владимир Ипатов | 1) сохранить содержимое файла /etc/network/interfaces и /etc/hostname на обновляемом узле |
27 | 1 | Владимир Ипатов | 2) загрузиться с флешки/диска и установить на обновляемый узел SkyCover 3.x. При этом нужно при установке ввести такой же lan ip, хостнейм, домен, какой был. подробнее: [[УСТАНОВКА]] |
28 | 1 | Владимир Ипатов | 3) настроить конфиг сетевых интерфейсов /etc/network/interfaces, используя сохраненное содержимое, перезапустить сеть с помощью service networking restart. |
29 | 1 | Владимир Ипатов | 4) порядок сетевых интерфейсов мог поменяться, проверить пинг до мастера через backbone, lan и т.д. Если что-то не совпадает, то, отключая кабель по одному сетевому интерфейсу и запуска ip link show (показывает, где нет линка) идентифицировать сетевые интерфейсы и переназначить их в /etc/network/interfaces, перезапустить сеть |
30 | 1 | Владимир Ипатов | 5) с мастера выполнить команды: |
31 | 1 | Владимир Ипатов | <pre> |
32 | 1 | Владимир Ипатов | gnt-node add --readd ХОСТНЕЙМ |
33 | 1 | Владимир Ипатов | gnt-cluster redist-conf |
34 | 1 | Владимир Ипатов | </pre> |
35 | 1 | Владимир Ипатов | |
36 | 1 | Владимир Ипатов | h3. Обновление пакетов |
37 | 1 | Владимир Ипатов | |
38 | 3 | Владимир Ипатов | Обновление пакетов идет в 2 приема. с Wheezy на Jessie, с Jessie на Stretch. |
39 | 3 | Владимир Ипатов | После обновления с Wheezy на Jessie узел будет в неработособном состоянии, так что оба обновления нужно делать сразу один за другим. |
40 | 3 | Владимир Ипатов | |
41 | 3 | Владимир Ипатов | Отключаем puppet: |
42 | 3 | Владимир Ипатов | service puppet stop |
43 | 3 | Владимир Ипатов | в /etc/default/puppet прописываем START=no |
44 | 3 | Владимир Ипатов | |
45 | 3 | Владимир Ипатов | Перенастраиваем apt: |
46 | 3 | Владимир Ипатов | |
47 | 3 | Владимир Ипатов | меняем содержимое /etc/apt/sources.list. |
48 | 3 | Владимир Ипатов | было: |
49 | 3 | Владимир Ипатов | <pre> |
50 | 3 | Владимир Ипатов | # |
51 | 3 | Владимир Ипатов | # stable |
52 | 3 | Владимир Ипатов | # |
53 | 3 | Владимир Ипатов | deb http://archive.debian.org/debian wheezy main |
54 | 3 | Владимир Ипатов | deb http://archive.debian.org/debian-security wheezy/updates main |
55 | 3 | Владимир Ипатов | # |
56 | 3 | Владимир Ипатов | # backports |
57 | 3 | Владимир Ипатов | # |
58 | 3 | Владимир Ипатов | deb http://archive.debian.org/debian/ wheezy-backports main |
59 | 3 | Владимир Ипатов | </pre> |
60 | 3 | Владимир Ипатов | |
61 | 3 | Владимир Ипатов | стало: |
62 | 3 | Владимир Ипатов | <pre> |
63 | 3 | Владимир Ипатов | # |
64 | 3 | Владимир Ипатов | # stable |
65 | 3 | Владимир Ипатов | # |
66 | 17 | Владимир Ипатов | deb http://archive.debian.org/debian jessie main |
67 | 3 | Владимир Ипатов | # |
68 | 3 | Владимир Ипатов | # backports |
69 | 3 | Владимир Ипатов | # |
70 | 3 | Владимир Ипатов | deb http://archive.debian.org/debian/ jessie-backports main |
71 | 3 | Владимир Ипатов | </pre> |
72 | 3 | Владимир Ипатов | |
73 | 3 | Владимир Ипатов | меняем содержимое /etc/apt/apt.conf.d/99stable |
74 | 3 | Владимир Ипатов | <pre> |
75 | 3 | Владимир Ипатов | APT::Default-Release "jessie"; |
76 | 3 | Владимир Ипатов | </pre> |
77 | 3 | Владимир Ипатов | |
78 | 3 | Владимир Ипатов | меняем содержимое /etc/apt/sources.list.d/sci-dev.list |
79 | 3 | Владимир Ипатов | <pre> |
80 | 3 | Владимир Ипатов | deb http://sci-dev.skycover.ru/apt stretch main |
81 | 3 | Владимир Ипатов | </pre> |
82 | 3 | Владимир Ипатов | |
83 | 3 | Владимир Ипатов | скачиваем и устанавливаем новый ключ для sci-dev: |
84 | 3 | Владимир Ипатов | <pre> |
85 | 4 | Владимир Ипатов | wget -O- http://sci-dev.skycover.ru/apt/stretch.pub|apt-key add - |
86 | 4 | Владимир Ипатов | </pre> |
87 | 4 | Владимир Ипатов | |
88 | 4 | Владимир Ипатов | добавляем новый файл /etc/apt/apt.conf.d/10ignore-expired-release |
89 | 4 | Владимир Ипатов | <pre> |
90 | 4 | Владимир Ипатов | Acquire::Check-Valid-Until "0"; |
91 | 4 | Владимир Ипатов | </pre> |
92 | 4 | Владимир Ипатов | |
93 | 20 | Владимир Ипатов | Обновляем дистрибутив: |
94 | 1 | Владимир Ипатов | |
95 | 20 | Владимир Ипатов | <pre> |
96 | 20 | Владимир Ипатов | aptitude update |
97 | 20 | Владимир Ипатов | aptitude full-upgrade |
98 | 20 | Владимир Ипатов | </pre> |
99 | 4 | Владимир Ипатов | |
100 | 4 | Владимир Ипатов | После успешного апгрейда перезагружаемся. |
101 | 4 | Владимир Ипатов | |
102 | 4 | Владимир Ипатов | Перенастраиваем apt еще раз |
103 | 4 | Владимир Ипатов | /etc/apt/sources.list: |
104 | 4 | Владимир Ипатов | <pre> |
105 | 4 | Владимир Ипатов | deb http://ftp.debian.org/debian stretch main contrib non-free |
106 | 4 | Владимир Ипатов | deb http://ftp.debian.org/debian stretch-updates main contrib non-free |
107 | 4 | Владимир Ипатов | deb http://ftp.debian.org/debian stretch-backports main contrib non-free |
108 | 4 | Владимир Ипатов | </pre> |
109 | 4 | Владимир Ипатов | /etc/apt/apt.conf.d/99stable: |
110 | 4 | Владимир Ипатов | <pre> |
111 | 4 | Владимир Ипатов | APT::Default-Release "stretch"; |
112 | 3 | Владимир Ипатов | </pre> |
113 | 3 | Владимир Ипатов | |
114 | 1 | Владимир Ипатов | обновляемся до stretch: |
115 | 5 | Владимир Ипатов | |
116 | 20 | Владимир Ипатов | <pre> |
117 | 1 | Владимир Ипатов | aptitude update |
118 | 5 | Владимир Ипатов | aptitude full-upgrade |
119 | 20 | Владимир Ипатов | </pre> |
120 | 5 | Владимир Ипатов | |
121 | 10 | Владимир Ипатов | перезагрузка |
122 | 5 | Владимир Ипатов | |
123 | 10 | Владимир Ипатов | |
124 | 5 | Владимир Ипатов | проверяем версии пакетов: |
125 | 14 | Владимир Ипатов | dpkg -l|grep ganeti - должны быть 2.15-sciX, instance-debootstrap должн быть 0-16-sciX |
126 | 5 | Владимир Ипатов | |
127 | 19 | Владимир Ипатов | если версии не совпадают, обновить из репозитория sci-dev.skycover.ru/apt |
128 | 19 | Владимир Ипатов | если присутствуют ganeti-2.12 в удаленном виде, рекомендуется их вычистить: |
129 | 19 | Владимир Ипатов | <pre> |
130 | 19 | Владимир Ипатов | aptitude purge ganeti-2.12 ganeti-haskell-2.12 ganeti-htools-2.12 |
131 | 19 | Владимир Ипатов | </pre> |
132 | 1 | Владимир Ипатов | |
133 | 5 | Владимир Ипатов | если в процессе обновления qemu и qemu-system остались в версии wheezy, то следует их обновить руками: |
134 | 20 | Владимир Ипатов | <pre> |
135 | 9 | Владимир Ипатов | aptitude install qemu qemu-system |
136 | 20 | Владимир Ипатов | </pre> |
137 | 15 | Владимир Ипатов | если xen 4.8 не установился сам ,то нужно установить руками: |
138 | 15 | Владимир Ипатов | <pre> |
139 | 15 | Владимир Ипатов | sudo aptitude install xen-hypervisor-4.8-amd64 xen-utils-4.8 |
140 | 15 | Владимир Ипатов | </pre> |
141 | 10 | Владимир Ипатов | |
142 | 24 | Владимир Ипатов | добавляем объем памяти для гипервизора: |
143 | 24 | Владимир Ипатов | в /etc/default/grub устанавливаем 2048мб для гипервизора: |
144 | 24 | Владимир Ипатов | <pre> |
145 | 24 | Владимир Ипатов | GRUB_CMDLINE_XEN="dom0_mem=2048M" |
146 | 24 | Владимир Ипатов | </pre> |
147 | 24 | Владимир Ипатов | переинициализируем конфиг grub: |
148 | 24 | Владимир Ипатов | <pre> |
149 | 24 | Владимир Ипатов | update-grub |
150 | 24 | Владимир Ипатов | </pre> |
151 | 24 | Владимир Ипатов | |
152 | 25 | Владимир Ипатов | меняем в /etc/rc.sci |
153 | 25 | Владимир Ипатов | <pre> |
154 | 25 | Владимир Ипатов | xm sched-credit -d0 -w512 |
155 | 25 | Владимир Ипатов | </pre> |
156 | 25 | Владимир Ипатов | на |
157 | 25 | Владимир Ипатов | <pre> |
158 | 25 | Владимир Ипатов | xl sched-credit -d0 -w512 |
159 | 25 | Владимир Ипатов | </pre> |
160 | 25 | Владимир Ипатов | |
161 | 10 | Владимир Ипатов | удалить systemd: |
162 | 10 | Владимир Ипатов | |
163 | 10 | Владимир Ипатов | <pre> |
164 | 10 | Владимир Ипатов | apt-get install -y --force-yes sysvinit-core sysvinit-utils |
165 | 10 | Владимир Ипатов | cp /usr/share/sysvinit/inittab /etc/inittab |
166 | 10 | Владимир Ипатов | перезагрузка |
167 | 10 | Владимир Ипатов | apt-get remove -y --force-yes --purge --auto-remove systemd |
168 | 10 | Владимир Ипатов | echo -e 'Package: systemd\nPin: release *\nPin-Priority: -1' > /etc/apt/preferences.d/systemd |
169 | 10 | Владимир Ипатов | echo -e '\n\nPackage: *systemd*\nPin: release *\nPin-Priority: -1' >> /etc/apt/preferences.d/systemd |
170 | 10 | Владимир Ипатов | echo -e '\nPackage: systemd:i386\nPin: release *\nPin-Priority: -1' >> /etc/apt/preferences.d/systemd |
171 | 10 | Владимир Ипатов | </pre> |
172 | 9 | Владимир Ипатов | |
173 | 11 | Владимир Ипатов | настраиваем ssh на работу с dss ключами: |
174 | 12 | Владимир Ипатов | /etc/ssh/sshd_config: |
175 | 12 | Владимир Ипатов | <pre> |
176 | 12 | Владимир Ипатов | PubkeyAcceptedKeyTypes=+ssh-dss |
177 | 12 | Владимир Ипатов | </pre> |
178 | 12 | Владимир Ипатов | /etc/ssh/ssh_config: |
179 | 12 | Владимир Ипатов | <pre> |
180 | 12 | Владимир Ипатов | PubkeyAcceptedKeyTypes=+ssh-dss |
181 | 12 | Владимир Ипатов | </pre> |
182 | 12 | Владимир Ипатов | (отступ должен быть сохранен) |
183 | 21 | Владимир Ипатов | <pre> |
184 | 13 | Владимир Ипатов | service ssh restart |
185 | 21 | Владимир Ипатов | </pre> |
186 | 11 | Владимир Ипатов | |
187 | 11 | Владимир Ипатов | на каждом узле должен быть файл /var/lib/ganeti/rapi/users |
188 | 11 | Владимир Ипатов | <pre> |
189 | 11 | Владимир Ипатов | scweb СЛУЧАЙНЫЙ_ПАРОЛЬ write |
190 | 11 | Владимир Ипатов | </pre> |
191 | 1 | Владимир Ипатов | |
192 | 16 | Владимир Ипатов | переинициализируем паппет: |
193 | 16 | Владимир Ипатов | <pre> |
194 | 16 | Владимир Ипатов | rm -r /var/lib/puppet/ssl |
195 | 16 | Владимир Ипатов | в /etc/default/puppet START=yes |
196 | 16 | Владимир Ипатов | puppet agent --enable |
197 | 16 | Владимир Ипатов | </pre> |
198 | 16 | Владимир Ипатов | также в конфиг следует указать новый паппет мастер для новых паппет агентов, т.к. паппетмастер в wheezy не совместим с агентами stretch. |
199 | 22 | Владимир Ипатов | |
200 | 22 | Владимир Ипатов | удаляем лишнюю директорию в ganeti-instance-debootstrap: |
201 | 22 | Владимир Ипатов | <pre> |
202 | 22 | Владимир Ипатов | cd /usr/share/ganeti/os/ |
203 | 22 | Владимир Ипатов | rm -r debootstrap |
204 | 22 | Владимир Ипатов | ln -s debian/ debootstrap |
205 | 22 | Владимир Ипатов | </pre> |
206 | 22 | Владимир Ипатов | |
207 | 13 | Владимир Ипатов | удаляем локальные скрипты старых версий: |
208 | 22 | Владимир Ипатов | <pre> |
209 | 13 | Владимир Ипатов | rm /usr/local/sbin/* |
210 | 22 | Владимир Ипатов | </pre> |
211 | 24 | Владимир Ипатов | |
212 | 13 | Владимир Ипатов | устанавливаем доп пакеты sci: |
213 | 21 | Владимир Ипатов | <pre> |
214 | 13 | Владимир Ипатов | aptitude install sci-web sci-config sci-scripts sci-udev-netrules |
215 | 21 | Владимир Ипатов | </pre> |
216 | 5 | Владимир Ипатов | |
217 | 1 | Владимир Ипатов | h2. Перенастройка кластера для работы в смешанном окружении. |
218 | 1 | Владимир Ипатов | |
219 | 1 | Владимир Ипатов | Смешанный кластер до момента перенастройки не может выполнять операции по старту/остановке виртуальных машин, их переносу, перенастройке и т.д. |
220 | 1 | Владимир Ипатов | Суть настроек заключается в том, что в узлах версии 3 больше нет toolstack xm, есть только xl. Поэтому нужно перенастроить все узлы и кластер на использование xl. |
221 | 1 | Владимир Ипатов | Также в узлах версии 2.х и 3.х несовпадают некоторые пути, это решается за счет симлинков |
222 | 1 | Владимир Ипатов | |
223 | 7 | Владимир Ипатов | h3. добавление симлинков |
224 | 7 | Владимир Ипатов | |
225 | 7 | Владимир Ипатов | на каждом узле 2.x: |
226 | 7 | Владимир Ипатов | <pre> |
227 | 7 | Владимир Ипатов | ln -s /usr/lib/xen-4.1 /usr/lib/xen |
228 | 7 | Владимир Ипатов | ln -s /usr/lib/xen/bin/qemu-dm /usr/bin/qemu-system-x86_64 |
229 | 7 | Владимир Ипатов | </pre> |
230 | 7 | Владимир Ипатов | |
231 | 1 | Владимир Ипатов | h3. перенастройка кластера на xl |
232 | 1 | Владимир Ипатов | |
233 | 7 | Владимир Ипатов | на каждом узле 2.х: |
234 | 7 | Владимир Ипатов | |
235 | 7 | Владимир Ипатов | в /etc/xen/xl.conf установить autoballoon=0 |
236 | 7 | Владимир Ипатов | в /etc/default/xen установить TOOLSTACK=xl |
237 | 7 | Владимир Ипатов | service xen restart |
238 | 7 | Владимир Ипатов | |
239 | 7 | Владимир Ипатов | на мастере: |
240 | 7 | Владимир Ипатов | |
241 | 7 | Владимир Ипатов | перенастройка кластера на новые пути: |
242 | 7 | Владимир Ипатов | <pre> |
243 | 7 | Владимир Ипатов | gnt-cluster modify -H xen-pvm:bootloader_path=/usr/lib/xen/bin/pygrub |
244 | 7 | Владимир Ипатов | gnt-cluster modify -H xen-pvm:initrd_path=/boot/initrd.img-xenU |
245 | 7 | Владимир Ипатов | gnt-cluster modify -H xen-pvm:kernel_path=/boot/vmlinuz-xenU |
246 | 7 | Владимир Ипатов | gnt-cluster modify -H xen-hvm:device_model=/usr/bin/qemu-system-x86_64 |
247 | 7 | Владимир Ипатов | gnt-cluster modify -H xen-hvm:kernel_path=/usr/lib/xen/boot/hvmloader |
248 | 7 | Владимир Ипатов | gnt-cluster modify -H xen-pvm:xen_cmd=xl |
249 | 7 | Владимир Ипатов | gnt-cluster modify -H xen-hvm:xen_cmd=xl |
250 | 7 | Владимир Ипатов | </pre> |
251 | 1 | Владимир Ипатов | |
252 | 27 | Владимир Ипатов | после всех настроек запустить gnt-cluster verify и устранить оставшиеся проблемы. |
253 | 27 | Владимир Ипатов | |
254 | 1 | Владимир Ипатов | h2. перенос виртуальных машин |
255 | 1 | Владимир Ипатов | |
256 | 2 | Владимир Ипатов | перенос следует делать по одной машине, с проверкой работоспособности |
257 | 2 | Владимир Ипатов | |
258 | 2 | Владимир Ипатов | 1) произвести failover виртуальной машины: |
259 | 2 | Владимир Ипатов | <pre> |
260 | 2 | Владимир Ипатов | gnt-instance failover МАШИНА |
261 | 23 | Владимир Ипатов | </pre> |
262 | 2 | Владимир Ипатов | |
263 | 26 | Владимир Ипатов | 2) проверить работоспособность машины с помощью ping и захода по ssh/rdp |
264 | 26 | Владимир Ипатов | |
265 | 30 | Владимир Ипатов | В случае windows иногда требуется зайти через vnc на локальную консоль виртуальной машины и однократно либо залогиниться юзером (windows 2008/r2), либо зайти в безопасный режим (windows 2012/r2). После чего перезагрузить систему как обычно. |
266 | 26 | Владимир Ипатов | в параметрах сетевого интерфейса в windows нужно переключить checksum offload и large send offload в disabled. |
267 | 26 | Владимир Ипатов | если на интерфейсе был статический адрес, то его нужно прописать заново. |
268 | 31 | Владимир Ипатов | Также иногда нужно снова прописать точки монтирования для дисков (буквы), кроме системного. |
269 | 26 | Владимир Ипатов | |
270 | 1 | Владимир Ипатов | h2. апгрейд второй половины кластера |
271 | 1 | Владимир Ипатов | |
272 | 1 | Владимир Ипатов | для апгрейда второй половины кластера следует повторить операцию апгрейда узла для оставшихся узлов версии 2.x (процедуру см. выше) |
273 | 29 | Владимир Ипатов | |
274 | 29 | Владимир Ипатов | после апгрейда: |
275 | 29 | Владимир Ипатов | |
276 | 29 | Владимир Ипатов | тюнинг дрбд новой версии: |
277 | 29 | Владимир Ипатов | |
278 | 29 | Владимир Ипатов | <pre> |
279 | 29 | Владимир Ипатов | gnt-cluster modify -D drbd:disk-custom=" --c-plan-ahead 0",net-custom=" --max-buffers 8000" |
280 | 29 | Владимир Ипатов | </pre> |
281 | 32 | Владимир Ипатов | или: |
282 | 32 | Владимир Ипатов | <pre> |
283 | 33 | Владимир Ипатов | gnt-cluster modify -D drbd:resync-rate=61440,c-max-rate=0,c-min-rate=0,dynamic-resync=False,c-plan-ahead=0,disk-custom='--c-plan-ahead 0',net-custom='--max-buffers 16384 --max-epoch-size 16384' |
284 | 32 | Владимир Ипатов | </pre> |
285 | 32 | Владимир Ипатов | также можно --sndbuf-size 1024k --rcvbuf-size 2048k в net-custom |
286 | 29 | Владимир Ипатов | |
287 | 29 | Владимир Ипатов | затем запустить gnt-cluster verify и решить оставшиеся проблемы |