Апгрейд с wheezy на stretch (2x до 3х) » История » Версия 25
Владимир Ипатов, 25.02.2020 17:15
| 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 | 8 | Владимир Ипатов | после всех настроек запустиьт gnt-cluster verify и устранить оставшиеся проблемы. |
| 253 | 1 | Владимир Ипатов | |
| 254 | 1 | Владимир Ипатов | h2. перенос виртуальных машин |
| 255 | 1 | Владимир Ипатов | |
| 256 | 2 | Владимир Ипатов | перенос следует делать по одной машине, с проверкой работоспособности |
| 257 | 2 | Владимир Ипатов | |
| 258 | 2 | Владимир Ипатов | 1) произвести failover виртуальной машины: |
| 259 | 2 | Владимир Ипатов | <pre> |
| 260 | 2 | Владимир Ипатов | gnt-instance failover МАШИНА |
| 261 | 2 | Владимир Ипатов | </pre> |
| 262 | 2 | Владимир Ипатов | |
| 263 | 2 | Владимир Ипатов | 2) проверить работоспособность машины с помощью ping и захода по ssh/rdp |
| 264 | 2 | Владимир Ипатов | |
| 265 | 2 | Владимир Ипатов | В случае windows иногда требуется зайти через vnc на локальную консоль виртуальной машины и однократно либо залогиниться юзером, либо зайти в безопасный режим. После чего перезагрузить систему как обычно. |
| 266 | 23 | Владимир Ипатов | в параметрах сетевого интерфейса в windows нужно переключить checksum offload и large send offload в disabled. |
| 267 | 23 | Владимир Ипатов | если на интерфейсе был статический адрес, то его нужно прописать заново. |
| 268 | 2 | Владимир Ипатов | |
| 269 | 1 | Владимир Ипатов | h2. апгрейд второй половины кластера |
| 270 | 1 | Владимир Ипатов | |
| 271 | 1 | Владимир Ипатов | для апгрейда второй половины кластера следует повторить операцию апгрейда узла для оставшихся узлов версии 2.x (процедуру см. выше) |