hypervisor-configuration

Hypervisor Configuration

Eucalyptus deploys instances (i.e., virtual machines) on a hypervisor. Eucalyptus can use either xen or kvm hypervisors. To interact with them, Eucalyptus employs libvirt virtualization API. The best choice for the hypervisor depends on its support for your hardware, on the support for the hypervisor in your OS (some distros support KVM better, some support Xen better), as well as personal preferences.

Another consideration is support for Eucalyptus features in the hypervisor. Because Eucalyptus uses features that only recently have been added to hypervisors, some combinations of hypervisor and kernel do not function as intended. The most common problem we encounter has to do with support for attaching and removing block devices. On some kernels, for example, you may see a lot of WARN_ON messages in the logs (similar to kernel oops), with KVM you will not be able to specify the exact device block (it will be chosen by the system), and on some hypervisor-kernel combinations EBS will not work at all (e.g., Debian "squeeze" with 2.6.30-2-amd64 kernel and KVM v88).

Running a test VM with hypervisor tools First of all, before even installing Eucalyptus, install a hypervisor of your choice and, based on the hypervisor's documentation, try to construct and run a test VM from the command line.(If you cannot run a VM outside Eucalyptus, you will not be able to run any VMs through Eucalyptus.)

Running a Xen VM usually involves creating a configuration file and passing it to the xm create command. Running a KVM VM usually involves invoking kvm with many parameters on the command-line.

If the hypervisor doesn't work out of the box on your distro, you may want to experiment with options. For Xen, the options are specified in:

/etc/xend/xend-config.sxp We had good luck with these:

(xend-http-server yes) (xend-unix-server yes) (xend-unix-path /var/lib/xend/xend-socket) (xend-address localhost) (network-script network-bridge) (vif-script vif-bridge) (dom0-min-mem 196) (dom0-cpus 0) (vncpasswd '') Running a test VM with libvirt's virsh Since Eucalyptus interacts with hypervisors through libvirt, it is also a good idea to ensure that libvirt is set up properly, particularly for user "eucalyptus". A way to do so is to try

virsh list as the "eucalyptus" user (root usually can always connect). If that fails, the solutions are distribution-specific: for example, on some Debian-based distros, the user "eucalyptus" needs to be in the group libvirt or libvirtd.

On distros using PolicyKit?, you may want to ensure that in

/etc/PolicyKit?/PolicyKit?.conf there is something like

config version="0.1">

match action="org.libvirt.unix.manage">

  <match user="eucalyptus">
     <return result="yes"/>
  </match>

/match>

/config> As the last resort, you may want to look into

/etc/libvirt/libvirtd.conf and keep an eye on logs in

/var/log/libvirt « First-time Setup (1.6)UPBackup of Eucalyptus (1.6) »

Printer-friendly version Login or register to post co


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS