리눅스 ISCSI - 저장 장치 네트워킹

 

리눅스 시스템에서 스토리지를 관리하고 확장하는 것은

핵심적인 과제입니다. iSCSI는 네트워크를 통해 스토리지를 연결, 활용하는 기술로

이번에는 리눅스시스템에서 iSCSI를 어떻게 설정하고 활용할수 있는지,

알아보도록 하려고 합니다.

 

 

소개

iSCSI란 무엇인가 ?

Internet Small Computer System Interface의 약자로, SCSI 프로토콜을 인터넷 프로토콜을 사용해 전송하는 기술이다.

Ethernet기반, 일반적인 사내환경에서 사용가능하고 구성할때 비용이 들지 않는 특징을 가지고 있다.

Fiber Channel과 비교해서 비용이 효율적이고 기존 이더넷 인프라를 활용해서 스토리지를 관리할 경우,

적합한 선택이 될 수 있습니다.

 

생소한 단어인 Target과 Initiator로 구성되고

쉽게 설명하자면

Target = Server의 스토리지 제공자

Initiator = Client의 스토리지 소비자

라고 볼 수 있다.

 

아래의 실습을 통해 어떻게 구동이 되는지 살펴보자.

 

실습

시나리오 : Server A에서 구동되는 Target 서버와 Server B에서 구동되는 Initiator 클라이언트

 

Target server (Server A)

0. 하드디스크를 하나 추가하고 시작.

 

1. dnf명령어를 이용하여 iSCSI서버 소프트웨어를 설치한다.

dnf -y install targetcli

2. /var/lib(참조 파일들을넣어두는곳)에 idisks 디렉토리 하나 생성.

3. targetcli 인터페이스를 통해 iscsi 설정

이미지 생성

미리 만들어두었던 idisks디렉토리에 disk1.img 가상 디스크 생성. 10G를 할당해주었다.

위 과정으로 "disk1"이라는 이름의 파일 기반 iSCSI 타겟이 생성되고 iSCSI 이니시에이터가 원격으로 접근할 수 있게 된다.

* IQN을 생성하는 명령어, "iqn.2023-08.com.4gl.iscsi"를 기반으로 하는 iscsi 타겟의 IQN을 생성한다.

"target1"은 타겟의 고유한 이름이다. 이 IQN은 iSCSI 네트워크에서 target서버를 식별할때 사용한다.(클라이언트가)

더보기

*IQN이란 ? : iSCSI Qualified Name으로 형식은 iqn.yyyy-mm.naming-authority:unique 이름의 형식으로,

명명 규칙이 있다

https://docs.vmware.com/kr/VMware-vSphere/7.0/com.vmware.vsphere.storage.doc/GUID-686D92B6-A2B2-4944-8718-F1B74F6A2C53.html

 

iSCSI 명명 규칙

iSCSI에서는 대상 또는 이니시에이터인 iSCSI 노드를 식별하기 위해 특별한 고유 이름을 사용합니다.

docs.vmware.com

ex)create iqn.2023-08.com.4gl.iscsi:target1  

위와 같이 도메인이 역방향으로 진행된다.

LUN(Logical Unit Number)를 생성하는 과정

LUN은 iSCSI디바이스로 식별되는 가상 디스크,스토리지를 의미한다.

이 LUN은 클라이언트에게 제공되어 해당 스토리지에 액세스할 수 있는 권한을 부여한다.

더보기

*LUN = Logical Unit Number -> 타겟이 제공하는 논리적인 SCSI장치의 고유 번호
(backstores의 정보와 맵핑)

cd iqn~~~/luns : 클라이언트에게 제공할 가상 디스크의 위치를 지정

create /backstores/fileio/disk1 : 위에서 설정한 LUN 경로 아래에 새로운 LUN을 생성하는 부분

"/backstores/fileio/disk1"은 이전에 생성한 "disk1"이라는 이름의 파일 기반 백스토어를 LUN으로 만든다는 것을 의미

클라이언트(이니시에이터)는 iSCSI 네트워크를 통해 해당 LUN에 액세스할 수 있음

ACL(Access Control List)를 설정하는 과정

ACL은 특정 이니시에이터에 대한 액세스 권한을 관리하는 데 사용,

cd /iscsi/iqn.2023-08.com.4gl.iscsi:target1/tpg1/acls : iSCSI 타겟의 ACL을 설정하기 위한 경로를 지정

"iqn.2023-08.com.4gl.iscsi:target1"은 이전에 생성한 iSCSI 타겟의 IQN을 나타내고

"tpg1"은 타겟 포털 그룹(Target Portal Group)을 나타냄

"acls"는 Access Control Lists를 의미하며,

이니시에이터에 대한 액세스 권한을 설정.

 

create iqn.2023-08.com.4gl.iscsi:init1 : 위에서 설정한 ACL 경로 아래에 새로운 ACL 항목을 생성하는 부분

"iqn.2023-08.com.4gl.iscsi:init1"은 액세스를 허용하고자 하는 이니시에이터의 IQN이다.

해당 이니시에이터(init1)는 iSCSI 타겟의 스토리지에 접근할 수 있는 권한을 갖게 됨 

 

인증 정보 생성

생성해둔 init1디렉터리 (cd /iscsi/iqn.2023-08.com.4gl.iscsi:target1/tpg1/acls/iqn.2023-08.com.4gl.iscsi:init1) 경로로

이동하여 userid와 password를 설정해준다.

 

서버의 포트가 열렸는지 확인.

ISCSI는 3260/tcp 포트를 사용한다

마지막으로 방화벽 설정

포트나 서비스, 둘중 하나를 선택해서 열면된다. 

firewall-cmd --add-service=iscsi-target --permanent
or firewall-cmd --add-port=3260/tcp --permanent 

이후

firewall-cmd --reload

(permanent 옵션을 넣지 않았을 경우 " firewall-cmd --runtime-to-permanent " 을 이용해 설정해줄 수 있다."

 

Initiator - Server B( Client )

dnf -y install iscsi-initiaotr-utils : iSCSI 이니시에이터 소프트웨어 설치.

 

아까 Server A에서 설정해두었던것들을 iSCSI 이니시에이터 소프트웨어 설정파일에서

IQN과 인증정보를 입력해주어야한다.

IQN을 설정하는 /etc/iscsi/initiatorname.iscsi 파일

위에서 설정해두었던 IQN으로 설정.

/etc/iscsi/iscsid.conf
CHAP

*CHAP (Challenge Handshake Authentication Protocol)
원격 노드의 인증 정보를 3Way-Handshake를 통하여 확인 (MD5해쉬값 사용)

 

58줄 주석해제


69,70줄 CHAP UID,PASSWORD 변경

-설정완료

iscsiadm 명령어로 타겟서버의 정보를 검색

-m discovery < mode up 기본옵션이다.
-t sendtargets ( type을 뜻함. )
-p 192.168.111.100:3260
= iscsiadm -m discovery -t sendtargets -p 192.168.111.100:3260

target server의 IQN을 알아오는것을 볼 수 있다.

 

노드 상세정보확인

iscsiadm -m node -o show

로그인

iscsiadm -m node --login

iscsiadm -m node --login

 

lsblk 명령어로 하드디스크가 추가된것을 볼 수 있다.

 

마지막으로 파티션 나눠보고 포맷과 마운트까지.

실습 끝

 

 

마무리

 

리눅스 시스템에서 iSCSI를 설정하고 활용하는것을 해보았다.

iSCSI를 스토리지 장치를 네트워크로 연결해서 여러 시스템에서 공유할 수 있고,

스토리지 추가 이동이 간편하며 필요에 따라 스토리지 용량을 동적으로 조정할 수 있는것을 알 수 있었다.

iSCSI서버를 통해 스토리지 리소스를 Server A(타겟)에서 관리할 수 있고, 관리작업들을 통합하여 수행 할 수 있고

기존의 이더넷 인프라를 이용하여(LAN기반) 별도의 전용 하드웨어나 인프라가 필요하지않아 투자 비용을 절감할 수 있다.

 

결론 :

iSCSI로 유연한 스토리지 관리

중앙 집중화된 관리 실현

비용 효율적으로 스토리지 리소스를 활용

 

= 기업의 인프라 확장과 관리에 효율성을 더함.