iSCSI 설정과 사용하기 – ubuntu linux에서

Ubuntu Linux 에서 iSCSI 설정과 사용하기.

작업환경

OS: Ubuntu 12.04.4 LTS(32Bit version)
Box1: 192.168.0.51
Box2: 192.168.0.52

1. iSCSI Target 설정 (iSCSI 볼륨 만들 서버)
Box1 에 iSCSI volume을 만들기위해, 관련 패키지를 설치한다.

# apt-get install iscsitarget scsitarget-source iscsitarget-dkms

주의) 위의 패치지를 설치할때 dkms 부분에서 아래 처럼 make 오류가 발생한다. 버그없는 패키지를 받아서 수동으로 설치했다.

make KERNELRELEASE=3.11.0-15-generic -C /lib/modules/3.11.0-15-generic/build M=/var/lib/dkms/iscsitarget/1.4.20.2/build.....(bad exit status: 2)
Error! Bad return status for module build on kernel: 3.11.0-15-generic (i686)
# wget http://ftp.ubuntu.com/ubuntu/pool/universe/i/iscsitarget/iscsitarget_1.4.20.3+svn499-0ubuntu3_i386.deb
# wget http://ftp.ubuntu.com/ubuntu/pool/universe/i/iscsitarget/iscsitarget-dkms_1.4.20.3+svn499-0ubuntu3_all.deb
# dpkg -i iscsitarget_1.4.20.3+svn499-0ubuntu3_i386.deb
# dpkg -i iscsitarget-dkms_1.4.20.3+svn499-0ubuntu3_all.deb

아래화일에서 false로 되어 있는 부분을 true로 바꾼다.

# vi /etc/default/iscsitarget
ISCSITARGET_ENABLE=true

iSCSI 가 이용할 디스크(2GB)를 만든다. 여기서는 물리 디스크가 없으므로, image 화일을 하나 만들어서 가상의 하드디스크로 사용한다.(물리적인 하드디스크가 있으면 그것을 사용해도 무방하다).

# mkdir /iscsi
# dd if=/dev/zero of=/iscsi/d1.img bs=1024k count=2000
2000+0 records in
2000+0 records out
2097152000 bytes (2.1 GB) copied, 13.1235 s, 160 MB/s

만든 화일을 가상의 디스크로 등록한다.

# losetup /dev/loop0 /iscsi/d1.img

아래 화일에 아래와 같은 내용을 추가한다.(사용자id는 fox ,비밀번호는 fox123)

# vi /etc/iet/ietd.conf
Target iqn.2014-06.com.fox:storage.lun1
IncomingUser fox fox123
OutgoingUser
Lun 0 Path=/dev/loop0,Type=fileio
Alias LUN1

target 은 유일한 이름을 가져야하며, iSCSI 표준으로 iqn(iSCSI Qulified Name)형식이 있다. iqn의 형식은 아래와 같다.
iqn.yyyy-mm.[:identifier]

/etc/iet/initiators.allow 화일에서 iscsi 볼륨에 접근할 수 있는 서버를 설정해 준다. 기본은 ALL ALL이지만, Box2에서 만 사용하기 위해 아래와같이 설정을 바꾼다.

# vi /etc/iet/initiators.allow
# ALL ALL
iqn.2014-06.com.fox:storage.lun1 192.168.0.52

2. iSCSI initiator 설정 (iSCSI 볼륨을 이용할 서버)

open-iscsi를 설치한다.

# apt-get install open-iscsi

iscsi node에 자동으로 로그인할지를 설정한다. 기본값은 manual이다.

# vi /etc/iscsi/iscsid.conf
#node.startup = manual #주석처리
node.startup = automatic
# service open-iscsi start

iscsi target에 연결하고, 스토리지가 제공되는지 확인한다.

# iscsiadm -m discovery -t st -p fox1
192.168.0.51:3260,1 iqn.2014-06.com.fox:storage.lun1
# iscsiadm -m node
192.168.0.51:3260,1 iqn.2014-06.com.fox:storage.lun1

사용할 target에 대한 id와 password를 설정한다.(id는 fox, password는 fox123으로 설정했다.)

# iscsiadm -m node --targetname "iqn.2014-06.com.fox:storage.lun1" --portal "192.168.0.51:3260" --op=update --name node.session.auth.authmethod --value=CHAP
root@fox2:~#  iscsiadm -m node --targetname "iqn.2014-06.com.fox:storage.lun1" --portal "192.168.0.51:3260" --op=update --name node.session.auth.username --value=fox
root@fox2:~#  iscsiadm -m node --targetname "iqn.2014-06.com.fox:storage.lun1" --portal "192.168.0.51:3260" --op=update --name node.session.auth.password --value=fox123

위의 설정은 /etc/iscsi/nodes/iqn.2014-06.com.fox:storage.lun1/192.168.0.51,3260,1/default 화일에 저장되므로, 수동으로 설정해도 상관 없다.

설정을 마치고, iscsi initiator 서비스를 실행한다.

iscsi target에 로그아웃/로그인 하기

# iscsiadm -m node --targetname "iqn.2014-06.com.fox:storage.lun1" --portal "192.168.0.51" --logout
Logging out of session [sid: 2, target: iqn.2014-06.com.fox:storage.lun1, portal: 192.168.0.51,3260]
Logout of [sid: 2, target: iqn.2014-06.com.fox:storage.lun1, portal: 192.168.0.51,3260]: successful

# iscsiadm -m node --targetname "iqn.2014-06.com.fox:storage.lun1" --portal "192.168.0.51" --login
Logging in to [iface: default, target: iqn.2014-06.com.fox:storage.lun1, portal: 192.168.0.51,3260]
Login to [iface: default, target: iqn.2014-06.com.fox:storage.lun1, portal: 192.168.0.51,3260]: successful

로그인이 정상적으로 이루어지면, scsi 볼륨이 보일 것이다. 아래에서는 2GB /dev/sdb가 iscsi 볼륨이다. 화일시스템을 만들고 마운트하면, 정상적으로 사용할 수 있다.

# fdisk -l

Disk /dev/sda: 9663 MB, 9663676416 bytes
255 heads, 63 sectors/track, 1174 cylinders, total 18874368 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0004d45b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    17825791     8911872   83  Linux
/dev/sda2        17827838    18872319      522241    5  Extended
/dev/sda5        17827840    18872319      522240   82  Linux swap / Solaris

Disk /dev/sdb: 2097 MB, 2097152000 bytes
65 heads, 62 sectors/track, 1016 cylinders, total 4096000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table

참고 : CentOS 는 https://blog.boxcorea.com/wp/archives/1811

답글 남기기

Your email address will not be published.