iSCSI 설정 · 4 min read · Feb 07, 2026

페도라 10에서 iSCSI 사용하기 (이니시에이터 및 타겟)

페도라 10에서 iSCSI 사용하기 (이니시에이터 및 타겟)

버전 1.0
저자: Falko Timme

이 가이드는 페도라 10에서 실행되는 iSCSI 타겟과 iSCSI 이니시에이터(클라이언트)를 설정하는 방법을 설명합니다. iSCSI 프로토콜은 스토리지 영역 네트워크(SAN) 프로토콜로, iSCSI 이니시에이터가 일반 이더넷 케이블을 사용하여 (원격) iSCSI 타겟의 스토리지 장치를 사용할 수 있게 해줍니다. iSCSI 이니시에이터에게 원격 스토리지는 일반적으로 로컬에 연결된 하드 드라이브처럼 보입니다.

이것이 당신에게 작동할 것이라는 보장은 하지 않습니다!

1 사전 참고

여기서는 두 대의 페도라 10 서버를 사용하고 있습니다:

  • server1.example.com (이니시에이터): IP 주소 192.168.0.100
  • server2.example.com (타겟): IP 주소 192.168.0.101

2 타겟 설정하기 (server2)

server2:

먼저 타겟(server2)을 설정합니다. 필요한 패키지는 RPMFusion 저장소에만 있으므로 먼저 이를 활성화해야 합니다:

rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

그런 다음 iSCSI 타겟 패키지를 설치할 수 있습니다:

yum install iscsitarget kmod-iscsitarget

이것이 커널을 업데이트할 수도 있습니다. 이 경우, 시스템을 재부팅하십시오:

reboot

우리는 사용하지 않는 논리 볼륨, 이미지 파일, 하드 드라이브(예: /dev/sdb), 하드 드라이브 파티션(예: /dev/sdb1) 또는 RAID 장치(예: /dev/md0)를 스토리지로 사용할 수 있습니다. 이 예제에서는 VolGroup00 볼륨 그룹에 storage_lun1이라는 이름의 20GB 논리 볼륨을 생성합니다:

lvcreate -L20G -n storage_lun1 VolGroup00

(이미지 파일을 사용하려면 다음과 같이 생성할 수 있습니다:

mkdir /storage
dd if=/dev/zero of=/storage/lun1.img bs=1024k count=20000

이렇게 하면 크기가 20GB인 이미지 파일 /storage/lun1.img가 생성됩니다.

)

다음으로 /etc/ietd.conf를 편집합니다…

vi /etc/ietd.conf

… 그리고 해당 파일의 모든 내용을 주석 처리합니다. 마지막에 다음 구문을 추가합니다:

| [...] Target iqn.2001-04.com.example:storage.lun1 IncomingUser someuser secret OutgoingUser Lun 0 Path=/dev/VolGroup00/storage_lun1,Type=fileio Alias LUN1 #MaxConnections 6 |

타겟 이름은 전 세계적으로 고유해야 하며, iSCSI 표준은 “iSCSI 자격 이름”을 다음과 같이 정의합니다: iqn.yyyy-mm.[:identifier]; yyyy-mm은 도메인이 유효한 날짜입니다; 식별자는 자유롭게 선택할 수 있습니다. IncomingUser 줄에는 사용자 이름과 비밀번호가 포함되어 있어, 이 사용자 이름과 비밀번호를 제공하는 이니시에이터(클라이언트)만이 로그인하고 스토리지 장치를 사용할 수 있습니다; 인증이 필요하지 않다면 IncomingUser 줄에 사용자 이름과 비밀번호를 지정하지 마십시오. Lun 줄에서는 스토리지 장치의 전체 경로를 지정해야 합니다(예: /dev/VolGroup00/storage_lun1, /storage/lun1.img, /dev/sdb 등).

이제 우리는 iqn.2001-04.com.example:storage.lun1 장치에 대한 연결을 IP 주소 192.168.0.100(server1.example.com)에서 허용하도록 타겟에 지시합니다:

vi /etc/initiators.allow

| [...] iqn.2001-04.com.example:storage.lun1 192.168.0.100 |

다음으로 iscsi-target의 시스템 시작 링크를 생성하고 시작합니다:

chkconfig –levels 235 iscsi-target on
/etc/init.d/iscsi-target start

3 이니시에이터 설정하기 (server1)

server1:

server1에서 이니시에이터를 설치합니다:

yum install iscsi-initiator-utils

다음으로 /etc/iscsi/iscsid.conf를 엽니다…

vi /etc/iscsi/iscsid.conf

… 그리고 node.startup이 자동으로 설정되어 있는지 확인합니다:

| [...] node.startup = automatic [...] |

이제 타겟(server2)에 연결하고 어떤 스토리지 장치가 제공되는지 확인합니다:

iscsiadm -m discovery -t st -p 192.168.0.101

[root@server1 init.d]# iscsiadm -m discovery -t st -p 192.168.0.101
Starting iscsid:                                           [  OK  ]
192.168.0.101:3260,1 iqn.2001-04.com.example:storage.lun1
[root@server1 init.d]#

iscsiadm -m node

[root@server1 init.d]# iscsiadm -m node
192.168.0.101:3260,1 iqn.2001-04.com.example:storage.lun1
[root@server1 init.d]#

192.168.0.101:3260,1의 iqn.2001-04.com.example:storage.lun1 스토리지 장치에 대한 설정은 /var/lib/iscsi/nodes/iqn.2001-04.com.example:storage.lun1/192.168.0.101,3260,1/default 파일에 저장됩니다. 해당 파일에서 타겟의 사용자 이름과 비밀번호를 설정해야 합니다; 이 파일을 수동으로 편집하는 대신, iscsiadm 명령을 사용하여 이를 수행할 수 있습니다:

iscsiadm -m node –targetname “iqn.2001-04.com.example:storage.lun1” –portal “192.168.0.101:3260” –op=update –name node.session.auth.authmethod –value=CHAP
iscsiadm -m node –targetname “iqn.2001-04.com.example:storage.lun1” –portal “192.168.0.101:3260” –op=update –name node.session.auth.username –value=someuser
iscsiadm -m node –targetname “iqn.2001-04.com.example:storage.lun1” –portal “192.168.0.101:3260” –op=update –name node.session.auth.password –value=secret

이제 로그인할 수 있습니다:

iscsiadm -m node --targetname "iqn.2001-04.com.example:storage.lun1" --portal "192.168.0.101:3260" --login

[root@server1 init.d]# iscsiadm -m node –targetname “iqn.2001-04.com.example:storage.lun1” –portal “192.168.0.101:3260” –login
Logging in to [iface: default, target: iqn.2001-04.com.example:storage.lun1, portal: 192.168.0.101,3260]
Login to [iface: default, target: iqn.2001-04.com.example:storage.lun1, portal: 192.168.0.101,3260]: successful
[root@server1 init.d]#

(로그아웃하려면 다음을 실행할 수 있습니다:

iscsiadm -m node --targetname "iqn.2001-04.com.example:storage.lun1" --portal "192.168.0.101:3260" --logout

)

이제

fdisk -l 

의 출력에서 새로운 하드 드라이브(/dev/sdb가 이 예제에서) 를 찾아야 합니다; 이것이 우리의 iSCSI 스토리지 장치입니다:

[root@server1 init.d]# fdisk -l

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000d5f46

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          25      200781   83  Linux
/dev/sda2              26        3916    31254457+  8e  Linux LVM

Disk /dev/sdb: 21.4 GB, 21474836480 bytes
64 heads, 32 sectors/track, 20480 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn’t contain a valid partition table
[root@server1 init.d]#

해당 장치를 사용하려면 포맷해야 합니다:

fdisk /dev/sdb

[root@server1 init.d]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xa1870fdd.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won’t be recoverable.

The number of cylinders for this disk is set to 20480.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): <– n
Command action
e   extended
p   primary partition (1-4)
<– p
Partition number (1-4): <– 1
First cylinder (1-20480, default 1): <– ENTER
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-20480, default 20480): <– ENTER
Using default value 20480

Command (m for help): <– t
Selected partition 1
Hex code (type L to list codes): <– L

0  Empty           1e  Hidden W95 FAT1 80  Old Minix       bf  Solaris
1  FAT12           24  NEC DOS         81  Minix / old Lin c1  DRDOS/sec (FAT-
2  XENIX root      39  Plan 9          82  Linux swap / So c4  DRDOS/sec (FAT-
3  XENIX usr       3c  PartitionMagic  83  Linux           c6  DRDOS/sec (FAT-
4  FAT16 <32M      40  Venix 80286     84  OS/2 hidden C:  c7  Syrinx
5  Extended        41  PPC PReP Boot   85  Linux extended  da  Non-FS data
6  FAT16           42  SFS             86  NTFS volume set db  CP/M / CTOS / .
7  HPFS/NTFS       4d  QNX4.x          87  NTFS volume set de  Dell Utility
8  AIX             4e  QNX4.x 2nd part 88  Linux plaintext df  BootIt
9  AIX bootable    4f  QNX4.x 3rd part 8e  Linux LVM       e1  DOS access
a  OS/2 Boot Manag 50  OnTrack DM      93  Amoeba          e3  DOS R/O
b  W95 FAT32       51  OnTrack DM6 Aux 94  Amoeba BBT      e4  SpeedStor
c  W95 FAT32 (LBA) 52  CP/M            9f  BSD/OS          eb  BeOS fs
e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi ee  GPT
f  W95 Ext’d (LBA) 54  OnTrackDM6      a5  FreeBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a6  OpenBSD         f0  Linux/PA-RISC b
11  Hidden FAT12    56  Golden Bow      a7  NeXTSTEP        f1  SpeedStor
12  Compaq diagnost 5c  Priam Edisk     a8  Darwin UFS      f4  SpeedStor
14  Hidden FAT16 <3 61  SpeedStor       a9  NetBSD          f2  DOS secondary
16  Hidden FAT16    63  GNU HURD or Sys ab  Darwin boot     fb  VMware VMFS
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs          fc  VMware VMKCORE
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep
1c  Hidden W95 FAT3 75  PC/IX           be  Solaris boot    ff  BBT
Hex code (type L to list codes): <– 83

Command (m for help): <– w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@server1 init.d]#

이후

fdisk -l

의 출력은 다음과 같아야 합니다:

[root@server1 init.d]# fdisk -l

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000d5f46

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          25      200781   83  Linux
/dev/sda2              26        3916    31254457+  8e  Linux LVM

Disk /dev/sdb: 21.4 GB, 21474836480 bytes
64 heads, 32 sectors/track, 20480 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Disk identifier: 0xa1870fdd

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       20480    20971504   83  Linux
[root@server1 init.d]#

이제 /dev/sdb1에 파일 시스템을 생성합니다…

mkfs.ext3 /dev/sdb1

… 그리고 테스트 목적으로 마운트합니다:

mount /dev/sdb1 /mnt

이제…

mount

의 출력에서 새로운 장치를 볼 수 있어야 합니다:

[root@server1 ~]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
/proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/sdb1 on /mnt type ext3 (rw)
[root@server1 ~]#

… 그리고

df -h

[root@server1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
29G  2.2G   25G   9% /
/dev/sda1             190M   13M  168M   8% /boot
tmpfs                 251M     0  251M   0% /dev/shm
/dev/sdb1              20G  173M   19G   1% /mnt
[root@server1 ~]#

다음과 같이 언마운트할 수 있습니다:

umount /mnt

부팅 시 자동으로 장치가 마운트되도록 하려면, 예를 들어 /storage 디렉토리에, 해당 디렉토리를 생성합니다…

mkdir /storage

… 그리고 /etc/fstab에 다음 줄을 추가합니다:

vi /etc/fstab

| [...] /dev/sdb1 /storage ext3 defaults,auto,_netdev 0 0 |

테스트 목적으로 이제 시스템을 재부팅할 수 있습니다:

reboot

재부팅 후 장치가 마운트되어야 합니다:

mount

[root@server1 ~]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
/proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/sdb1 on /storage type ext3 (rw,_netdev)
[root@server1 ~]#

df -h

[root@server1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
29G  2.2G   25G   9% /
/dev/sda1             190M   13M  168M   8% /boot
tmpfs                 251M     0  251M   0% /dev/shm
/dev/sdb1              20G  173M   19G   1% /storage
[root@server1 ~]#

4 링크

Share: X/Twitter LinkedIn

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

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