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