Most of the details on this page are from Debians much improved wiki page at http://wiki.debian.org/Xen
aptitude -P install xen-linux-system //At this point I prematurely rebooted and went //xm list //WARNING! Can't find hypervisor information in sysfs! //Error: Unable to connect to xend: No such file or directory. Is xend running? //don't reboot. Follow the below:
mv /etc/grub.d/10_linux /etc/grub.d/21_linux
vi /etc/default/grub #add the following # Disable OS prober to prevent virtual machines on logical volumes from appearing in the boot menu. GRUB_DISABLE_OS_PROBER=true #limit dom0 to 512MB RAM GRUB_CMDLINE_XEN=“dom0_mem=512M”
update-grub
Apparently in Debians wiki, they say that saving the state of domU's on powerdown doesn't always work. Hence, disable the xen save and restore. vi /etc/default/xendomains XENDOMAINS_RESTORE=false XENDOMAINS_SAVE=“”
vi /etc/xen/xend-config.sxp #(vif-script vif-bridge) (network-script 'network-bridge antispoof=yes') #(enable-dom0-ballooning yes) (enable-dom0-ballooning no)
reboot xm list //outputs: Name ID Mem VCPUs State Time(s) Domain-0 0 15630 12 r—– 10.2
At this stage I used to manually setup lvm volumes and manually debootstrap the VM. See LVM_Based_Setup_of_Virtual_Disk and Create_DomU I'd then copy across resolv.conf, fstab, sources.lst as well as /lib/modules/2.6… etc. However with Etch and Lenny there was additional hassle tweaking inittab and the config to get the xm console to work properly.
With Debian Squeeze, I followed Debians advise on their wiki and started using Xen-Tools. It automates a lot and makes things much easier.
apt-get install xen-tools vi /etc/xen-tools/xen-tools.conf #Below are all the uncommented lines I used: lvm = vg1 install-method = debootstrap size = 20Gb memory = 512Mb swap = 1Gb fs = ext3 dist = `xt-guess-suite-and-mirror –suite` image = sparse gateway = 10.10.9.126 netmask = 255.255.255.192 bridge=xenbr0 passwd = 1 kernel = /boot/vmlinuz-`uname -r` initrd = /boot/initrd.img-`uname -r` arch = amd64 mirror = `xt-guess-suite-and-mirror –mirror` ext3_options = noatime,nodiratime,errors=remount-ro ext2_options = noatime,nodiratime,errors=remount-ro xfs_options = defaults reiserfs_options = defaults btrfs_options = defaults nohosts = 1 pygrub = 1
On the setup here with LVM volumes on top of RAID 1, it is more efficient and better for performance to have VM's use the “noop” I/O scheduler. I've asked people for feedback on this in #Xen on irc.freenode. See chat log below. Also, the following links give reference to this fact also. http://old-list-archives.xen.org/archives/html/xen-users/2010-04/msg00518.html http://prefetch.net/blog/index.php/2009/04/23/best-io-scheduler-to-use-with-virtualized-linux-hosts/
15:01 <@pasik> steviewdr: yes, you need to change the scheduler 15:01 <@pasik> steviewdr: new enough linux domU kernels automatically use 15:01 <@pasik> steviewdr: noop for virtual disks 15:03 < steviewdr> pasik: kernels newer than → 2.6.32-5-xen-686? So its safe to use noop on domU's on lvm volumes? 15:03 <@pasik> steviewdr: yes, noop is safe and recommended 15:03 <@pasik> steviewdr: in domUs
You can check the current scheduler by going: cat /sys/block/xvda2/queue/scheduler You can set the scheduler by going: echo “noop” > /sys/block/xvda2/queue/scheduler
We can set this noop scheduler option in the Xen-Tools template so all new VMs created get this noop scheduler. vi /etc/xen-tools/xm.tmpl #Add in the following: extra=“elevator=noop” Note: this line can also be added into a xen vm config in /etc/xen/vm01.cfg
xen-create-image –hostname walle-vm01 –ip 193.1.99.98 –vcpus 2
mkdir /etc/xen/auto ln -s /etc/xen/vm01.cfg /etc/xen/auto/