Апгрейд с wheezy на stretch (2x до 3х) » История » Версия 11
Владимир Ипатов, 19.01.2020 16:17
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 | 3 | Владимир Ипатов | deb http://archive.debian.org/jessie wheezy main |
67 | 3 | Владимир Ипатов | deb http://archive.debian.org/debian-security jessie/updates main |
68 | 3 | Владимир Ипатов | # |
69 | 3 | Владимир Ипатов | # backports |
70 | 3 | Владимир Ипатов | # |
71 | 3 | Владимир Ипатов | deb http://archive.debian.org/debian/ jessie-backports main |
72 | 3 | Владимир Ипатов | </pre> |
73 | 3 | Владимир Ипатов | |
74 | 3 | Владимир Ипатов | меняем содержимое /etc/apt/apt.conf.d/99stable |
75 | 3 | Владимир Ипатов | <pre> |
76 | 3 | Владимир Ипатов | APT::Default-Release "jessie"; |
77 | 3 | Владимир Ипатов | </pre> |
78 | 3 | Владимир Ипатов | |
79 | 3 | Владимир Ипатов | меняем содержимое /etc/apt/sources.list.d/sci-dev.list |
80 | 3 | Владимир Ипатов | <pre> |
81 | 3 | Владимир Ипатов | deb http://sci-dev.skycover.ru/apt stretch main |
82 | 3 | Владимир Ипатов | </pre> |
83 | 3 | Владимир Ипатов | |
84 | 3 | Владимир Ипатов | скачиваем и устанавливаем новый ключ для sci-dev: |
85 | 3 | Владимир Ипатов | <pre> |
86 | 4 | Владимир Ипатов | wget -O- http://sci-dev.skycover.ru/apt/stretch.pub|apt-key add - |
87 | 4 | Владимир Ипатов | </pre> |
88 | 4 | Владимир Ипатов | |
89 | 4 | Владимир Ипатов | добавляем новый файл /etc/apt/apt.conf.d/10ignore-expired-release |
90 | 4 | Владимир Ипатов | <pre> |
91 | 4 | Владимир Ипатов | Acquire::Check-Valid-Until "0"; |
92 | 4 | Владимир Ипатов | </pre> |
93 | 4 | Владимир Ипатов | |
94 | 4 | Владимир Ипатов | делаем aptitude update |
95 | 4 | Владимир Ипатов | |
96 | 4 | Владимир Ипатов | делаем aptitude full-upgrade |
97 | 4 | Владимир Ипатов | |
98 | 4 | Владимир Ипатов | После успешного апгрейда перезагружаемся. |
99 | 4 | Владимир Ипатов | |
100 | 4 | Владимир Ипатов | Перенастраиваем apt еще раз |
101 | 4 | Владимир Ипатов | /etc/apt/sources.list: |
102 | 4 | Владимир Ипатов | <pre> |
103 | 4 | Владимир Ипатов | deb http://ftp.debian.org/debian stretch main contrib non-free |
104 | 4 | Владимир Ипатов | deb http://ftp.debian.org/debian stretch-updates main contrib non-free |
105 | 4 | Владимир Ипатов | deb http://ftp.debian.org/debian stretch-backports main contrib non-free |
106 | 4 | Владимир Ипатов | </pre> |
107 | 4 | Владимир Ипатов | /etc/apt/apt.conf.d/99stable: |
108 | 4 | Владимир Ипатов | <pre> |
109 | 4 | Владимир Ипатов | APT::Default-Release "stretch"; |
110 | 3 | Владимир Ипатов | </pre> |
111 | 3 | Владимир Ипатов | |
112 | 5 | Владимир Ипатов | обновляемся до stretch: |
113 | 5 | Владимир Ипатов | |
114 | 5 | Владимир Ипатов | aptitude update |
115 | 5 | Владимир Ипатов | aptitude full-upgrade |
116 | 5 | Владимир Ипатов | |
117 | 10 | Владимир Ипатов | перезагрузка |
118 | 5 | Владимир Ипатов | |
119 | 10 | Владимир Ипатов | |
120 | 5 | Владимир Ипатов | проверяем версии пакетов: |
121 | 5 | Владимир Ипатов | dpkg -l|grep ganeti - должны быть 2.15-sciX |
122 | 5 | Владимир Ипатов | dpkg -l|grep sci - должны быть 3.х-sciX |
123 | 5 | Владимир Ипатов | |
124 | 5 | Владимир Ипатов | если версси несовпадают, обновить из репозитория sci-dev.skycover.ru/apt |
125 | 5 | Владимир Ипатов | |
126 | 9 | Владимир Ипатов | если в процессе обновления qemu и qemu-system остались в версии wheezy, то следует их обновить руками: |
127 | 9 | Владимир Ипатов | aptitude install qemu qemu-system |
128 | 10 | Владимир Ипатов | |
129 | 10 | Владимир Ипатов | удалить systemd: |
130 | 10 | Владимир Ипатов | |
131 | 10 | Владимир Ипатов | <pre> |
132 | 10 | Владимир Ипатов | apt-get install -y --force-yes sysvinit-core sysvinit-utils |
133 | 10 | Владимир Ипатов | cp /usr/share/sysvinit/inittab /etc/inittab |
134 | 10 | Владимир Ипатов | перезагрузка |
135 | 10 | Владимир Ипатов | apt-get remove -y --force-yes --purge --auto-remove systemd |
136 | 10 | Владимир Ипатов | echo -e 'Package: systemd\nPin: release *\nPin-Priority: -1' > /etc/apt/preferences.d/systemd |
137 | 10 | Владимир Ипатов | echo -e '\n\nPackage: *systemd*\nPin: release *\nPin-Priority: -1' >> /etc/apt/preferences.d/systemd |
138 | 10 | Владимир Ипатов | echo -e '\nPackage: systemd:i386\nPin: release *\nPin-Priority: -1' >> /etc/apt/preferences.d/systemd |
139 | 10 | Владимир Ипатов | </pre> |
140 | 9 | Владимир Ипатов | |
141 | 11 | Владимир Ипатов | настраиваем ssh на работу с dss ключами: |
142 | 11 | Владимир Ипатов | |
143 | 11 | Владимир Ипатов | на каждом узле должен быть файл /var/lib/ganeti/rapi/users |
144 | 11 | Владимир Ипатов | <pre> |
145 | 11 | Владимир Ипатов | scweb СЛУЧАЙНЫЙ_ПАРОЛЬ write |
146 | 11 | Владимир Ипатов | </pre> |
147 | 11 | Владимир Ипатов | |
148 | 5 | Владимир Ипатов | устанавливаем пакет sci-web: |
149 | 5 | Владимир Ипатов | aptitude install sci-web |
150 | 5 | Владимир Ипатов | |
151 | 1 | Владимир Ипатов | h2. Перенастройка кластера для работы в смешанном окружении. |
152 | 1 | Владимир Ипатов | |
153 | 1 | Владимир Ипатов | Смешанный кластер до момента перенастройки не может выполнять операции по старту/остановке виртуальных машин, их переносу, перенастройке и т.д. |
154 | 1 | Владимир Ипатов | Суть настроек заключается в том, что в узлах версии 3 больше нет toolstack xm, есть только xl. Поэтому нужно перенастроить все узлы и кластер на использование xl. |
155 | 1 | Владимир Ипатов | Также в узлах версии 2.х и 3.х несовпадают некоторые пути, это решается за счет симлинков |
156 | 1 | Владимир Ипатов | |
157 | 7 | Владимир Ипатов | h3. добавление симлинков |
158 | 7 | Владимир Ипатов | |
159 | 7 | Владимир Ипатов | на каждом узле 2.x: |
160 | 7 | Владимир Ипатов | <pre> |
161 | 7 | Владимир Ипатов | ln -s /usr/lib/xen-4.1 /usr/lib/xen |
162 | 7 | Владимир Ипатов | ln -s /usr/lib/xen/bin/qemu-dm /usr/bin/qemu-system-x86_64 |
163 | 7 | Владимир Ипатов | </pre> |
164 | 7 | Владимир Ипатов | |
165 | 1 | Владимир Ипатов | h3. перенастройка кластера на xl |
166 | 1 | Владимир Ипатов | |
167 | 7 | Владимир Ипатов | на каждом узле 2.х: |
168 | 7 | Владимир Ипатов | |
169 | 7 | Владимир Ипатов | в /etc/xen/xl.conf установить autoballoon=0 |
170 | 7 | Владимир Ипатов | в /etc/default/xen установить TOOLSTACK=xl |
171 | 7 | Владимир Ипатов | service xen restart |
172 | 7 | Владимир Ипатов | |
173 | 7 | Владимир Ипатов | на мастере: |
174 | 7 | Владимир Ипатов | |
175 | 7 | Владимир Ипатов | перенастройка кластера на новые пути: |
176 | 7 | Владимир Ипатов | <pre> |
177 | 7 | Владимир Ипатов | gnt-cluster modify -H xen-pvm:bootloader_path=/usr/lib/xen/bin/pygrub |
178 | 7 | Владимир Ипатов | gnt-cluster modify -H xen-pvm:initrd_path=/boot/initrd.img-xenU |
179 | 7 | Владимир Ипатов | gnt-cluster modify -H xen-pvm:kernel_path=/boot/vmlinuz-xenU |
180 | 7 | Владимир Ипатов | gnt-cluster modify -H xen-hvm:device_model=/usr/bin/qemu-system-x86_64 |
181 | 7 | Владимир Ипатов | gnt-cluster modify -H xen-hvm:kernel_path=/usr/lib/xen/boot/hvmloader |
182 | 7 | Владимир Ипатов | gnt-cluster modify -H xen-pvm:xen_cmd=xl |
183 | 7 | Владимир Ипатов | gnt-cluster modify -H xen-hvm:xen_cmd=xl |
184 | 7 | Владимир Ипатов | </pre> |
185 | 1 | Владимир Ипатов | |
186 | 8 | Владимир Ипатов | после всех настроек запустиьт gnt-cluster verify и устранить оставшиеся проблемы. |
187 | 1 | Владимир Ипатов | |
188 | 1 | Владимир Ипатов | h2. перенос виртуальных машин |
189 | 1 | Владимир Ипатов | |
190 | 2 | Владимир Ипатов | перенос следует делать по одной машине, с проверкой работоспособности |
191 | 2 | Владимир Ипатов | |
192 | 2 | Владимир Ипатов | 1) произвести failover виртуальной машины: |
193 | 2 | Владимир Ипатов | <pre> |
194 | 2 | Владимир Ипатов | gnt-instance failover МАШИНА |
195 | 2 | Владимир Ипатов | </pre> |
196 | 2 | Владимир Ипатов | |
197 | 2 | Владимир Ипатов | 2) проверить работоспособность машины с помощью ping и захода по ssh/rdp |
198 | 2 | Владимир Ипатов | |
199 | 2 | Владимир Ипатов | В случае windows иногда требуется зайти через vnc на локальную консоль виртуальной машины и однократно либо залогиниться юзером, либо зайти в безопасный режим. После чего перезагрузить систему как обычно. |
200 | 2 | Владимир Ипатов | |
201 | 1 | Владимир Ипатов | h2. апгрейд второй половины кластера |
202 | 1 | Владимир Ипатов | |
203 | 1 | Владимир Ипатов | для апгрейда второй половины кластера следует повторить операцию апгрейда узла для оставшихся узлов версии 2.x (процедуру см. выше) |