Проект

Общее

Профиль

Апгрейд с wheezy на stretch (2x до 3х) » История » Версия 4

Владимир Ипатов, 19.01.2020 14:54

1 1 Владимир Ипатов
h1. Апгрейд с wheezy на stretch (2x до 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 1 Владимир Ипатов
h2. Перенастройка кластера для работы в смешанном окружении.
113 1 Владимир Ипатов
114 1 Владимир Ипатов
Смешанный кластер до момента перенастройки не может выполнять операции по старту/остановке виртуальных машин, их переносу, перенастройке и т.д.
115 1 Владимир Ипатов
Суть настроек заключается в том, что в узлах версии 3 больше нет toolstack xm, есть только xl. Поэтому нужно перенастроить все узлы и кластер на использование xl.
116 1 Владимир Ипатов
Также в узлах версии 2.х и 3.х несовпадают некоторые пути, это решается за счет симлинков
117 1 Владимир Ипатов
118 1 Владимир Ипатов
h3. перенастройка кластера на xl
119 1 Владимир Ипатов
120 1 Владимир Ипатов
h3. добавление симлинков
121 1 Владимир Ипатов
122 1 Владимир Ипатов
h2. перенос виртуальных машин
123 1 Владимир Ипатов
124 2 Владимир Ипатов
перенос следует делать по одной машине, с проверкой работоспособности
125 2 Владимир Ипатов
126 2 Владимир Ипатов
1) произвести failover виртуальной машины:
127 2 Владимир Ипатов
<pre>
128 2 Владимир Ипатов
gnt-instance failover МАШИНА
129 2 Владимир Ипатов
</pre>
130 2 Владимир Ипатов
131 2 Владимир Ипатов
2) проверить работоспособность машины с помощью ping и захода по ssh/rdp
132 2 Владимир Ипатов
133 2 Владимир Ипатов
В случае windows иногда требуется зайти через vnc на локальную консоль виртуальной машины и однократно либо залогиниться юзером, либо зайти в безопасный режим. После чего перезагрузить систему как обычно.
134 2 Владимир Ипатов
135 1 Владимир Ипатов
h2. апгрейд второй половины кластера
136 1 Владимир Ипатов
137 1 Владимир Ипатов
для апгрейда второй половины кластера следует повторить операцию апгрейда узла для оставшихся узлов версии 2.x (процедуру см. выше)