CentOS 에서 iSCSI 사용 하기

CentOS 에서 iSCSI 사용

iSCSI target : 192.168.100.51, CentOS 6 minimal , sdb, sdc 각 1GB
iSCSI initiator : 192.168.100.52, CentOS 6 minimal

1. iSCSI target(쉽게 iSCSI 서버)
iSCSI target은 네트워크에 연결된 저장장치로, 보통 iscsi 소프트웨어로 구성된 논리적 저장장치를 의미한다. target의 스토리지는 initiator에 의해 접근할 수 있으며, LUN(Logical Unit Number)으로 정의된다.

scsi-target-utils 설치

# yum install scsi-target-utils

방화벽 설정
만약 방화벽(iptables)을 사용하고 있다면, TCP 3260 포트를 열어준다.

서비스 실행

# service tgtd start
Starting SCSI target daemon:                               [  OK  ]

iSCSI로 사용할 디스크 확인. 여기서는 sub, sdc를 iSCSI 로 사용할 것이다.

# fdisk -l

Disk /dev/sda: 9663 MB, 9663676416 bytes
255 heads, 63 sectors/track, 1174 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0001c9e9

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1044     8381440   83  Linux
/dev/sda2            1044        1175     1054720   82  Linux swap / Solaris

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/sdc: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

target 만들기
/etc/tgt/targets.conf를 아래와 같이 설정한다.

default-driver iscsi
<target iqn.2017-02.com.boxcorea.fox1:target1>
        backing-store /dev/sdb
        backing-store /dev/sdc
        initiator-address 192.168.100.52
</target>

initiator-address는 target에 접속할 initiator의 ip 주소이다. initiator가 여럿(즉 클라이언트가 여러개이면)이면 initiator-address를 추가해 주면 된다.

서비스를 다시 시작한다.

# service tgtd restart
Stopping SCSI target daemon:                               [  OK  ]
Starting SCSI target daemon:                               [  OK  ]

설정을 확인해 본다.

# tgt-admin --show
Target 1: iqn.2017-02.com.boxcorea.fox1:target1
    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, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: null
            Backing store path: None
            Backing store flags: 
        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 1074 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/sdb
            Backing store flags: 
        LUN: 2
            Type: disk
            SCSI ID: IET     00010002
            SCSI SN: beaf12
            Size: 1074 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/sdc
            Backing store flags: 
    Account information:
    ACL information:
        192.168.100.52

2. iSCSI initiator (쉽게 iscsi client)
iSCSI initiator는 target 이나 서버의 스토리지에 엑세스하려는 클라이언트로 대상 target(서버)의 ip 주소를 알아야 한다.

iscsi-initiator-utils 설치

# yum install iscsi-initiator-utils

target 찾기

# iscsiadm -m discovery -t sendtargets -p 192.168.100.51
iscsid (을)를 시작 중:                                     [  OK  ]
iscsiadm: No portals found

위처럼 target을 찾지 못 할 것이다. initiatorname.iscsi에 target을 등록한다.

# vi /etc/iscsi/initiatorname.iscsi 
iqn.2017-02.com.boxcorea.fox1:target1

서비스를 재실행한다.

# service iscsid restart
Stopping iscsid:
Starting iscsid: [ OK ]

다시 target을 찾아본다.

# iscsiadm -m discovery -t st  -p 192.168.100.51
192.168.100.51:3260,1 iqn.2017-02.com.boxcorea.fox1:target1

target에 연결한다.

# iscsiadm -m node -T iqn.2017-02.com.boxcorea.fox1:target1 --login
Logging in to [iface: default, target: iqn.2017-02.com.boxcorea.fox1:target1, portal: 192.168.100.51,3260] (multiple)
Login to [iface: default, target: iqn.2017-02.com.boxcorea.fox1:target1, portal: 192.168.100.51,3260] successful.

볼륨을 확인하고 사용하면 된다.
fdisk로 확인해 보면, sdb, sdc 디스크가 보임을 확인 할 수 있다.

# fdisk -l

Disk /dev/sda: 9663 MB, 9663676416 bytes
255 heads, 63 sectors/track, 1174 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0001c9e9

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1044     8381440   83  Linux
/dev/sda2            1044        1175     1054720   82  Linux swap / Solaris

Disk /dev/sdb: 1073 MB, 1073741824 bytes
34 heads, 61 sectors/track, 1011 cylinders
Units = cylinders of 2074 * 512 = 1061888 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/sdc: 1073 MB, 1073741824 bytes
34 heads, 61 sectors/track, 1011 cylinders
Units = cylinders of 2074 * 512 = 1061888 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

이제, 화일시스템을 만들고 마운트해서 사용하면 된다.

iscsi 볼륨 해제(logout)
iscsi 볼륨을 사용 해제할 때는 아래와 같은 방법으로 로그아웃하면 된다.

# iscsiadm -m node -u -T iqn.2017-02.com.boxcorea.fox1:target1 -p 192.168.100.51:3260
Logging out of session [sid: 1, target: iqn.2017-02.com.boxcorea.fox1:target1, portal: 192.168.100.51,3260]
Logout of [sid: 1, target: iqn.2017-02.com.boxcorea.fox1:target1, portal: 192.168.100.51,3260] successful.

참고: 우분투 리눅스는 https://blog.boxcorea.com/wp/archives/1245

답글 남기기

Your email address will not be published.