Виртуализация · 5 min read · Feb 01, 2026

Виртуализация с KVM на сервере Fedora 11

Виртуализация с KVM на сервере Fedora 11

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

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

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

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

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

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

2 Установка KVM

Хост KVM Fedora 11:

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

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 rep_good nopl pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch  
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 rep_good nopl pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch  
[root@server1 ~]#

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

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

yum install kvm qemu libvirt python-virtinst

Затем запустите демон libvirt:

/etc/init.d/libvirtd start

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

virsh -c qemu:///system list

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

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

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

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

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

yum install bridge-utils

… и настраиваем мост.

Я отключаю NetworkManager Fedora и включаю “нормальную” сеть. NetworkManager хорош для настольных ПК, где сетевые соединения могут меняться (например, LAN против WLAN), но на сервере вы обычно не меняете сетевые соединения:

chkconfig NetworkManager off  
chkconfig --levels 35 network on  
/etc/init.d/network restart

Проверьте ваш /etc/resolv.conf, если он перечисляет все DNS-серверы, которые вы ранее настроили:

cat /etc/resolv.conf

Если DNS-серверы отсутствуют, выполните

system-config-network

и добавьте отсутствующие DNS-серверы снова.

Чтобы настроить мост, создайте файл /etc/sysconfig/network-scripts/ifcfg-br0 (пожалуйста, используйте значения BOOTPROTO, DNS1 (плюс любые другие настройки DNS, если есть), GATEWAY, IPADDR, NETMASK и SEARCH из файла /etc/sysconfig/network-scripts/ifcfg-eth0):

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

| DEVICE=br0 TYPE=Bridge BOOTPROTO=static DNS1=145.253.2.75 GATEWAY=192.168.0.1 IPADDR=192.168.0.100 NETMASK=255.255.255.0 ONBOOT=yes SEARCH="example.com" |

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

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

| # Сетевой интерфейс DEVICE=eth0 #BOOTPROTO=none #DNS1=145.253.2.75 #GATEWAY=192.168.0.1 HWADDR=00:1e:90:f3:f0:02 #IPADDR=192.168.0.100 #NETMASK=255.255.255.0 ONBOOT=yes TYPE=Ethernet IPV6INIT=no USERCTL=no BRIDGE=br0 |

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

reboot

После перезагрузки выполните

ifconfig

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

[root@server1 ~]# ifconfig  
br0       Link encap:Ethernet  HWaddr 00:1E:90:F3:F0:02  
          inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255.255.0  
          inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
          RX packets:113 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:91 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0  
          RX bytes:16520 (16.1 KiB)  TX bytes:11889 (11.6 KiB)  
  
eth0      Link encap:Ethernet  HWaddr 00:1E:90:F3:F0:02  
          inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
          RX packets:136 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:98 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:1000  
          RX bytes:22152 (21.6 KiB)  TX bytes:14147 (13.8 KiB)  
          Interrupt:28 Base address:0x2000  
  
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:10 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0  
          RX bytes:746 (746.0 b)  TX bytes:746 (746.0 b)  
  
virbr0    Link encap:Ethernet  HWaddr E2:54:14:EA:7A:01  
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0  
          inet6 addr: fe80::e054:14ff:feea:7a01/64 Scope:Link  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:29 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0  
          RX bytes:0 (0.0 b)  TX bytes:5156 (5.0 KiB)  
  
[root@server1 ~]#

3 Установка virt-manager на вашем настольном компьютере Fedora 11

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

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

Станьте root…

su

… и выполните…

yum install virt-manager

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

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

sudo aptitude install virt-manager

)

4 Создание гостя Debian Lenny (на основе образа)

Хост KVM Fedora 11:

Теперь давайте вернемся к нашему хосту KVM Fedora 11.

Посмотрите на

man virt-install

чтобы узнать, как его использовать.

Чтобы создать гостя Debian Lenny (в режиме моста) с именем vm10, 512 МБ ОЗУ, двумя виртуальными процессорами и образом диска ~/vm10.qcow2 (размером 12 ГБ), вставьте CD-диск Debian Lenny Netinstall в CD-привод и выполните

virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 -f ~/vm10.qcow2 -s 12 -c /dev/cdrom --vnc --noautoconsole --os-type linux --os-variant debianlenny --accelerate --network=bridge:br0 --hvm

Конечно, вы также можете создать ISO-образ CD-диска Debian Lenny Netinstall…

dd if=/dev/cdrom of=~/debian-500-amd64-netinst.iso

… и использовать ISO-образ в команде virt-install:

virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 -f ~/vm10.qcow2 -s 12 -c ~/debian-500-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debianlenny --accelerate --network=bridge:br0 --hvm

Вывод будет следующим:

[root@server1 ~]# virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 -f ~/vm10.qcow2 -s 12 -c ~/debian-500-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debianlenny --accelerate --network=bridge:br0 --hvm  


Starting install...  
Creating storage file...                               
                                                      |  12 GB     00:00  
Creating domain...                                    
                                                      |    0 B     00:00  
Domain installation still in progress. You can reconnect to  
the console to complete the installation process.  
[root@server1 ~]#
Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.