Как перенести ESXi сервер на другой сервер

    Введение


    Данный материал описывает способ установки ESXi сервера на оборудование, которое не поддерживается его установщиком. Проблема обходится путем переноса образа ESXi с работающего сервера на сервер, где возникла проблема установки. В моем случае проблема была с HP Proliant Blade 35p.

    Проблема с 35 блейдом


    Понадобилось нам установить ESXi на Blade HP BL35p. Но почему-то при установке ESXi не может обнаружить установленный там жесткий диск. Причем на HP BL20p ставится без проблем, а вот на 35й никак не хочет — выдает ошибку:

    Unable to find a supported device

    Поиск информации
    Поиск в интернете по ESXi дал информацию о возможности загружаться с флешки (http://www.yellow-bricks.com/2008/07/29/esxi-35-update-2-on-a-usb-memory-key/). Но здесь появилась другая проблема — BL35p не имеет внешних USB портов.
    Вариант с загрузкой по ILO тоже не очень подходит, т. к. для этого надо обязательно заходить на Blade браузером и монтировать ему образ.

    Была еще одна возможность использования USB устройств. На передней панели сервера есть специальный разъем, куда подсоединяется хитрый кабель с выходами на PS/2 мышь, клавиатуру, монитор и 2 USB порта. Но такое решение больше подходит для временного подключения, а не для штатной работы.

    Вариант с образом dd для flash


    неудача с dd на партицию

    Поскольку готовый образ для работы прямо с флешки уже есть, я подумал перенести его прямо на диск. Damn Small Linux тоже не захотел грузиться на блейде. Я попробовал и в безопасном режиме и еще пару вариантов — не вышло.
    Поэтому я просто поставил наш корпоративный CentOs на диск, а потом записал этот образ в специально отведенную партицию:
    centos # dd bs=512 if=VMware-...-.i386.dd of=/dev/hda3
    Потом залез в grub.conf и добавил пункт загрузки для ESXi
    title ESXi
    root (hd0,2)
    chainloader +1
    Наивный! Я думал, что все так просто :)
    Такой способ не мог заработать в принципе, но я тогда еще не знал этого.
    Тут стоит отметить что все это я проделывал, выискивая хоть небольшой но целый интервал времени, между другими хоть и мелкими, но неотложными задачами. А такое прерывание не способствует глубокому пониманию вопроса :)
    Я надеялся, что все заработает само после нескольких удачных манипуляций, найденных в интернете.

    неудача с dd на отдельный диск

    Снова начал искать способ запустить сервер. На этот раз я искал возможность сделать двойную загрузку из GRUB.
    Нашел обсуждение похожей проблемы How do I setup ESXi in a dualboot with Linux? ( communities.vmware.com/message/1205801;jsessionid=8858F14289C5790501D2BE15F4E048CF )

    Добавил 2й винчестер в сервер, записал образ туда
    centos # dd bs=512 if=VMware-...-.i386.dd of=/dev/hdb
    Повторил манипуляции с grub
    title ESXi
    root (hd1,0)
    chainloader +1
    но что-то не хотел он грузиться из grub. Отключил 1й диск и вот он грузится со 2го. Я обрадовался: наконец-то! Все-таки это довольно просто!
    Но и на этот раз загрузка прервалась. Не могу найти загружаемый раздел, ожидание появления загружаемого USB устройства, — так отрапортовал сервер. И в итоге ошибка загрузки.

    dd образ уже содержит несколько разделов

    Дальнейший поиск привел меня к этому документу www.grid.org/blog/cameron/updating-vmware-esxi-disk-dump-file
    Тогда я понял почему не сработал способ с записью образа в раздел диска — сам образ уже содержит в себе несколько разделов диска.
    ~# fdisk -ul VMware-...-.i386.dd
    You must set cylinders.
    You can do this from the extra functions menu.
    Disk VMware-...-.i386.dd: 0 MB, 0 bytes
    64 heads, 32 sectors/track, 0 cylinders, total 0 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Disk identifier: 0x00000000
    Device Boot Start End Blocks Id System
    VMware-...-.i386.dd1 8192 1535999 763904 5 Extended
    VMware-...-.i386.dd4 * 32 8191 4080 4 FAT16 <32M
    VMware-...-.i386.dd5 8224 106495 49136 6 FAT16
    VMware-...-.i386.dd6 106528 204799 49136 6 FAT16
    VMware-...-.i386.dd7 204832 430079 112624 fc Unknown
    VMware-...-.i386.dd8 430112 1535999 552944 6 FAT16
    Partition table entries are not in disk order


    Немного поискав и поразмыслив я отказался от этого способа (запись образа dd из дистрибутива прямо на диск), т. к. не знал, что нужно сделать, чтобы сервер понял как ему грузиться в этом случае.

    Загрузка ESXi по сети с использованием PXE


    В процессе поиска я также встретил довольно заманчивый способ загрузки ESXi по сети с помощью PXE. Здесь все также просто как и с созданием загрузочной флешки, только добавляются еще несколько шагов по настройке PXE сервера.
    В данном документе все подробно расписано communities.vmware.com/docs/DOC-6824. Даже применить нужную конфигурацию после загрузки можно communities.vmware.com/docs/DOC-7510.
    Но в данном случае нужен отдельный PXE сервер, настраивать который прямо сейчас не хотелось, поэтому я пошел другим путем :)

    Успешный вариант с переносом разделов с BL20p


    Я подумал, что все это просто организуется как для флешки, так и для PXE загрузки. Можно добавлять записи для своих драйверов устройств при помощи манипуляций с файлом oem.tgz. Значит мне нужен просто нормальный Live Cd и сервер, на который уже установился ESXi.
    Поэтому я установил ESXi на резервный BL20p, где не возникает никаких проблем. Скачал ubuntu-8.10-desktop-i386.iso
    карта партиций только что установленного ESXi

    Загрузился в Убунту посмотрел на диск с ESXi. Увидел такую картину:

    fdisk -ul /dev/cciss/c0d0

    И мне почти все стало понятно :)
    раздел /dev/cciss/c0d0p4 у нас загрузочный, дополнительный раздел (extended) /dev/cciss/c0d0p1 со своими подразделами (p5, p6, p7, p8) содержит в себе все необходимое для работы ESXi.
    Остаются еще два основных раздела:
    /dev/cciss/c0d0p2 — здесь лежит файл подкачки (uwswap)
    /dev/cciss/c0d0p3 — это хранилище, под которое при установке выделяется все оставшееся место.

    перенос основной части

    Далее я начал перенос ESXi сервера с BL20p на BL35p. Для этого я загрузился на обоих с Live CD Ubuntu.
    На BL20p выполнил
    blade20p #fdisk -ul /dev/cciss/c0d0
    Disk /dev/cciss/c0d0: 18.3 GB, 18345246720 bytes
    64 heads, 32 sectors/track, 17495 cylinders, total 35830560 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Disk identifier: 0x00000000

    Device Boot Start End Blocks Id System
    /dev/cciss/c0d0p1 8192 1535999 763904 5 Extended
    /dev/cciss/c0d0p2 1536000 9922559 4193280 6 FAT16
    /dev/cciss/c0d0p3 9922560 35830559 12954000 fb VMware VMFS
    /dev/cciss/c0d0p4 * 32 8191 4080 4 FAT16 <32M
    /dev/cciss/c0d0p5 8224 106495 49136 6 FAT16
    /dev/cciss/c0d0p6 106528 204799 49136 6 FAT16
    /dev/cciss/c0d0p7 204832 430079 112624 fc VMware VMKCORE
    /dev/cciss/c0d0p8 430112 1535999 552944 6 FAT16
    Partition table entries are not in disk order

    Здесь уже видна знакомая нам картина. Зная где заканчивается расширенный раздел №1 (/dev/cciss/c0d0p1), снимаю его образ
    blade20p # dd bs=512 if=/dev/cciss/c0d0 of=/tmp/boot_esxi.dd count=1535999
    Потом переношу этот образ размером 786`431`488 байт на другой сервер
    blade20p # scp /tmp/boot_esxi.dd bl35p:/tmp/
    Ну и пишу этот образ на жесткий диск
    blade35p # dd bs=512 if=/tmp/boot_esxi.dd of=/dev/sda

    копирование содержимого партиции2

    Форматирую 2й раздел (/dev/sda2) в FAT16, т. к. он хотя и есть в таблице разделов, но реально он не размечен на диске.
    На обоих серверах монтирую 2й раздел
    blade35p # mount /dev/sda /mnt (на BL35p)
    blade20p # mount /dev/cciss/c0d0p2 (на BL20p)
    Копирую содержимое разделов с 20го на 35й
    blade20p # echo > /mn t/uwswap (обнуляю swap размером в 1 Гб)
    blade20p # scp /mnt/* blade35p:/mnt/ -r


    манипуляции с партицией3 (возможно, что это делать не обязательно)

    Поскольку 3й раздел /dev/cciss/c0d0p3 в формате vmfs, я не знаю что с ним делать в Убунте. Поэтому просто переношу 400Мб этого раздела в виде образа. Перед этим я выяснил, загрузившись в ESXi, что на этом разделе есть служебные файлы, которые занимают 366
    blade20p # df -h
    Filesystem Size Used Available Use% Mounted on
    unknown 183.9M 116.4M 67.5M 63% /
    unknown 4.0G 1.0G 3.0G 25% /vmfs/volumes/49df3145-f290113e-defa-001635c10df4
    unknown 12.3G 366.0M 11.9G 3% /vmfs/volumes/49df314a-a47bf89f-e95d-001635c10df4
    unknown 539.8M 175.0M 364.8M 32% /vmfs/volumes/3abb47ef-875ea67c-c948-7bf6ff8d3c38
    unknown 47.8M 1.0k 47.8M 0% /vmfs/volumes/f25a177c-84106917-bb27-25e3fe8f8471
    unknown 47.8M 36.6M 11.2M 77% /vmfs/volumes/c8f8fc7d-7c221e9a-67b6-5dcb9d3b36ad


    Переношу так же как и первый кусок до этого:
    blade20p # dd bs=512 if=/dev/cciss/c0d0p3 of=/tmp/partit3.dd count=819200 (819200 = 400*1024*1024/512)
    blade20p # scp /tmp/partit3.dd bl35p:/tmp/

    Ну и пишу этот образ на жесткий диск в нужный раздел
    blade35p # dd bs=512 if=/tmp/partit3.dd of=/dev/sda3

    После перезагрузки ESXi работает как ни в чем не бывало. Ура! Все получилось! :)

    создание Storage из VI Client

    Остается только сконфигурировать наш сервер.
    Настраиваю из консоли ip адрес нового сервера. Захожу на него с помощью VMWare Infrastructure Client. В настройках вижу, что на этом сервере есть хранилище на 13,3 Гб и еще около 40 Гб неиспользуемого пространства, т. к. здесь установлен винчестер на 60Гб.
    Удаляю существующее хранилище на 13,3 Гб, потом создаю новое из неразмеченного пространства в 55 Гб.

    Здесь есть одна опасность. Когда создается новое хранилище у меня по умолчанию предлагается использовать весь диск. Хотя там и выскакивает предупреждение, что все данные будут уничтожены, я в полной уверенности, что работаю с неразмеченной частью диска успешно организовал хранилище поверх самого ESXi, который продолжал функционировать до следующей перезагрузки. Только тогда я понял, что был неправ, уничтожив все на диске :)

    Эту ситуацию описал DimkaPhantom dimkaphantom.habrahabr.ru/blog/54322

    Пришлось повторить описанную выше процедуру переноса сервера.

    Заключение



    Когда весь путь пройден, все кажется настолько простым и очевидным, что просто диву даешься чего я так мучился в начале :)
    Вдруг кто-то окажется в начале этого пути и не все будет ему очевидным. Может быть мое описание ему хоть немного поможет :)
    Поделиться публикацией

    Комментарии 12

      +1
      Хабракат?
        –1
        Блин, ну как уже надоели этим Хабракатом…

        Отправьте личное сообщение — человек через 5 минут все поправит!
          +2
          Эта статья занимает у меня РОВНО ШЕСТЬ ЭКРАНОВ на разрешении монитора 1440х900. Я понимаю что выгляжу как брюзга, но мотать эти шесть неинтересных мне экранов в общей ленте мне неприятно!
            –2
            Я не понимаю — отправить личное сообщение человеку — это что-то экстраординарное?
              +3
              А при создании заметки подумать о количестве текста и сразу сделать — это что-то экстраординарное?
                +2
                Я не автор топика, поэтому меня тяжело судить о том — тяжело ли ему было сделать сразу.
                Мне тоже не понравилось большое количество текста на главной, но это первый топик человека, тема достаточно серьезная — можно предположить, что за описанием просто не доглядел.

                Кроме этого, я не вижу проблемы в том, чтобы взять и просто написать ему личное сообщение.

                Ладно… Зря я наверное в спор ввязался — пойду домой, рабочий день уже закончился :)
                0
                О личном сообщении сов
                  0
                  Сорри… :-)
                  О личном сообщении я в тот момент не подумал, так как ими не пользуюсь на хабре…
              +3
              Первый, написавший «хабракат», получает несколько халявных плюсиков. Смысл писать в личку?
                0
                Не всегда.
                Иногда даже довольно халявных пару десятков ниже нуля…
            0
            Нестандартный секс с HP detected
              0
              виноват, забыл про хабракат, а потом ушел домой :)

              т.к. пишу первый раз, то не думал, что это сообщение будет в общей ленте

              спасибо всем за личные сообщения с подсказками

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

              Самое читаемое