Переустановка Linux: как избежать простоев?
Мой сайт работает на выделенном сервере Debian LAMP. Я хотел бы обновить систему (скажем, у меня довольно старая версия Debian, и я хочу переустановить все с нуля)
Какую стратегию я могу использовать, чтобы мой сайт не работал, пока я переустанавливаю все?
добавление
Конечно, я знаю, что тем временем могу купить другой сервер и менять DNS, когда это будет сделано. Но это удваивает мою работу.
Разве не может быть служба, которая может выступать в роли прокси-кеше в течение ограниченного периода времени? Возможно, что делает CloudFlare, но кэширует все, а не только изображения.
5 ответов
Разве не может быть служба, которая может выступать в роли прокси-кеше в течение ограниченного периода времени?
Если ваш сайт чисто статический или хотя бы несколько полезен при настройке только для чтения. Затем вы временно платите за какой-либо веб-хостинг, а затем используете что-то вроде wget или аналогичных инструментов, чтобы сделать паук статичной частью вашего веб-сайта.
Вы можете настроить прокси в облаке, настроить squid в качестве прокси для вашего сайта, временно настроить DNS, чтобы весь доступ проходил через прокси, а затем настроить Squid для работы в автономном режиме, после того как все будет кэшировано. Возможно, вы захотите написать сценарий, который позволил бы браузеру посещать все важные страницы через прокси, чтобы все попадало в кеш.
Если вы не хотите простоев, то единственный вариант - это создать новую установку на отдельном оборудовании, и, когда вы довольны, что все работает правильно, измените настройки DNS, чтобы они указывали на новый сервер.
Если у вас нет другого физического сервера, вы можете рассмотреть возможность запуска приложения на облачном сервере во время обновления вашего физического сервера.
Второй сервер должен принять нагрузку, используя балансировщик нагрузки или просто перенаправив IP-адрес на время обновления. Фактически, если вы используете балансировщик нагрузки, вы можете затем оставить оба сервера включенными.
Это предполагает, что сайт не зависит от базы данных. Итак, учитывая ограниченный набор фактов, которые вы нам дали, это мой простой ответ.
Если бы в настоящий крестовый поход против нового оборудования (разумно, если у вас действительно, действительно нет бюджета), я бы сделал это:
- Установите систему виртуализации. Это может быть Xen, если установка Debian старая, но недостаточно старая, чтобы не иметь Xen. При необходимости используйте VirtualBox или даже QEMU.
- Установите виртуализированную систему Debian Squeeze в реальном системном разделе или на логическом томе. Это позволит позже "обновить" эту ВМ до основной ОС. Если вы используете VirtualBox или QEMU, вашим самым простым выбором будет установка на отдельный жесткий диск. полностью посвятив его этой виртуальной машине.
- Установите все сервисы на ВМ и протестируйте все соответственно.
- Когда придет время переключаться, отредактируйте ваш grub.conf и загрузитесь в новую систему. Виртуальная машина (теперь это физический сервер), вероятно, должна будет перенастроить себя из-за смены "аппаратного обеспечения", но Linux хорош в этом. Не забудьте установить grub на новый жесткий диск, если он есть.
Вы уже рассматривали возможность обновления Debian до последней версии? Обновления Debian в большинстве случаев хороши. Если ваш текущий дистрибутив достаточно стар, чтобы не быть широко доступным на зеркалах, вы всегда можете использовать archive.debian.org
пока вы не достигнете полу-текущего.
Я бы начал с виртуальной машины. Создайте систему, а затем переместите свой текущий веб-сайт. Это должно дать вам понять, что может создать проблемы при переносе приложения на новую версию. Если в какой-то момент у вас нет другой серверной машины, вам придется ее отключить, чтобы выполнить обновление, но заблаговременное знание ваших проблем - большой шаг к минимизации времени простоя.