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