iSCSI 설치 · 7 min read · Nov 26, 2025

Ubuntu 22.04에 iSCSI 스토리지 서버 설치하는 방법

인터넷 소형 컴퓨터 시스템 인터페이스(iSCSI)는 스토리지 영역 네트워크(SAN)에서 하드 디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD)의 파티션, 논리 볼륨 관리(LVM) 파티션 또는 블록 파일과 같은 블록 수준 스토리지 리소스를 공유하는 데 사용되는 프로토콜입니다. 클라이언트-서버 아키텍처를 사용하는 iSCSI는 두 가지 주요 구성 요소인 이니시에이터와 타겟 간에 TCP/IP 네트워크를 통해 SCSI 명령을 전송하는 데 도움을 줍니다. iSCSI 타겟은 공유 스토리지에 대한 액세스를 부여하는 iSCSI 서버에서 호스팅되는 서비스입니다. 반대로, iSCSI 이니시에이터는 클라이언트 역할을 하여 공유 스토리지 리소스를 사용하기 위해 타겟에 연결을 설정합니다.

이 튜토리얼은 Ubuntu 22.04에서 iSCSI 타겟과 이니시에이터를 설정하는 방법에 대한 완전한 가이드입니다. 네트워크 내에서 안전한 스토리지 공유를 설정하는 단계를 다룰 것입니다.

요구 사항

  • 1GB 외장 HDD가 있는 iSCSI 타겟을 실행하는 Ubuntu 22.04 시스템.
  • iSCSI 이니시에이터를 위한 새 Ubuntu 22.04 시스템.
  • iSCSI 타겟에 192.168.1.10의 정적 IP 주소가 구성되어 있고, iSCSI 이니시에이터에 192.168.1.20이 구성되어 있습니다.
  • 두 서버 모두에 루트 비밀번호가 구성되어 있습니다.

시스템 업데이트

시작하기 전에 최신 패키지로 시스템을 업데이트하는 것이 좋습니다. 다음 명령어로 업데이트할 수 있습니다:

apt update -y  
apt upgrade -y

모든 패키지가 업데이트되면 변경 사항을 적용하기 위해 시스템을 재시작하십시오.

iSCSI 타겟 설치

iSCSI 타겟 패키지는 기본적으로 Ubuntu 22.04 기본 저장소에 있습니다. 다음 명령어를 실행하여 iSCSI 타겟 서버에 설치할 수 있습니다:

apt install tgt -y

iSCSI 타겟을 설치한 후 다음 명령어로 서버의 상태를 확인하십시오:

systemctl status tgt

다음과 같은 출력이 표시되어야 합니다:

? tgt.service - (i)SCSI target daemon
     Loaded: loaded (/lib/systemd/system/tgt.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2024-01-03 11:13:04 UTC; 23s ago
       Docs: man:tgtd(8)
   Main PID: 7770 (tgtd)
     Status: "Starting event loop..."
      Tasks: 1
     Memory: 1.1M
     CGroup: /system.slice/tgt.service
             ??7770 /usr/sbin/tgtd -f

Jan 03 11:13:04 ubuntu2204 systemd[1]: Starting (i)SCSI target daemon...
Jan 03 11:13:04 ubuntu2204 tgtd[7770]: tgtd: iser_ib_init(3431) Failed to initialize RDMA; load kernel modules?
Jan 03 11:13:04 ubuntu2204 tgtd[7770]: tgtd: work_timer_start(146) use timer_fd based scheduler
Jan 03 11:13:04 ubuntu2204 tgtd[7770]: tgtd: bs_init(387) use signalfd notification
Jan 03 11:13:04 ubuntu2204 systemd[1]: Started (i)SCSI target daemon.

이 시점에서 iSCSI 타겟이 서버에 설치되었습니다. 이제 다음 단계로 진행할 수 있습니다.

iSCSI 타겟 구성

먼저, iSCSI 서버에서 LUN(논리 단위 번호) 장치를 생성합니다. LUN은 물리적 SCSI 장치의 일부인 백엔드 스토리지 장치입니다. iSCSI 타겟에 매핑된 모든 LUN은 클라이언트의 운영 체제에 가상으로 연결됩니다. 따라서 이니시에이터는 iSCSI LUN에서 파일 시스템을 설정하고 관리할 수 있습니다.

다음과 같이 새 구성 파일을 생성하여 구성할 수 있습니다:

nano /etc/tgt/conf.d/iscsi.conf

다음 줄을 추가하십시오:


     backing-store /dev/sdb
     initiator-address 192.168.1.20
    incominguser iscsi-user password
     outgoinguser iscsi-target secretpass

작업이 완료되면 파일을 저장하고 닫습니다.

여기서:

  • 첫 번째 줄은 LUN의 이름을 정의합니다.
  • 두 번째 줄은 iSCSI 타겟 서버의 스토리지 장치의 위치와 이름을 정의합니다.
  • 세 번째 줄은 iSCSI 이니시에이터의 IP 주소를 정의합니다.
  • 네 번째 줄은 들어오는 사용자 이름/비밀번호를 정의합니다.
  • 다섯 번째 줄은 상호 CHAP 인증을 허용하기 위해 타겟이 이니시에이터에 제공할 사용자 이름/비밀번호를 정의합니다.

다음으로, 변경 사항을 적용하기 위해 iSCSI 서비스를 재시작하십시오:

systemctl restart tgt

다음으로, 다음 명령어로 iSCSI 타겟 서버를 확인하십시오:

tgtadm --mode target --op show

다음과 같은 출력이 표시되어야 합니다:

Target 1: iqn.2024-01.example.com:lun1
    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
            SWP: No
            Thin-provisioning: No
            Backing store type: null
            Backing store path: None
            Backing store flags: 
    Account information:
        iscsi-user
        iscsi-target (outgoing)
    ACL information:
        192.168.1.10

이 시점에서 iSCSI 타겟 서버가 설치되고 구성되었습니다. 이제 다음 단계로 진행할 수 있습니다.

iSCSI 이니시에이터 설치 및 구성

다음으로, iSCSI 이니시에이터 머신으로 이동하여 다음 명령어로 iSCSI 이니시에이터 패키지를 설치하십시오:

apt install open-iscsi -y

설치가 완료되면 다음 명령어로 iSCSI 타겟 서버를 발견하여 공유 타겟을 찾으십시오:

iscsiadm -m discovery -t st -p 192.168.1.10

다음과 같은 출력이 표시되어야 합니다:

192.168.1.10:3260,1 iqn.2024-01.example.com:lun1

다음으로, initiatorname.iscsi 파일에서 LUN 장치의 이름을 정의해야 합니다:

nano /etc/iscsi/initiatorname.iscsi

다음과 같이 iSCSI 타겟 LUN 이름을 추가하십시오:

InitiatorName=iqn.2024-01.example.com:lun1

작업이 완료되면 파일을 저장하고 닫습니다.

다음으로, iSCSI 타겟에서 iSCSI 이니시에이터로 iSCSI 타겟에 접근하기 위해 구성한 CHAP 정보를 정의해야 합니다. 노드 구성 파일은 ‘/etc/iscsi/nodes/‘ 디렉토리에 존재하며, 사용 가능한 각 LUN에 대해 디렉토리가 있습니다.

다음 파일을 편집하여 정의할 수 있습니다:

nano /etc/iscsi/nodes/iqn.2024-01.example.com\:lun1/192.168.1.10\,3260\,1/default

다음 줄을 추가/수정하십시오:

node.session.auth.authmethod = CHAP  
node.session.auth.username = iscsi-user
node.session.auth.password = password          
node.session.auth.username_in = iscsi-target
node.session.auth.password_in = secretpass         
node.startup = automatic

파일을 저장하고 닫은 후, 다음 명령어로 iSCSI 이니시에이터 서비스를 재시작하십시오:

systemctl restart open-iscsi iscsid

다음 명령어로 서비스의 상태를 확인할 수도 있습니다:

systemctl status open-iscsi

다음과 같은 출력이 표시되어야 합니다:

? open-iscsi.service - Login to default iSCSI targets
     Loaded: loaded (/lib/systemd/system/open-iscsi.service; enabled; vendor preset: enabled)
     Active: active (exited) since Sat 2024-01-03 11:33:13 UTC; 10s ago
       Docs: man:iscsiadm(8)
             man:iscsid(8)
    Process: 2861 ExecStart=/sbin/iscsiadm -m node --loginall=automatic (code=exited, status=0/SUCCESS)
    Process: 2867 ExecStart=/lib/open-iscsi/activate-storage.sh (code=exited, status=0/SUCCESS)
   Main PID: 2867 (code=exited, status=0/SUCCESS)

Jan 03 11:33:14 initiator systemd[1]: Starting Login to default iSCSI targets...
Jan 03 11:33:14 initiator iscsiadm[2861]: Logging in to [iface: default, target: iqn.2024-01.example.com:lun1, portal: 104.245.33.142,3260] (m>
Jan 03 11:33:14 initiator iscsiadm[2861]: Login to [iface: default, target: iqn.2024-01.example.com:lun1, portal: 104.245.33.142,3260] success>
Jan 03 11:33:14 initiator systemd[1]: Finished Login to default iSCSI targets.

다음 명령어로 iSCSI 연결을 확인할 수도 있습니다:

iscsiadm -m session -o show

다음과 같은 출력이 표시되어야 합니다:

tcp: [2] 192.168.1.10:3260,1 iqn.2024-01.example.com:lun1 (non-flash)

다음 명령어로 iSCSI 타겟에서 공유된 스토리지 장치를 확인할 수도 있습니다:

lsblk

다음과 같은 출력에서 공유 장치 sdb를 확인할 수 있어야 합니다:

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   80G  0 disk 
??sda1   8:1    0   80G  0 part /
sdb      8:16   0 1000M  0 disk

공유 장치에 파일 시스템 생성

iSCSI 이니시에이터에서 공유 장치를 사용하려면 공유 장치(sdb)에 파일 시스템을 생성하고 장치를 유용하게 만들기 위해 마운트해야 합니다.

먼저, 다음 명령어로 공유 장치(sdb)에 파일 시스템을 생성하십시오:

fdisk /dev/sdb

파일 시스템을 생성하기 위해 다음과 같이 모든 질문에 답하십시오:

Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x9743ddcf.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): 

Using default response p.
Partition number (1-4, default 1): 
First sector (2048-2047999, default 2048): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-2047999, default 2047999): 

Created a new partition 1 of type 'Linux' and of size 999 MiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

다음으로, 다음 명령어로 파티션을 포맷하십시오:

mkfs.ext4 /dev/sdb1

다음과 같은 출력이 표시되어야 합니다:

mke2fs 1.45.5 (07-Jan-2020)
Creating filesystem with 255744 4k blocks and 64000 inodes
Filesystem UUID: e7f06605-a0f5-41e1-b1b2-e85bd7a2d6a3
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

다음으로, 다음 명령어로 파티션을 /mnt 디렉토리에 마운트하십시오:

mount /dev/sdb1 /mnt

다음 명령어로 마운트된 파티션을 확인할 수 있습니다:

df -h

다음과 같은 출력이 표시되어야 합니다:

Filesystem      Size  Used Avail Use% Mounted on
udev            972M     0  981M   0% /dev
tmpfs           199M  528K  199M   1% /run
/dev/sda1        79G  1.8G   74G   3% /
tmpfs           994M     0  994M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           994M     0  994M   0% /sys/fs/cgroup
tmpfs           199M     0  199M   0% /run/user/0
/dev/sdb1       968M  2.5M  899M   1% /mnt

자주 묻는 질문

아래는 iSCSI 이니시에이터와 타겟에 대한 자주 묻는 질문에 대한 답변입니다.

iSCSI란 무엇인가요?

iSCSI, 즉 인터넷 소형 컴퓨터 시스템 인터페이스는 인트라넷을 통해 데이터를 전송하고 장거리에서 스토리를 관리할 수 있는 네트워크 프로토콜입니다. 서버의 iSCSI 이니시에이터와 스토리지 하드웨어의 iSCSI 타겟 간의 블록 수준 데이터 전송을 용이하게 합니다.

iSCSI 타겟과 이니시에이터는 무엇인가요?

iSCSI 타겟은 네트워크를 통해 접근할 수 있는 하드 드라이브와 같은 스토리지 장치 역할을 합니다. iSCSI 이니시에이터는 타겟의 스토리지에 연결하고 상호작용하는 클라이언트입니다.

iSCSI를 WAN에서 사용할 수 있나요?

네, iSCSI는 광역 네트워크(WAN)에서 사용할 수 있지만 성능과 신뢰성을 보장하기 위해 안정적이고 빠른 네트워크 연결이 필요합니다. WAN에서 iSCSI를 사용할 때 VPN 또는 전용 회선과 같은 보안 고려 사항도 중요합니다.

iSCSI는 NFS 또는 SMB와 어떻게 다른가요?

NFS(네트워크 파일 시스템) 또는 SMB(서버 메시지 블록)와 같은 파일 수준 스토리지 프로토콜과 달리 iSCSI는 블록 수준에서 작동합니다. 즉, 시스템이 원격 스토리지와 상호작용할 수 있도록 하여 로컬 하드 드라이브처럼 작동하게 하여 스토리지 관리의 유연성을 제공합니다.

iSCSI는 안전한가요?

iSCSI 자체에는 고급 보안 기능이 포함되어 있지 않습니다. 그러나 IPsec와 같은 네트워크 계층 보안 방법이나 CHAP(Challenge-Handshake Authentication Protocol) 구성을 통해 iSCSI 연결을 안전하게 할 수 있습니다.

iSCSI의 성능 고려 사항은 무엇인가요?

iSCSI 성능은 네트워크 속도, 대기 시간, 스토리지 장치의 성능 및 네트워크 구성에 영향을 받습니다. 최적의 성능을 위해서는 고속 네트워크 연결과 최소 대기 시간을 보장하는 것이 중요합니다.

iSCSI에 특별한 하드웨어가 필요한가요?

iSCSI에는 특별한 하드웨어가 필요하지 않습니다. 표준 네트워크 장비에서 실행할 수 있습니다. 그러나 성능 향상을 위해 전용 iSCSI HBA(호스트 버스 어댑터)를 사용할 수 있습니다.

Ubuntu에서 iSCSI 연결 문제를 어떻게 해결하나요?

문제 해결에는 네트워크 연결 확인, 이니시에이터와 타겟의 구성 파일 검증, 시스템 로그 검토, 타겟이 스토리지 장치를 올바르게 내보내고 있는지 확인하는 것이 포함될 수 있습니다. 또한 iscsiadm과 같은 도구를 사용하여 iSCSI 연결을 진단하고 관리할 수 있습니다.

결론

위의 가이드는 Ubuntu 22.04 서버에서 iSCSI 타겟과 이니시에이터를 설정하는 방법을 가르쳐 주었습니다. 또한 타겟 서버에서 장치를 공유하고 이니시에이터에서 액세스하는 방법도 배웠습니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.