Windows guest on OracleVM

Многие интересуются запуском паравиртуальных машин Windows под OracleVM. Такая возможность есть, и Windows полностью поддерживается в качестве гостевых систем OracleVM.
В качестве примера мы подробно рассмотрим процесс создания виртуальной машины MS Windows 2003 Server x64 работающей под управлением OracleVM, внутри которой затем будет установлена база данных Oracle 11g Release 2 for MS Windows x64.



1. Создание виртуальной машины.
Создаем файл конфигурации виртуальной машины. Она будет иметь три диска:
- диск для хранения файлов ОС (файл образа system.img)
- диск для хранения бинарных файлов Oracle Database 11gR2 (файл образа orahome.img)
- диск для хранения файлов данных СУБД (физический раздел phy:/dev/sda5 на диске хост-машины).

Дистрибутив операционной системы будет "виден" в виртуальной машине как CD-ROM (файл windows2003_x64.iso - это образ установочного диска MS Windows Server 2003 x64).

Обратите внимание, что с файлами данных виртуальная машина будет работать напрямую - это позволяет значительно повысить производительность ввода-вывода.

root_dir = '/u01/running_pool/hrdb/'
acpi = 1
apic = 1
builder = 'hvm'
device_model = '/usr/lib/xen/bin/qemu-dm'
disk = [
'file:' + root_dir + '/system.img,hda,w',
'file:' + root_dir + '/orahome.img,hdb,w',
'phy:/dev/sda5,hdc,w',
'file:' + root_dir + '/windows2003_x64.iso,hdc:cdrom,r'
]
kernel = '/usr/lib/xen/boot/hvmloader'
keymap = 'ru'
memory = '4096'
name = 'hrdb'
on_crash = 'restart'
on_reboot = 'restart'
boot = "dc"
serial = 'pty'
timer_mode = 0
vcpus = 1
vif = ['type=ioemu, mac=00:16:3E:27:64:4F']
vnc = 1
vncconsole = 1
vnclisten = '0.0.0.0'
vncpasswd = 'oracle'
vncunused = 1
Затем создаем файлы system.img и orahome.img с помощью команд:
#Create a 20 Gigabyte file-backed virtual block device:
dd if=/dev/zero of=system.img bs=1k seek=4096k count=5
dd if=/dev/zero of=orahome.img bs=1k seek=4096k count=5
Для виртуальной машины эти файлы будут видны как HDD объемом по 20Гб, но на диске хост-машины будут занимать столько места, сколько реально занято в ВМ (занятый размер на хосте можно посмотреть с помощью команды dd).

OracleVM предоставляет доступ к графической консоли виртуальной машины через VNC.
С помощью VNC-клиента мы сможем получить графическую консоль ВМ по адресу: ovmhost:5900 с паролем "oracle", где ovmhost - имя сервера OracleVM в сети .

2. Установка операционной системы
Запускаем вуртуальную машину с помощью команды xm create <имя файла конфигурации ВМ> , получаем доступ к ее консоли с помощью VNC-клиента, затем обычным образом устанавливаем ОС Windows 2003 x64.

3. Установка Windows Paravirtual Drivers for OracleVM
Далее нужно установить паравиртуальные драйверы на виртуальную машину Windows.
Немного теории.
Паравиртуальные драйверы — это специальные драйвера устройств, которые используются в виртуальной машине и осуществляют операции ввода/вывода не через эмулируемые устройства, а при помощи специального интерфейса, предоставляемого гипервизором на хост-машине OracleVM. Это существенно повышает производительность виртуальных машин, работающих в режиме полной виртуализации (HWM).
Скачать эти драйверы мужно с сайта edelivery.oracle.com
Oracle VM Windows Paravirtual (PV) Drivers for Microsoft Windows Guests (XP/Vista/7/2003/2008/2008 R2) 2.0.7 - 32-bit/64-bit

Документация по установке: Windows Paravirtual Drivers Installation Guide

После установки этих драйверов в виртуальную машину, диски и сетевые карты будут иметь специфические имена устройств;


4. "Бэкапим" виртуальную машину (VMimage gold copy) и потом устанавливаем на нее Grid Infrastructure Standalone Server (чтобы воспользоваться Oracle Restart и ASM). Наконец, ставим Oracle Database 11gR2.
Виртуальная машина готова к работе.

5. Снова делаем резервную копию виртуальной машины, клонируем ее (если вам нужно несколько Windows-серверов с базой данных) и запускаем в production !

3 комментария:

  1. Анонимный3/8/10 12:18 PM

    Игорь, спасибо :)))

    ОтветитьУдалить
  2. Анонимный4/8/10 11:20 AM

    Важный момент:
    после установки PV Drivers не забываем изменить тип сетевого адаптера в конфиг. файле с
    vif = ['type=ioemu, mac=00:16:3E:27:64:4F']
    на
    vif = ['type=netfront, mac=00:16:3E:27:64:4F']

    VM

    ОтветитьУдалить
  3. Анонимный9/2/11 3:33 PM

    Важный момент: это НЕ БУДЕТ паравиртуальная машина. Это будет своеобразный гибрид. Обратите внимание на строку "builder = 'hvm'".
    То есть это именно эмуляция железа qemu. И одним из частных следствий из этого факта является следующий момент: в отличие от паравиртуальных машин эта НЕ БУДЕТ РАБОТАТЬ на хостах, где процессор не поддерживает Intel VT или AMD-V технологий виртуализации. То есть паравиртуальными здесь становятся только дисковые I/O и сетевой фронтэнд. Безусловно, при этом скорость работы с дисками и сетью увеличится и станет стоить меньше ресурсов.

    Искренне ваш, капитан Очевидность. :)

    ОтветитьУдалить