top
logo


Установка и настройка Xen на CentOS (Linux) PDF Печать E-mail
06.07.12 10:40

Установка и настройка Xen на CentOS (Linux)

 

 

В статье описано как установить Xen (4.1.2) на CentOS 6.2 (x86_64). Xen позволяет создавать гостевые ОС «виртуальные машины», под базовой операционной системой (dom0). Используя Xen можно разделять приложения на различные виртуальные машины, которые полностью независимы друг от друга, например отдельная виртуальная машина для почтового сервера, для сайта(ов), другую отдать под сайты клиентов сети, для DNS, и т.д., но используя одно оборудование. Это экономит деньги, и что еще более важно, это более безопасно. Если взломают виртуальную машины с DNS, это не окажет влияния на другие виртуальные машины. Кроме того можно перемещать виртуальные машины с одного сервера Xen на другой!

Используется dom0 как базовая ос, а domU как гостевая. Статья предназначена в качестве практического руководства, и она не охватывает теоретической части и всех возможных проблем/решений. ВНИМАНИЕ! Не даю гарантий что все это будет работать у вас. Также данная статья справидлива для большенства других Linux дистрибутивов, конечно при внесении некоторых изменений.

Примечания

В статье описано как создать виртуальные машины image-based, а также LVM-based. Сначала нужно убедитесься, что отключен SELinux или же что в нем сделаны необходимые изменения:

nano /etc/sysconfig/selinux


# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
#       targeted - Only targeted network daemons are protected.
#       strict - Full SELinux protection.
SELINUXTYPE=targeted


Если изменяли /etc/sysconfig/selinux необходимо перезагрузиться:

reboot


Создание сетевого моста (Network Bridge)

Это нужно чтобы виртуальные машины были доступны с других хостов, как если бы они были физическими системами в сети. Установим пакет bridge-utils:

yum install bridge-utils


Теперь настроим. Создадим /etc/sysconfig/network-scripts/ifcfg-br0 (используя значения IPADDR, PREFIX, GATEWAY, DNS1 и DNS2 из / etc/sysconfig/network-scripts/ifcfg-eth0, также должен быть выставлен TYPE = Bridge, а не TYPE = Ethernet):

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


DEVICE="br0"
NM_CONTROLLED="yes"
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=none
IPADDR=192.168.0.100
PREFIX=24
GATEWAY=192.168.0.1
DNS1=8.8.8.8
DNS2=8.8.4.4
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System br0"


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

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


DEVICE="eth0"
NM_CONTROLLED="yes"
ONBOOT=yes
HWADDR=00:1E:90:F3:F0:02
TYPE=Ethernet
#BOOTPROTO=none
#IPADDR=192.168.0.100
#PREFIX=24
#GATEWAY=192.168.0.1
#DNS1=8.8.8.8
#DNS2=8.8.4.4
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
BRIDGE=br0


Перезагружаем network:

/etc/init.d/network restart


Посмотрим ifconfig:

ifconfig


[root@server ~]# 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:17 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:1196 (1.1 KiB)  TX bytes:2794 (2.7 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:4554 errors:0 dropped:0 overruns:0 frame:0
           TX packets:3020 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000
           RX bytes:6249612 (5.9 MiB)  TX bytes:254928 (248.9 KiB)
           Interrupt:25 Base address:0x6000

 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:3 errors:0 dropped:0 overruns:0 frame:0
           TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0
           RX bytes:1304 (1.2 KiB)  TX bytes:1304 (1.2 KiB)

 [root@server ~]#


Установка Xen

Сначала нужно проверть поддерживает ли процессор аппаратную виртуализацию:

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


Должно получиться что-то похожее:

[root@server ~]# 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@server ~]#


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

Дистрибутив CentOS 6 основан на RedHat Linux 6, в нем была прекращена поддержка Xen. Поэтому придется ставить Xen из сторонних репозиториев. Добавить репу можно следующим образом:

yum install wget
cd /etc/yum.repos.d/
wget http://www.crc.id.au/repo/kernel-xen.repo


Для установки Xen и Xen kernel:

yum install kernel-xen xen


Прежде чем загрузиться с новым ядром, нужно посмотреть настройки загрузчика GRUB. Открываем /boot/grub/menu.lst:

nano /boot/grub/menu.lst


Первым ядром должен быть Xen:


title CentOS (2.6.32.54-1.el6xen.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32.54-1.el6xen.x86_64 ro root=/dev/mapper/VolGroup00-LogVol00 rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD quiet SYSFONT=latarcyrheb-sun16 rhgb crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=de rd_LVM_LV=VolGroup00/LogVol01 rd_LVM_LV=VolGroup00/LogVol00 rd_NO_DM
        initrd /initramfs-2.6.32.54-1.el6xen.x86_64.img


Нужно изменить этот раздел, так чтобы гипервизор Xen загружался первым. В строчке kernel /vmlinuz… замените kernel на module. То же самое нужно сделать в следующей строке initrd /initramfs — заменить первое слово с initrd на module… Затем добавьте строку kernel /xen.gz dom0_mem=1024M cpufreq=xen dom0_max_vcpus=1 dom0_vcpus_pin после root и перед первой строкой module (если у процессора больше чем одно ядро, можно указать другое число для dom0_max_vcpus). Должно получиться что-то вроде:

title CentOS (2.6.32.54-1.el6xen.x86_64)
        root (hd0,0)
        kernel /xen.gz dom0_mem=1024M cpufreq=xen dom0_max_vcpus=1 dom0_vcpus_pin
        module /vmlinuz-2.6.32.54-1.el6xen.x86_64 ro root=/dev/mapper/VolGroup00-LogVol00 rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD quiet SYSFONT=latarcyrheb-sun16 rhgb crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=de rd_LVM_LV=VolGroup00/LogVol01 rd_LVM_LV=VolGroup00/LogVol00 rd_NO_DM
        module /initramfs-2.6.32.54-1.el6xen.x86_64.img


Измените значение default на 0 (чтобы первое ядро (ядро Xen) загружалось по умолчанию):

default=0


Общаа картина должна выглядеть примерно так:

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/mapper/VolGroup00-LogVol00
#          initrd /initrd-[generic-]version.img
#boot=/dev/sde
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32.54-1.el6xen.x86_64)
        root (hd0,0)
        kernel /xen.gz dom0_mem=1024M cpufreq=xen dom0_max_vcpus=1 dom0_vcpus_pin
        module /vmlinuz-2.6.32.54-1.el6xen.x86_64 ro root=/dev/mapper/VolGroup00-LogVol00 rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD quiet SYSFONT=latarcyrheb-sun16 rhgb crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=de rd_LVM_LV=VolGroup00/LogVol01 rd_LVM_LV=VolGroup00/LogVol00 rd_NO_DM
        module /initramfs-2.6.32.54-1.el6xen.x86_64.img
title CentOS (2.6.32-220.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=/dev/mapper/VolGroup00-LogVol00 rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD quiet SYSFONT=latarcyrheb-sun16 rhgb crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=de rd_LVM_LV=VolGroup00/LogVol01 rd_LVM_LV=VolGroup00/LogVol00 rd_NO_DM
        initrd /initramfs-2.6.32-220.el6.x86_64.img


Перед тем, как перезагрузиться, устанавим пакеты libvirt и python-virtinst (инструмент virt-install для настройки Xen VM):

yum install libvirt python-virtinst


Пакет Libvirt из CentOS 6/RedHat 6 не поддерживает Xen, поэтому нужно сделать его поддержку. Для этого:

yum groupinstall 'Development Tools'

yum install python-devel xen-devel libxml2-devel xhtml1-dtds readline-devel ncurses-devel libtasn1-devel gnutls-devel augeas libudev-devel libpciaccess-devel yajl-devel sanlock-devel libpcap-devel libnl-devel avahi-devel libselinux-devel cyrus-sasl-devel parted-devel device-mapper-devel numactl-devel libcap-ng-devel netcf-devel libcurl-devel audit-libs-devel systemtap-sdt-devel


Посмотрим версию libvirt:

rpm -qa | grep libvirt



[root@server ~]# rpm -qa | grep libvirt
libvirt-client-0.9.4-23.el6_2.4.x86_64
libvirt-0.9.4-23.el6_2.4.x86_64
libvirt-python-0.9.4-23.el6_2.4.x86_64
[root@server ~]#


Получается версия 0.9.4, скачаем соответствующий src.rpm пакет в /root/src и установим:


mkdir /root/src
cd /root/src
wget http://vault.centos.org/6.2/os/Source/SPackages/libvirt-0.9.4-23.el6.src.rpm
rpm -i libvirt-0.9.4-23.el6.src.rpm


Последняя команда выдаст несколько предупреждений, которые можно проигнорировать:

warning: user mockbuild does not exist - using root
 warning: group mockbuild does not exist - using root


Далее патчим:


wget http://pasik.reaktio.net/xen/patches/libvirt-spec-rhel6-enable-xen.patch
cd /root/rpmbuild/SPECS
cp -a libvirt.spec libvirt.spec.orig
patch -p0 < ~/src/libvirt-spec-rhel6-enable-xen.patch


Собирае libvirt:

rpmbuild -bb libvirt.spec


В конце процесса сборки будет нечто вроде этого:

Wrote: /root/rpmbuild/RPMS/x86_64/libvirt-0.9.4-23.el6.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/libvirt-client-0.9.4-23.el6.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/libvirt-devel-0.9.4-23.el6.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/libvirt-lock-sanlock-0.9.4-23.el6.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/libvirt-python-0.9.4-23.el6.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/libvirt-debuginfo-0.9.4-23.el6.x86_64.rpm


Переходим в директорию с созданным пакетом (в данном случае /root/rpmbuild/RPMS/x86_64/)

cd /root/rpmbuild/RPMS/x86_64/


И установим Libvirt (с поддержкой Xen):

rpm -Uvh --force libvirt-0.9.4-23.el6.x86_64.rpm libvirt-client-0.9.4-23.el6.x86_64.rpm libvirt-python-0.9.4-23.el6.x86_64.rpm


Теперь можно перезагрузить систему:

reboot


В результате должно автоматически загружаться новое ядро Xen. После загрузки это можно проверить так:

uname -r


[root@server ~]# uname -r
 2.6.32.54-1.el6xen.x86_64
[root@server ~]#


Чтобы проверить запущен ли Xen (Domain-0 (dom0)):

xm list


[root@server ~]# xm list
 Name                                        ID   Mem VCPUs      State   Time(s)
 Domain-0                                     0  1024     1     r-----     18.9
[root@server ~]#


Для управления Xen, вместо команды xm будет использоваться команда virsh потому что пользуемся libvirt:

virsh list


[root@server ~]# virsh list
  Id Name                 State
 ----------------------------------
   0 Domain-0             running

[root@server ~]#


Паравиртуализация

Создадим первую виртуальную машину image-based в директории /var/lib/libvirt/images/ которая создалась при установки libvirt. Для создания Xen VM, в CentOS есть отличный инструмент под названием virt-install. Для его запуска:

virt-install --prompt --network bridge=br0 --virt-type=xen


--network bridge=br0 указывает на наш сетевой мост, который сделали ранее. Далее будет задано несколько вопросов. Назвавем первую виртуальную машину vm01, ОЗУ = 1024 и диск размером в 10 Гб. И сохраним ее в файл /var/lib/libvirt/images/vm01.img. Стоит еще отметить вопрос «What is the install URL?» — тут указываем ближайшее зеркало, чтобы можно было скачать все необходимые файлы для установки CentOS 6 в виртуальную машину.

После virt-install начнет установку (в текстовом режиме) на vm01. Через некоторое время появиться возможность использовать VNC или же продолжить в установку в текстовом режиме:

VNC

В следующем диалоге можно задать пароль для соединения VNC (рекомендуется):

VNC

Далее последует информация о подключении к VNC. Откройте VNC клиент, введите IP и нажмите на кнопку Connect. Готово:

VNC

Чтобы выйти из консоли vm01 после установки, нажмите CTRL+] или CTRL+5. Теперь должны вернуться в консоль dom0.

Запустите:

virsh console vm01


Теперь можно войти в систему на виртуальной машине, используя SSH клиент для подключения.

Команда покажет список запущенных VW:

virsh list


[root@server ~]# virsh list
 Id Name                 State
----------------------------------
  0 Domain-0             running
  2 vm01                 idle

[root@server ~]#


Для завершения работы vm01:

virsh shutdown vm01


Для запуска vm01:

virsh start vm01


Вот наиболее важные команды для Xen:

virsh start name — Запуск VM.
virsh shutdown name — Остановка VW.
virsh destroy name — Экстренно вырубить виртуальную машину, не выключая ее саму. Все равно что выключить питание из розетки.
virsh list — Показать список запущенных систем.
virsh console name — Войти на VW.
virsh help — Список команд.

Создание виртуальной машины LVM-Based (Паравиртуализация)

Пойдет речь о настройки виртуальных машин LVM-Based, а не машин использующих образы дисков. Последний вариант очень медленный и тяжелый, потому рассмотрим другой.

Будем использовать к примеру тот же дистрибутив CentOS 6 с настройкой LVM группы /dev/VolGroup00 у которой есть около 465GB. /dev/VolGroup00 состоит из двух логических томов 1) /dev/VolGroup00/LogVol00 2) /dev/VolGroup00/LogVol01 потребляющий около 104GB — остальные место не занято, соответвенно его можно использовать для создания томов под виртуальные машины:

vgdisplay


[root@server ~]# vgdisplay
  --- Volume group ---
  VG Name               VolGroup00
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               465.26 GiB
  PE Size               4.00 MiB
  Total PE              119106
  Alloc PE / Size       26250 / 102.54 GiB
  Free  PE / Size       92856 / 362.72 GiB
  VG UUID               LCdZgy-jVrp-S92Q-RQeI-H87G-jiko-4fmaHF

[root@server ~]#


lvdisplay


[root@server ~]# lvdisplay
  --- Logical volume ---
  LV Name                /dev/VolGroup00/LogVol01
  VG Name                VolGroup00
  LV UUID                n5remv-KYEE-O0Ry-g2r6-OrUe-rjyV-x65rHu
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                4.88 GiB
  Current LE             1250
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0

  --- Logical volume ---
  LV Name                /dev/VolGroup00/LogVol00
  VG Name                VolGroup00
  LV UUID                CnvnGP-sDL8-OtBU-OzTT-VjZQ-ZIUo-yzISkX
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                97.66 GiB
  Current LE             25000
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:1

[root@server ~]#


Создадим виртуальную машину vm02 с томом /dev/VolGroup00/vm02. Например на VW должно выделяться 10 Гб:

lvcreate -L10G -n vm02 VolGroup00


Затем моно выполнить:

virt-install --prompt --network bridge=br0 --virt-type=xen


Получим ряд вопросов, стоит отметить «What would you like to use as the disk (file path)? — тут указываем путь /dev/VolGroup00/vm02.

Использование virt-manager для создания и управления VM

На декстопе Linux, вместо VNC или текстового инсталлятора, можно воспользоватся virt-manager. В примере будет использован десктопный дистрибутив Fedora 16, а VM с CentOS 6 — это vm06:

virt-install --prompt --network bridge=br0 --virt-type=xen --vnc --noautoconsole


Важными параметрами являются --vnc и --noautoconsole, которые позволяют подключаться к инсталлятору с virt-manager. Далее также ответим на несколько вопросов:

[root@server ~]# virt-install --prompt --network bridge=br0 --virt-type=xen --vnc --noautoconsole
Would you like a fully virtualized guest (yes or no)? This will allow you to run unmodified operating systems.
<-- no
What is the name of your virtual machine?
<-- vm06
How much RAM should be allocated (in megabytes)?
<-- 1024
What would you like to use as the disk (file path)?
<-- /var/lib/libvirt/images/vm06.img
How large would you like the disk (/var/lib/libvirt/images/vm06.img) to be (in gigabytes)?
<-- 10
What is the install URL?
<-- http://ftp.url

Starting install...
Retrieving file .treeinfo... | 798 B 00:00 ...
Retrieving file vmlinuz... | 7.5 MB 00:01 ...
Retrieving file initrd.img... | 59 MB 00:10 ...
Allocating 'vm06.img' | 10 GB 00:00
Creating domain... | 0 B 00:01
Domain installation still in progress. You can reconnect to
the console to complete the installation process.
[root@server ~]#


Для установки virt-manager на десктоп с Fedora 16:

su
yum install virt-manager openssh-askpass


Далее из меню графического окружения рабочего стола, запускаем Virtual Machine Manager. При запуске скорее всего появится сообщение — Packages required for KVM usage, которое можно проигнорировать.

Для подключения VM с CentOS выбираем File > Add Connection… В качестве гипервизора выберите Xen, а затем проверьте соединение с удаленным хостом, выберите в выпадающем меню SSH, введите имя пользователя root и имя хоста, например server.example.com или его IP-адрес 192.168.0.100. Затем нажмите на Connect. Если это первое подключение к удаленному серверу Xen, нужно ввести Yes и нажать на кнопку OK, затем напечатать пароль администратора CentOS. В результате в списке должны увидеть статус „vm06 running“. Для запуска консоли нужно нажать кнопку Open.





Теперь устанавливаем CentOS как обычно это делается на физической системе. В конце установки, гостевая система потребует перезагрузки. В результате чего нужно будет запустить ее снова из virt-manager или командой:

virsh start vm06


После этого можно подключиться через virt-manager и настроить систему. Также для удобства, на гостевой системе можно установить OpenSSH.

Аппаратная виртуализация

Создание из консоли

Для начала нужно положить образ (например с CentOS 6.2) в DVDROM, или скачать iso образ устанавливаемого дистрибутива в директорию /var/lib/libvirt/images/ (должен быть там для virt-manager). Кроме того, можно создать файл ISO с DVDROM следующим образом:

dd if=/dev/cdrom of=/var/lib/libvirt/images/CentOS-6.2-x86_64-bin-DVD1.iso


Установка:

virt-install --prompt --network bridge=br0 --virt-type=xen --vnc --noautoconsole


[root@server ~]# virt-install --prompt --network bridge=br0 --virt-type=xen --vnc --noautoconsole
Would you like a fully virtualized guest (yes or no)? This will allow you to run unmodified operating systems.
<-- yes
What is the name of your virtual machine?
<-- vm03
How much RAM should be allocated (in megabytes)?
<-- 1024
What would you like to use as the disk (file path)?
<-- /var/lib/libvirt/images/vm03.img 
How large would you like the disk (/var/lib/libvirt/images/vm03.img) to be (in gigabytes)?
<-- 10
What is the install CD-ROM/ISO or URL?
<-- /dev/cdrom (или указать на iso образ /var/lib/libvirt/images/CentOS-6.2-x86_64-bin-DVD1.iso)

Starting install...
Creating domain... | 0 B 00:01
Domain installation still in progress. You can reconnect to
the console to complete the installation process.
[root@server ~]#


Вот и все! Теперь открываем virt-manager и в перед.

Также вместо того чтобы создавать виртуальную машину из консоли, можно создать ее через virt-manager.

Управление Xen из консоли

Управлять Xen можно с помощью команды virsh (virtual shell). Для подключение к шеллу:

virsh


Список доступных команд:

help


Показывает все запущенные VM:

list


Показывает все VM:

list --all


virsh # list --all
 Id Name                 State
----------------------------------
  0 Domain-0             running
  - vm01                 shut off

virsh #


Запуск:

start vm10


Остановка:

shutdown vm10


Экстренная остановка:

destroy vm10


Приостановить:

suspend vm10


Выйти из шелл:

quit


источник:http://itbuben.org/blog/Unix-way/2216.html
ссылка на материал: http://thin.kiev.ua/linux/39-linux/646-xen-to-centos-linux-.html

{jcomments on}


Последнее обновление 06.07.12 10:55
 
Интересная статья? Поделись ей с другими:

bottom

 

Unreal Commander PfSense по русски Яндекс.Метрика