- 论坛徽章:
- 0
|
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 软件主页http://iscsitarget.sourceforge.net/可以找到最新版本的下载地址, 目前版本为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, 但未说明理由
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/68279/showart_716962.html |
|