Миграция с сервера на сервер

В связи с тем, что во время черной пятницы я заполучил 30$ по цене 5 на linode.com, надо бы их как-то потратить. Причем, потратить их хочется сейчас, пока они дорогие)

Тут, естественно, появляется вопрос — как перенести данные с одного сервера (digitalocean) на другой (linode). Естественно, все эти идиотские how to в стиле скопируйте папку www, etc, экспортируйте базу данных и т.п. совершенно не катят. У меня слишком много всего поднято на сервере, чтобы можно было просто так это все перенести.

Поэтому, я придумал свой гайд. Сначала мне хотелось перенести все с помощью dd. Этот метод называется dd-over-ssh. Но мне расхотелось, когда я понял, что мой диск на linode — 24Gb, а на digitalocean — 30Gb. Так что копировать первые гигабайты — не самая хорошая идея. Естественно, это не отменяет того факта, что копировать все сайты и данные по-отдельности — это еще более плохая идея.

Я воспользовался rescue mode на linode. При этом небольшой дистрибутив линукса загружается с «livecd». На нем был rsync. На исходном сервере я подмонтировал корневую ОС в /mnt Это было нужно для того, чтобы избавиться от различных недо-файлов (/dev /sys /proc etc..). После этого я отформатировал жесткий диск, и скопировал через rsync все файлы на linode. Естественно, было бы странно ожидать, что все просто так заработает.

После перезагрузки, все подвисло на запуске ntpd — демона коррекции времени. Я решил, что он просто глючит и снес его с rescue mode. На самом деле, при следующей неуспешной загрузке, я понял что, проблема в отсутствии интернета на сервере. Это было ожидаемо с самого начала, но я не думал, что он просто не загрузится. Короче, надо было поправить файл /etc/network/interfaces. Там прописывается статический адрес. Как в linode, так и в digitalocean. После его правки все запустилась — win!

Ну еще, конечно, надо обновить информацию в dns, но это уже совсем другая история) А я пока удалю машину на linode — по плану сначала надо обнулить баланс на digitalocean…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *