====== Xen Virtualization ====== FIXME Needs updating and formatting http://www.howtoforge.com/installing-xen-on-centos-5.2-i386 http://www.xen.org/products/cloudxen.html ===== Xen Overview ===== http://wiki.xensource.com/xenwiki/XenOverview Xen can run two types of Virtual Machines: * Paravirtualized * No special hardware support required * Requires VM be modified * Generally only for Linux VMs * Offers top performance * HVM fully virtualized * Requires hardware support by the mainboard, BIOS and CPU * http://en.wikipedia.org/wiki/Hardware-assisted_virtualization * Provides full virtualization of hardware including the BIOS ===== Generic Xen ===== http://en.wikipedia.org/wiki/Xen Generic Xen is managed using the "xm" command line interface which is significantly different than the "xe" tools used in XCP or XenServer. There are also various other management consoles or tools for managing Xen: http://en.wikipedia.org/wiki/Xen#Xen_Management_Consoles ===== Xen Cloud Platform ===== http://www.xen.org/products/cloudxen.html XCP is a free open-source bare-metal type 1 hypervisor originally based on XenServer. http://wiki.xen.org/wiki/Command_Line_Interface XCP is managed using "xe" commandline tools. ===== XenServer ===== http://www.citrix.com/xenserver [[virtualization:xenserver:xenserver|XenServer]] is a bare-metal type 1 hypevisor. It is free but the license has to be renewed by Citrix and every year. XenServer is managed via a Windows application, XenCenter, or using "xm" commandline tools. ===== Required CPU Support ===== Xen requires hardware egrep '^flags.*(vmx|svm)' /proc/cpuinfo Dom0 (Host OS) Use 64-Bit for best performance and in order to be able to run 64-bit guests. Use hardware supports Intel VT or AMD SVM for fully virtualized guests (Windows). ==== Ubuntu Server 8.04 ==== http://www.howtoforge.com/high-performance-xen-on-ubuntu-8.04-amd64 Install the Ubuntu Hardy Heron (x86_64) Server Edition Create and install into a 10GB partition for Dom0 apt-get update apt-get upgrade apt-get install ubuntu-xen-server apt-get install vim openssh-server vi /etc/modules loop max_loop=64 uname -a xm list ==== Centos 5.1 ==== [[computing:linux:minimal_centos_install|Minimal Server Install - CentOS 5]] - Boot to CD 1, the only CD needed - Enter "linux text" to get the text installation setup started - Create and install into a 10GB partition for Dom0 - Proceed normally with the installation until it asks which packages to install - Deselect all of the packages and then click on the "customize package selection" check box - Hold down the "-" key, which scrolls through all of the package options, and deselects them all - Finish the install - Do a "yum update" - Do a "yum install " for needed packages such as [[ssh]]-server === DomU === Use separate disk partition mkfs.ext3 /dev/sdxn === Ubuntu Guest === mount /dev/sdxn /mnt debootstrap --arch amd64 hardy /mnt http://archive.ubuntu.com/ubuntu mount --bind /dev /mnt/dev mount proc /mnt/proc -t proc chroot /mnt /bin/bash Open another terminal and copy some files to the new guest partition. You may need to create some folders first. cp /etc/resolv.conf /mnt/etc/resolv.conf cp /etc/network/interface /mnt/network/interface cp /etc/apt/source.list /mnt/etc/apt/sources.list cp /etc/apt/source.list /mnt/etc/apt/sources.list cp -R /lib/modules/2.6.24-17-xen/* /mnt/lib/modules/2.6.24-17-xen/ Back in the original (chroot'ed) terminal: apt-get update apt-get upgrade apt-get install vim ssh Edit the ''/etc/fstab'' file: /dev/hda1 / ext3 defaults 1 2 passwd exit #the chroot environment umount /mnt/dev /mnt/proc /mnt Create the Xen configuration file adjusting the IP addressing vi /etc/xen/domu1.cfg kernel = '/boot/vmlinuz-2.6.24-17-xen' ramdisk = '/boot/initrd.img-2.6.24-17-xen' memory = '512' # # Disk device(s). # root = '/dev/hda1 ro' disk = [ 'phy:/dev/sda2,hda1,w', ] # # Hostname # name = 'domu1' # # Networking # vif = [ 'ip=192.168.1.102,mac=00:16:3E:62:DA:BB' ] # # Behaviour # on_poweroff = 'destroy' on_reboot = 'restart' on_crash = 'restart' vcpus = '2' extra = 'xencons=tty1' xm create /etc/xen/domu1.cfg -c xm list **Centos Guest** LAMP image on Centos 5 saved in /vm/xen on [[appserv]] Create Centos 5 VM http://mirrors.easynews.com//linux/centos/5.0/os/i386/ ln -s /etc/xen/vm01 /etc/xen/auto chkconfig --list |grep "3:on" |awk '{print $1}' |sort Disable TLS mv /lib/tls /lib/tls.disabled Start xendomains service to stop/start the Xen domains listed in /etc/xen/auto chkconfig --add xendomains To stop or start all Xen domains in /etc/xen/auto service xendomains stop|start|restart Start the xend management daemon chkconfig xend on Minimal Services http://www.redhatmagazine.com/2007/03/09/understanding-your-red-hat-enterprise-linux-daemons/ Helpful Commands Sometimes things get confused and communications fail: /etc/init.d/xend restart Other useful commands: xm help xm list xm create vmname (start VM) xm console vmname control-] (exit domU to dom0 console) xm shutdown vmname xm destroy vmname (emergency shutdown) virt-install Backup Backup is not so simple. Image files are pre-allocated and very large - keep them small! They also change frequently so they get backed up every backup run in a file-by-file backup. Need disk-block backup or LVM snapshots. This script suspends, creates a compressed copy of the disk image and resumes all running Xen domains: [[xen_backup.sh]] In [[BackupPC]], I use this DumpPreUsrCmd: $sshPath -l root $host /usr/local/bin/xen_backup.sh You can check the log like this: tail -50 /var/log/xen/xen_backup.log Currently, on Linus, the woodstock backup is blacked out except for 3:00am Monday morning. This allows [[BackupPC]] on [[appserv]] to complete any lengthy full backups over the weekend. The DumpPreUsrCmd script suspends/resumes each VM in turn: [[ISPConfig]] shuts down for about 1:10, [[appserv]] for about :39 and mgmt takes about :48 minutes. Virtual Machine Manager http://virt-manager.et.redhat.com/ yum install kernel-xen xen virt-manager The "Virt Install" tool (virt-install for short command name, virtinst for package name) is a command line tool which provides an easy way to provision operating systems into virtual machines. The "Virt Clone" tool (virt-clone for short command name, virtinst for package name) is a command line tool for cloning existing inactive guests. It copies the disk images, and defines a config with new name, UUID and MAC address pointing to the copied disks. The "Virt Image" tool (virt-image for short command name, virtinst for package name) is a command line tool for installing guest operating systems based on a pre-defined master image. The image provides metadata describing the requirements of the operating system, minimal resource allocations, and pre-installed disk. The "Virtual Machine Viewer" application (virt-viewer for short package name) is a lightweight interface for interacting with the graphical display of virtualized guest OS. It uses GTK-VNC as its display capability, and libvirt to lookup the VNC server details associated with the guest. It is intended as a replacement for the traditional vncviewer client, since the latter does not support SSL/TLS encryption of x509 certificate authentication. Live Migration ''' # virt-clone \ --original demo \ --name newdemo \ --file /var/lib/xen/images/newdemo.img ''' /etc/xen/scripts/vif-bridge: Could not find bridge device xenbr0 Last changed (in Tomboy): 2010-11-15 Note created (in Tomboy): 2007-07-28