3 нояб. 2010 г.

iSCSI epic fail

Как просто, оказывается, раздать том по сети на блочном уровне с Solaris! Убедимся, что необходимые сервисы запущены.
 [ root@v890test / ] # svcs -a|grep iscsi
online         Oct_22   svc:/network/iscsi/initiator:default
online         11:27:42 svc:/system/iscsitgt:default
 [ root@v890test / ] # 
Для раздачи тома необходим system/iscsitgt . Если он не включен, надо сделать
 svcadm enable svc:/system/iscsitgt:default
. Смотрим, что у нас есть в zpool'е, создаём том размером 1 Гб и устанавливаем параметр shareiscsi на новый том.
 [ root@v890test / ] # zfs list
NAME             USED  AVAIL  REFER  MOUNTPOINT
zadmins         16.7G   117G    23K  /zadmins
zadmins/flars   16.7G   117G  16.7G  /zadmins/flars
zpool01         4.60T   294G    23K  /zpool
zpool01/testdb  4.60T   294G  4.60T  /zpool/testdb
 [ root@v890test / ] # zfs list
 [ root@v890test / ] # zfs create -V 1g zpool01/testiscsi1g
 [ root@v890test / ] #  zfs set shareiscsi=on zpool01/testiscsi1g
 [ root@v890test / ] # zfs list
NAME                  USED  AVAIL  REFER  MOUNTPOINT
zadmins              16.7G   117G    23K  /zadmins
zadmins/flars        16.7G   117G  16.7G  /zadmins/flars
zpool01              4.60T   293G    23K  /zpool
zpool01/testdb       4.60T   293G  4.60T  /zpool/testdb
zpool01/testiscsi1g     1G   294G    16K  -
 [ root@v890test / ] # 
Для управления target'ами используется команда iscsitadm
 [ root@v890test / ] # iscsitadm list target -v
Target: zpool01/testiscsi1g
    iSCSI Name: iqn.1986-03.com.sun:02:c208b116-ec14-c6fc-8a4d-e76bee46ffc6
    Alias: zpool01/testiscsi1g
    Connections: 0
    ACL list:
    TPGT list:
    LUN information:
        LUN: 0
            GUID: 0
            VID: SUN
            PID: SOLARIS
            Type: disk
            Size: 1.0G
            Backing store: /dev/zvol/rdsk/zpool01/testiscsi1g
            Status: online

Всё! Этого достаточно, чтобы увидеть диск на другой системе по сети. На примере Windows Server 2008 Enterprise: Заходим в Control Panel -> iSCSI Initiator -> вкладка Discovery, Там нужно добавить ip-адрес нашего сервера, с которого должен быть доступен том, для этого нажимаем Add Portal. На вкладке видны targets. Пока не сделали Log-On, статус будет Inactive, после выполнения Log on статус будет Connected. После того, как все нужные targets приобрели статус Connected, можно нажимать ОК, закрывать iSCSI Initiator Properties и Control panel и идти в Disk Management. Windows сразу-же радостно предлагает инициализировать диск. После чего, его можно отформатировать и назначить путь доступа. И работать, как с обычным диском. ... и всё было-бы хорошо, если-бы не один epic fail - Microsoft Hyper-V Cluster требует поддержки SCSI3-Persistent Reservation на iSCSI луне, а этого iSCSI-target в Solaris 10 не умеет. Как вариант - использовать iSCSI target COMSTAR, но только на OpenSolaris.