iscsi 명령어 모음집

Posted by 주원이^^
2014. 7. 12. 11:00 리눅스/리눅스설정방법
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

<<ISCSI Server설정>>
yum install scsi-target-utils-0.0-6.20091205snap.el5_5.3.i386 -y
service tgtd start

1.Target 설정(도메인 및 디스크볼륨명은 임의지정)
tgtadm --lld iscsi --op new --mode target --tid 1 --targetname iqn.2011-04.도메인명:drbd.quorumdisk
tgtadm --lld iscsi --op new --mode target --tid 2 --targetname iqn.2011-04.도메인명:drbd.datadisk

2.Target 이름이 제대로 지정되어 있는지 확인
tgtadm --lld iscsi --op show --mode target
[root@node2 ~]# tgtadm --lld iscsi --op show --mode target
Target 1: iqn.2011-04.도메인명:drbd.quorumdisk
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB
            Online: Yes
            Removable media: No
            Backing store type: rdwr
            Backing store path: None
    Account information:
    ACL information:
Target 2: iqn.2011-04.도메인명:drbd.datadisk
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00020000
            SCSI SN: beaf20
            Size: 0 MB
            Online: Yes
            Removable media: No
            Backing store type: rdwr
            Backing store path: None
    Account information:
    ACL information:
3.설정한 iSCSI Target 이름에 시스템의 볼륨을 등록해 줍니다.
$ tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/drbd0
위 명령은 tid 1에 lun 1번으로 /dev/drbd0을 등록
(앞서 Target 이름 생성시 LUN0는 이미 존재하므로 1로 지정하였습니다)

같은 방식으로 tid 2에 lun 1번으로 /dev/drbd1을 등록
$ tgtadm --lld iscsi --op new --mode logicalunit --tid 2 --lun 1 -b /dev/drbd1


4.볼륨의 등록이 정상적으로 되어있는지 아래 명령으로 확인 가능합니다.
$ tgtadm --lld iscsi --op show --mode target
실행결과에 LUN 1로 /dev/drbd0이 보이는지 확인하면 됩니다.
[root@node2 ~]# tgtadm --lld iscsi --op show --mode target
Target 1: iqn.2011-04.도메인명:drbd.quorumdisk
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB
            Online: Yes
            Removable media: No
            Backing store type: rdwr
            Backing store path: None
        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 501 MB
            Online: Yes
            Removable media: No
            Backing store type: rdwr
            Backing store path: /dev/drbd0
    Account information:
    ACL information:
Target 2: iqn.2011-04.도메인명:drbd.datadisk
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00020000
            SCSI SN: beaf20
            Size: 0 MB
            Online: Yes
            Removable media: No
            Backing store type: rdwr
            Backing store path: None
        LUN: 1
            Type: disk
            SCSI ID: IET     00020001
            SCSI SN: beaf21
            Size: 573 MB
            Online: Yes
            Removable media: No
            Backing store type: rdwr
            Backing store path: /dev/drbd1
    Account information:
    ACL information:

5.iSCSI Target에 접근할 수 있도록 bind 작업
$ tgtadm --lld iscsi --op bind --mode target --tid 1 --initiator-address ALL
$ tgtadm --lld iscsi --op bind --mode target --tid 2 --initiator-address ALL

위 명령은 tid 1의 Target을 bind 해주는 명령입니다.
--initiator-address(또는 -I) 옵션은 ACL (initiator의 접근권한)을 설정하는 것으로
본 문서의 예제에는 모든 시스템에서 접근 가능하도록 하였습니다

제대로 bind 되어 있는지 확인
[root@node2 ~]# netstat -atnp | grep 3260
tcp        0      0 0.0.0.0:3260                0.0.0.0:*                   LISTEN      3390/tgtd
tcp        0      0 :::3260                     :::*                        LISTEN      3390/tgtd

6.설정한 tgt 정보를 설정파일로 등록하기
$ tgt-admin --dump >> /etc/tgt/targets.conf
만약 기존에 등록된 정보가 있다면 > 대신 >>을 이용하여 추가해 주시면 됩니다.


<<ISCSI Client설정>>
yum install iscsi-initiator-utils.i386 -y
service iscsi start
service iscsid start

1.ISCSI Target 시스템 찾기
[root@centos gfs2]# iscsiadm --mode discovery --type sendtargets --portal  TGTD서버IP
TGTD서버IP:3260,1 iqn.2011-04.도메인명:drbd.quorumdisk
TGTD서버IP:3260,1 iqn.2011-04.도메인명:drbd.datadisk
IP주소에는 Target 시스템의 IP주소를 입력합니다.

2.Target 시스템에 로그인
$ iscsiadm --mode node --targetname iqn.2011-04.도메인명:drbd.datadisk --portal TGTD서버IP --login

3.Target 시스템 로그인 확인
targetname은 Target 시스템에 등록된 iqn 값을 지정하면 됩니다.
즉, 타겟시스템에 여러 Target 장치가 존재할 때 구분하기 위함입니다.

[root@centos gfs2]# fdisk -l

Disk /dev/hda: 17.1 GB, 17179803648 bytes
255 heads, 63 sectors/track, 2088 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1          13      104391   83  Linux
/dev/hda2              14        2088    16667437+  8e  Linux LVM

Disk /dev/sda: 572 MB, 572809216 bytes
18 heads, 61 sectors/track, 1018 cylinders
Units = cylinders of 1098 * 512 = 562176 bytes

Disk /dev/sda doesn't contain a valid partition table
기존에 없던 디스크 장치가 추가되어있음을 확인할 수 있습니다.
 

[root@centos gfs2]# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: IET      Model: Controller       Rev: 0001
  Type:   RAID                             ANSI SCSI revision: 05
Host: scsi0 Channel: 00 Id: 00 Lun: 01
  Vendor: IET      Model: VIRTUAL-DISK     Rev: 0001
  Type:   Direct-Access                    ANSI SCSI revision: 05
위 SCSI정보를 확인하면 아래와 같이 VIRTAUL-DISK가 보이는지 확인하시면 됩니다.
/var/log/messages에도 디스크가 새로 인식되었음이 기록되니 참고하시면 됩니다.


4.등록된 볼륨에 대해서 일반 디스크처럼 파티셔닝 후 포맷이 가능합니다.
$ fdisk /dev/sda

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

iscsi ( Server : tgtadm )

### 타겟을 만들어 준다.

#tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2008-11-18.xen.test.co.kr:storage.disk1### 타겟의 내역을 확인 한다.

#tgtadm --lld iscsi --op show --mode target### iscsi lun 할당

#tgtadm --lld iscsi --op new --mode logicalunit --tid=1 --lun=1 -b /dev/xen_vg/gfs_data
#tgtadm --lld iscsi --op new --mode logicalunit --tid=1 --lun=2 -b /dev/gfs/qdisk
#tgtadm --lld iscsi --op new --mode logicalunit --tid=1 --lun=1 -b /dev/gfs/gfsdata3### iscsi target binding

#tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL### iscsi target 에 binding 된 리스트 확인

#tgtadm --lld iscsi --op show --mode target### tid1 에 타겟된 리스트 보기

#tgtadm --lld iscsi --op show --mode target --tid 1iscsi ( Client : iscsiadm )

### target scan

#iscsiadm -m discovery -t st -p 192.168.40.200### target mapping

#iscsiadm -m node --loginall all 또는 iscsiadm -m node -l
or
#iscsiadm -m node --targetname iqn_name -l### mapping 된 내역 확인

#iscsiadm -m node### logout

#iscsiadm -m node --targetname iqn.2008-06.com.oracle.kr.sd-iscsi:storage.disk1 --portal 10.0.0.62:3260 --logout
or
#iscsiadm -m node --logout### iqn 삭제

#iscsiadm -m node -o delete iqn.2008-06.xen.test.co.kr.sd-iscsi:storage.disk1
or
#iscsiadm -m node -o deleteiscsi udev ? target mapping 설정 하기

/dev/sda to /dev/iscsiN
#vi /etc/udev/rules.d/75-iscsi.rules

아래 라인 추가
KERNEL=="sd*", PROGRAM=="scsi_id -g -u -s %p", RESULT=="19492039203920390230232", SYMLINK+="iscsi%n"

#scsi_id -g -u -s /block/sda ==> RESULT(출력 결과)

#udevtest
#start_udev