Обновление ОС "на лету"

Интересно, есть ли способ установить более новую версию ОС, скажем, 14.04 (когда она появится) на второй раздел диска моего сервера изнутри операционной системы (например, Ubuntu 12.04), затем изменить порядок загрузки grub и перезагрузиться в новую систему (сокращая время простоя сервера)?

Сценарий:

1-й раздел - Ubuntu 12.04 - счастливый и работающий
2-й раздел - пустой

приходит новый LTS

1-й раздел - Ubuntu 12.04 (сервер все еще работает) - установить 14.04 на второй раздел
2-й раздел - выполняется установка

перезагрузиться после установки

[ 119] 1-й раздел - старая система (собирается быть уничтоженной)
2-й раздел - сервер работает с 14.04 (время простоя уменьшено до одной перезагрузки)

Есть идеи, как этого достичь? Способна ли кукла на автоматизацию такого рода?

Спасибо!

2
задан 13.04.2020, 10:39

1 ответ

Вы, вероятно, могли бы сделать, но прежде чем я вернусь к этому, рассмотрим традиционный подход:

  1. Ожидать нерабочее время. Лишь немногие серверы нуждаются в , чтобы быть активными 24/7, и те, у которых обычно есть система аварийного переключения, которая позволяет обновлять один сервер за раз без какого-либо простоя. Если это не так важно, чтобы запланированный час простоя, вы можете запланировать обновление.

  2. Сделайте резервную копию диска на ваш второй диск. Но вы уже делаете это регулярно, верно?

  3. У вас стандартное обновление LTS-LTS. Исправьте все, что сломано, и двигайтесь дальше. Службы на сервере будут оставаться активными до тех пор, пока они могут (MySQL и др. Будут перезапускаться при обновлении, но обычно они возвращаются обратно).


Единственный способ сделать то, что вы просите, - это использовать виртуальную машину. Вы можете попробовать облегченные методы LXC или schroot, но я думаю, что вы, вероятно, захотите использовать VirtualBox хотя бы потому, что он старый и задокументированный.

Установите его, создайте виртуальную машину с почти физическим, необработанным доступом к диску, установите Ubuntu и настройте все. Я предоставлю вам, это дает вам большую гибкость для перенастройки, если вам нужно что-то изменить в обновлении.


Другой и единственный настоящий подход с высокой доступностью - это подход с горячей заменой / отработкой отказа. Запустите новый сервер, установите Ubuntu, настройте его, синхронизируйте данные (в идеале, делитесь ими из SAN через NFS между всеми серверами, чтобы обеспечить некоторую атомарную согласованность) и запустите его. Нажмите переключатель, и через несколько микросекунд новый сервер заменит старый.

Более современный подход к этому состоит в том, чтобы просто виртуализировать все на своем компьютере, чтобы, даже если у вас был только один физический хост-сервер, вы могли просто создать другую виртуальную машину для вашего нового сервера и выполнить простое мягкое переключение.


Я думаю, что первый традиционный метод дает вам максимальную безопасность, не усложняя существующую производственную настройку такими вещами, как виртуальные машины (при условии, что они еще не созданы).

3
ответ дан 13.04.2020, 10:40
  • 1
    Привет Oli, спасибо за все Ваши подсказки. Я определенно испытаю Вашу идею с VirtualBox, который звучит как наиболее подходящий для того, в чем мы нуждаемся! – displayname 13.04.2020, 10:40

Теги

Похожие вопросы