Random   •   Archives   •   RSS   •   About   •   Contact

Migrating libvirt KVM guest to SmartOS KVM guest

The following tutorial documents how to migrate a libvirt/KVM guest from Ubuntu to SmartOS.

akuma:
Ubuntu Hypervisor
guy:
SmartOS Hypervisor
sagat:
guest to migrate

These commands were run on akuma:

WORKDIR=/KVMROOT/migrate
sudo mkdir $WORKDIR
cd $WORKDIR

# this tool simply stops and tarballs up the qcow and xml for libvirt KVM guest.
sudo /usr/local/bin/virt-back --path=$WORKDIR --backup sagat

sudo tar -xzvf sagat.tar.gz

sudo qemu-img convert -O raw sagat.qcow2 sagat.raw
sudo qemu-img convert -O raw sagat-var.qcow2 sagat-var.raw

scp sagat*.raw root@guy:/opt/tmp

These commands were run on guy:

Create the following file on guy - setup-ubuntu-sagat.json:

{
  "brand": "kvm",
  "resolvers": [
    "192.168.1.22",
    "8.8.4.4"
  ],
  "ram": "4096",
  "vcpus": "4",
  "alias": "sagat",
  "hostname": "sagat",
  "nics": [
    {
      "nic_tag": "admin",
      "ip": "192.168.1.50",
      "netmask": "255.255.255.0",
      "gateway": "192.168.1.254",
      "model": "virtio",
      "primary": true
    }
  ],
  "disks": [
    {
      "boot": true,
      "model": "virtio",
      "size": 10240
    },
    {
      "model": "virtio",
      "size": 20480
    }
  ]
}

We then create a new KVM guest on guy:

[root@guy /opt/setup-jsons]# vmadm create -f setup-ubuntu-sagat.json
Successfully created VM aa0f603c-9572-4cb0-b96f-4c79eb431223

List out the virtual block devices on the new KVM guest:

[root@guy /opt/setup-jsons]# vmadm info aa0f603c-9572-4cb0-b96f-4c79eb431223 block
{
  "block": [
    {
      "device": "virtio0",
      "locked": false,
      "removable": false,
      "inserted": {
        "ro": false,
        "drv": "raw",
        "encrypted": false,
        "file": "/dev/zvol/rdsk/zones/aa0f603c-9572-4cb0-b96f-4c79eb431223-disk0"
      },
      "type": "hd"
    },
    {
      "device": "virtio1",
      "locked": false,
      "removable": false,
      "inserted": {
        "ro": false,
        "drv": "raw",
        "encrypted": false,
        "file": "/dev/zvol/rdsk/zones/aa0f603c-9572-4cb0-b96f-4c79eb431223-disk1"
      },
      "type": "hd"
    }
  ]
}

Stop the new guest, it needs to be off for the restore.

[root@guy /opt/setup-jsons]# vmadm stop aa0f603c-9572-4cb0-b96f-4c79eb431223
Successfully completed stop for VM aa0f603c-9572-4cb0-b96f-4c79eb431223

Use dd to:

  • write sagat.raw to disk0
  • write sagat-var.raw to disk1
dd if=sagat.raw of=/dev/zvol/rdsk/zones/aa0f603c-9572-4cb0-b96f-4c79eb431223-disk0 bs=1M
dd if=sagat-var.raw of=/dev/zvol/rdsk/zones/aa0f603c-9572-4cb0-b96f-4c79eb431223-disk1 bs=1M

Lastly start the new guest up, and check it out:

vmadm start aa0f603c-9572-4cb0-b96f-4c79eb431223



Want comments on your site?

Remarkbox — is a free SaaS comment service which embeds into your pages to keep the conversation in the same place as your content. It works everywhere, even static HTML sites like this one!

uncloseai.js example for static sites


Remarks: Migrating libvirt KVM guest to SmartOS KVM guest

© Russell Ballestrini.