Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2420673
  • 博文数量: 384
  • 博客积分: 10193
  • 博客等级: 上将
  • 技术积分: 3785
  • 用 户 组: 普通用户
  • 注册时间: 2005-06-09 18:02
文章分类

全部博文(384)

文章存档

2011年(10)

2010年(29)

2009年(39)

2008年(36)

2007年(43)

2006年(198)

2005年(29)

分类: LINUX

2006-09-13 23:35:19

iet(iscsi  enterprise  target)是linux下的iscsi target实现, . open-iscsi 是Linux下的iscsi initiator实现, 使用iet和open-iscsi就可以方便的实现简单的ip san, 同时iet也可以和其他系统的iscsi initiator配合使用.

1 iet软件的安装配置
 
1.1 下载iet软件, 在iet 软件主页可以找到最新版本的下载地址, 目前版本为0.4.13, 下载到的软件包名称为iscsitarget-0.4.13.tar.gz

1.2 安装iet, 安装iet需要kernel-headers, gcc和libssl-dev的支持, 此次编译使用的gcc版本为3.3, 使用4.1版本的gcc也可以正常编译. 我的机器检查过程如下:

deb261:~# dpkg -l |grep linux
ii  doc-linux-text            2006.04-1         Linux HOWTOs and FAQs in ASCII format
ii  libselinux1               1.30.27-2         SELinux shared libraries
ii  linux-headers-2.6.17-2    2.6.17-8          Common header files for Linux 2.6.17
ii  linux-headers-2.6.17-2-k7 2.6.17-8          Header files for Linux 2.6.17 on AMD K7
ii  linux-image-2.6.17-2-k7   2.6.17-8          Linux 2.6.17 image on AMD K7
ii  linux-kbuild-2.6.17       2.6.17-3          Kbuild infrastructure for Linux 2.6.17
ii  linux-kernel-headers      2.6.17.10-3       Linux Kernel Headers for development
ii  linux-source-2.6.17       2.6.17-8          Linux kernel source for version 2.6.17 with
ii  util-linux                2.12p-4           Miscellaneous system utilities
deb261:~# dpkg -l |grep libssl
ii  libssl-dev                0.9.8b-3          SSL development libraries, header files and
ii  libssl0.9.7               0.9.7i-2          SSL shared libraries
ii  libssl0.9.8               0.9.8b-3          SSL shared libraries
deb261:~# dpkg -l |grep gcc
ii  gcc                       3.3.5-3           The GNU C compiler
ii  gcc-3.3                   3.3.6-13          The GNU C compiler
ii  gcc-3.3-base              3.3.6-13          The GNU Compiler Collection (base package)
ii  gcc-4.1                   4.1.1-13          The GNU C compiler
ii  gcc-4.1-base              4.1.1-13          The GNU Compiler Collection (base package)
ii  libgcc1                   4.1.1-13          GCC support library
deb261:~# gcc -v
Reading specs from /usr/lib/gcc-lib/i486-linux-gnu/3.3.6/specs
Configured with: ../src/configure -v --enable-languages=c,c++ --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared --enable-__cxa_atexit --with-system-zlib --enable-nls --without-included-gettext --enable-clocale=gnu --enable-debug i486-linux-gnu
Thread model: posix
gcc version 3.3.6 (Debian 1:3.3.6-13)

将软件包解压后, 到解压目录下运行make;make install, 就可完成iscsi target的安装. 安装过程如下:

deb261:~# tar zxf iscsitarget-0.4.13.tar.gz
deb261:~# cd iscsitarget-0.4.13
deb261:~/iscsitarget-0.4.13# make
make -C usr
make[1]: Entering directory `/root/iscsitarget-0.4.13/usr'
cc -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include   -c -o ietd.o ietd.c
cc -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include   -c -o iscsid.o iscsid.c
cc -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include   -c -o conn.o conn.c
cc -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include   -c -o session.o session.c
cc -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include   -c -o target.o target.c
cc -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include   -c -o message.o message.c
cc -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include   -c -o ctldev.o ctldev.c
cc -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include   -c -o log.o log.c
cc -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include   -c -o isns.o isns.c
cc -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include   -c -o chap.o chap.c
cc -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include   -c -o event.o event.c
cc -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include   -c -o param.o param.c
cc -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include   -c -o plain.o plain.c
cc ietd.o iscsid.o conn.o session.o target.o message.o ctldev.o log.o isns.o chap.o event.o param.o plain.o -o ietd -lcrypto
cc -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include   -c -o ietadm.o ietadm.c
cc ietadm.o param.o -o ietadm
make[1]: Leaving directory `/root/iscsitarget-0.4.13/usr'
make -C /lib/modules/2.6.17-2-k7/build SUBDIRS=/root/iscsitarget-0.4.13/kernel modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.17-2-k7'
  CC [M]  /root/iscsitarget-0.4.13/kernel/tio.o
  CC [M]  /root/iscsitarget-0.4.13/kernel/iscsi.o
  CC [M]  /root/iscsitarget-0.4.13/kernel/nthread.o
  CC [M]  /root/iscsitarget-0.4.13/kernel/wthread.o
  CC [M]  /root/iscsitarget-0.4.13/kernel/config.o
  CC [M]  /root/iscsitarget-0.4.13/kernel/digest.o
  CC [M]  /root/iscsitarget-0.4.13/kernel/conn.o
  CC [M]  /root/iscsitarget-0.4.13/kernel/session.o
  CC [M]  /root/iscsitarget-0.4.13/kernel/target.o
  CC [M]  /root/iscsitarget-0.4.13/kernel/volume.o
  CC [M]  /root/iscsitarget-0.4.13/kernel/iotype.o
  CC [M]  /root/iscsitarget-0.4.13/kernel/file-io.o
  CC [M]  /root/iscsitarget-0.4.13/kernel/null-io.o
  CC [M]  /root/iscsitarget-0.4.13/kernel/target_disk.o
  CC [M]  /root/iscsitarget-0.4.13/kernel/event.o
  CC [M]  /root/iscsitarget-0.4.13/kernel/param.o
  LD [M]  /root/iscsitarget-0.4.13/kernel/iscsi_trgt.o
  Building modules, stage 2.
  MODPOST
  CC      /root/iscsitarget-0.4.13/kernel/iscsi_trgt.mod.o
  LD [M]  /root/iscsitarget-0.4.13/kernel/iscsi_trgt.ko
make[1]: Leaving directory `/usr/src/linux-headers-2.6.17-2-k7'
deb261:~/iscsitarget-0.4.13# make install
`usr/ietd' -> `/usr/sbin/ietd'
`usr/ietadm' -> `/usr/sbin/ietadm'
if [ -f /etc/debian_version ]; then \
                install -vD -m 755 etc/initd/initd.debian /etc/init.d/iscsi-target; \
        elif [ -f /etc/redhat-release ]; then \
                install -vD -m 755 etc/initd/initd.redhat /etc/init.d/iscsi-target; \
        elif [ -f /etc/gentoo-release ]; then \
                install -vD -m 755 etc/initd/initd.gentoo /etc/init.d/iscsi-target; \
        elif [ -f /etc/slackware-version ]; then \
                install -vD -m 755 etc/initd/initd /etc/rc.d/iscsi-target; \
        else \
                install -vD -m 755 etc/initd/initd /etc/init.d/iscsi-target; \
        fi
`etc/initd/initd.debian' -> `/etc/init.d/iscsi-target'
install: creating directory `/lib/modules/2.6.17-2-k7/kernel/iscsi'
`kernel/iscsi_trgt.ko' -> `/lib/modules/2.6.17-2-k7/kernel/iscsi/iscsi_trgt.ko'
depmod -aq
deb261:~/iscsitarget-0.4.13#

1.3 配置iet, 复制iscsitarget-0.4.13/etc/ietd.conf到/etc下, 作为iet配置的蓝本, ietd.conf中包含了一个示例配置, 可用的参数都以注释的方式给出, 建议在修改设置时, 保留原先的行, 并在这行的下一行增加内容.

iet可以将块设备, 文件, lvm卷, 以及raid卷作为块设备映射给iscsi initiator. 下面的配置将一个物理磁盘和一个文件映射为2个块设备给iscsi initiator

Lun 0 Path=/dev/sdb,Type=fileio
Lun 1 Path=/root/iscsidisk,Type=fileio


1.4 启动iet, 运行

/etc/init.d/iscsitarget start

启动iet, 启动后可以在进程中看到iet的用户进程和内核模块. 下面是iet启动后, ps输出的部分内容

root      4389     1  0 00:21 ?        00:00:00 /usr/sbin/ietd
root      4390     6  0 00:21 ?        00:00:00 [istd1]
root      4391     6  0 00:21 ?        00:00:00 [istiod1]
root      4392     6  0 00:21 ?        00:00:00 [istiod1]
root      4393     6  0 00:21 ?        00:00:00 [istiod1]
root      4394     6  0 00:21 ?        00:00:00 [istiod1]
root      4395     6  0 00:21 ?        00:00:00 [istiod1]
root      4396     6  0 00:21 ?        00:00:00 [istiod1]
root      4397     6  0 00:21 ?        00:00:00 [istiod1]
root      4398     6  0 00:21 ?        00:00:00 [istiod1]

如果希望系统启动后自动启动iet, 则应在/etc/rc2.d目录中建立指向/etc/init.d/iscsitarget的链接.


1.5 杂项, 我曾用如下配置:

#MaxConnections         1
MaxConnections         2
#InitialR2T             Yes
#ImmediateData          No
ImmediateData          Yes

将iet作为两节点的suncluster + oracle rac(x86_64)集群. 今天看了看ietd.conf的手册,  手册中MaxConnections应该被设置为1, 但未说明理由.

1.6 11/19/2007更新:

今天发现iet已经进入sid, 可使用apt-get install iscsitarget进行安装。
阅读(3603) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~