iSCSI (Internet SCSI)

민콕이·4일 전

iSCSI란

SCSI 명령어를 TCP/IP 네트워크를 통해 전달하는 기술입니다.

SCSI: 서버와 스토리지를 연결할 때 데이터를 읽고 쓰는 명령어 규약
iSCSI: 이 SCSI 명령어를 이더넷 네트워크로 보내서 원격 스토리지에 접근할 수 있게 하는 기술

즉, 물리적인 SAN 환경을 인터넷/네트워크 기반으로 구현할 수 있게 해주는 방법입니다.


iSCSI vs NFS

  • iSCSI는 DISK 자체를 네트워크에서 받아서 진행
    • 한 DISK당 하나의 Client만 사용 가능
  • NFS 마운트된 Directory를 받아서 진행
    • 여러 Client에서 접근해서 사용 가능

구성

  • initiator : Storage를 받는 iSCSI Client
  • target : Storage를 제공하는 iSCSI Server

backstores

  • black : Partition을 나눈 Disk (LVM도 가능)
  • fileio : 파일 시스템 중 일부 디렉터리
  • pscsi : 물리 하드 디스크
  • ramdisk : 램의 일부분

iscsi

IQN - iSCSI Qualified Name

  • iSCSI 장비의 식별자(고유)
  • iqm.YYYY-MM.(Reverse-Domain):identifier
    • type.date.auth_name.identifier
    • ex) iqn.2025-12.ke.xxxx.target:target

tpg - Target Portal Group

  • ACLS (Access Control List) : initiator 목록
  • LUN (Logical Unit Number) : target이 제공하는 논리적 iscsi의 번호
  • Portal : iSCSI Target의 주소



iSCSI 실습

Target PC

target 패키지 설치

[root@target ~]# dnf install -y targetctl


파티션 새로 생성

[root@target ~]# fdisk /dev/sdb
n > p > enter > enter > +500M > (p 확인) > w


iSCSI에서 사용할 백스토어(block1)로 등록

[root@target ~]# targetctl

# backstores에 block 생성
/> /backstores/block create block1 /dev/sdb1


/tmp/target_01 파일을 50MB 크기의 파일 기반 iSCSI 백스토어(fileio)로 생성

# fileio 생성
/> /backstores/fileio create traget_01 /tmp/target_01 50M


iSCSI target IQN(iqn.2025-12.ke.min.target:target)을 새로 생성

# tag 생성
/> /iscsi create iqn.2025-12.ke.min.target:target


iSCSI target에 블록, 파일 백스토어를 LUN으로 연결해 클라이언트에 제공

# LUN 생성
/> /iscsi/iqn.2025-12.ke.min.target:target/tpg1/luns create /backstores/block/block1
/> /iscsi/iqn.2025-12.ke.min.target:target/tpg1/luns create /backstores/fileio/traget_01


지정한 클라이언트 iSCSI target에 접속하도록 ACL을 설정

# acls 생성 (client 지정)
/> /iscsi/iqn.2025-12.ke.min.target:target/tpg1/acls create iqn.2025-12.ke.min.target:init



Initiator PC

패키지 설치

[root@init ~]# dnf install -y iscsi-initiator-utils
[root@init ~]# dnf install -y lsscsi


iSCSI 클라이언트(initiator)의 IQN을 설정하여 타깃에서 ACL로 인식되도록 지정

[root@init ~]# vi /etc/iscsi/initiatorname.iscsi

# 위의 파일 내에 target 주소 입력 후 저장
InitiatorName=iqn.2025-12.ke.min.target:init


iscsid 실행

[root@init ~]# systemctl start iscsid


iSCSI 서버에 접속해 제공 중인 iSCSI target 목록을 검색 (10.9.0.210은 target pc의 아이피)

[root@init ~]# iscsiadm -m discovery -t st -p 10.9.0.210


10.9.0.210에 있는 iSCSI target(iqn.2025-12.ke.min.target:target)에 로그인하여 스토리지를 연결

[root@init ~]# iscsiadm -m node -T iqn.2025-12.ke.min.target:target -p 10.9.0.210 -l

Before

After



마지막으로 파일시스템 정의 후 마운트 작업

[root@init ~]# mkdir /iscsi_01
[root@init ~]# mkfs.ext4 /dev/sdb1
[root@init ~]# mount /dev/sdb1 /iscsi_01



iSCSI target 스토리지 연결해제

연결해놨던 폴더 해제

[root@init ~]# umount /iscsi_01


iscsi 연결 해제

기존에 사용했던 로그인 명령어에서 마지막 -l 에서 -u 로 변경

[root@init ~]# iscsiadm -m node -T iqn.2025-12.ke.min.target:target -p 10.9.0.210 -u


연결 해제된 것을 확인 할 수 있다.




재 연결 시

다시 위 로그인을 시도하는 것이 아닌 목록부터 다시 확인하고 로그인 해야 한다

[root@init ~]# iscsiadm -m discovery -t st -p 10.9.0.210
[root@init ~]# iscsiadm -m node -T iqn.2025-12.ke.min.target:target -p 10.9.0.210 -u




iSCSI target 저장 방법

[root@init ~]# targetcli

[root@init ~]# saveconfig
profile
정리 블로그

0개의 댓글