[OS] iSCSI

hugingstar·2025년 12월 27일

Operating system

목록 보기
25/34
post-thumbnail

이번 글에서는 iSCSI(Internet Small Computer System Interface)에 대해서 설명한다.

iSCSI는 TCP/IP 네트워크를 사용해서 스토리지 장치에 접근할 수 있게 해주는 스토리지 인터페이스이다. 인터넷 또는 로컬 네트워크를 통해 원격 스토리지 장치에 접근하고 데이터를 전송할 수 있게한다.

1. Target PC 설정

iSCSI는 initiator와 target 두개의 PC가 필요하고, 먼저 target PC에서 nmtui로 IP 설정을 해준다. IP 10.17.0.210으로 아이피를 설정했다.

nmtui

iSCSI는 targetcli를 설치하여 구현할 수 있다.

dnf install targetcli -y

targetcli의 버전을 확인할 수 있다. 그리고 ls 로 backstores를 보면 공유한 것들이 여기에 입력되어 있다.

target을 실행시킨다. 그리고 target이 status도 확인한다.

systemctl start target
systemctl status target

fdisk를 사용해서 현재 연결되어 있는 디스크들을 확인한다.

fdisk -l

sdb를 디스크로 새롭게 연결한다.

fdisk /dev/sdb
n
기본값
p

lsblk는 현재 설정된 파티션들을 조회할 수 있는 명령어이고, sda, sdb가 디스크로 사용되고 있는는 것을 확인할 수 있고, 앞에서 설정한 sdb1이 500M으로 되어 있다.

lsblk

공유할 디스크들이 이 곳에 추가된 것을 볼 수 있다. 그리고 backstores에 파티션 추가한 것을 블록으로 지정해준다. block1 이 지정된 것을 리스트에서 확인해본다.

/backstores/block create block1 /dev/sdb1

fileio 부분에서도 새로운 타겟에 대해서 용량을 지정할 수 있다. 50 MB를 할당한다.

/backstores/fileio create target_01 /tmp/target_01 50M

ls -l /tmp/target_01

여기까지 왔으면 backstores 설정은 완료되었다.

하지만, iSCSI에서는 IQN(iSCSI Qualified Name)이라는 개념을 하나 알아야하는데 iSCSI 장비의 식별자(고유)가 필요하다.
형식 : identifier 부분은 구분할 수 있는 고유한 값으로 지정한다.

iqn.YYYY-MM.(Reverse-Domain) : {identifier}

• type.date.{auth_name}.{identifier}
(ex) iqn.2025-12.ke.xxxx.target:target

IQN을 사용하여 TPG(Target Portal Group) 를 생성하는데, TPG를 생성할 때 ACLS, LUN, Portal을 적용한다.

ACLS(Access Control Lists) : initiator 목록
LUN(Logical Unit Number) : target이 제공하는 논리적 iscs의 번호
Portal : Iscsi target 주소

이제 설정을 시작해본다.

IQN 개념을 사용해서 iscsi를 추가한다.

/iscsi create iqn.2025.12.ke.bulgogikebab.target:target

잘 추가되었는지 iscsi를 부분을 꼼꼼하게 확인해본다.

ls

이제 LUN 에도 똑같이 등록을 해줘야한다. 첫번째에서 Created LUN 0 메시지가 보일 것이다. 두번째에서는 Created LUN 1 메시지가 보인다.

/iscsi/iqn.2025.12.ke.bulgogikebab.target:target/tpg1/luns create /backstores/block/block1
/iscsi/iqn.2025.12.ke.bulgogikebab.target:target/tpg1/luns create /backstores/fileio/target_01

그 다음은 acls를 설정해야한다. 뒷부분에 init을 붙여준다. mapped 메시지가 보인다.

/iscsi/iqn.2025-12.ke.bulgogikebab.target:target/tpg1/acls create iqn.2025-12.ke.bulgogikebab.target:init

2. Initiator PC 설정

Initiator PC로 가서 관련 패키지를 설치한다.

dnf install iscsi-initiator-utils -y
dnf install lsscsi -y

패키지 설치가 완료되었으면 initiator에서도 iscsi 관련 설정값들을 설정해야한다.

vi /etc/iscsi/initiatorname.iscsi

vi 편집기 안에서 수정해야 할 것. 아래의 내용을 추가한다.

InitiatorName=iqn.2025-12.ke.bulgogikebab.target:init

아이스카시 데몬을 실행한다.

systemctl start iscsid

아이스카시 관리자로 찾는다.

iscsiadm -m discovery -t st -p 10.17.0.210

lsscsi

노드 부분을 입력한다. 마지막에 l 옵션은 로그인해서 가져온다는 것이다. 타겟 디스크가 추가가된것을 볼 수 있다. 마치 자기것처럼 가져와서 사용할 수 있다. 디스크까지 가져와서 파티션까지 설정할 수 있다. (이 부분에서 NFS까지 가능하다.)

iscsiadm -m node -T iqn.2025-12.ke.bulgogikebab.target:target -p 10.17.0.210 -l
lsscsi

iscsiadm -m discovery -t st -p 10.17.0.210

연결 완전히 잘 되었으면, 이 부분에서 block1, target_01 이 보이는데 이것이 타겟에서 만들었던 것인데 이 디스크 자체를 가져와서 파티션까지 설정할 수 있도록 하는 것이다.

여기서 이제 할 수 있는게 fdisk를 사용해서 파티션도 설정하고 파일시스템 타입도 지정할 수 있다.

fdisk /dev/sdb
n 생성
기본설정으로 진행
w 저장

최상위 디렉토리에 파일 하나 생성하고 파일시스템을 지정한다. 먼저 마운트 포인트를 생성한다. 그리고 마지막으로 마운트 해준다.

mkdir /iscsi_01
mkfs -t ext-4 /dev/sdb1
mount /dev/sdb1 /iscsi_01/
df -h

iSCSI 연결 해제 과정

마운트를 풀고 싶으면 umount

umount /iscsi_01
df -h

마지막에 -u 옵션으로 로그아웃 시킬 수 있다.

iscsiadm -m node -T iqn.2025-12.ke.bulgogikebab.target:target -p 10.17.0.210 -u

lsscsi

다시 연결해본다. lsscsi와 lsblk로 모두 잘 연결되어 있는 것을 볼 수 있다.

iscsiadm -m node -T iqn.2025-12.ke.bulgogikebab.target:target -p 10.17.0.210 -l
lsscsi
lsblk

그런데 타겟도 저장안해주면 다 날라간다. 꼭 타겟에서도 saveconfig해야한다.

saveconfig
exit

Config 파일로 들어가보면 타겟에서의 정보들을 볼 수 있다. target, block, iqn 등의 세부 정보들을 모두 확인할 수 있다.

vi /etc/target/saveconfig.json

0개의 댓글