Я пытаюсь преобразовать виртуальную машину в физический выделенный сервер.
У меня есть доступ только к ОС ВМ (CentOS 6.7). У меня нет доступа к гипервизору.
Я хотел бы использовать dd
команду для дампа диска VM, а затем записать этот образ на dd
HD выделенного сервера. Для этого мне, вероятно, понадобится загрузить сервер с Live CD.
У меня вопрос: это будет работать? Лучше скопировать все файлы и каталоги в / с одного сервера на другой с помощью rsync
?
решение1
Эту миграцию следует выполнять на уровне приложений, чтобы иметь чистый старт с новым сервером и не оставлять лишнего хлама, оставшегося после миграции (например, инструментов и драйверов гипервизора).
Начните со списка всего, что в данный момент размещается на сервере, и перенесите эти роли по отдельности на новый сервер, используя процедуры миграции, специфичные для каждого приложения, с планом отката и процедурой тестирования для каждого. Затем выведите старый сервер из эксплуатации.
решение2
Я бы установил Cent OS на физическую машину. Это сокращает время rsync, позволяет вам настроить разрешения и grub для физической машины. Затем rsync из виртуальной машины. Я не вижу смысла в live boot в этом сценарии. Вы, вероятно, не хотите rsync всего root, поэтому вам понадобятся некоторые исключения. То, что вы исключаете, немного зависит от вашей среды. На этом сайте есть хороший пример списка исключений, на который можно посмотреть.
http://www.rackspace.com/knowledge_center/article/migrating-a-linux-server-from-the-command-line-0
Вы также можете рассмотреть возможность ограничения rsync в зависимости от вашей сети и размера сервера.
Итак, из виртуальной машины запустите
sudo rsync -a --bwlimit=5000 --delete -exclude-from Excludefile.txt / root@physicalserver:/
-a сохраняет разрешения и временные метки. --delete удаляет все файлы, которые находятся на физическом сервере, но не на виртуальной машине. --bwlimit ограничивает rsync. Exclude-from исключает шаблоны, найденные в вашем файле исключений.
Потенциальные проблемы
Если вы используете ACL, они не будут передаваться во время rsync. Вы можете сделать экспорт и импорт, если это необходимо.
Если вы используете Disk ID в вашем fstab, и вы перезаписываете новый fstab, ваши разделы не будут монтироваться. Если вы не уверены, просто исключите файл fstab из rsync и добавьте любые необходимые строки в файл после.
Как и в случае с fstab, ваши скрипты конфигурации сети необходимо будет исключить или проверить на предмет потенциальных проблем.
Есть и другие варианты, которые подойдут для этой цели не хуже, но этот метод оказался для меня наиболее эффективным.
решение3
Поскольку на физическом сервере будет другое оборудование, я бы не советовал клонировать диск. Я бы рекомендовал установить ту же версию CentOS на физический сервер, а затем скопировать соответствующие папки/каталоги. Просто будьте избирательны, когда копируете /etc и другие системные папки.
решение4
Простой dd не сработает - у гостей нет правильных загрузочных разделов. И dd медленный. Ручной способ - установите минимальный centos 6.7 в системе - убедитесь, что используете отдельный раздел /boot и заранее создайте все остальные разделы (включая fs, но не обязательно точки монтирования).
Теперь выполните livecd вашего минимального CentOS и с помощью nc и tar перезапишите все, кроме раздела /boot, по одному разделу за раз. Это также будет намного быстрее, чем dd.
пример вызова nc/tar; на физической машине:
nc -l 1234 | tar xvf -
на виртуальной стороне:
tar cvjf - . | nc <physical ip> 1234
повторите для каждого раздела, кроме загрузочного.
Предостережения Эриказдесь тоже держитесь - вам, возможно, придется изменить какой-либо файл, специфичный для оборудования, включая сетевые, fstab и правила udev. Вам придется обратить внимание на modprobe, поскольку сетевые драйверы paravirt отличаются от своих реальных аналогов.
Другой вариант — поискать в сети решения v2p.