Апгрейд с wheezy на stretch (2x до 3х) » История » Версия 19
Владимир Ипатов, 19.01.2020 22: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 | 4 | Владимир Ипатов | делаем aptitude update |
94 | 4 | Владимир Ипатов | |
95 | 4 | Владимир Ипатов | делаем aptitude full-upgrade |
96 | 4 | Владимир Ипатов | |
97 | 4 | Владимир Ипатов | После успешного апгрейда перезагружаемся. |
98 | 4 | Владимир Ипатов | |
99 | 4 | Владимир Ипатов | Перенастраиваем apt еще раз |
100 | 4 | Владимир Ипатов | /etc/apt/sources.list: |
101 | 4 | Владимир Ипатов | <pre> |
102 | 4 | Владимир Ипатов | deb http://ftp.debian.org/debian stretch main contrib non-free |
103 | 4 | Владимир Ипатов | deb http://ftp.debian.org/debian stretch-updates main contrib non-free |
104 | 4 | Владимир Ипатов | deb http://ftp.debian.org/debian stretch-backports main contrib non-free |
105 | 4 | Владимир Ипатов | </pre> |
106 | 4 | Владимир Ипатов | /etc/apt/apt.conf.d/99stable: |
107 | 4 | Владимир Ипатов | <pre> |
108 | 4 | Владимир Ипатов | APT::Default-Release "stretch"; |
109 | 3 | Владимир Ипатов | </pre> |
110 | 3 | Владимир Ипатов | |
111 | 5 | Владимир Ипатов | обновляемся до stretch: |
112 | 5 | Владимир Ипатов | |
113 | 5 | Владимир Ипатов | aptitude update |
114 | 5 | Владимир Ипатов | aptitude full-upgrade |
115 | 5 | Владимир Ипатов | |
116 | 10 | Владимир Ипатов | перезагрузка |
117 | 5 | Владимир Ипатов | |
118 | 10 | Владимир Ипатов | |
119 | 5 | Владимир Ипатов | проверяем версии пакетов: |
120 | 14 | Владимир Ипатов | dpkg -l|grep ganeti - должны быть 2.15-sciX, instance-debootstrap должн быть 0-16-sciX |
121 | 5 | Владимир Ипатов | |
122 | 19 | Владимир Ипатов | если версии не совпадают, обновить из репозитория sci-dev.skycover.ru/apt |
123 | 19 | Владимир Ипатов | если присутствуют ganeti-2.12 в удаленном виде, рекомендуется их вычистить: |
124 | 19 | Владимир Ипатов | <pre> |
125 | 19 | Владимир Ипатов | aptitude purge ganeti-2.12 ganeti-haskell-2.12 ganeti-htools-2.12 |
126 | 19 | Владимир Ипатов | </pre> |
127 | 5 | Владимир Ипатов | |
128 | 9 | Владимир Ипатов | если в процессе обновления qemu и qemu-system остались в версии wheezy, то следует их обновить руками: |
129 | 9 | Владимир Ипатов | aptitude install qemu qemu-system |
130 | 15 | Владимир Ипатов | если xen 4.8 не установился сам ,то нужно установить руками: |
131 | 15 | Владимир Ипатов | <pre> |
132 | 15 | Владимир Ипатов | sudo aptitude install xen-hypervisor-4.8-amd64 xen-utils-4.8 |
133 | 15 | Владимир Ипатов | </pre> |
134 | 10 | Владимир Ипатов | |
135 | 10 | Владимир Ипатов | удалить systemd: |
136 | 10 | Владимир Ипатов | |
137 | 10 | Владимир Ипатов | <pre> |
138 | 10 | Владимир Ипатов | apt-get install -y --force-yes sysvinit-core sysvinit-utils |
139 | 10 | Владимир Ипатов | cp /usr/share/sysvinit/inittab /etc/inittab |
140 | 10 | Владимир Ипатов | перезагрузка |
141 | 10 | Владимир Ипатов | apt-get remove -y --force-yes --purge --auto-remove systemd |
142 | 10 | Владимир Ипатов | echo -e 'Package: systemd\nPin: release *\nPin-Priority: -1' > /etc/apt/preferences.d/systemd |
143 | 10 | Владимир Ипатов | echo -e '\n\nPackage: *systemd*\nPin: release *\nPin-Priority: -1' >> /etc/apt/preferences.d/systemd |
144 | 10 | Владимир Ипатов | echo -e '\nPackage: systemd:i386\nPin: release *\nPin-Priority: -1' >> /etc/apt/preferences.d/systemd |
145 | 10 | Владимир Ипатов | </pre> |
146 | 9 | Владимир Ипатов | |
147 | 11 | Владимир Ипатов | настраиваем ssh на работу с dss ключами: |
148 | 12 | Владимир Ипатов | /etc/ssh/sshd_config: |
149 | 12 | Владимир Ипатов | <pre> |
150 | 12 | Владимир Ипатов | PubkeyAcceptedKeyTypes=+ssh-dss |
151 | 12 | Владимир Ипатов | </pre> |
152 | 12 | Владимир Ипатов | /etc/ssh/ssh_config: |
153 | 12 | Владимир Ипатов | <pre> |
154 | 12 | Владимир Ипатов | PubkeyAcceptedKeyTypes=+ssh-dss |
155 | 12 | Владимир Ипатов | </pre> |
156 | 12 | Владимир Ипатов | (отступ должен быть сохранен) |
157 | 13 | Владимир Ипатов | service ssh restart |
158 | 11 | Владимир Ипатов | |
159 | 11 | Владимир Ипатов | на каждом узле должен быть файл /var/lib/ganeti/rapi/users |
160 | 11 | Владимир Ипатов | <pre> |
161 | 11 | Владимир Ипатов | scweb СЛУЧАЙНЫЙ_ПАРОЛЬ write |
162 | 11 | Владимир Ипатов | </pre> |
163 | 1 | Владимир Ипатов | |
164 | 16 | Владимир Ипатов | переинициализируем паппет: |
165 | 16 | Владимир Ипатов | <pre> |
166 | 16 | Владимир Ипатов | rm -r /var/lib/puppet/ssl |
167 | 16 | Владимир Ипатов | в /etc/default/puppet START=yes |
168 | 16 | Владимир Ипатов | puppet agent --enable |
169 | 16 | Владимир Ипатов | </pre> |
170 | 16 | Владимир Ипатов | также в конфиг следует указать новый паппет мастер для новых паппет агентов, т.к. паппетмастер в wheezy не совместим с агентами stretch. |
171 | 13 | Владимир Ипатов | удаляем локальные скрипты старых версий: |
172 | 13 | Владимир Ипатов | rm /usr/local/sbin/* |
173 | 13 | Владимир Ипатов | устанавливаем доп пакеты sci: |
174 | 13 | Владимир Ипатов | aptitude install sci-web sci-config sci-scripts sci-udev-netrules |
175 | 5 | Владимир Ипатов | |
176 | 1 | Владимир Ипатов | h2. Перенастройка кластера для работы в смешанном окружении. |
177 | 1 | Владимир Ипатов | |
178 | 1 | Владимир Ипатов | Смешанный кластер до момента перенастройки не может выполнять операции по старту/остановке виртуальных машин, их переносу, перенастройке и т.д. |
179 | 1 | Владимир Ипатов | Суть настроек заключается в том, что в узлах версии 3 больше нет toolstack xm, есть только xl. Поэтому нужно перенастроить все узлы и кластер на использование xl. |
180 | 1 | Владимир Ипатов | Также в узлах версии 2.х и 3.х несовпадают некоторые пути, это решается за счет симлинков |
181 | 1 | Владимир Ипатов | |
182 | 7 | Владимир Ипатов | h3. добавление симлинков |
183 | 7 | Владимир Ипатов | |
184 | 7 | Владимир Ипатов | на каждом узле 2.x: |
185 | 7 | Владимир Ипатов | <pre> |
186 | 7 | Владимир Ипатов | ln -s /usr/lib/xen-4.1 /usr/lib/xen |
187 | 7 | Владимир Ипатов | ln -s /usr/lib/xen/bin/qemu-dm /usr/bin/qemu-system-x86_64 |
188 | 7 | Владимир Ипатов | </pre> |
189 | 7 | Владимир Ипатов | |
190 | 1 | Владимир Ипатов | h3. перенастройка кластера на xl |
191 | 1 | Владимир Ипатов | |
192 | 7 | Владимир Ипатов | на каждом узле 2.х: |
193 | 7 | Владимир Ипатов | |
194 | 7 | Владимир Ипатов | в /etc/xen/xl.conf установить autoballoon=0 |
195 | 7 | Владимир Ипатов | в /etc/default/xen установить TOOLSTACK=xl |
196 | 7 | Владимир Ипатов | service xen restart |
197 | 7 | Владимир Ипатов | |
198 | 7 | Владимир Ипатов | на мастере: |
199 | 7 | Владимир Ипатов | |
200 | 7 | Владимир Ипатов | перенастройка кластера на новые пути: |
201 | 7 | Владимир Ипатов | <pre> |
202 | 7 | Владимир Ипатов | gnt-cluster modify -H xen-pvm:bootloader_path=/usr/lib/xen/bin/pygrub |
203 | 7 | Владимир Ипатов | gnt-cluster modify -H xen-pvm:initrd_path=/boot/initrd.img-xenU |
204 | 7 | Владимир Ипатов | gnt-cluster modify -H xen-pvm:kernel_path=/boot/vmlinuz-xenU |
205 | 7 | Владимир Ипатов | gnt-cluster modify -H xen-hvm:device_model=/usr/bin/qemu-system-x86_64 |
206 | 7 | Владимир Ипатов | gnt-cluster modify -H xen-hvm:kernel_path=/usr/lib/xen/boot/hvmloader |
207 | 7 | Владимир Ипатов | gnt-cluster modify -H xen-pvm:xen_cmd=xl |
208 | 7 | Владимир Ипатов | gnt-cluster modify -H xen-hvm:xen_cmd=xl |
209 | 7 | Владимир Ипатов | </pre> |
210 | 1 | Владимир Ипатов | |
211 | 8 | Владимир Ипатов | после всех настроек запустиьт gnt-cluster verify и устранить оставшиеся проблемы. |
212 | 1 | Владимир Ипатов | |
213 | 1 | Владимир Ипатов | h2. перенос виртуальных машин |
214 | 1 | Владимир Ипатов | |
215 | 2 | Владимир Ипатов | перенос следует делать по одной машине, с проверкой работоспособности |
216 | 2 | Владимир Ипатов | |
217 | 2 | Владимир Ипатов | 1) произвести failover виртуальной машины: |
218 | 2 | Владимир Ипатов | <pre> |
219 | 2 | Владимир Ипатов | gnt-instance failover МАШИНА |
220 | 2 | Владимир Ипатов | </pre> |
221 | 2 | Владимир Ипатов | |
222 | 2 | Владимир Ипатов | 2) проверить работоспособность машины с помощью ping и захода по ssh/rdp |
223 | 2 | Владимир Ипатов | |
224 | 2 | Владимир Ипатов | В случае windows иногда требуется зайти через vnc на локальную консоль виртуальной машины и однократно либо залогиниться юзером, либо зайти в безопасный режим. После чего перезагрузить систему как обычно. |
225 | 2 | Владимир Ипатов | |
226 | 1 | Владимир Ипатов | h2. апгрейд второй половины кластера |
227 | 1 | Владимир Ипатов | |
228 | 1 | Владимир Ипатов | для апгрейда второй половины кластера следует повторить операцию апгрейда узла для оставшихся узлов версии 2.x (процедуру см. выше) |