Для работы KVM обязательно нужна аппаратная поддержка виртуализации  вашего процессора.  Смотрим

egrep '(vmx|svm)' /proc/cpuinfo

Если вывод есть, значит все хорошо, иначе пакет kvm даже не установится.

Для начала обновляем систему

yum update -y

Ставим необходимые пакеты

yum install kvm virt-manager libvirt -y

Запускаем сервис KVM и добавляем в автозагрузку

service libvirtd start
chkconfig libvirtd --level 235 on

Смотрим загружен ли модуль KVM

lsmod | grep kvm

Должны получить что то типа

kvm_intel              53484  0
kvm                   316506  1 kvm_intel

Проверяем подключение к KVM

virsh sysinfo

На сервере есть не размеченный жесткий диск. Подготовим его для работы с KVM. Для начала посмотрим имя диска в системе

fdisk -l

У меня это /dev/sdb

Disk /dev/sdb: 3000.6 GB, 3000592982016 bytes
255 heads, 63 sectors/track, 364801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Я создаю одну партицию на всем диске и форматирую его в ext4.

[root@kvm yum.repos.d]# fdisk /dev/sdb

WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.

WARNING: The size of this disk is 3.0 TB (3000592982016 bytes).
DOS partition table format can not be used on drives for volumes
larger than (2199023255040 bytes) for 512-byte sectors. Use parted(1) and GUID
partition table format (GPT).

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help):
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-364801, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-267349, default 267349):
Using default value 267349

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

После этих манипуляций  вы должны увидеть партицию.

[root@kvm yum.repos.d]# fdisk -l
Disk /dev/sdb: 3000.6 GB, 3000592982016 bytes
255 heads, 63 sectors/track, 364801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1      267349  2147480811   83  Linux

Форматируем

[root@kvm yum.repos.d]# mkfs.ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
134217728 inodes, 536870202 blocks
26843510 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
16384 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000, 214990848, 512000000

Writing inode tables:   732/16384

Это занимает продолжительное время. Ждем окончания.

Есть один нюанс. Так как диску меня 3TB, то fdisk не работает как нужно. Нет он все сделал правильно, но в системе я вижу как 2TB, что меня не устраивает. Поэтому если у вас диск больше 3TB, то используем утилиту parted.

[root@kvm ~]# parted /dev/sdb
GNU Parted 2.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? Yes
(parted) unit TB
(parted) mkpart primary 0.00TB 3.00TB
(parted) print
Model: ATA Hitachi HUA72303 (scsi)
Disk /dev/sdb: 3.00TB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      0.00TB  3.00TB  3.00TB               primary

(parted) quit
Information: You may need to update /etc/fstab.

[root@kvm ~]#

Форматируем диск

[root@kvm ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
183148544 inodes, 732566272 blocks
36628313 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
22357 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000, 214990848, 512000000, 550731776, 644972544

Writing inode tables:   807/22357

Ждем окончания форматирования.

Создаем директорию куда подмантируем диск

mkdir /opt/sdb_3TB

Монтируем диск

 mount -t ext4 /dev/sdb1 /opt/sdb_3TB/

Я не буду добавлять в /etc/fstab, так как если с диском что то случится, то после перезагрузки у вас система не загрузится. И нужно будет грузиться лайв диска и изменять fstab. Поэтому я монтирую диск в файле /etc/rc.d/rc.local

/bin/mount -t ext4 /dev/sdb1 /opt/sdb_3TB/

Создаем папку где будут лежать виртуальные машины

mkdir /opt/sdb_3TB/KVM

Создаем хранилище виртуальных машин

virsh # pool-define-as Guest-Images dir - - - - "/opt/sdb_3TB/KVM"
Pool Guest-Images defined

Проверяем создалось ли

virsh # pool-list --all
Name                 State      Autostart
-----------------------------------------
Guest-Images         inactive   no

Далее

virsh # pool-build Guest-Images
Pool Guest-Images built

Запускаем хранилище

virsh # pool-start Guest-Images
Pool Guest-Images started

Добавляем в автозагрузку

virsh # pool-autostart Guest-Images
Pool Guest-Images marked as autostarted

Проверяем

virsh # pool-info Guest-Images
Name:           Guest-Images
UUID:           cece92da-962d-19aa-a83a-39f7c42d70df
State:          running
Persistent:     yes
Autostart:      yes
Capacity:       2.69 TiB
Allocation:     200.99 MiB
Available:      2.69 TiB

Настраиваем сеть.

Проверяем установлен ли в системе  пакет

[root@kvm sdb_3TB]# rpm -qa | grep bridge-utils
bridge-utils-1.2-10.el6.x86_64

Если нет, то ставим

yum install bridge-utils -y

У меня на сервере используется одна сетевая карточка. Настройки ее следующие

[root@kvm sdb_3TB]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"
HWADDR="A0:B3:CC:EA:FF:BE"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE="Ethernet"
UUID="c25927fe-7562-441c-80cf-d5a583ca05a2"
IPADDR="10.0.1.210"
NETMASK="255.255.255.0"
GATEWAY="10.0.1.254"

Создаю в системе bridge интерфейс, такого вида

[root@kvm network-scripts]# cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=10.0.1.210
NETMASK=255.255.255.0
GATEWAY=10.0.1.254
ONBOOT=yes

Интерфейс eth0 приводим к следующему виду

[root@kvm network-scripts]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="none"
HWADDR="A0:B3:CC:EA:FF:BE"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE="Ethernet"
BRIDGE="br0"

Перегружаем сетевые интерфейсы

[root@kvm network-scripts]# service network restart
Shutting down interface eth0:  bridge br0 does not exist!
                                                           [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:                                [  OK  ]
Bringing up interface br0:                                 [  OK  ]
[root@kvm network-scripts]#

Проверяем состояние bridge

[root@kvm network-scripts]# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.a0b3cceaffbe       no              eth0

Далее перегружаем сервис

[root@kvm etc]# service libvirtd restart
Stopping libvirtd daemon:                                  [  OK  ]
Starting libvirtd daemon:                                  [  OK  ]

Создаем виртуальную машину

virt-install --name СentOS6 --ram 512 --arch=x86_64 \
--disk pool=Guest-Images,size=50,bus=virtio \
--network bridge=br0 --vcpus=1 \
--graphics vnc,listen=0.0.0.0,password=qwerty \
--os-type=linux --os-variant=rhel6 \
--cdrom=/opt/sdb_3TB/ISO/CentOS-6.4-x86_64-minimal.iso

Проверяем что запущена  виртуальная машина

[root@kvm ~]# netstat -lnp | grep qemu
tcp        0      0 0.0.0.0:5900                0.0.0.0:*                   LISTEN      56556/qemu-kvm
unix  2      [ ACC ]     STREAM     LISTENING     418920 56556/qemu-kvm      /var/lib/libvirt/qemu/CentOS6.monitor

Подключиться к машине можно через VNC.  Я использую TightVNC