1

I'm going to install a CentOS6 Server with Virtualization ( libvirtd ) capabilities on a DELL Server with Hardware RAID5 of around 6T of disk space ( It has 4x2T disks in a PERC700 RAID Controller ).

I'm going then to install some guests which requires few resources except one that needs 500GB of disk space, 8/16GB of RAM and good performances. I was thinking about file images for guests storage but I'm not sure about the 500GB VM what needs good performances so that an LVM device could be better.

So my question is what would be the best layout concerning:

  1. RAID setup ( RAID5, RAID1 + 1 disk for OS only. )
  2. disk partitioning ( using the entire disk/ leave free space for future use and extending it with LVM )
  3. guests storage management ( LVM devices or file images ( considering the 500GB VM that is performance demanding ) or mixed )
  4. Where to put guests storage? /var/lib/libvirt/images or maybe in a custom dir separated from system /home/VMs

Thanks in advance for any hint.

1 Answer 1

1

Performance is a matter of opinion and a question of what task are you looking at trying to perform? Until you can describe the "type" of performance you need... all answers will be just a random shot in the dark. And of course... many of the answers will also depend on your hypervisor. (libvirt is just an abstraction library for many different hypervisors)

If you're looking for high CPU performance... you're really at the mercy of your hypervisor and physical hardware. They hypervisor will have a bit of overhead which you can't escape. You also need to make sure your hypervisor of choice will be able to support the native CPU instructions to help reduce that overhead.

Disk IO is an ever present battle. Very little beats having access to physical disks. Creating your virtual guest with a virtual disk frequently means you've doubled your overhead. You are at the mercy of your guest OS having to manage a file-system contained within your host OS's file-system which has it's own overhead. For this reason, many environments switch to using network-file-systems (things like NFS) which offloads the IO to the network stack and a separate server.... or use iSCSI or Fiber-Channel based solutions. Simply putting a virtual hard drive in a different directory on the same hard drive will NOT give you any noticeable performance increases.

Network performance is usually not a problem as most good-hypervisors are capable of providing a special virtual interface that has minimal overhead... or emulating a standard network adapter. Emulation requires more resources... but is better supported by most guest OSes.

Memory performance... is much like CPU performance. Depending on the hypervisor, there are extensions that can provide direct access to the physical RAM... but your hardware must support these features. A lot of performance-tuning for memory is pretty standard across the board. Avoid Swap as much as possible... as you'll have compounded problems with Disk IO. When you end up with swap-space... your memory is written to disk which in-turn has the additional overhead from the virtual disk problems I mentioned earlier.

Bus IO performance... is going to be the one point that you really can't do much about. Virtual systems sound great when you think you can take 4 systems and throw them on 1 physical piece of hardware with 4x the resources... but the reality is, they all must share the same system bus. If you require a great deal of access between various peripherals on the physical hardware... (memory/cpu/network adapters/disk controller/usb ports/etc...) all your virtual instances will suffer. Most server-grade hardware is purpose built to provide maximum bus throughput... unlike desktop-machines.

... this by-far an incomplete list... and omits several key aspects... but should provide you with a bit of insight to the complexity of high-quality virtualization.

1
  • I didn't specify about the type of performance cause I'm more interested in the disk partitioning layout ( anyway it is about disk I/O and CPU performance ) and guests storage method ( I will use libvirt with KVM as virtualization ). Could you help me about that?
    – Lessfoe
    Oct 4, 2012 at 16:20

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .