пятница, 22 февраля 2008 г.

Настройка инициатора iSCSI в RHEL 4x/5x

Протокол iSCSI — разработан для удобной работы с удалеными системами хранения данных. Для работы с устройствами хранения используются команды SCSI, инкапсулированныe в пакеты IP, и пересылаемые в рамках установленных соединений традиционной TCP/IP сети. Протокол iSCSI является стандартизованным по RFC 3720.
В данной статье описывается настройка iSCSI инициатора в операционой системе Red Hat Enterprise Linux веток 4/x и 5/x.


Системы хранения на основе протокола iSCSI могут быть построены на любой физической основе, поддерживающей протокол IP, например 1 GBit или 10 GBit Ethernet. Использование стандартного протокола позволяет применять стандартные средства контроля и управления потоком, а также существенно уменьшает стоимость оборудования по сравнению с сетями Fibre Channel.

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

Опустим настройку iSCSI-Target. В нашем случае я уже нарезал LUN в 50 Gb на дисковой полке NetApp FAS3050, поэтому займемся сразу же настройкой ПО инициатора.

Настройка iSCSI в RHEL4.x

Шаг 1. Скачиваем пакет iscsi-initiator-utils
После чего устанавливаем его в системе
[root@rhel4 ~]# rpm -ihv iscsi-initiator-utils-4.0.3.0-6.i386.rpm
Шаг 2. Редактируем конфигурационый файл /etc/iscsi.conf и /etc/initiatorname.iscsi
[root@rhel4 ~]# vi /etc/iscsi.conf
Continuous=no
HeaderDigest=never
DataDigest=never
ImmediateData=yes

Username=iOsX # Если вы настроили на полке
Password=12345678 # авторизацию, то вам потребуется
DiscoveryAddress=10.0.0.111 # ввести логин и пароль

[root@rhel4 ~]# vi /etc/initiatorname.iscsi
InitiatorName=iqn.1993-08.com.netapp:sn.102177195

Шаг 3. Ставим сервис iscsi в автозагрузку. После чего запускаем сервис
[root@rhel4 ~]# chkconfig iscsi on
[root@rhel4 ~]# service iscsi start
Checking iscsi config: [ OK ]
Loading iscsi driver: [ OK ]
Starting iscsid: [ OK ]

Если система выдаст ошибку на то что не может подгрузить модуль iscsi_sfnet, то установите пакет linux-iscsi-module и подгрузите модуль.
[root@rhel4 ~]# rpm -ihv linux-iscsi-module-2.4.20-30.9-3.4.2-1.i386.rpm
[root@rhel4 ~]# modprobe iscsi_sfnet

Шаг 4. Проверяем диски. Находим то что нам требуется. Создаем партицию, форматируем и монтируем.
[root@rhel4 ~]# fdisk -l
....
....
Disk /dev/sdb: 52.6 GB, 52613349376 bytes
64 heads, 32 sectors/track, 50176 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

....
[root@rhel4 ~]# fdisk /dev/sdb
partition> n
> 1
>

>

partition> w
[root@rhel4 ~]# partprobe
[root@rhel4 ~]# mkfs.ext3 /dev/sdb1
[root@rhel4 ~]# mkdir /directory
[root@rhel4 ~]# mount /dev/sdb1 /directory
[root@rhel4 ~]# df -h /directory
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 49G 85M 46G 1% /directory

Настройка iSCSI в RHEL5.x

Изначально в RHEL 5 добавили поддержку iSCSI на уровне ядра, а также внедрили добавление iscsi-target'ов при установке системы что является очень удобным способом первоначальной конфигурации системы в дальнейшем.

Шаг 1. Устанавливаем пакет iscsi-initiator-utils через Yum.
[root@rhel5 ~]# yum install -y iscsi-initiator-utils
Шаг 2. Редактируем конфигурационый файл /etc/iscsi/initiatorname.iscsi
[root@rhel5 ~]# vi /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.1993-08.com.netapp:sn.102177195

Шаг 3. Ставим сервис iscsi в автозагрузку. После чего запускаем сервис
[root@rhel5 ~]# chkconfig iscsi on
[root@rhel5 ~]# chkconfig iscsid on
[root@rhel5 ~]# service iscsi start
[root@rhel5 ~]# service iscsid start

Шаг 4. Проверяем доступный target на дисковой полке NetApp
[root@rhel5 ~]# iscsiadm -m discovery -t sendtargets -p 10.0.0.111
10.0.0.111:3260,1000 iqn.1993-08.com.netapp:sn.102177195

Шаг 5. В завершении цепляемся к доступной iSCSI-Target и проверяем диски. После чего находим то что нам требуется. Создаем партицию, форматируем и монтируем.
[root@rhel5 ~]# iscsiadm -m -t iqn.1993-08.com.netapp:sn.102177195 \
> -p 10.0.0.111:3260 -l
[root@rhel5 ~]# fdisk -l
....
....
Disk
/dev/sdb: 52.6 GB, 52613349376 bytes
64 heads, 32 sectors/track, 50176 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
....
[root@rhel5 ~]# fdisk /dev/sdb
partition> n
> 1
>

>

partition> w
[root@rhel5 ~]# partprobe
[root@rhel5 ~]# mkfs.ext3 /dev/sdb1
[root@rhel5 ~]# mkdir /directory
[root@rhel5 ~]# mount /dev/sdb1 /directory
[root@rhel5 ~]# df -h /directory
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 49G 85M 46G 1% /directory

Больше информации по данному продукту и технологии iSCSI вы можете получить прочитав man страницы утилиты iscsiadm
man iscsiadm
В написании статьи автор благодарен нижеперечисленным источникам:

1. /usr/share/doc/iscsi-initiator-utils-VERSION/README.
2. http://ru.wikipedia.org/wiki/ISCSI
3. http://linux-iscsi.sourceforge.net/

Комментариев нет: