Интересно, есть ли способ установить более новую версию ОС, скажем, 14.04 (когда она появится) на второй раздел диска моего сервера изнутри операционной системы (например, Ubuntu 12.04), затем изменить порядок загрузки grub и перезагрузиться в новую систему (сокращая время простоя сервера)?
Сценарий:
1-й раздел - Ubuntu 12.04 - счастливый и работающий
2-й раздел - пустой
приходит новый LTS
1-й раздел - Ubuntu 12.04 (сервер все еще работает) - установить 14.04 на второй раздел
2-й раздел - выполняется установка
перезагрузиться после установки
[ 119] 1-й раздел - старая система (собирается быть уничтоженной)
Есть идеи, как этого достичь? Способна ли кукла на автоматизацию такого рода?
Спасибо!
Вы, вероятно, могли бы сделать, но прежде чем я вернусь к этому, рассмотрим традиционный подход:
Ожидать нерабочее время. Лишь немногие серверы нуждаются в , чтобы быть активными 24/7, и те, у которых обычно есть система аварийного переключения, которая позволяет обновлять один сервер за раз без какого-либо простоя. Если это не так важно, чтобы запланированный час простоя, вы можете запланировать обновление.
Сделайте резервную копию диска на ваш второй диск. Но вы уже делаете это регулярно, верно?
У вас стандартное обновление LTS-LTS. Исправьте все, что сломано, и двигайтесь дальше. Службы на сервере будут оставаться активными до тех пор, пока они могут (MySQL и др. Будут перезапускаться при обновлении, но обычно они возвращаются обратно).
Единственный способ сделать то, что вы просите, - это использовать виртуальную машину. Вы можете попробовать облегченные методы LXC или schroot, но я думаю, что вы, вероятно, захотите использовать VirtualBox хотя бы потому, что он старый и задокументированный.
Установите его, создайте виртуальную машину с почти физическим, необработанным доступом к диску, установите Ubuntu и настройте все. Я предоставлю вам, это дает вам большую гибкость для перенастройки, если вам нужно что-то изменить в обновлении.
Другой и единственный настоящий подход с высокой доступностью - это подход с горячей заменой / отработкой отказа. Запустите новый сервер, установите Ubuntu, настройте его, синхронизируйте данные (в идеале, делитесь ими из SAN через NFS между всеми серверами, чтобы обеспечить некоторую атомарную согласованность) и запустите его. Нажмите переключатель, и через несколько микросекунд новый сервер заменит старый.
Более современный подход к этому состоит в том, чтобы просто виртуализировать все на своем компьютере, чтобы, даже если у вас был только один физический хост-сервер, вы могли просто создать другую виртуальную машину для вашего нового сервера и выполнить простое мягкое переключение.
Я думаю, что первый традиционный метод дает вам максимальную безопасность, не усложняя существующую производственную настройку такими вещами, как виртуальные машины (при условии, что они еще не созданы).