====== Xen_4.0.1_on_Debian_Squeeze_dom0_and_domU ====== Most of the details on this page are from Debians much improved wiki page at http://wiki.debian.org/Xen ====== Installation of Xen on Debian Squeeze ====== 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 ===== Additional Tweaks to make dom0 more stable ===== ==== Limit RAM available to dom0 ==== 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 ==== Disable auto save and restore of domUs on host reboot ==== 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="" ==== Bridge Networking and disabling Memory Ballooning ==== 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 dom0 and bring up Xen ====== reboot xm list //outputs: Name ID Mem VCPUs State Time(s) Domain-0 0 15630 12 r----- 10.2 ====== Create Virtual Machines - domUs ====== At this stage I used to manually setup lvm volumes and manually debootstrap the VM. See [[Create_DomU#LVM_Based_Setup_of_Virtual_Disk]] and [[Basic_Setup_of_Xen3.2_32bit#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. ===== Using Xen-Tools to create VMs ===== 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 ==== Set Xen-Tools to use noop Scheduler ==== 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 ==== Create VM ==== xen-create-image --hostname walle-vm01 --ip 193.1.99.98 --vcpus 2 ==== Set VM to autostart ==== mkdir /etc/xen/auto ln -s /etc/xen/vm01.cfg /etc/xen/auto/ ==== Start VM ==== xm create -c /etc/xen/vm01.cfg 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/