引言

随着信息系统应用的复杂和多样化,存储越来越受到企业关注,存储的需求也越来越多样化。NetBSD在近期的HEAD(CURRENT)代码中加入了对iSCSI服务的支持,下面就让我们来看看如何利用NetBSD来构建一个基本的SAN(Storage Area Network)环境。

开启iSCSI服务

首先要使用iSCSI服务,您得更新您的系统到HEAD版本,本文使用的NetBSD版本信息如下:

# uname -a
NetBSD 3.99.16 NetBSD 3.99.16 (GENERIC) #0: Sun Mar 5 09:59:31 UTC 2006 builds@works.netbsd.org:/home/builds/ab/HEAD/i386/200603050000Z-obj/home/builds/ab/HEAD/src/sys/arch/i386/compile/GENERIC i386

假如您的NetBSD版本过低,您能够到ftp://ftp.netbsd.org/pub/NetBSD-daily/HEAD下载安装包,或使用cvs同步源代码,并升级您的NetBSD,这里就不周详介绍,具体升级方法请参见NetBSD Guide.

现在NetBSD对iSCSI的支持是用一个用户状态的守护进程iscsi-target来实现的,他位于/usr/sbin/iscsi- target。这里有两个概念需要简单的介绍一下,在服务端提供iSCSI存储服务的存储对像称为target,一个服务端能够有多个target,使用 iSCSI服务的客户端称为initiator。

NetBSD上iSCSI的默认配置文档为/etc/iscsi/targets,他包含了每个target的描述,他的内容如下:

# $NetBSD: targets,v 1.2 2006/02/16 19:30:57 agc Exp $
#
# Structure of this file:
#
# an extent is a straight (offset, length) pair of a file or device
# it's the lowest common storage denominator
# at least one is needed
# a device is made up of one or more extents or other devices
# devices can be added in a hierachical manner, to enhance resilience
# in this example, no device definitions are necessary, as the target
# will just use a simple extent for persistent storage
# a target is made up of 1 or more devices
# The code does not support RAID1 recovery at present

# Simple file showing 1 extent, mapped straight into 1 target

# extent file or device start length
extent0 /tmp/iscsi-target0 0 100MB

# target flags storage netmask
target0 rw extent0 0.0.0.0/0


其中,extent指定了iSCSI数据的存储位置,而target则是iSCSI提供给客户端(initiator)的存储点,客户端将通过他来完成具体的存储请求。

上面配置文档中的具体含义是:定义了一个extent存储介质extent0,他将使用文档/tmp/iscsi-target0来存储数据,数据存储从文档头部开始,容量为100MB;定义了一个target存储点target0,权限为rw(读和写),他使用先前定义的存储介质extent0来进行存储,该存储点允许IP段为 0.0.0.0/0 的机器访问。

接下来是启用iSCSI服务,在/etc/rc.conf中增加如下行:

iscsi_target=YES

接下来便能够启动iSCSI服务了:
# /etc/rc.d/iscsi_target start

假如您的配置正确,您将会看到类似以下的启动信息:
Starting iscsi_target.
Reading configuration from `/etc/iscsi/targets'
target0:rw:0.0.0.0/0
extent0:/tmp/iscsi-target0:0:104857600

DISK: 1 logical units (204800 blocks, 512 bytes/block), type iscsi fs
DISK: LU 0: 100 MB disk storage for "target0"
TARGET: TargetName is iqn.1994-04.org.netbsd.iscsi-target


这表示iSCSI服务已启动成功,是不是很简便呢?
客户端连接iSCSI服务

现在iSCSI服务已开始工作了,下面就是用客户端连接上iSCSI,以检测我们之前的工作是否正确。

这里我使用的客户端是Microsoft iSCSI Initiator 2.01 x86,您能够从http://download.microsoft.com/download/a/e/9/ae91dea1-66d9-417c- ade4-92d824b871af/Initiator-2.01-QFE-908935-x86fre.exe 得到他,需要注意的是,他只支持Windows 2000 SP3及以上的Windows版本。下载完并安装好后,您会在桌面上看到一个名为Microsoft iSCSI Initiator的图标,双击打开后,能够看到Microsoft iSCSI Initiator窗口,如图1。

issue17_iscsi1.png
图1

点击Discovery标签,再点击Add按钮,出现增加Target Portal的对话杠,输入您的NetBSD服务器的IP地址,然后点确定,如图2。

issue17_iscsi2.png
图2

这里就能够看到您的NetBSD服务器的IP已添加到Target Portals中,点击Targets标签,您将看到刚才我们配置的存储点target0,假如没有出现,请点击Refresh按钮刷新,如图3,点击 Log On铵钮,出现登录框,直接点击OK即可,如图4。

issue17_iscsi3.png
图3
issue17_iscsi4.png
图4

登录成功后,您能够看到Targts中的状态已变为Connected,同时NetBSD上的/var/log/messages中您也能够看到一条类似以下的initiator登录提示信息:

Mar 30 09:07:59 iscsi-target: > Normal login from iqn.1991-05.com.microsoft:minilab on 192.168.0.9

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!