Автор: Андрей Маркелов Как известно, при использовании существующей сетевой инфраструктуры iSCSI представляет собой недорогую альтернативу FC, а для целей обучения и тестирования вообще не заменим, поскольку, в ряде случаев, можно обойтись без дорогостоящего оборудования. Безусловно, существует и множество "боевых" конфигураций, когда по тем или иным причинам стоит отдать предпочтение iSCSI. В этом посте я хочу кратко описать настройку iSCSI target и iSCSI initiator в Red Hat Enterprise Linux и Fedora. Нужно отметить, что до версии RHEL 5.2 поддержка iSCSI target присутствовала в статусе Technology Preview. Поддержка же iSCSI initiator присутствует в полном объеме еще с Red Hat Enterprise Linux 4. Для тестов используем две машины: vm01, которая будет экспортировать раздел /dev/xvda5, и vm02, на которой настроим инициатор. 1) Настройка iSCSI targetДля начала устанавливаем пакет scsi-target-utils и запускаем демон tgtd: [root@vm01 ~]# yum install scsi-target-utils ... [root@vm01 ~]# service tgtd start [root@vm01 ~]# chkconfig tgtd on Теперь создаем наше целевое устройство. В качестве имени я выбрал iqn.2003-12.net.markelov:disk1 [root@vm01 ~]# tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2003-12.net.markelov:disk1В моем случае я добавляю к целевому устройству свежесозданный раздел /dev/xvda5: [root@vm01 ~]# tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/xvda5Теперь разрешим доступ хосту vm02 с IP-адресом 192.168.0.109: [root@vm01 ~]# tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.0.109Проверяем: [root@vm01 ~]# tgtadm --lld iscsi --op show --mode target Target 1: iqn.2003-12.net.markelov:disk1 System information: Driver: iscsi Status: running I_T nexus information: LUN information: LUN: 0 Type: controller SCSI ID: deadbeaf1:0 SCSI SN: beaf10 Size: 0 Backing store: No backing store LUN: 1 Type: disk SCSI ID: deadbeaf1:1 SCSI SN: beaf11 Size: 964M Backing store: /dev/xvda5 Account information: ACL information: 192.168.0.109 [root@vm01 ~]#Под конец не забудьте прорубить "дырку" в брандмауэре для порта 3260/tcp, который используется по умолчанию. 2) Настройка iSCSI initiatorУстанавливаем пакет iscsi-initiator-utils и запускаем демон iscsi: [root@vm02 ~]# yum install iscsi-initiator-utils ... [root@vm02 ~]# service iscsi start iscsid is stopped Turning off network shutdown. Starting iSCSI daemon: [ OK ] [ OK ] Setting up iSCSI targets: iscsiadm: No records found! [ OK ] [root@vm02 ~]# chkconfig iscsi onПри запуске мы получаем совершенно справедливое сообщение, что не сконфигурирована ни одна из целей. Запускаем процесс обзора для поиска целей на хосте vm01 c IP-адресом 192.168.0.100: [root@vm02 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.0.100:3260 192.168.0.100:3260,1 iqn.2003-12.net.markelov:disk1В итоге будут созданны две поддиректории с информацией о цели и хосте: [root@vm02 ~]# ls /var/lib/iscsi/nodes/ iqn.2003-12.net.markelov:disk1 [root@vm02 ~]# ls /var/lib/iscsi/send_targets/ 192.168.0.100,3260Просмотреть информацию можно командой: [root@vm02 ~]# iscsiadm -m node -T iqn.2003-12.net.markelov:disk1 -p 192.168.0.100:3260 node.name = iqn.2003-12.net.markelov:disk1 node.tpgt = 1 ... Теперь, используя содержимое /var/lib/iscsi/nodes/ и /var/lib/iscsi/send_targets/, демон iscsi при каждом перезапуске будет подключать наши ранее обнаруженные цели. Также процессом подключения/отключения можно управлять при помощи утилиты iscsiadm: [root@vm02 ~]# iscsiadm -m node -T iqn.2003-12.net.markelov:disk1 -p 192.168.0.100:3260 -l Login session [iface: default, target: iqn.2003-12.net.markelov:disk1, portal: 192.168.0.100,3260] [root@vm02 ~]#Теперь команда fdisk покажет наш раздел /dev/sda, экспортированный с vm01: [root@vm02 ~]# fdisk -l Disk /dev/xvda: 17.1 GB, 17179869184 bytes 255 heads, 63 sectors/track, 2088 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes ... Disk /dev/sda: 1011 MB, 1011677184 bytes 32 heads, 61 sectors/track, 1012 cylinders Units = cylinders of 1952 * 512 = 999424 bytes Disk /dev/sda doesn't contain a valid partition tableПосле команды [root@vm02 ~]# iscsiadm -m node -T iqn.2003-12.net.markelov:disk1 -p 192.168.0.100:3260 -u Logout session [sid: 2, target: iqn.2003-12.net.markelov:disk1, portal: 192.168.0.100,3260]в выводе fdisk мы увидим только /dev/xvda. Однако, после рестарта демона iscsi, цель снова появиться в списке устройств. Для удаления всей информации о цели воспользуйтесь командой: [root@vm02 ~]# iscsiadm -m node -T iqn.2003-12.net.markelov:disk1 -p 192.168.0.100:3260 -o delete [root@vm02 ~]# ls /var/lib/iscsi/nodes/ [root@vm02 ~]# Если у вас несколько целей, то вы не можете заранее знать, под каким именем после следующей перезагрузки/рестарта сервиса будет доступна конкретная цель. Для того, чтобы каждая цель всегда была доступна под одним и тем же именем устройства, вы можете написать соответствующее правило udev или воспользоваться монтированием по метке и UUID файловой системы ext3. При монтировании файловых систем не забывайте использовать опцию _netdev. Для того, чтобы лучше понять лог выполненных команд, рекомендую ознакомиться со следующими источниками:
|
|||