fedora 12에서 iscsi 테스트 해보기
iscsi 란?
http://ko.wikipedia.org/wiki/ISCSI
아래는 fedora12에서 작업 되었으며 RHEL 5에서도 비슷한 방식으로 활용 될 수 있습니다.
virt-install을 이용하여 kvm guest os 설정하는 부분은 아래 참조
http://kldp.org/node/112661
1. iscsi target 서버 설치
virt-install --connect qemu:///system --name targetfedora --ram 512 --disk path=/var/lib/libvirt/images/targetfedora.qcow2,size=5,cache=none,bus=virtio,format=qcow2 --network network=default,model=virtio --vnc --cdrom /dev/cdrom
# virt-manager <- 이 명령어 실행 후 설치 한 guest os 시작
guest os에서 아이피를 192.168.122.100으로 설정합니다.
# system-config-network <- gui 모드로 설정하거나 아래와 같이 직접 편집
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
# Network Interface
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.122.100
NETMASK=255.255.255.0
GATEWAY=192.168.122.1
TYPE=Ethernet
BOOTPROTO=none
NM_CONTROLLED=yes
# service NetworkManager restart
or
# ifdown eth0
# ifup eth0
# yum update <- 설치 후 최신 패키지 버전으로 업데이트
2. iscsi 클라이언트 서버 설치
virt-install --connect qemu:///system --name iscsidclient--ram 512 --disk path=/var/lib/libvirt/images/iscsidclient.qcow2,size=5,cache=none,bus=virtio,format=qcow2 --network network=default,model=virtio --vnc --cdrom /dev/cdrom
# virt-manager <- 이 명령어 실행 후 설치 한 guest os 시작
guest os에서 아이피를 192.168.122.110으로 설정합니다.
# system-config-network <- gui 모드로 설정하거나 아래와 같이 직접 편집
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
# Network Interface
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.122.110
NETMASK=255.255.255.0
GATEWAY=192.168.122.1
TYPE=Ethernet
BOOTPROTO=none
NM_CONTROLLED=yes
# service NetworkManager restart
or
# ifdown eth0
# ifup eth0
# yum update <- 설치 후 최신 패키지 버전으로 업데이트
3. iscsi target 서버에 사용될 virtual 블럭 디바이스 추가.
1) virtual 블럭 디바이스로 사용될 파일 이미지 생성
# qemu-img create -f qcow2 FileName.qcow2 4G
2) virsh 에서 target 서버 설정 파일 덤프
# virsh dumpxml targetfedora > targetfedora.xml
# vi targetfedora.xml <- 아래 disk설정을 추가 합니다.
<%%> <%%> <%%> <%%> <%%>
3) 설정을 적용하기 위해 guest os shutdown
# virsh shutdown targetfedora
Domain targetfedora is being shutdown
4) 변경 된 설정 적용
# virsh create targetfedora.xml
Domain targetfedora created from targetfedora.xml
새 설정 적용 후 guest os 자동으로 시작 됨.
5) guest os 접속 virtual 블럭 디바이스가 추가 된 것을 확인 합니다.
# fdisk -l
Disk /dev/vda: 5368 MB, 5368709120 bytes
16 heads, 63 sectors/track, 10402 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Disk identifier: 0x000b446d
Device Boot Start End Blocks Id System
/dev/vda1 * 1 407 204800 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/vda2 407 10392 5032358+ 8e Linux LVM
Partition 2 does not end on cylinder boundary.
Disk /dev/vdb: 4294 MB, 4294967296 bytes <- 새로 추가된 virtual 디스크 이미지
16 heads, 63 sectors/track, 8322 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Disk identifier: 0x00000000
Disk /dev/vdb doesn't contain a valid partition table
4. scsi-target 서버 작업
#ssh 192.168.122.100 -l root <- 100서버에 접속 후 작업
1) scsi-target-utils 설치
# yum install scsi-target-utils
2) targets.conf 설정
# vi /etc/tgt/targets.conf
<%%>
<%backing-store /dev/vdb%>
<%%>
http://kbase.redhat.com/faq/docs/DOC-19448 <- 참조
/usr/share/doc/scsi-target-utils-0.x.x <- 디렉토리 안 문서 참조
3) /etc/tgt/targets.conf의 target 디스크 적용
# man tgt-admin <- 자세한 메뉴얼 확인
# tgt-admin -e
아래 명령어로 target 디스크 확인
# tgtadm --lld iscsi --op show --mode target
Target 1: iqn.2010-02.com.example:server.target1
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
Online: Yes
Removable media: No
Backing store: No backing store
LUN: 1
Type: disk
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 4295 MB
Online: Yes
Removable media: No
Backing store: /dev/vdb
Account information:
ACL information:
ALL
4) iscsi 클라이언트 가 접속 할 수 있도록 방화벽에서 허용
# iptables -I INPUT -s 192.168.122.110 -j ACCEPT
# iptables-save
5. iscsi 데몬인 iscsi-initiator 패키지 설치
#ssh 192.168.122.110 -l root <- 110서버에 접속 후 작업
1) iscsi-initiator 설치
# yum install iscsi-initiator-utils.i686
iscsiadmin의 자세한 메뉴얼
vi /usr/share/doc/iscsi-initiator-utils-xxxxx/README
2) target 디스크를 iscsiadmin을 이용해 읽어 옵니다.
# iscsiadm -m discovery -t st -p 192.168.122.100 -o new
192.168.122.100:3260,1 iqn.2010-02.com.example:server.target1
3) 위 명령어로 읽어 온 설정들은 아래 디렉토리에 저장되면 iscsiadmin 명령어나 설정 파일을 rm으로 지워주지 않는한 계속 남아 있게 됩니다.
# pwd
/var/lib/iscsi
[root@localhost iscsi]# ls -al
total 32
drwxr-xr-x. 8 root root 4096 2010-02-21 19:17 .
drwxr-xr-x. 39 root root 4096 2010-02-21 20:03 ..
drwxr-xr-x. 2 root root 4096 2009-07-26 20:28 ifaces
drwxr-xr-x. 2 root root 4096 2009-07-26 20:28 isns
drwxr-xr-x. 3 root root 4096 2010-02-21 22:04 nodes
drwxr-xr-x. 3 root root 4096 2010-02-21 21:37 send_targets
drwxr-xr-x. 2 root root 4096 2009-07-26 20:28 slp
drwxr-xr-x. 2 root root 4096 2009-07-26 20:28 static
4) fdisk로 서버에서 인식됐는지 확인 하기
# fdisk -l
Disk /dev/vda: 6442 MB, 6442450944 bytes
16 heads, 63 sectors/track, 12483 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Disk identifier: 0x000787ae
Device Boot Start End Blocks Id System
/dev/vda1 * 1 407 204800 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/vda2 407 12480 6084616 8e Linux LVM
Partition 2 does not end on cylinder boundary.
~~~~~~~~~snip~~~~~~~~~~~~~~~~~~~~
Disk /dev/sda: 4294 MB, 4294967296 bytes <- 192.168.122.100의 iscsi target device
133 heads, 62 sectors/track, 1017 cylinders
Units = cylinders of 8246 * 512 = 4221952 bytes
Disk identifier: 0xde65c81e
Device Boot Start End Blocks Id System
5) 파티션 생성 후 파일 시스템 만들기
# fdisk /dev/sda
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1017, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1017, default 1017):
Using default value 1017
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
# mkfs.ext4 /dev/sda1
mke2fs 1.41.9 (22-Aug-2009)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
262144 inodes, 1048265 blocks
52413 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1073741824
32 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information:
done
This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
6) /etc/fstab 에 자동 마운트 되도록 설정하기
/dev/sda1 /iscsi ext4 _netdev 0 0
_netdev : 네트워크가 올라온 뒤 마운트 시도
참조
https://fedoraproject.org/wiki/Scsi-target-utils_Quickstart_Guide#Service_startup
http://kbase.redhat.com/faq/docs/DOC-19448
http://kbase.redhat.com/faq/docs/DOC-15154
http://stgt.sourceforge.net/
http://www.open-iscsi.org/
댓글 달기