web-dev-qa-db-ja.com

Rackspaceイメージをローカルで実行するにはどうすればよいですか?

タイトルにあるように、VPSのバックアップ用にRackspaceイメージを定期的にダウンロードしていますが、テストを実行できるようにKVM(たとえば))でローカルに実行できるかどうか疑問に思っています。愛情のない私のアプリケーション。

4
edude05

元の質問のほぼ1年後から、Ubuntu Preciseで実行されている Xen の下で、Rackspaceイメージをダウンロードしてローカルで実行するための適切な手順が設定されていると思います。

ここに手順を書き留めておきますので、試してみたい場合に従う簡単なレシピがあります。この手順は、少なくともlinux/Ubuntu domUで機能し、他の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 / サーバーをXenDom0としてセットアップします。少なくとも、xenとxe-toolsがインストールされた実行中の12.04と、DomUの仮想ディスクに使用するLVMボリュームグループがあることを確認してください。

  2. Rackspace Cloud(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. イメージファイルの操作を簡単にするために、イメージファイルをrawディスクイメージに変換します。これは、qemu-imgを使用して実行されます(システムで使用できない場合は、Sudo apt-get install qemu-utilsを実行してください)。 image.vhdを操作しやすいものに変換するには、qemu-img convert -p image.vhd disk.imgを実行します。

  7. Fdiskを使用してディスクイメージを確認します。 (注:私はラックスペースから20 GBの大きな画像しか扱っていませんが、メモはそれらに関するものです。別のサイズを使用する場合は、それに応じていくつかの手順を調整する必要があります!)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. (オプション)ディスクイメージに問題がないことを確認します。このために、ループバックをマウントして、動作することを確認します。

    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=256bsおよび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 
    

    ルートとスワップのディスク名に注意してください!

  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と1つの仮想ネットワークインターフェイスとローカルサーバーを使用するだけです。これらの変更の後、完了する必要があります。仮想ディスクumount tmpをアンマウントします。

  14. インポートしたDomUのxen構成ファイル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を実行してコンソールを接続します

8
uvesten

はい、実行できます。使用するハイパーバイザーはXenIIRCです。 Openstackをダウンロードしてインストールし、独自のプライベートクラウドを作成することもできます。

2
Sirch

「Hyper-VでRackspaceCloudServerをローカルに実行する」に関する適切なリンクは次のとおりです。

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

0
Chakri