пятница, 28 мая 2010 г.

Дешевое разделяемое хранилище для ESX

Для полноценной работы почти всего функционала ESX, кроме непосредственного запуска виртуальных машин, требуется shared storage, разделяемое хранилище. Для HA и VMotion, и того, что с ними связано - DRS, Fault Tolerance.

Но что делать если нет денег на HP EVA, NetApp и даже на Starwind iSCSI? Спасут старые добрые пингвины и старенький, уже слабый, но все еще исправно работающий сервер.

Итак, берем сервер, очень желательно с аппаратным RAID и обязательно с гигабитной сетью, и набиваем его дисками. Программная часть: CentOS, iSCSI Enterprise Target и/или стандартный NFS сервер, идущий в комплекте с CentOS. Я взял дистрибутив, бывший под рукой, CentOS 5.3 32bit.


Я рекомендую сделать два отдельных LUN'а для системы и для данных, или даже использовать для этого отдельные физические диски. В моем примере это будут /dev/sda для системы и /dev/sdb для данных.
Ставим CentOS с установками по умолчанию, примерно 20-25 минут. Настройку сети, DNS и прочего опустим.

Итак, начнем с конфигурации iSCSI. Для этого берем последнюю версию IET здесь.

Перед установкой IET необходимо установить еще несколько пакетов:
[root@iscsi-tgt ~]# cd /media/CentOS_5.3_Final/CentOS/
[root@iscsi-tgt CentOS]# rpm -i gcc-4.1.2-44.el5.i386.rpm glibc-devel-2.5-34.i386.rpm libgomp-4.3.2-7.el5.i386.rpm glibc-headers-2.5-34.i386.rpm kernel-headers-2.6.18-128.el5.i386.rpm kernel-devel-2.6.18-128.el5.i686.rpm
А теперь сам IET:
[root@iscsi-tgt CentOS]# cd ~
[root@iscsi-tgt ~]# tar -zxf iscsitarget-1.4.20.1.tar.gz
[root@iscsi-tgt ~]# cd iscsitarget-1.4.20.1
[root@iscsi-tgt iscsitarget-1.4.20.1]# make && make install
Добавим в /etc/iet/ietd.conf конфигурацию таргета:
Target iqn.2001-04.com.example:storage.disk1.sys1.xyz
Lun 0 Path=/dev/sdb,Type=blockio,ScsiId=xyz,ScsiSN=xyz
В файле /etc/iet/initiators.allow прописываем разрешения для ESX по доступу к созданному нами таргету и комментируем "разрешить всем все".
iqn.2001-04.com.example:storage.disk1.sys1.xyz iqn\.1998-01\.com\.vmware:esx2-0b63920f - пример моего ESX
#ALL ALL
Настал момент истины:
[root@iscsi-tgt ~]# service iscsi-target restart
Добавляем iSCSI таргет на ESX:


Делаем Rescan для iSCSI HBA и должен появиться наш диск:


Дальше создаем VMFS Datastore обычным способом :)

И не забываем добавить IET в автостарт:
[root@iscsi-tgt ~]# chkconfig --add iscsi-target
[root@iscsi-tgt ~]# chkconfig --level 3 iscsi-target on
***

Но если мы хотим не VMFS, а NFS по какой-то причине? Еще проще, даже ничего не надо ставить дополнительно. Для примера я использую тот же самый диск /dev/sdb.

Разметим диск:


Создадим на нем файловую систему и смонтируем:
[root@iscsi-tgt /]# mkfs.ext3 /dev/sdb1
[root@iscsi-tgt etc]# mkdir -p /datastores/datastore1
[root@iscsi-tgt etc]# mount /dev/sdb1 /datastores/datastore1/
Добавим новую файловую систему в /etc/fstab:
/dev/sdb1 /datastore/datastore1 ext3 defaults 0 0
И откроем к ней доступ по NFS в файле /etc/exports:
/datastores/datastore1 esx1(rw) esx2(rw) esx3(rw)
Осталось лишь запустить NFS сервер.
[root@iscsi-tgt etc]# service nfs start
[root@iscsi-tgt etc]# exportfs -a
Добавим новый Datastore на ESX:


Поскольку NFS идет в комплекте CentOS, в автостарт сервис можно добавить при помощи утилиты:
[root@iscsi-tgt ~]# setup
Выбираем "System services":

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

  1. В центоси 5.4 уже есть свой iSCSI target, так что и ставить ничего дополнительно не нужно.

    ОтветитьУдалить
  2. Антон, уж проще взять нашу фришку и MS Hyper-V Server :)

    ОтветитьУдалить
  3. Константин, во-1 не проще.
    Во-2, Hyper-V и старое железо - не слишком соместимы.
    В-3, это нарушение условий лицензии Hyper-V.

    ОтветитьУдалить
  4. Саша, я возможно что-то пропустил в CentOS, но как подсказывают коллеги с мест

    [dima@celesta ~]$ yum search iscsi | grep iscsi
    ================================ Matched: iscsi ================================
    iscsi-initiator-utils.i386 : iSCSI daemon and utility programs

    Таргета что-то не наблюдается на CentOS 5.4

    ОтветитьУдалить
  5. я почему просто не взять freenas или openfiler?
    нажал пару кнопок через веб и все.

    ОтветитьУдалить
  6. Можно и так, кому что больше нравится.

    ОтветитьУдалить
  7. К слову сказать на этой же машине с iscsi targetом, можно разместить vcenter в виртуальной машине и управление допустим ИБП

    ОтветитьУдалить
  8. Ну вот уж vCenter я бы настоятельно НЕ рекомендовал на ней размещать.

    В случае HA vCenter можно прямо в виртуальную машину на ESX. А управление ИБП - да, вполне. Но повторюсь, это должна быть хорошая, надежная машина, не полудохлая. Просто морально устаревшая для других задач.

    ОтветитьУдалить
  9. off
    А можно поподробней про управление ИБП и выключение гостей и хостов всферы?

    ОтветитьУдалить
  10. Этот комментарий был удален автором.

    ОтветитьУдалить
  11. >Таргета что-то не наблюдается на CentOS 5.4
    а если поискать получше?

    # yum search iscsi
    ================================ Matched: iscsi ================================
    [..skip..]
    scsi-target-utils.x86_64 : The SCSI target daemon and utility programs

    # yum info scsi-target-utils
    Available Packages
    Name : scsi-target-utils
    Arch : x86_64
    Version : 0.0
    Release : 6.20091205snap.el5_4.1
    Size : 143 k
    Repo : base
    Summary : The SCSI target daemon and utility programs
    URL : http://stgt.berlios.de
    License : GPLv2
    Description: The SCSI target package contains the daemon and tools to setup a SCSI targets.
    : Currently, software iSCSI targets are supported.

    или с апдейтами

    # yum info scsi-target-utils
    Available Packages
    Name : scsi-target-utils
    Arch : x86_64
    Version : 0.0
    Release : 6.20091205snap.el5_5.2
    Size : 143 k
    Repo : updates
    Summary : The SCSI target daemon and utility programs
    URL : http://stgt.berlios.de
    License : GPLv2
    Description: The SCSI target package contains the daemon and tools to setup a SCSI targets.
    : Currently, software iSCSI targets are supported.


    # cat /etc/issue
    CentOS release 5.4 (Final)
    Kernel \r on an \m

    iSCSI. Настройка.
    "Настройка iSCSI-Target посредством sys-block/tgt. Пакет в portage помечен как нестабильный, однако поддерживает драйвера FC, FCoE , не требует модульности ядра и используется в RHEL, CentOS как стабильный (пакет scsi-target-utils)."
    http://daevy.uzps.mh.ru/?p=512

    ОтветитьУдалить
  12. TS-459 Pro Turbo NAS http://www.qnap.com/pro_detail_feature.asp?p_id=144

    ОтветитьУдалить
  13. У Openfiler'а один недостаток - его требуется
    допиливать для загрузки с USB.
    FreeNAS умеет это изначально. Практически, конечно,
    без разницы, что выбрать, лишь бы была подходящая флэшка.

    ОтветитьУдалить
  14. по поводу вцентра на хосте ESX и HA

    выдернул я из разетки один из хостов в кластере
    на котором крутился вцентр
    вцентр накрылся

    ОтветитьУдалить
  15. Что именно накрылось? vCenter в ВМ - полностью поддерживаемая конфигурация.

    ОтветитьУдалить
  16. Извините, а СУБД под vCenter в той же виртуалке была, что и он сам? И если что-то накрылось при выдергивании из розетки - то ничего удивительного, делайте резервные копии. Переустановка vCenter и восстановление его БД из резерва занимают максимум полчаса...

    ОтветитьУдалить
  17. vCenter только настраивает HA и следит за ним. А скрипты выполняют хосты. Если вы выдерните из розетки хост на котором vCenter, эта виртуалка стартует на другом хосте. Ничего страшного. Учите мат.часть прежде чем писать что-либо.

    PS: извините за ответ на старую тему, не удержался...

    ОтветитьУдалить
  18. извините, сделал все так как написано в статье. при подключении к esx серверу не видит хранилище по iscsi. в dns машины прописаны, все сделано как описано, но тщетно.подскажите,как исправить?

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