Виртуализация · 4 min read · Jan 31, 2026

Виртуализация с KVM на сервере CentOS 5.2

Виртуализация с KVM на сервере CentOS 5.2

Версия 1.0
Автор: Фалко Тимме

Этот гид объясняет, как вы можете установить и использовать KVM для создания и запуска виртуальных машин на сервере CentOS 5.2. Я покажу, как создать виртуальные машины на основе образов, а также виртуальные машины, которые используют логический том (LVM). KVM — это сокращение от Kernel-based Virtual Machine и использует аппаратную виртуализацию, т.е. вам нужен процессор, который поддерживает аппаратную виртуализацию, например, Intel VT или AMD-V.

Я не даю никаких гарантий, что это сработает для вас!

1 Предварительная заметка

Я использую сервер CentOS 5.2 с именем хоста server1.example.com и IP-адресом 192.168.0.100 здесь в качестве моего хоста KVM.

Нам также нужна настольная система, на которой мы установим virt-manager, чтобы мы могли подключиться к графической консоли виртуальных машин, которые мы установим. Я использую настольный компьютер Ubuntu 8.10 здесь.

2 Установка KVM

Хост KVM на CentOS 5.2:

Запустите

system-config-securitylevel

и установите SELinux в режим Permissive (virt-install не будет работать, если вы установите SELinux в режим Disabled).

Затем проверьте, поддерживает ли ваш процессор аппаратную виртуализацию — если это так, команда

egrep '(vmx|svm)' --color=always /proc/cpuinfo

должна отобразить что-то, например, вот так:

[root@server1 ~]# egrep '(vmx|svm)' --color=always /proc/cpuinfo  
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall  
 nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse  
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall  
 nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse  
[root@server1 ~]#

Если ничего не отображается, значит, ваш процессор не поддерживает аппаратную виртуализацию, и вам нужно остановиться здесь.

Теперь мы импортируем GPG-ключи для программных пакетов:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

Чтобы установить KVM и virtinst (инструмент для создания виртуальных машин), мы запускаем

yum install kvm kmod-kvm qemu libvirt python-virtinst

Затем перезагрузите систему:

reboot

После перезагрузки модуль ядра KVM должен быть загружен:

lsmod | grep kvm
[root@server1 ~]# lsmod | grep kvm  
kvm_amd            50452  0  
kvm               109264  1 kvm_amd  
[root@server1 ~]#

(Этот вывод получен с системы с процессором AMD-V. Если ваша система использует процессор Intel VT, она должна отобразить что-то вроде kvm_intel.)

Чтобы проверить, успешно ли установлен KVM, выполните

virsh -c qemu:///system list

Он должен отобразить что-то вроде этого:

[root@server1 ~]# virsh -c qemu:///system list  
 Id Name                 State  
----------------------------------  
  
[root@server1 ~]#

Если вместо этого отображается ошибка, значит, что-то пошло не так.

Далее нам нужно настроить сетевой мост на нашем сервере, чтобы наши виртуальные машины могли быть доступны с других хостов так, как если бы они были физическими системами в сети.

Для этого мы устанавливаем пакет bridge-utils…

yum install bridge-utils

… и настраиваем мост. Создайте файл /etc/sysconfig/network-scripts/ifcfg-br0 (пожалуйста, используйте значения BOOTPROTO, BROADCAST, IPADDR, NETMASK и NETWORK из файла /etc/sysconfig/network-scripts/ifcfg-eth0):

vi /etc/sysconfig/network-scripts/ifcfg-br0

| DEVICE=br0 TYPE=Bridge BOOTPROTO=static BROADCAST=192.168.0.255 IPADDR=192.168.0.100 NETMASK=255.255.255.0 NETWORK=192.168.0.0 ONBOOT=yes |

Измените /etc/sysconfig/network-scripts/ifcfg-eth0 следующим образом (закомментируйте BOOTPROTO, BROADCAST, IPADDR, NETMASK и NETWORK и добавьте BRIDGE=br0):

vi /etc/sysconfig/network-scripts/ifcfg-eth0

| # Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ DEVICE=eth0 #BOOTPROTO=static #BROADCAST=192.168.0.255 HWADDR=00:10:A7:05:AF:EB #IPADDR=192.168.0.100 #NETMASK=255.255.255.0 #NETWORK=192.168.0.0 ONBOOT=yes BRIDGE=br0 |

Перезапустите сеть…

/etc/init.d/network restart

… и выполните

ifconfig

Теперь он должен показать сетевой мост (br0):

[root@server1 ~]# ifconfig  
br0       Link encap:Ethernet  HWaddr 00:10:A7:05:AF:EB  
          inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255.255.0  
          inet6 addr: fe80::210:a7ff:fe05:afeb/64 Scope:Link  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
          RX packets:17 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:53 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0  
          RX bytes:1160 (1.1 KiB)  TX bytes:14875 (14.5 KiB)  
  
eth0      Link encap:Ethernet  HWaddr 00:10:A7:05:AF:EB  
          inet6 addr: fe80::210:a7ff:fe05:afeb/64 Scope:Link  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
          RX packets:13662 errors:7 dropped:160 overruns:4 frame:0  
          TX packets:11646 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:1000  
          RX bytes:15144608 (14.4 MiB)  TX bytes:1379942 (1.3 MiB)  
          Interrupt:74 Base address:0xcc00  
  
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0  
          inet6 addr: ::1/128 Scope:Host  
          UP LOOPBACK RUNNING  MTU:16436  Metric:1  
          RX packets:38 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:38 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0  
          RX bytes:4308 (4.2 KiB)  TX bytes:4308 (4.2 KiB)  
  
virbr0    Link encap:Ethernet  HWaddr 00:00:00:00:00:00  
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0  
          inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:35 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0  
          RX bytes:0 (0.0 b)  TX bytes:9987 (9.7 KiB)  
  
[root@server1 ~]#

3 Установка virt-viewer или virt-manager на вашем настольном компьютере Ubuntu 8.10

Настольный компьютер Ubuntu 8.10:

Нам нужно средство для подключения к графической консоли наших гостей — мы можем использовать virt-manager (см. Управление гостями KVM с помощью Virt-Manager на Ubuntu 8.10) для этого. Я предполагаю, что вы используете настольный компьютер Ubuntu 8.10.

Запустите

sudo aptitude install virt-manager

чтобы установить virt-manager.

(Если вы используете настольный компьютер Fedora 10, вы можете установить virt-manager следующим образом:

Станьте root…

su

… и выполните

yum install virt-manager

)

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.