Гид по технологиям

Как создать тестовую среду кластера с использованием виртуализации CentOS 5 и iSCSI

• 5 min read • Инфраструктура • Обновлено 20 Nov 2025
Тестовый стенд кластера на CentOS 5 и iSCSI
Тестовый стенд кластера на CentOS 5 и iSCSI

Обзор

Это руководство показывает, как подготовить Xen‑базированную тестовую среду, где можно отработать развёртывание двухузлового кластера. Саму установку кластера тут не описываю — задача документации — дать все необходимые компоненты и конфигурацию для выполнения последующих шагов.

XEN поддерживает два типа гостевых систем: паравиртуализованные (PV) и полностью виртуализованные (HVM).

  • Для PV-гостей требуется дерево установки Red Hat Enterprise Linux 5, доступное по NFS, FTP или HTTP.
  • Для HVM-гостей нужен DVD/CD‑ROM или загрузочный ISO и сетевое дерево установки.

В этом документе показан вариант с паравиртуализованными гостями. В примере участвуют три системы:

  • node00 — физический хост виртуальные IP: 192.168.222.1 (public1 vlan), 192.168.100.1 (private1 vlan)
  • node01 — гостевая PV‑система 1 виртуальные IP: 192.168.222.10 (public1 vlan), 192.168.100.10 (private1 vlan)
  • node02 — гостевая PV‑система 2 виртуальные IP: 192.168.222.20 (public1 vlan), 192.168.100.20 (private1 vlan)

Что я использовал

  • Сервер HP Blade bl25p с 4 ГБ оперативной памяти (AMD64). Достаточно хватающей ОЗУ и CPU для запуска нескольких PV‑гостей.
  • CentOS i386 5 update 1 — DVD ISO. Из этого ISO были подготовлены HTTP, NFS и FTP источники установки и локальный yum‑репозиторий.
  • LVM‑тома для размещения образов гостей и «виртуальных LUN» для iSCSI (вместо LVM можно использовать разделы, но здесь использованы LV).

Настройка LVM (пример)

Ниже приведён вывод lvs из моей конфигурации (lvLUN0* — тома, используемые для iSCSI и разделяемые гостями):

lvs
  LV       VG          Attr   LSize   Origin Snap%  Move Log Copy%
  lvLUN01  Virtual00VG -wi-ao  50.00G
  lvLUN02  Virtual00VG -wi-ao  50.00G
  lvNODE01 Virtual00VG -wi-ao  30.00G
  lvNODE02 Virtual00VG -wi-ao  30.00G
  lvNODE03 Virtual00VG -wi-ao  15.00G
  lvsys00  vg00        -wi-ao 512.00M
  lvsys01  vg00        -wi-ao   8.00G
  lvsys02  vg00        -wi-ao   8.00G
  lvsys03  vg00        -wi-ao 512.00M
  lvsys04  vg00        -wi-ao 128.00M
  lvsys05  vg00        -wi-ao   1.00G
  lvsys06  vg00        -wi-ao 256.00M

Подготовка хоста

Предполагается, что вы умеете устанавливать CentOS/RHEL и знакомы с RPM/YUM. Я использую PXE‑сервер и kickstart для автоматизации установки хоста (node00). Ниже — пример kickstart‑файла и шаги по созданию HTTP/NFS/FTP источников и локального yum‑репозитория.

Проверка групп пакетов и установка виртуализации

Чтобы увидеть группы пакетов CentOS:

yum grouplist

Чтобы установить группу Virtualization:

yum groupinstall Virtualization

Kickstart для node00

Вам нужно изменить значения под вашу сеть и устройство. Привожу пример kickstart, который я использовал для хоста node00.

## START node00_ks.cfg
#modify for your own settings
install
nfs --server=remote_server --dir=/path/to/CENTOS5U1/i386
lang en_US.UTF-8
keyboard us
skipx
reboot
network --device eth2 --bootproto static --ip a.b.c.1 --netmask 255.255.255.0 --gateway a.b.c.2 --nameserver x.y.z.n --hostname node00.example.com
# grub and root password is a1s2d3f4g5
rootpw --iscrypted $1$3CXK2$CG9WlX2PuPpp7nxYMQGwP0
firewall --disabled
authconfig --enableshadow
selinux --disabled
timezone Asia/Singapore
bootloader --location=mbr --driveorder=cciss/c0d0 --append="rhgb quiet" --md5pass=$1$3CXK2$CG9WlX2PuPpp7nxYMQGwP0
clearpart --all --initlabel --drives=cciss/c0d0
part /boot --fstype ext3 --size=100 --ondisk=cciss/c0d0
part pv.100000 --size=100 --grow --ondisk=cciss/c0d0 --asprimary
volgroup vg00 --pesize=32768 pv.100000
logvol /tmp --fstype ext3 --name=lvsys05 --vgname=vg00 --size=1024
logvol /opt --fstype ext3 --name=lvsys04 --vgname=vg00 --size=128
logvol /var --fstype ext3 --name=lvsys03 --vgname=vg00 --size=512
logvol /usr --fstype ext3 --name=lvsys02 --vgname=vg00 --size=8192
logvol swap --fstype swap --name=lvsys01 --vgname=vg00 --size=8192
logvol /home --fstype ext3 --name=lvsys06 --vgname=vg00 --size=256
logvol / --fstype ext3 --name=lvsys00 --vgname=vg00 --size=512
%packages
@development-libs
@editors
@system-tools
@text-internet
@x-software-development
@virtualization
@dns-server
@core
@base
@ftp-server
@network-server
@legacy-software-development
@base-x
@web-server
@printing
@server-cfg
@sql-server
@admin-tools
@development-tools
lsscsi
createrepo
audit
net-snmp-utils
iptraf
tftp
lynx
mesa-libGLU-devel
kexec-tools
bridge-utils
device-mapper-multipath
vnc-server
xorg-x11-server-Xnest
xorg-x11-server-Xvfb
imake
openmotif
-vim-enhanced
-zisofs-tools
-zsh
-bluez-hcidump
-sysreport
## END of node00_ks.cfg

Настройка HTTP/NFS/FTP источников

Ниже пример конфигурации Apache для выдачи образа CentOS по HTTP. Файл: /etc/httpd/conf.d/centos5u1.conf

#/etc/httpd/conf.d/centos5u1.conf
Alias /centos5u1 /var/ftp/pub/centos5u1

Options Indexes FollowSymLinks MultiViews
IndexOptions FancyIndexing
Order deny,allow
Deny from all
Allow from 127.0.0.1 ::1 all

Запустите и добавьте в автозагрузку:

service httpd start
chkconfig httpd on

Для NFS отредактируйте /etc/exports:

# /etc/exports
/var/ftp/pub/centos5u1 192.168*(ro)

И запустите сервисы:

service nfs start
chkconfig nfs on

FTP: если каталоги уже в /var/ftp/pub/centos5u1, достаточно запустить vsftpd:

service vsftpd start
chkconfig vsftpd on

Локальный YUM‑репозиторий

Я использовал loopback‑монтирование ISO в каталог установки и создал репозиторий командой createrepo.

cd /var/ftp/pub/centos5u1/
mkdir temp
mount -o loop CentOS-5.1-i386-bin-DVD.iso temp
cp -pr temp i386
umount temp
createrepo -g i386

Для RHEL5 используйте compos‑файл:

createrepo -g repodata/comps-rhel5-server-core.xml Server

Пример файла репозитория /etc/yum.repos.d/CentOS5.repo:

#/etc/yum.repos.d/CentOS5.repo
[centos5-Server]
name=CentOS5 Server
baseurl=http://node00/centos5u1/i386
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

Убедитесь, что node00 разрешается через /etc/hosts или замените node00 на его IP.

VNC для удалённого GUI

Если у вас нет локальной консоли, используйте vncserver на node00 и подключайтесь через vncviewer (node00:1):

vncserver

Пример вывода при первом запуске (создание пароля и файла .Xauthority):

You will require a password to access your desktops.

      Password:
      Verify:
      xauth:  creating new authority file /root/.Xauthority

      New 'node00.example.com:1 (root)' desktop is node00.example.com:1

      Creating default startup script /root/.vnc/xstartup
      Starting applications specified in /root/.vnc/xstartup
      Log file is /root/.vnc/node00.example.com:1.log

Мини‑методология развертывания тестбеда

  1. Подготовка хоста: установить CentOS, настроить LVM, установить пакеты Virtualization.
  2. Подготовить инсталляционные источники (HTTP/NFS/FTP) и локальный yum‑репозиторий.
  3. Создать LV для гостей и LV для общего хранения (lvLUN*), настроить iSCSI target при необходимости.
  4. Создать PV‑гости через Xen, используя подготовленные источники (PXE/kickstart или ISO).
  5. Установить гостям необходимые пакеты и проверить сетевое взаимодействие между public/private vlan.
  6. Проверить доступность общих LUN через iSCSI с обеих гостевых систем.

Роли и чек‑листы

Администратор хоста:

  • Установить CentOS по kickstart.
  • Настроить LVM и выделить LV для гостей и LUN.
  • Настроить HTTP/NFS/FTP и локальный createrepo.
  • Установить пакеты Virtualization и убедиться, что libvirt/xend/выполняемые процессы работают.

Администратор хранения (Storage):

  • Настроить iSCSI target (например, tgt/iscsi‑target) и пробросить lvLUN*.
  • Проверить права доступа и сетевую изолированность между VLAN.
  • Убедиться в корректности резервного копирования LVM metadata.

Администратор гостя:

  • Создать/загрузить PV‑гостя через xm или virt‑install.
  • Подключить iSCSI LUN, провести разметку и монтирование.
  • Установить необходимые сервисы для теста кластера.

Критерии приёмки

  • node00 успешно устанавливается и отображается в списке групп yum.
  • HTTP/NFS/FTP каталоги доступны с других хостов в сети.
  • LV lvLUN01 и lvLUN02 доступны через iSCSI из обеих гостевых систем одновременно (для тестирования кластерных файловых систем использовать подходящие СУФ).
  • Гостевые системы корректно загружаются и имеют назначенные виртуальные IP.

Советы и распространённые ошибки

  • Если kickstart не видит NFS, проверьте /etc/exports и сетевую доступность.
  • При проблемах с createrepo убедитесь, что репо‑директория содержит repodata.
  • Не пытайтесь использовать один и тот же блоковый LUN как обычный ext3/ext4 на двух машинах одновременно — это приведёт к порче данных; для одновременного доступа нужны кластерные файловые системы (GFS2/OCFS2) или специализированные решения.
  • Для тестирования iSCSI target можно использовать пакеты tgt (istgt, scst или targetcli в зависимости от дистрибутива).

Примеры команд и сниппеты

  • Список групп и установка виртуализации:
yum grouplist
yum groupinstall Virtualization
  • Монтирование ISO и создание репозитория:
mount -o loop CentOS-5.1-i386-bin-DVD.iso temp
cp -pr temp i386
createrepo -g i386
  • Запуск httpd и автозапуск:
service httpd start
chkconfig httpd on

Факто‑бокс: ключевые параметры тестовой среды

  • Количество хостов: 1 физический + 2 PV‑госта.
  • RAM на физическом хосте в примере: 4 ГБ.
  • Размеры LV в примере: lvLUN01/02 — по 50G, lvNODE* — 30/30/15G.
  • Используемые технологии: Xen (PV), LVM, iSCSI, PXE/kickstart, createrepo.

Миграционные заметки и совместимость

  • RHEL5/CentOS5 устарели по современным стандартам безопасности; для продакшн‑окружений рассматривайте более новые релизы и современные гипервизоры.
  • Форматы LVM и iSCSI остаются совместимыми с более новыми версиями ядра, но пакеты и утилиты (tgt, iscsi) могли поменять имена и параметры.

Краткое резюме

  • Подготовьте хост: LVM, локальный репозиторий, HTTP/NFS/FTP.
  • Используйте kickstart и PXE для автоматических установок PV‑гостей.
  • Создайте LV для LUN и экспортируйте их через iSCSI для тестирования кластерных сценариев.

Важно: перед одновременным монтированием блочных устройств на нескольких гостях используйте кластерные файловые системы или распределённые решения для предотвращения порчи данных.

Критические шаги: проверка сетевой доступности источников установки, корректная конфигурация iSCSI target и согласованность версий утилит на хосте и гостях.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро