如何为iSCSI设置Ubuntu Server 11.04

Ubuntu Server适用的角色有很多。很多情况下给一台服务器分派多个角色是可能的。你初次安装一台Ubuntu Server时,你会得到一个选项列表,包括OpenSSH、DNS、LAMP、Mail、PostgreSQL数据库、Print、Samba、 Tomcat Java和Virtual Machine主机。

使用虚拟化可以将不同的角色托管成单独的虚拟机(VM)实例,不需要停掉其它服务就可以轻松地执行更新和系统重启。对于存储角色,你可以运用 Samba安装一个文件服务器。但是,在现今的企业环境中,你更可能发现使用iSCSI的NAS,而Ubuntu Server 11.04可以胜任这一任务。一个NAS iSCSI存储服务器不是安装菜单中可配置的一个角色,但它安装起来并不难。针对该存储角色安装一台服务器的关键在于硬件(多个磁盘空间)的结合,加上正确的软件模块和配置。在本文中,我将谈到正确配置所有事情的必要条件以及安装完成后如何管理系统。

设置Ubuntu 11.04为iSCSI目标

只要你熟悉命令行,将Ubuntu server配置成iSCSI目标并不难。你要做的第一件事就是安装iscsitarget数据包。你要通过下面命令行:

aptitude install iscsitarget

该过程结束后,你必须编辑文件/etc/default/iscsitarget并将选项从错误改为正确。命令行与下面类似:

ISCSITARGET_ENABLE=true

iscsitarget模块用多种方式处理安全问题。使用文件/etc/initiators.allow可以在一个IP地址的基础上指定访问。默认情况下,该文件拥有“ALL ALL”的入口,这意味着它给了所有申请者访问所有目标的权利。

开始该服务要输入:

/etc/init.d/iscsitarget start

这时候没有任何可用的目标,但是你可以通过查看iscsitarget模块来看到服务运行,它运用端口3260来进行所有通讯。有–i参数的打开文件列表命令可以用来确定任意过程是否连接到这个端口:

# lsof -i:3260 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME ietd

1356 root 8u IPv4 8958 0t0 TCP *:3260 (LISTEN)

ietd 1356 root 9u IPv6 8959 0t0 TCP *:3260 (LISTEN)

网络状态命令联合grep也会检查端口3260上的活动:

netstat -apne   grep 3260

创建一个iSCSI目标设备有很多种不同的选择。这其中包括一个物理设备、一个逻辑卷,或一个文件。由于文件存储设备的驱动类型不同,基于文件的设备会有性能问题。下面的命令用来创建一个空白的20 GB文件,你可以将其用作基于文件的目标:

dd if=/dev/zero of=/storage/lun1.img bs=1024k count=20000

添加目标卷需要编辑ietd.conf文件。它是用于iSCSI Enterprise Target daemon(ietd)的配置文件。在Ubuntu Server 11.04中,该文件保存在/etc/iet directory.Ubuntu Server的之前版本将该文件放在/etc directory中。在该文件中,很多文件都用#添加注释。你需要变更的第一行就是Target行:

Target iqn.2001-04.com.example:storage.disk2.lun1

你需要变更的第二行是规定LUN 0的行。LUN数必须从0开始,且每一个目标都必须有LUN 0:

Lun 0 Path=/storage/lun1.img,Type=fileio

完成后,运用下面的命令重启iscsitarget模块:

/etc/init.d/iscsitarget restart