공유할 서비스 선택

TECH


TECH

OS [Linux] RHEL7 iscsi 구성

페이지 정보

작성자 partner 아이디로 검색 전체게시물 댓글 5건 조회 236회 좋아요 0회 작성일 18-11-19 10:31

본문

1. 환경

RedHat Enterprise Linux 7.X


2. 개요
iscsi란? <b>iSCSI</b>(Internet Small Computer System Interface)는 컴퓨팅 환경에서 데이터 스토리지 시설을 이어주는 IP 기반의 스토리지 네트워킹 표준이다. iSCSI는 IP 망을 통해 SCSI 명령을 전달함으로써 인트라넷을 거쳐 데이터 전송을 쉽게 하고 먼 거리에 걸쳐 스토리지를 관리하는 데 쓰인다.
스토리지 장비가 없어도 iscsi를 통해서 외부 스토리지와 연동되어 있는 환경을 구성할 수 있다.
RHEL6에서 RHEL7로 넘어오면서 iscsi 설정 방법에서 큰 변화가 있었다.


3. 본문

target = server의 개념과 유사. iscsi 스토리지를 제공
initiator = client의 개념과 유사. target에서 제공하는 스토리지를 사용

3.1 구성도
<table>
<tbody>
<tr>
<td>server1(initiator)</td>
<td style="text-align: center;">———————–</td>
<td>server2(initiator)</td>
</tr>
<tr>
<td style="text-align: center;">¦</td>
<td></td>
<td style="text-align: center;">¦</td>
</tr>
<tr>
<td style="text-align: right;">———-</td>
<td>iscsi storage(target)</td>
<td style="text-align: left;">———-</td>
</tr>
</tbody>
</table>
&nbsp;

3.2 구축 - target 설정

3.2.1 패키지 설치

[root@target ~]# yum install targetcli

3.2.2 target servie 실행 및 활성화

[root@target ~]# systemctl start target

[root@target ~]# systemctl enable target
Created symlink from /etc/systemd/system/multi-user.target.wants/target.service to /usr/lib/systemd/system/target.service.

아래의 화면이 나타나면서 커맨드 환경에서 target설정이 이루어진다.

[root@target ~]# targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.fb46
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.

/&gt;

3.2.3 스토리지의 종류

/&gt; ls
o- / ..................................................................... [...]
o- backstores .......................................................... [...]
| o- block .............................................. [Storage Objects: 0]
| o- fileio ............................................. [Storage Objects: 0]
| o- pscsi .............................................. [Storage Objects: 0]
| o- ramdisk ............................................ [Storage Objects: 0]
o- iscsi ........................................................ [Targets: 0]
o- loopback ..................................................... [Targets: 0]

block - 서버에 정의도니 블록 디바이스(디스크, 논리 볼륨 등)을 사용
fileio - 서버에 지정된 크기의 파일을 생성
pscsi - 서버에 설치된 물리적인 SCSI를 사용
ramdisk - 서버의 메모리에 램 디스크를 생성. 재부팅 후에는 사라짐

3.2.4 block device를 이용한 iscsi target 설정

target의 sdb디스크(50GB)를 공유스토리지 장치로 사용한다. 추 후 확장을 고려해서 디스크는 lvm으로 사용한다.
[root@target dev]# fdisk -l
Disk /dev/sdb: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

/dev/mapper/target-lv_target 디스크를 공유 스토리지로 설정한다.

[root@target dev]# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created.
[root@target dev]# vgcreate target /dev/sdb
Volume group "target" successfully created
[root@target dev]# lvcreate -n lv_target -l 100%FREE target
Logical volume "lv_target" created.

3.2.5 보조 스토리지 생성

생성한 lv_target볼륨을 이용해 block 보조 스토리지를 생성한다.

/&gt; backstores/block create block1 /dev/mapper/target-lv_target
Created block storage object block1 using /dev/mapper/target-lv_target.

3.2.6 IQN(Iscsi Qualified Name) - iqn.2018-08.com.example:testtarget 이라는 이름을 가진 IQN을 생성 후 TPG(Target Portal Group)을 획득한다.

/iscsi&gt; create iqn.2018-08.com.example:testtarget
Created target iqn.2018-08.com.example:testtarget.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.

3.2.7 새로 생성된 IQN관련 디렉토리 확인

/iscsi/iqn.20...le:testtarget&gt; pwd
/iscsi/iqn.2018-08.com.example:testtarget
/iscsi/iqn.20...le:testtarget&gt; ls
o- iqn.2018-08.com.example:testtarget ................................ [TPGs: 1]
o- tpg1 ............................................... [no-gen-acls, no-auth]
o- acls .......................................................... [ACLs: 0]
o- luns .......................................................... [LUNs: 0]
o- portals .................................................... [Portals: 1]
o- 0.0.0.0:3260 ..................................................... [OK]

acls(Access Control Lists) : 자원에 대한 접근을 제한

luns(Logical Unit Number) : 내보내기 된 자원을 정의

portals : 내보내기된 자원을 접근하는 방법을 정의. IP와 Port로 정의된다.

3.2.8 Portal 정의

RHEL7.1 이상의 버전은 3.2.6 IQN을 생성하면서 자동으로 정의가 이루어진다. 만약 7.0 버전의 경우라면 아래의 과정을 진행하면 Portal에 대한 정의가 이루어진다.

/iscsi/iqn.20.../tpg1/portals&gt; create
Using default IP port 3260
Binding to INADDR_ANY (0.0.0.0)
Created network portal 0.0.0.0:3260.

3.2.9 lun 생성

/iscsi/iqn.20...get/tpg1/luns&gt; create /backstores/block/block1
Created LUN 0.
/iscsi/iqn.20...get/tpg1/luns&gt; ls
o- luns .............................................................. [LUNs: 1]
o- lun0 ..... [block/block1 (/dev/mapper/target-lv_target) (default_tg_pt_gp)]

3.2.10 acl 정의

이전 단계에서 생성한 IQN을 토대로 server1, server2의 구분자를 생성한다.
server1 - iqn.2018-08.com.example:client1
server2 - iqn.2018-08.com.example:client2

/iscsi/iqn.20...get/tpg1/acls&gt; create iqn.2018-08.com.example:client1
Created Node ACL for iqn.2018-08.com.example:client1
Created mapped LUN 0.
/iscsi/iqn.20...get/tpg1/acls&gt; create iqn.2018-08.com.example:client2
Created Node ACL for iqn.2018-08.com.example:client2
Created mapped LUN 0.

/iscsi/iqn.20...get/tpg1/acls&gt; ls
o- acls .............................................................. [ACLs: 2]
o- iqn.2018-08.com.example:client1 .......................... [Mapped LUNs: 1]
| o- mapped_lun0 .................................... [lun0 block/block1 (rw)]
o- iqn.2018-08.com.example:client2 .......................... [Mapped LUNs: 1]
o- mapped_lun0 .................................... [lun0 block/block1 (rw)]

3.2.11 target login user password 설정

initiator가 target에 로그인 하기 위해 필요한 user, password 를 설정할 수 있다.
현재 구축된 환경은 initiator가 2개 이므로 각각 설정을 해준다.

/iscsi/iqn.20...get/tpg1/acls&gt; cd iqn.2018-08.com.example:client1/
/iscsi/iqn.20...ample:client1&gt; set auth userid=user
Parameter userid is now 'user'.
/iscsi/iqn.20...ample:client1&gt; set auth password=password
Parameter password is now 'password'.
/iscsi/iqn.20...ample:client1&gt; cd ../
/iscsi/iqn.20...get/tpg1/acls&gt; iqn.2018-08.com.example:client2/
/iscsi/iqn.20...ample:client2&gt; set auth userid=user
Parameter userid is now 'user'.
/iscsi/iqn.20...ample:client2&gt; set auth password=password
Parameter password is now 'password'.
/iscsi/iqn.20...ample:client2&gt; cd ../

/iscsi/iqn.20...get/tpg1/acls&gt; ls
o- acls .............................................................. [ACLs: 2]
o- iqn.2018-08.com.example:client1 .......................... [Mapped LUNs: 1]
| o- mapped_lun0 .................................... [lun0 block/block1 (rw)]
o- iqn.2018-08.com.example:client2 .......................... [Mapped LUNs: 1]
o- mapped_lun0 .................................... [lun0 block/block1 (rw)]

3.2.12 설정 저장 및 종료

설정을 모두 끝 마쳤으면 'exit' 명령어를 치면 targetcli가 종료된다. 종료 됨가 동시에 설정 파일은 /etc/target/saveconfig.json에 자동으로 저장된다.

/iscsi/iqn.20...sttarget/tpg1&gt; exit
Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/target/backup/.
Configuration saved to /etc/target/saveconfig.json

&nbsp;

3.3 initiator 설정(server1, server2)

3.3.1 패키지 설치

[root@cluster1 ~]# yum install iscsi-initiator-utils
[root@cluster2 ~]# yum install iscsi-initiator-utils

3.3.2 Initiator IQN변경

'3.2.10'의 과정에서 생성한 acl에 대한 정보를 토대로 initiator IQN정보를 설정한다.

[root@cluster1 ~]# vi /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2018-08.com.example:client1

[root@cluster2 ~]# vi /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2018-08.com.example:client2

3.3.3 target login user, password 정보 설정

iscsid.conf 파일에서 아래의 내용을 주석 해제 후 설정했던 user와 password로 변경해 준다.

[root@cluster1 ~]# vi /etc/iscsi/iscsid.conf

....
node.session.auth.authmethod = CHAP

# To set a CHAP username and password for initiator
# authentication by the target(s), uncomment the following lines:
node.session.auth.username = user
node.session.auth.password = password
....

3.3.4 iscsi 서비스 기동 및 활성화

[root@cluster1 ~]# systemctl restart iscsi/iscsid
[root@cluster2 ~]# systemctl restart iscsi/iscsid

3.3.5 target 탐색

[root@cluster1 ~]# iscsiadm --mode discovery --type sendtargets --portal 192.168.207.103
192.168.207.103:3260,1 iqn.2018-08.com.example:testtarget
[root@cluster2 ~]# iscsiadm --mode discovery --type sendtargets --portal 192.168.207.103
192.168.207.103:3260,1 iqn.2018-08.com.example:testtarget

3.3.6 target login

[root@cluster1 ~]# iscsiadm --mode node --targetname iqn.2018-08.com.example:testtarget --portal 192.168.207.103 --login
Logging in to [iface: default, target: iqn.2018-08.com.example:testtarget, portal: 192.168.207.103,3260] (multiple)
Login to [iface: default, target: iqn.2018-08.com.example:testtarget, portal: 192.168.207.103,3260] successful.

[root@cluster2 ~]# iscsiadm --mode node --targetname iqn.2018-08.com.example:testtarget --portal 192.168.207.103 --login
Logging in to [iface: default, target: iqn.2018-08.com.example:testtarget, portal: 192.168.207.103,3260] (multiple)
Login to [iface: default, target: iqn.2018-08.com.example:testtarget, portal: 192.168.207.103,3260] successful.

3.3.7 target디스크 확인

[root@cluster1 by-path]# pwd
/dev/disk/by-path
[root@cluster1 by-path]# ll
total 0
lrwxrwxrwx 1 root root 9 Aug 2 09:22 ip-192.168.207.103:3260-iscsi-iqn.2018-08.com.example:testtarget-lun-0 -&gt; ../../sdb

[root@cluster1 dev]# fdisk -ll /dev/sdb

Disk /dev/sdb: 53.7 GB, 53682896896 bytes, 104849408 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 4194304 bytes

&nbsp;

참고자료

https://4am.kr/rhce-system-cfg-and-mngt-configure-a-system-as-either-an-iscsi-target-or-initiator-that-persistently-mounts-an-iscsi-target/
https://www.lisenet.com/2016/iscsi-target-and-initiator-configuration-on-rhel-7/

&nbsp;

첨부파일

댓글목록

김석중님의 댓글

김석중 작성일

감사합니다

김석중님의 댓글의 댓글

김석중 작성일

^^;;

김석중님의 댓글의 댓글

김석중 작성일

ㅎㅎ

김석중님의 댓글

김석중 작성일

ㅇㅇ;;


주식회사 클럭스| 대표 : 이찬호| 사업자등록번호 : 107-87-27655
주소 : 서울특별시 영등포구 국회대로 800, 여의도파라곤
E-mail : sales@chlux.co.kr
Copyright © 클럭스 chlux.co.kr All rights reserved.
상단으로Top