Linux安装管理ISCSI卷(initiator端)

langzixiaomu 2011-04-03

Internet SCSI(iSCSI)是一种网络协议,使用TCP/IP网络来传输SCSI协议。它是代替FC(Fibre Channel-based,光纤通道?) SAN的很好选择。你可以在Linux下方便的管理、挂载、格式化iSCSI卷,它允许通过网络访问SAN存储设备。

Open-iSCSI 项目

Open-iSCSI项目实现了一个高性能、独立传输、支持多平台的iSCSI应用。Open-iSCSI分为应用层(user)和内核层(kernel)两部分。

以下的说明基于:

[a] RHEL 5

[b] CentOS 5

[c] Fedora 7

[d] Debian / Ubuntu Linux

安装所需的包

RHEL/CentOS/Febra

iscsi-initiator-utils ——这个安装包由一个iSCSI协议的服务端程序,和管理这个服务端的工具组成。iSCSI通过网络层协议传输SCSI命令来读取分布的磁盘。安装这个包可以通过如下命令:

# yum install iscsi-initiator-utils

Debian/Ubuntu Linux

如果使用的是Debian或者Ubuntu操作系统,可以通过如下命令:

$ sudo apt-get install open-iscsi

ISCSI设置

使用iSCSI存储需要配置如下步骤:

1.通过init.d下的脚本或者手动启动iSCSI。需要修改/etc/iscsi/iscsid.conf配置文件。

2.寻找网络上的targets(存储的服务端,通常是SAN)。

3.当下次重启系统时,自动登录target。

4.获得iSCSI taget端的用户名、密码和存储服务器的IP地址或者主机名。

Step # 1:配置iSCSI

通过vi打开/etc/iscsi/iscsid.conf:

# vi /etc/iscsi/iscsid.conf

设置用户名和密码(当target端设置CHAP验证时必需,如果target端没有设置CHAP验证,可以跳过):

node.session.auth.username = My_ISCSI_USR_NAME
node.session.auth.password = MyPassword
discovery.sendtargets.auth.username = My_ISCSI_USR_NAME
discovery.sendtargets.auth.password = MyPassword

这里:

node.session.* target端设置的CHAP权限验证中的用户名和密码
discovery.sendtargets.* is used to set a discovery session CHAP username and password for the initiator authentication by the target(s) 搜索过程中使用的CHAP权限验证用户名和密码
也可以设置其它的选项,可以参考man下面的说明。现在开始运行iSCSI服务程序:

# /etc/init.d/iscsi start

Step # 2:搜索targets

现在就可以通过iscsiadm命令,来搜索和登录到iSCSI的targets,同时它也可以读取和访问open-iscsi提供的数据库。如果你的存储服务器的ip地址为 192.168.1.5,输入:

# iscsiadm -m discovery -t sendtargets -p 192.168.1.5
# /etc/init.d/iscsi restart

实际搜索、登录targets端的过程可能比这复杂,可以参考Ubuntu 下iscsi initiator的安装与使用

现在,就可以看到在/dev/目录下多出了一个块设备,要获得这个设备的名称,输入:

# fdisk -l

或者

# tail -f /var/log/messages

会看到如下输出:

Oct 10 12:42:20 ora9is2 kernel:   Vendor: EQLOGIC   Model: 100E-00           Rev: 3.2
Oct 10 12:42:20 ora9is2 kernel:   Type:   Direct-Access                      ANSI SCSI revision: 05
Oct 10 12:42:20 ora9is2 kernel: SCSI device sdd


: 41963520 512-byte hdwr sectors (21485 MB)
Oct 10 12:42:20 ora9is2 kernel: sdd: Write Protect is off
Oct 10 12:42:20 ora9is2 kernel: SCSI device sdd: drive cache: write through
Oct 10 12:42:20 ora9is2 kernel: SCSI device sdd: 41963520 512-byte hdwr sectors (21485 MB)
Oct 10 12:42:20 ora9is2 kernel: sdd: Write Protect is off
Oct 10 12:42:20 ora9is2 kernel: SCSI device sdd: drive cache: write through
Oct 10 12:42:20 ora9is2 kernel:  sdd: unknown partition table
Oct 10 12:42:20 ora9is2 kernel: sd 3:0:0:0: Attached scsi disk sdd
Oct 10 12:42:20 ora9is2 kernel: sd 3:0:0:0: Attached scsi generic sg3 type 0
Oct 10 12:42:20 ora9is2 kernel: rtc: lost some interrupts at 2048Hz.
Oct 10 12:42:20 ora9is2 iscsid: connection0:0 is operational now/dev/sdd 就是新加入的块设备

Step # 3:格式化并挂载iSCSI卷

可以使用fdisk对/dev/sdd进行分区,再用mkfs.ext3在/dev/sdd上创建文件系统,命令如下:

# fdisk /dev/sdd

......
# mke2fs -j -m 0 -O dir_index /dev/sdd1    #格式化


或者

# mkfs.ext3 /dev/sdd1                            #格式化

提示:如果卷大于1TB,则可以使用nohup在后台运行mkfs.ext3:

# nohup mkfs.ext3 /dev/sdd1 &

挂载新分区:

# mkdir /mnt/iscsi
# mount /dev/sdd1 /mnt/iscsi

Step # 4:当下次启动系统时自动挂载iSCSI设备

首先,确定iscsi服务能够在系统启动时运行:

# chkconfig iscsi on

再打开/etc/fstab文件,增加如下设置:

/dev/sdd1 /mnt/iscsi ext3 _netdev 0 0

保存后退出

如果想深入了解,可以参考以下文档

Official Open iSCSI documentation
Read iscsiadm and related man pages

相关推荐