| 1 | Migrating a Scripts guest between Xen hosts | 
|---|
| 2 | ------------------------------------------- | 
|---|
| 3 |  | 
|---|
| 4 | Two main components: | 
|---|
| 5 |  | 
|---|
| 6 | 1. Copying the disk image (we do this with dd/netcat/backend network) | 
|---|
| 7 | 2. Modifying Xen configuration | 
|---|
| 8 |  | 
|---|
| 9 | First, get a copy of /etc/fstab; in particular, you care about the UUIDs | 
|---|
| 10 | of the swap and cache partitions. | 
|---|
| 11 |  | 
|---|
| 12 | Next, shut off the relevant VM.  Make sure that you have space on the | 
|---|
| 13 | destination host, and that you have a volume ready to receive the data | 
|---|
| 14 | (check with 'lvs').  From now, we'll assume $MACHINE is the name of the | 
|---|
| 15 | VM you're migrating, $SRC is the source host, and $DST is the destination host. | 
|---|
| 16 |  | 
|---|
| 17 | Setup dd listening on a port on the destination host.  Pick a random, | 
|---|
| 18 | hard to guess port number. | 
|---|
| 19 |  | 
|---|
| 20 | root@$DST:~# nc -l -p $RANDOMPORT | dd of=/dev/$DST/$MACHINE-root bs=16M | 
|---|
| 21 |  | 
|---|
| 22 | Next, send the data over the *backend network*.  We have 172.21.*.* setup | 
|---|
| 23 | to be routed on our backend network, do NOT use the public IPs on 18.*.*.*. | 
|---|
| 24 |  | 
|---|
| 25 | root@$SRC:~# dd if=/dev/$SRC/$MACHINE-root bs=16M | nc 172.21.X.Y $RANDOMPORT | 
|---|
| 26 |  | 
|---|
| 27 | where X and Y are the last two digits of the normal 18.181.X.Y IP address of $DST. | 
|---|
| 28 |  | 
|---|
| 29 | Once you're done, ensure that the swap and cache partitions are ready on the | 
|---|
| 30 | destination (you don't, mercifully, have to dd those over)--make sure they're | 
|---|
| 31 | properly configured; especially make sure that they the right UUIDs (from | 
|---|
| 32 | the fstab you saved!)  Check 'install-fedora' if you need to be reminded | 
|---|
| 33 | what the incants are. | 
|---|
| 34 |  | 
|---|
| 35 | Finally, edit /etc/xen/scripts and modify the host that is hosting the server. | 
|---|
| 36 | Spin it up on the host and make sure everything is in order, then nuke the | 
|---|
| 37 | old disk image (multiple copies of a Scripts server is a bad idea!) | 
|---|