Yvision.kz
kk
Разное
Разное
399 773 постов41 подписчиков
Всяко-разно
0
00:22, 27 декабря 2015

Установка SCST Target на CentOS 7

Blog post image

В прошлом я устанавливал iSCSI Target на LIO (http://yvision.kz/post/426184). Он ставился легко и просто, из за его наличия в ядре Linux начиная с CentOS 6.2. Без сложных телодвижений таргет был установлен.

Эта записка содержит базовую установку уже другого таргета по имени SCST. Для его установки, потребуется патчить ядро Linux (CentOS 7), что конечно не айс.

iSCSI таргет - это программа или аппаратный контроллер, которые осуществляют эмуляцию диска и выполняют iSCSI запросы.

iSCSI таргеты бывают двух видов:

1. Программный

2. Аппаратный

Программные - это например настроенный таргет LIO без аппаратной платы HBA, мы через него и обычную сетевую карту даем блочное устройство удаленным компьютерам. Под блочным устройством подразумевается - отдельный жесткий диск, раздел или рейд массив из ряда дисков.

Аппаратные - это такие специальные адаптеры (Host Bus Adapter - HBA) которые обычно подключаются в слот PCI-Express интерфейса материнской платы. Такие адаптеры имеют один или два порта Ethernet. Производством аппаратных сетевых устройств занимаются следующие компании: QLogic, Emulex, LSI Corporation, Agilent, ATTO и Brocade. На постсоветском пространстве из этого списка знакомы американские бренды QLogic и LSI. Вот так выглядит iSCSI HBA адаптер модели QLogic QLE4062C:

Blog post image

И сама схема подключения:

Blog post image

TOE — это такая технология, которая позволяет разгрузить центральный процессор благодаря переносу функций по обработке сетевых пакетов стека протоколов TCP/IP на контроллер сетевого адаптера.

Тестовая конфигурация дисковой подсистемы для установки SCST:

  • Disk1 - 10Gb
  • Disk2 - 80Gb.

На первом диске Disk1 будет ОС, второй диск Disk2 будет отдан под iSCSI таргет.

У кого есть FC (Fibber Channel) адаптеры, ядро следует патчить с указанием нового драйвера. В моем случае таких адаптеров нет, и к сожалению, я ни разу не видел этих адаптеров в живую [грусть, печаль, обида].

И так поехали ставить SCST.

Устанавливаем зависимости:

# yum install gcc ncurses-devel kernel-devel lsscsi patch subversion bc bison net-tools deltarpm -y

Закачиваем SCST исходники:

# cd /

# svn co https://svn.code.sf.net/p/scst/svn/trunk scst

или

# svn checkout svn://svn.code.sf.net/p/scst/svn/trunk scst-trunk

 

Создаем пользователя для сборки SCST:

# useradd builder

Даем права на использование yum без пароля:

# echo 'builder ALL=(ALL) NOPASSWD: /usr/bin/yum, /usr/bin/yum-builddep' >>/etc/sudoers

# visudo -sc

Переходим в окружение пользователя builder:

# su builder

Процесс обновления ядра автоматизирован разработчиками SCST, они создали скрипт который патчит  ядро ОС Linux, запускаем скрипт сборки от разработчиков:

# /scst/scripts/rebuild-rhel-kernel-rpm

Примечание: Важно, обновлять CentOS 7 до 7.2 - НЕЛЬЗЯ! Это связанно с тем, что скрипт обновления ядра перестает правильно скачивать src.rpm пакеты ядра. Скрипт нормально работает с ядром версии  kernel-3.10.0-229. Если обновите CentOS, версия ядра станет 3.10.0-3**. И скрипт соответственно перестанет патчит ядро. До запуска скрипта, на вашем жестком диске должно быть 8,1Гб свободного места.

Устанавливаем ядро:

# su -c 'rpm -ivh --force /home/builder/rpmbuild/RPMS/x86_64/kernel-*.rpm'

Перезагружаем ПК:

# su -c reboot

Установим режим сборки SCST на release:

# cd /scst

# make 2release

Установим scstadmin:

# cd scst

# make -C scstadmin -s install

Проверяем:

# uname -r

3.10.0-229.el7.centos.scst.x86_64

Установим scst:

# make scst scst_install iscsi iscsi_install scstadm scstadm_install

Загружаем модули:

# modprobe scst

# modprobe scst_vdisk

# modprobe iscsi-scst

 

Сделаем LVM разделы на диске sdb, чтобы потом их отдавать по iscsi:

# pvcreate /dev/sdb

# vgcreate lvgroup1 /dev/sdb

# lvcreate -n mail -L10G lvgroup1

# lvcreate -n cloud -L10G lvgroup1

# lvcreate -n vmstore -L10G lvgroup1

Далее уже идет настройка самого SCST таргета, а именно его файла настроек /etc/scst.conf, его надо создать:

# vi /etc/scst.conf
HANDLER vdisk_fileio {
DEVICE mail {
filename /dev/mapper/lvgroup1-mail
nv_cache 1
}
DEVICE cloud {
filename /dev/mapper/lvgroup1-cloud
nv_cache 1
}
DEVICE vmstore {
filename /dev/mapper/lvgroup1-vmstore
nv_cache 1
}
}
TARGET_DRIVER iscsi {
enabled 1
TARGET iqn.2013-09.local.nas:disk-sdb {
LUN 0 mail
LUN 1 cloud
LUN 2 vmstore
enabled 1
}
}

Можно отдавать разделы, целый диск целиком и т.д.

Перечитаем конфиг, чтобы он заработал:

# scstadmin -config /etc/scst.conf

Collecting current configuration: done.
-> Checking configuration file '/etc/scst.conf' for errors.
-> Done, 0 warnings found.
-> Applying configuration.
-> Virtual target 'copy_manager_tgt' for driver 'copy_manager' is not in configuration. Use -force to remove it.
-> Done, 0 change(s) made.
All done.
 

Включаем автозагрузку демона SCST:

# chkconfig scst on && service scst restart

или

# systemctl enable scst.service && systemctl restart scst.service

Можно создать файл и прописать в нем кому разрешено работать с таргетом:

# vi /etc/initiators.allow

ALL 192.168.1.0/24

И файл, кому нельзя работать с таргетом:

# vi /etc/initiators.deny

ALL ALL

Добавляем перечитывание конфига во время загрузки:

# vi /etc/rc.d/rc.local

scstadmin -config /etc/scst.conf

 

Тестовое подключение из под Windows 7

Blog post image

Указываем строку подключения во вкладке Configuration

Blog post image

Запускаем diskmgt.msc:

Blog post image

Аналогичным образом iSCSI таргет добавляется на инициаторах VMware ESXi, MS Hyper-V и т.д.

 

ИСТОЧНИКИ

http://habrahabr.ru/post/200466/ - iSCSI хранилище для небогатых

http://habrahabr.ru/post/267157/ - Настройка SCST Target на CentOS 7 с использованием FC QLogic адаптера

http://habrahabr.ru/post/209460/ - Создание надёжного iSCSI-хранилища на Linux, часть 1

http://habrahabr.ru/post/209666/ - Создание надёжного iSCSI-хранилища на Linux, часть 2

http://m.habrahabr.ru/company/croc/blog/143877/ - отказоустойчивый сервис

0
4460
0