Как я могу запустить образы Rackspace локально?

Как видно из заголовка, я регулярно загружаю свои образы Rackspace для резервного копирования моего VPS, однако мне интересно, возможно ли их запускать локально на KVM (например), чтобы я мог запускать тесты для своего приложения без привязки к работе.

3 ответа

Спустя почти год после первого вопроса, я думаю, у меня есть хорошая процедура для загрузки образов Rackspace и их локального запуска под Xen на Ubuntu Precise.

Я напишу шаги здесь, так что есть простой рецепт для вас, если вы хотите попробовать его. Шаги работают для Linux/Ubuntu, по крайней мере, для других YMMV.

(Эти инструкции также размещены в нашем блоге по адресу http://www.everichon.com/blog/2013/05/29/running-rackspace-images-locally/).

  1. Установите Ubuntu Precision (12.04 LTS) и следуйте инструкциям, описанным в http://blog.heidt.biz/blog/2012/09/17/setting-up-ubuntu-12-dot-04-precise-pangolin-as-xen-dom0/ для настройки вашего сервера в качестве Xen Dom0. По крайней мере, убедитесь, что у вас установлена ​​работающая версия 12.04 с установленными xen и xe-tools, и группа томов LVM для использования в качестве виртуальных дисков для вашего DomU.

  2. Перейдите на страницу ваших серверов в облаке RackSpace (manage.rackspacecloud.com -> Hosting -> Cloud servers) и выберите тот, который вы хотите запустить локально. Перейти к Images вкладка для этого сервера. Создайте изображение по требованию. (В зависимости от времени, когда сервер был впервые создан, изображение по требованию будет либо напрямую отправляться в облачные файлы, либо сохраняться на сервере. Если изображение хранится на сервере, его необходимо переместить в облачные файлы после создания.)

  3. Проверьте имя изображения в облачных файлах. Идти к Hosting -> Cloud Files и откройте контейнер cloudservers, Там должен быть файл с именем вроде myservername_YYYYMMDD_XXXXX_cloudserverZZZZZ.tar.gz.0и это файл, который вы хотите.

  4. Загрузите изображение на свой сервер. Самый простой способ сделать это на Ubuntu 12.04 - это использовать swift, Для установки просто sudo apt-get install swift, Затем запустите это как swift -A https://auth.api.rackspacecloud.com/v1.0 -U username -K API_key download cloudservers myservername_YYYYMMDD_XXXXX_cloudserverZZZZZ.tar.gz.0

  5. Когда загрузка будет завершена, распакуйте загруженный файл (tar zxf myservername_YYYYMMDD_XXXXX_cloudserverZZZZZ.tar.gz.0). Когда это будет сделано, вы получите следующие файлы:

    image
        -> image.vhd
        -> manifest.ovf
        -> snap.vhd
    

    image.vhd это тот, который нас интересует, так как он содержит ваш корневой раздел с облачного сервера.

  6. Чтобы упростить работу с файлом образа, мы преобразуем его в необработанный образ диска. Это делается с помощью qemu-img (если это не доступно в вашей системе, сделайте sudo apt-get install qemu-utils). Чтобы преобразовать image.vhd во что-то, с чем легче работать, сделайте qemu-img convert -p image.vhd disk.img

  7. Проверьте образ диска с помощью fdisk. (ПРИМЕЧАНИЕ: я работал только с большими изображениями размером 20 ГБ из стойки, и мои заметки о них. Если вы используете другой размер, вам придется соответствующим образом настроить некоторые шаги!) fdisk -l disk.img должен дать что-то вроде следующего:

    Disk sda1.img: 20.4 GB, 20400758784 bytes
    255 heads, 63 sectors/track, 2480 cylinders, total 39845232 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00000000
    
       Device Boot      Start         End      Blocks   Id  System
    disk.img1   *        2048    39845887    19921920   83  Linux
    

    Обратите внимание на начальное смещение для первого раздела и размер сектора.

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

    mkdir tmp
    mount -o loop,offset=1048576 disk.img tmp/
    ls -la tmp
    (The offset above is start for the first partition * sector size) 
    

    Это указывает на то, что с диском все в порядке. Затем размонтируйте изображение. umount tmp

  9. Создайте логические и поменяйте тома для вашего нового DomU. lvcreate -L20G -n myservername-disk vg0 а также lvcreate -L2G -Cy -n myservername-swap vg0, Также инициализируйте диск подкачки, mkswap /dev/vg0/myservername-swap,

  10. Скопируйте образ диска на новый логический том. dd if=disk.img of=/dev/vg0/myservername-disk bs=4096 skip=256, bs а также skip есть аргументы, чтобы получить правильное смещение для вашего раздела. Я мог бы пойти с bs=512 skip=2048Конечно, но увеличение размера блока значительно ускоряет копирование. (И 512*2048 = 4096*256, поэтому это не имеет значения для смещения.)

  11. Проверьте файловую систему на вашем логическом томе (и исправьте все ошибки), измените размер fs, чтобы соответствовать lv, и проверьте снова.

    e2fsck -f /dev/vg0/myservername-disk
    resize2fs -p /dev/vg0/myservername-disk 
    e2fsck -f /dev/vg0/myservername-disk     
    
  12. Проверьте настройки виртуального диска на вашей виртуальной машине. Это будет необходимо для вашего конфигурационного файла DomU. Смонтируйте логический том. mount /dev/vg0/myservername-disk tmp, Затем проверьте файл fstab и (если он существует) grub menu.lst файл.

    more tmp/etc/fstab
    more tmp/boot/grub/menu.lst 
    

    Обратите внимание на имена дисков для root и swap!

  13. Обновите настройки сети для вашего DomU. Когда виртуальный диск все еще подключен, отредактируйте interfaces файл в то, что подходит для вашей локальной среды. vi tmp/etc/network/interfaces, Я обычно менял свое с чего-то вроде:

    # The loopback network interface
    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet static
        address 184.106.XXX.YYY
        netmask 255.255.XXX.YYY
        gateway 184.106.XXX.YYY
        dns-nameservers 173.203.XXX.YYY 173.203.XXX.YYY
    
    auto eth1
    iface eth1 inet static
        address 10.179.XXX.YYY
        netmask 255.255.XXX.YYY
    up route add -net 10.176.XXX.YYY0 netmask 255.240.XXX.YYY gw 10.179.XXX.YYY
    down route del -net 10.176.XXX.YYY netmask 255.240.XXX.YYY gw 10.179.XXX.YYY
    up route add -net 10.191.XXX.YYY netmask 255.255.XXX.YYY gw 10.179.XXX.YYY
    down route del -net 10.191.XXX.YYY netmask 255.255.XXX.YYY gw 10.179.XXX.YYY
    

    (для среды стойки), чтобы:

    # The loopback network interface
    auto lo
    iface lo inet loopback
    
    # The primary network interface
    auto eth0
    iface eth0 inet dhcp
    

    просто для использования dhcp и одного виртуального сетевого интерфейса и моего локального сервера. После этих изменений мы должны быть готовы. Размонтировать виртуальный диск, umount tmp,

  14. Создайте файл конфигурации xen для вашего импортированного DomU, vi /etc/xen/myservername.cfgи вставьте что-то вроде этого:

    name = "myservername"
    
    bootloader = '/usr/lib/xen-default/bin/pygrub'
    
    #uncomment the following if you want to boot into single user mode 
    #extra = " single"
    
    vcpus       = '2'
    memory      = '512'
    
    #
    #  Disk device(s). (Use the correct mappings from step 12.) 
    #
    disk        = [
                      'phy:/dev/vg0/myservername-disk,xvda1,w',
                      'phy:/dev/vg0/myservername-swap,xvda2,w',
                  ]
    #
    #  Networking
    #
    vif         = [ 'bridge=xenbr0' ]
    #
    #  Behaviour
    #
    on_poweroff = 'destroy'
    on_reboot   = 'restart'
    on_crash    = 'restart'
    

    Опять же, обратите внимание, что вы должны использовать те же имена устройств для виртуальных устройств, которые вы обнаружили на шаге 12.

  15. Теперь все должно быть готово! Для проверки создайте domU и подключите консоль, запустив xm create -c /etc/xen/myservername.cfg

Да, вы можете запустить их, гипервизор, который они используют - Xen IIRC. Вы также можете загрузить и установить Openstack и иметь собственное частное облако.

Вот хорошая ссылка на "Запуск Rackspace Cloud Server локально на Hyper-V"

http://www.sudonym.com/375/run-rackspace-cloud-server-locally-on-hyper-v

Другие вопросы по тегам