20 июл. 2011 г.

VMWare linux guest optimization for Oracle

Я хотел бы немного затронуть тему использования ПО Oracle Database внутри виртуальных машин VMWare с точки зрения их оптимальной настройки.
Многие заказчики используют гипервизоры VMWare - это конечно безусловный лидер рынка виртуализации на платформе x86, и мне часто приходится сталкиваться с темой "медленной работы оракла на VMWare".

Вот перечень рекомендаций по использованию ПО Oracle в виртуальной машине VMWare.




Диски виртуальной машины

1. Рекомендуется в гостевой машине сделать отдельные диски для ОС, файла подкачки (swap), временных файлов (temp), выполняемых файлов Oracle (каталогов ORACLE_HOME), файлов данных БД (oradata), и (по необходимости) для FRA.
Наличие отдельных дисков позволит:
- гибко расширять диски, если вдруг неожиданно виртуальный диск переполнится, например: когда при установке патча у Вас не хватило места, вы можете пересоздать виртуальный диск бОльшего размера и "перелить" на него данные;
- распределить vmdk-файлы по разным дискам (контроллерам) для балансировки ввода-вывода на хост-машине, например: вы можете положить swap-файл на SSD-диск.

2. Желательно чтобы имена файлов дисков виртуальных машин (vmdk-файлы) имели "говорящие" названия, например: system.vmdk, swap.vmdk, temp.vmdk, orahome.vmdk, oradata.vmdk, fra.wmdk.

3. Не рекомендуется делать thin-диски для файлов данных БД.
Поскольку, как правило, файлы данных табличных пространств делают autoextend и происходит "двойное" расширение vmdk-файлов: на первом шаге расширяется vmdk-файл, на втором - tablespace-файл внутри виртуальной машины. Что замедляет работу ВМ.
Варианта два:
- напрямую отдать под виртуальный диск раздел хост-машины (этот вариант конечно предпочтительный, но не всегда есть такая возможность);
- при создании виртуального диска заранее распределить место в vmdk-файле,
для расширения такого раздела можно использовать LVM гостевой системы, либо ASM (что предпочтительее);


Рис.1 Создание виртуального диска c предварительным выделением пространства


4. Для хранения файлов данных рекомендуется использовать ASM. ASM исключает уровень файловой системы при работе с файлами БД, что благотворно влияет на производительность СУБД. Дополнительно ASM обеспечивает функции Volume Manager.

5. Установка VMWare Tools является обязательной. Рекомендуется установить самую последнюю версию!

6. Для дисков виртуальных машин, которые планируется использовать для Oracle (orahome,oradata, fra) рекомендуется использовать паравиртуальные SCSI-контроллеры VMWare. Это самое последнее поколение виртуальных контроллеров VMWare, которые обеспечивает наивысшую производительность.
Для использования паравиртуальных SCSI-контроллеров в VMWare Player и VMWare Workstation (в VMWare VSphere для этого есть GUI-интерфейс) после создания диска нужно:
- переместить виртуальный диск на отдельный свободный SCSI-контроллер, например с SCSI0 на SCSI1;
- вручную открыть файл конфигурации ВМ (vmx-файл) и в нем для выбранного контроллера указать тип pvscsi, например: меняем строку
scsi1.virtualDev = "lsilogic"
на
scsi1.virtualDev = "pvscsi"

Рис.2 Перемещение виртуального диска на свободный SCSI-контроллер

Внимание: перевод на VMWare Paravirtual SCSI контроллеры осуществляется только после установки VMWare Tools, поскольку соответствующие драйвера в виртуальную машину устанавливаются именно с ними.

7. Рекомендуется сделать выравнивание дисков виртуальных машин. То есть обеспечить совпадение границ кластеров на файловой системы гостевой ОС и файловой системе VMware хост-машины (VMFS). Для этого в виртуальной машине при создании раздела на виртуальном диске с помощью утилиты fdisk проделайте следующие действия:
- запустите fdisk указав в качестве параметра соответствующее устройство, например
fdisk /dev/sdg
- наберите команду "n" для создания нового раздела;
- укажите "p" для создания primary-раздела;
- укажите "1" для номера раздела;
- нажмите два раза клавишу Enter для принятия параметров по умолчанию значений первого и последнего цилиндра диска (под раздел отводится целиком весь диск);
- введите конмадну "t" для указания типа раздела
- далее введите команду "fb" для того чтобы вновь созданный раздел имел тип "VMware VMFS volume";
- перейдите в расширенный режим (expert mode) утилиты fdisk введя команду "x";
- введите команду "b" для задания первого блока;
- укажите номер раздела "1";
- укажите начальный блок "128"
- и, наконец, введите команду "w" для записи изменений на диск.

Создание файловой системы на созданном таким образом разделе осуществляется обычным образом, например: mkfs -t ext3 /dev/sdg1


Рис.3 Выравнивание раздела на виртуальном жестком диске


8. После окончания настройки и установки ПО Oracle, рекомендуется сделать сжатие (shrink) системного и oracle_home дисков виртуальных машин.
Для этого в виртуальной машине вывовите управляющую утилиту VMWare Tools, набрав команду vmware-toolbox &
Далее перейдите на вкладку "Shrink" и, выбрав нужный диск, нажмите кнопку "Shrink"


Рис.4 Сжатие виртуального диска


9. В завершениие, рекомендуется дефрагментировать диски виртуальной машины средствами гипервизора.


Рис.5 Дефрагментация диска виртуальной машины в VMware Player


Настройка сети виртуальной машины
В качестве сетевых виртуальных интерфейсов рекомендуется использовать паравиртуальные драйвера VMWare VMxnet. (в VMWare VSphere для этого есть GUI-интерфейс). Для этго вручную откройте vmx-файл виртуальной машины и поменяйте тип сетевого адаптера на "vmxnet3", например:
меняем
ethernet0.virtualDev= "e1000"
на
ethernet0.virtualDev = "vmxnet3"


Настройка ПО внутри виртуальной машины
Внутри виртуальной машины Linux отключите службы НЕ нужные для работы ПО Oracle, такие как: anacron, apmd, atd, autofs, cups, cupsconfig, gpm, isdn, iptables, kudzu, netfs и portmap.

После окончания настройки и установки ПО Oracle, рекомендуется перевести Linux на виртуальной машине в 3-й режим загрузки (чтобы не грузилась графическая оболочка). Для этого в файле /etc/initab нужно поменять строку id:5:initdefault: на id:3:initdefault:


Литература
Vmware: Recommendations for Aligning VMFS Partitions
Vmware: Performance Comparison of Virtual Network Devices
Vmware: Oracle Databases on VMware Best Practices Guide
Quest Software: Tips for Optimal Virtualized Oracle Databases

8 комментариев:

  1. > безусловный лидер
    А как же Oracle VM x86 (c точки зрения производительности Oracle Database) ?
    Вот бы и по Oracle VM x86 такой же подробный пост, к тому же и версия недавно новая вышла...

    ОтветитьУдалить
  2. Пожалуйста:
    http://dsvolk.blogspot.com/2010/09/virtualization-in-real-life.html

    Конечно же OracleVM производительнее ! :-)

    Но большинство заказчиков почему-то используют VMWare, и с этим приходится считаться ...

    ОтветитьУдалить
  3. imho в п.7 именно для файловой системы гостевой ОС виртуальной машины корректнее будет hexcode 83 для native или 8e для LVM типов; а вот если у нас уровень гипервизора, то для VMFS, да, тип fb.

    ОтветитьУдалить
  4. > Конечно же OracleVM производительнее
    Смелое утверждение :)
    Практика показывает, что есть как превышение, так и проигрыш. Зависит от типа операций.

    ОтветитьУдалить
  5. Разве кроме OracleVM есть еще сертифицированнные платформы виртуализации для Oracle Database ?

    ОтветитьУдалить
  6. >> есть еще сертифицированнные платформы виртуализации для Oracle Database

    Что касается сертификации, то здесь ситуация такая:
    MOS ID 249212.1 "Support Position for Oracle Products Running on VMWare Virtualized Environments"
    Если проблема заказчика не связана с виртуальным окружением VMWare (есть тесткейс который воспроизводит проблему на обычном железе), то поддержка будет заниматься решением проблемы.

    Обратите внимание, что это касается также и конфигуарции RAC в среде VMWare, но начиная с веорсии 11.2.0.2 !

    ОтветитьУдалить
  7. >> Разве кроме OracleVM есть еще сертифицированнные платформы виртуализации для Oracle Database ?

    Да и для OracleVM сертификационный лист скудноват - Database сертифицирована только для гостевых RHEL/OEL версий 5.x.

    ОтветитьУдалить
  8. мне одному показалось или кто-нибудь еще тоже заметил ...
    при использовании локального хранилища
    (VMware'ю ESXi 5.0 на SSD установил, а терабайтный HDD SATA2 использовал как хранилище)
    дисковые операции гостевых ОС раза в полтора медленнее
    чем в аналогичной конфигурации с гипервизором XEN

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