В общих чертах про установку XEN и вирутальных машин под CentOS. Начнем с того, поддерживает ли процессор виртуализацию:
если у Вас Интел (VT-x), то
# grep -i vmx /proc/cpuinfo
если АМД (SVM), то
# grep -i svm /proc/cpuinfo
ну и наконец, на предмет HVM
# grep -i hvm /sys/hypervisor/properties/capabilities
Если поддержка есть, то можно использовать полноценную виртуализацию, если нет, не отчаивайтесь, можно использовать паравиртуализацию.
И так, приступим.
Устанавливаем XEN-новское ядро и сам XEN
# yum install kernel-xen xen
правим /boot/grub/menu.lst на предмет того, чтоб грузилось именно XEN-новское ядро (можно и руками конечно выбрать при загрузке).
ставим всю группу виртуализации (необязательно)
# yum groupinstall "Virtualization"
ставим QEMU
# yum install qemu
перезагружаемся с новым ядром. при выводе uname -r, должны получить примерно такое 2.6.18-164.el5xen.
теперь посмотрим xm list , получим следующее:
Name ID Mem(MiB) VCPUs State Time(s) Domain-0 0 1398 2 r----- 1048.5
Создадим папку для имеджей виртуальных машин
# mkdir /vm
Можно использовать не файлы имиджей , а LVM тома.
Теперь можно переходить к установке виртуальной машины. Сначала будем устанавливать машину с CentOS в режиме паравиртуализации. Установка будет по сети.
# virt-install
и отвечаем на вопросы, примерно так
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?
<-- v1 (имя виртуальной машины)
How much RAM should be allocated (in megabytes)?
<-- 384 (количество памяти)
What would you like to use as the disk (file path)?
<-- /vm/v1.img (файл имиджа на диске или LVM-том)
How large would you like the disk (/vm/v1.img) to be (in gigabytes)?
<-- 10 (размер диска в Гб)
Would you like to enable graphics support? (yes or no)
<-- no (поддержка графического режима)
What is the virtual CD image, CD device or install location?
<-- http://mirror.centos.org/centos/5.3/os/i386 (откуда собственно будем ставить)
Если нет у вас хороший, то ждать придеться не очень долго, в противном случае запаситесь терпением, заминка на stage2 (чуть больше 100 Мб)
Далее вы попадете в консоль устанавливаемой машины, где начнется установка в текстовом режиме, в псевдографике. Само-собой ставим только минимальный набор, все равно потом обновляться из сети.
Выйти из консоли данной машины можно по Ctrl-], а попасть обратно xm console v1
Следует заметить, что при такой установке, сетевая карта в создаваемой машине садиться бриджем на ваш первый интерфейс, можно поменять настройки в файле /etc/xen/xend-config.sxp например , мне нужно было, что б виртуальные машины были бриджом не с eth0, а с eth1, правим параметр (network-script 'network-bridge netdev=eth1')
Вообще в этом файле много интересный настроек, так что, внимательно читаем примеры.
После того как машина установилась, перезагружаемся (имею ввиду виртуальную машину), и если вы при установке правильно настроили сеть, можем зайти на нее уже по ssh. В противном случае, заходим в консоль
# xm console v1
заходим рутом, настраиваем сеть.
# xm list Name ID Mem(MiB) VCPUs State Time(s) Domain-0 0 1398 2 r----- 1052.3 v1 42 384 2 r----- 2.3
Наша машина запущена и работает. Советую посмотреть вывод команды xm -h, тогда вы будете знать как запустить и остановить виртуальную машину :)
В принципе, ничего сложного, все должно получиться без проблем.
Мы установили гостевую машину в режиме паравиртуализации. Теперь приступим к установке машины в режиме полной виртуализации, а это значит, что можно установить даже винду :), но это только в том случае, если ваш процессор поддерживает это (см. начало статьи).
Подготовим iso-образ инсталяционного диска w2k3, положим его в /root/w2k3.iso
Нам понадобиться так же vncviewer (у каждого на свой вкус и цвет). Я настраивал все это на удаленной машине, а на локальной для подключение во vnc использовал Vinagre.
Правим файл /etc/xen/xend-config.sxp на предмет:
(vnc-listen '0.0.0.0') - чтоб слушало на всех интерфейсах, по дефолту 127.0.0.1 (vncpasswd 'pipec_parol') - пароль
запускаем установку:
# virt-install --noautoconsole --cdrom /root/w2k3.iso
отвечаем на вопросы:
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?
<-- w2k (имя виртуальной машины)
How much RAM should be allocated (in megabytes)?
<-- 768 (количество памяти)
What would you like to use as the disk (file path)?
<-- /vm/w2k.img
How large would you like the disk (/vm/v1.img) to be (in gigabytes)?
<-- 10 (размер диска в Гб)
Would you like to enable graphics support? (yes or no)
<-- yes (графический режим)
Начнеться утановка. Теперь надо подключиться к это процесу по vnc. порты назначаються на первый свободный начиная с 5900, можно посмотреть, какой порт слушает родительсткая машина по netstat.
Подключаемся, видем процесс установки, отвечаем на вопросы, разбиваем диск и т.д. Начнеться копирование файлов, после которого будет перезагрузка и ..... не стоит отчаиваться все ни так уже и плохо, во первых просто поменялся порт vnc на +1 (опять таки посмотреть можно по netstat), во вторых винда сказала, что нет диска в cdrom и она не может продолжить установку. Не беда. Останавливаем машину
# xm shutdown w2k
правим файл /etc/xen/w2k
было:
disk = [ "file:/vm/w2k.img,hda,w", ",hdc:cdrom,r" ]
стало:
disk = [ "file:/vm/w2k.img,hda,w", "file:/root/w2k3.iso,hdc:cdrom,r" ]
и запускам машину опять
# xm create w2k
подключаемся по vnc и продолжаем установку.
После удачной установки, настраиваем сеть, ставим на винду радмин или разрешаем терминальный доступ, кому как удобно. Выключаем машину. Возвращаем на место:
было:
disk = [ "file:/vm/w2k.img,hda,w", "file:/root/w2k3.iso,hdc:cdrom,r" ]
(вы теперь знаете, как подключить к винде iso-образ) стало:
disk = [ "file:/vm/w2k.img,hda,w", ",hdc:cdrom,r" ]
комментируем
# vnc = 1 # vncunused = 1
нам не понабодиться больше vnc
Запускаем машину
# xm create w2k
Подключаемся к ней терминалкой или радмином.
Чтоб виртуальные машины автоматически загружались, при загрузке родительской, создаем символические ссылки:
ln -s /etc/xen/w2k /etc/xen/auto/ ln -s /etc/xen/v1 /etc/xen/auto/
Вот и все. Удачи в настройках.
|