fedora 12에서 iscsi 테스트 해보기

kyumin의 이미지

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서버에 접속 후 작업

http://stgt.sourceforge.net/

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 설치

http://www.open-iscsi.org/

# 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/

Forums: 

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.