Sunday, April 1, 2018

CentOS 6.6 리눅스 네트워크 ] 13.1 iSCSI Target 간단 구성


안녕하세요. 썬구루입니다. 이 게시물에서는 CentOS 6.6 리눅스를 iSCSI Target으로 구성 방법에 대해 간단하게 알아보도록 하겠습니다.

디스크 스토리지 연결 방식은 DAS, NAS, SAN으로 나누어지는데 여기서 요즘 NAS 디스크 스토리지는 NFS, CIFS, iSCSI를 지원합니다. NFS나 CIFS는 이미 앞에서 언급하고 구성해보았기 때문에 기억하고 있을 것이라 생각됩니다. 이는 스토리지에서 지원하는 파일시스템을 사용하는 것이죠.

저희가 CentOS 6.6을 사용했었고 그 기반에 NFS 서버와 Samba 서버를 구성한 것이기 때문에 CentOS 6.6의 EXT 파일시스템을 사용한 것입니다. iSCSI는 Internet SCSI(Smail Computer System Interface)를 나타내며 SCSI 프로토콜을 IP 패킷에 실어 전달할 수 있는 다시 말해 IP 기반 스토리지 네트워킹 기술을 사용할 수 있도록 해주는 기술입니다.

이는 이미 파일시스템이 만들어진 파일시스템 공유가 아닌 Raw Device를 네트워크를 통해 공유할 수 있도록 만들어주는 기술입니다.

서버의 하드 디스크, 테이프 드라이브, 로봇 디바이스 등을 iSCSI를 통해 다른 서버로 공유해줄 수 있는 것입니다. 만약 iSCSI를 통해 공유 받은 하드디스크를 리눅스(Linux)가 사용한다면 EXT 파일시스템을 만들어 사용할 수 있고 윈도우(Windows)가 사용한다면 NTFS, 솔라리스(Solaris)가 사용한다면 UFS 또는 ZFS 파일시스템을 만들어 사용할 수 있습니다. 왜? Raw Device를 공유하는 것이기 때문입니다.

그래서 여러분들은 VMware Workstation 환경에서 아래와 같은 공유 디바이스(또는 파일시스템)를 만들어 사용할 수 있습니다.

▶ NFS
▶ CIFS
▶ Shared SCSI
▶ iSCSI
▶ Tape drive
▶ Changer (Tape Library Robot)

이러한 공유 디바이스(또는 파일시스템)을 가지고 아래와 같은 서비스를 테스트할 수 있습니다.

▶ WEB/WAS 이중화
▶ 클러스터 파일시스템 (Cluster Filesystem)
▶ 클러스터 서버 (Cluster Server)
▶ 서버 가상화 (Server Virtualization)
▶ 데스크탑 가상화 (Desktop Virtualization)
▶ 클라우드 서비스 (Cloud Service)
▶ Oracle RAC
▶ 백업 솔루션 (Veritas NetBackup, Dell NetVault, Legato Networker)

어잇~!!! iSCSI 설명하다가 배가 산으로 갔군요. CentOS 6.6 리눅스를 가지고 간단하게 iSCSI Targer으로 구성해보도록 하겠습니다. iSCSI에서는 서버를 iSCSI Target, 클라이언트를 iSCSI Initiator라 합니다.

■ CentOS 6.6 리눅스에 iSCSI Target 패키지 설치

iSCSI Target 테스트를 위한 가상머신 환경은 아래와 같습니다.

사 양
내 용
CPU
 1 CPU / 2 Cores
MEM
 2GB
HDD
 20GB  /dev/sda   운영체제
 20GB  /dev/sdb   iSCSI 디바이스
 20GB  /dev/sdc   iSCSI 디바이스
NIC
 1Gbps
OS
 CentOS 6.6

iSCSI Target을 구성하기 위해 아래와 같은 패키지가 CentOS 6.6에 설치되어야 합니다.

libibverbs-1.1.8-3.el6.x86_64.rpm
librdmacm-1.0.18.1-1.el6.x86_64.rpm
perl-Config-General-2.52-1.el6.noarch.rpm
rdma-6.6_3.15-1.el6.noarch.rpm
sg3_utils-1.28-6.el6.x86_64.rpm
scsi-target-utils-1.0.24-16.el6.x86_64.rpm

iSCSI Target으로 구성할 가상머신에 CentOS 6.6 1번 DVD ISO 파일을 연결하고 아래와 같은 명령을 사용하여 관련 패키지를 설치합니다.

[root@iscsi01 ~]# cd /media/CentOS_6.6_Final/Packages/
[root@iscsi01 Packages]#
[root@iscsi01 Packages]# rpm -ivh libibverbs-1.1.8-3.el6.x86_64.rpm
warning: libibverbs-1.1.8-3.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:libibverbs             ########################################### [100%]
[root@iscsi01 Packages]#
[root@iscsi01 Packages]# rpm -ivh librdmacm-1.0.18.1-1.el6.x86_64.rpm
warning: librdmacm-1.0.18.1-1.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:librdmacm              ########################################### [100%]
[root@iscsi01 Packages]#
[root@iscsi01 Packages]# rpm -ivh perl-Config-General-2.52-1.el6.noarch.rpm
warning: perl-Config-General-2.52-1.el6.noarch.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:perl-Config-General    ########################################### [100%]
[root@iscsi01 Packages]#
[root@iscsi01 Packages]# rpm -ivh rdma-6.6_3.15-1.el6.noarch.rpm
warning: rdma-6.6_3.15-1.el6.noarch.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:rdma                   ########################################### [100%]
[root@iscsi01 Packages]#
[root@iscsi01 Packages]# rpm -ivh sg3_utils-1.28-6.el6.x86_64.rpm
warning: sg3_utils-1.28-6.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:sg3_utils              ########################################### [100%]
[root@iscsi01 Packages]#
[root@iscsi01 Packages]# rpm -ivh scsi-target-utils-1.0.24-16.el6.x86_64.rpm
warning: scsi-target-utils-1.0.24-16.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:scsi-target-utils      ########################################### [100%]
[root@iscsi01 Packages]#
[root@iscsi01 Packages]# service tgtd status
tgtd is stopped
[root@iscsi01 Packages]#
[root@iscsi01 Packages]# lsblk
NAME                  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                     8:0    0   20G  0 disk
├─sda1                  8:1    0  200M  0 part /boot
└─sda2                  8:2    0 19.8G  0 part
  ├─vg_os-root (dm-0) 253:0    0 15.8G  0 lvm  /
  └─vg_os-swap (dm-1) 253:1    0    4G  0 lvm  [SWAP]
sdb                     8:16   0   20G  0 disk
sdc                     8:32   0   20G  0 disk
sr0                    11:0    1  4.3G  0 rom  /media/CentOS_6.6_Final
[root@iscsi01 Packages]# 

■ iSCSI Target 디바이스 구성

/etc/tgt/targets.conf 파일의 제일 아래에 아래와 같은 내용을 추가하였습니다.

[root@iscsi01 Packages]# tail /etc/tgt/targets.conf

<target iqn.iscsi01.localdcv.com:server.target1>
  backing-store /dev/sdb
  backing-store /dev/sdc
</target>

[root@iscsi01 Packages]# 

■ iSCSI Target 추가 설정

아래와 같이 SELinux 설정을 permissive로 그리고 iSCSI 서비스 포트 3260을 iptables 방화벽에서 열어줍니다.

[root@iscsi01 Packages]# setenforce permissive
[root@iscsi01 Packages]#
[root@iscsi01 Packages]# vi /etc/sysconfig/selinux

SELINUX=permissive

[root@iscsi01 Packages]#
[root@iscsi01 Packages]# iptables -I INPUT -p tcp -m tcp --dport 3260 -j ACCEPT
[root@iscsi01 Packages]#
[root@iscsi01 Packages]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
[root@iscsi01 Packages]# 

■ iSCSI Target 서비스 시작

아래와 같이 service 명령을 사용하여 iSCSI Target 서비스인 tgtd를 시작시킵니다. 그리고 tgt-admin 명령으로 iSCSI Target 디바이스를 확인합니다.

[root@iscsi01 Packages]# service tgtd start
Starting SCSI target daemon:                               [  OK  ]
[root@iscsi01 Packages]#
[root@iscsi01 Packages]# chkconfig tgtd on
[root@iscsi01 Packages]#
[root@iscsi01 Packages]# tgt-admin -s

Target 1: iqn.iscsi01.localdcv.com:server.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: 21475 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: 21475 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:
        ALL

[root@iscsi01 Packages]# 

여기까지 iSCSI Target 간단 구성에 대해 알아보았습니다. 다음 게시물에서 리눅스, 윈도우 서버, 솔라리스를 가지고 iSCSI Initiator를 만들어보도록 하겠습니다.






No comments:

Post a Comment