Миграция сервера: наиболее эффективный способ


10

Мне было поручено перенести один из наших сайтов между серверами (два разных хоста). Обе среды Linux.

Сайт транслирует видео, поэтому на данный момент сервер заполнен медиа-файлами (изображения и видео). Сначала я подумал, что мы будем использовать rsycnc для передачи всего, но я хочу быть максимально эффективным и делать все как можно быстрее. Я подумал, что некоторые из вас могут посоветовать, как ускорить процесс, или если rsync - даже правильный выбор здесь.

Заранее спасибо. Извиняюсь за мои ограниченные знания о сисадмине ...

РЕДАКТИРОВАТЬ: Мы работаем с базовым стеком LAMP (centos) и переходим к красной шляпе на стойке).


1
Определите «эффективный» в этом контексте. Быстро, надежно, надежно или как? И нет, вы не можете иметь все это.
Джон Гарденье

1
rsync почти наверняка лучший выбор для переноса данных; все еще есть конфигурация и возможные базы данных и т. д., о которых упоминали другие, у которых есть другие лучшие варианты.
fukawi2

Ответы:


12

Существует много задач, связанных с «переносом приложения с одного сервера на другой» - на самом деле мы не можем дать исчерпывающий ответ на этот вопрос для всех случаев использования. Тем не менее, вы можете ответить на него довольно подробно для вашей установки, если вы подходите к этому систематически:

  1. Составьте список всего, что нужно вашему приложению.
    • Веб сервер?
    • Сервер базы данных?
    • Почтовый сервер?
    • Язык сценариев (PHP, Ruby / Rails, Perl, что-то еще)?
    • Вспомогательные программы (ImageMagick и т. Д.)?
  2. Составьте список важных элементов конфигурации.
    • IP-адрес, маска сети, шлюз и т. Д.
    • DNS-серверы
    • Элементы приложения (временные каталоги и т. Д.)
  3. Возьмите списки из (1) и (2) и напишите схему миграции.
    Это должно включать такие вещи, как установка и настройка любого необходимого вам программного обеспечения / пакетов, выгрузка и загрузка базы данных и т. Д.
  4. ПРОВЕРЬТЕ МИГРАЦИЮ
    Скопируйте все заново, как если бы сервер собирался начать работу, но не включайте его. Вставьте его в изолированную сеть, когда закончите, и протестируйте все.
    Если у вас есть стандартная процедура тестирования для вашего приложения, вы должны запустить ее на перенесенном сервере.
  5. Если все не прошло идеально, перейдите к (3), обновите (1) и (2), затем пересмотрите свой план.
  6. Когда тестовые миграции пройдут идеально, сделайте фактическую миграцию.
    В зависимости от того, насколько сложным является процесс миграции, это может означать просто удаление и перезагрузку базы данных, или вы можете захотеть стереть машину и сделать все это с нуля.

Когда вы закончите, у вас будет контрольный список для вашего конкретного приложения, в вашей конкретной среде. Этот контрольный список, вероятно, будет развиваться по мере разработки приложения, но он может послужить отправной точкой через 3-5 лет, когда вам придется снова мигрировать.

Другие вещи, которые следует учитывать, включают в себя реализацию управления конфигурацией аля Puppet или Chef.
(Если вы собираетесь стать «системным администратором», вы должны рассмотреть их, в противном случае передайте их ответственному лицу / команде.)


5

Что ж, у вас есть конфигурация сервера и контент сервера, и очень маловероятно, что один и тот же метод будет работать для обоих.

У вас есть база данных? Если это так, то это также необходимо перенести. Rsync прекрасно работает для статического контента. Просто запустите его один раз, чтобы переместить список ваших данных, а затем говорите каждые несколько часов, чтобы все синхронизировалось до момента переключения. Обязательно отключите rsync cron перед миграцией!

Что касается конфигурации, мы понятия не имеем, что вы используете, поэтому не можем дать рекомендации.


Спасибо! В настоящее время мы работаем на CentOS со стеком Apache / PHP / MySQL (довольно стандартно) с WHM. Мы перенесли все в Redhat Linux на Rackspace.
Призрачный код
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.