这是我在实际工程中所做的一个文档,拿出来给大家分享,如有异议,欢迎探讨。
目录
一:客户端安装iscsi包。
二:zai共享存储上为服务器划分磁盘空间。
三:启用iscsi设备。
四:安装dm-multipath包。
五:配置参数修改和测试。
 
一;客户端添加iscsi 安装包。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 
1 、服务器安装 iscsi initiator 包。安装包从安装光盘中找到

 

[email]root@bhnfs1.baihui.com[/email]~> rpm -qa |grep iscsi

iscsi-initiator-utils-6.2.0.868-0.7.el5

 

2 、在 /etc/iscsi/ 目录下 /etc/iscsi/initiatorname.iscsi  

查看此文件可发现主机端的 iqn 号码。在 EVA command view 管理软件中添加 HOST 时需用到。

二:为服务器划分磁盘阵列的磁盘空间(即Virtual disk

 
具体详见存储配置。
 

三:启用ISCSI设备

 
1 、在服务器端,启动 ISCSI 服务:

 

[email]root@bhnfs1.baihui.com[/email]~> service iscsi start

 

2 、查询 ISCSI 设备( HP storageworks mpx100 target iqn 号码:(必须

 

[email]root@bhnfs1.baihui.com[/email]~> iscsiadm -m discovery -t sendtargets -p 192.168.14.1

 

192.168.14.1:3260,0 iqn.1986-03.com.hp:fcgw.mpx100.0.50014380025bad30.50014380025bad38

 

3 、登陆到 ISCSI 存储设备

[root@localhost~]# Iscsiadm –m node –T iqn.1986-03.com.hp:fcgw.mpx100.0.50014380025bad30.50014380025bad38 -p 192.168.14.1:3260 – l

 

上面命令是连续的,其中 iqn 号码为上面查询得到的号码, ip iscsi 存储中iscsi口 对外映射的地址。

 

4 、查看磁盘 :

 

[root@localhost ~]# fdisk -l

 

Disk /dev/sda: 8795 MB, 8795105280 bytes

255 heads, 63 sectors/track, 1069 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

Device Boot Start End Blocks Id System

/dev/sda1 * 1 941 7558551 83 Linux

/dev/sda2 942 1068 1020127+ 82 Linux swap / Solaris

 

Disk /dev/sdb: 10.4 GB, 10487232000 bytes

255 heads, 63 sectors/track, 1275 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

Device Boot Start End Blocks Id System

 

得到新的盘符

 

5 、同样的方法添加另外一个 ISCSI 路径的 target

(说明:一个 mpx100 的一个 ISCSI 端口有一个 iqn 号和一个 ip 地址)

添加成功后 fdisk –l 应该可以看到两个盘符。他们的容量都一样。这两个盘符对应的是同一个磁盘阵列下的同一个 LUN

 

6 :映射完成之后使用下面命令查看映射结果:

[email]root@bhnfs1.baihui.com[/email]~> iscsiadm -m node

192.168.14.1:3260,0 iqn.1986-03.com.hp:fcgw.mpx100.0.50014380025bad30.50014380025bad38

192.168.14.3:3260,0 iqn.1986-03.com.hp:fcgw.mpx100.0.50014380025bad30.50014380025bad3c

 

五:安装DM-multipath 软件包

 
由于需要实现存储设备的多路径访问及故障切换,故需要运行 multipath 服务,这个在 centos 中已经安装好了。如没有执行下面的命令。

(原理为EVA4400中的一个真实的virtual disk通过与2个冗余阵列控制器连接的2MPX100B对外提供映射,故服务器上可以看到两个物理磁盘,但此磁盘对应一个真实的一个真实的virtual disk,故这两条路径间可以实现故障切换和负载均衡)

rpm –ivh device-mapper-1.02.13-6.9.i686.rpm

rpm –ivh multipath-tools-0.4.7-34.18.i686.rpm

安装完成后,使用命令modprobe dm_multipath来加载相应的模块,

可以使用lsmod |grep dm_multipath来检查安装是否正常。

 
六:配置文件的修改及创建

 

1 :     etc/multipath.conf 是多路径软件的配置文件,其中大部分配置是注释掉的,可以将他保存为备用,然后新建一个 multipath.conf 文件,编辑新的配置文件:

 

实际有用的就是下面这些参数:其余参数都可以注释掉:

 

defaults {

user_friendly_names yes

udev_dir /dev

path_grouping_policy multibus

failback immediate

no_path_retry fail

 

}

 

保存退出

 

 

2 :启动服务:

Service multipathd restart

 

启动成功后,我们会在 dev 目录下看到下面的目录:

 

/dev/mapper/mpathn ,

/dev/mpath/mpathn ,

/dev/dm-n .

 

说明 : 其中 /dev/mapper/mpathn 是软件虚拟出来的多路径设备,这个可以被我们用来挂载使用。

/dev/mpath/mpathn 这个是 udev 设备管理器创建的,不能用来挂载。

/dev/dm-n 这个是软件自身使用的,不能被软件以外使用。不可挂载。

 

 

3 : 用 multipath –ll 命令查看到两条活跃路径,他们之间互为 A/A 关系。断掉其中一根线路,那么系统自动切换到另外一条。

 

[email]root@bhnfs1.baihui.com[/email]~> multipath -ll

mpath2 (3600508b4000a5bfd0000b00000200000) dm-2 HP,HSV300

[size=2.0T][features=0][hwhandler=0]

\_ round-robin 0 [prio=2][active]

\_ 1:0:0:2 sdd 8:48 [active][ready]

\_ 2:0:0:2 sdf 8:80 [active][ready]

mpath1 (3600508b4000a5bfd0000b000001a0000) dm-1 HP,HSV300

[size=2.0T][features=0][hwhandler=0]

\_ round-robin 0 [prio=2][active]

\_ 1:0:0:1 sdb 8:16 [active][ready]

\_ 2:0:0:1 sdc 8:32 [active][ready]

mpath3 (3600508b4000a5bfd0000b00000350000) dm-3 HP,HSV300

[size=2.0T][features=0][hwhandler=0]

\_ round-robin 0 [prio=2][active]

\_ 1:0:0:3 sde 8:64 [active][ready]

\_ 2:0:0:3 sdg 8:96 [active][ready]

 

 

4 :在多路径设备创建后,我们就可以像使用实际的物理设备样使用多路径设备了。前提是必须通过下面的命令将其标记为物理卷。

 

pvcreate /dev/mapper/mpath1

 

 

5 :然后对磁盘进行分区和格式化

 

fdisk /dev/mapper/mpath1

 

(说明:这里有很多种说法,我这里是自己经验总结出来的,和官方文档不同,如有异议欢迎讨论)

 

分区之后,会在 dev/mapper/ 目录下创建新的块设备,

 

/dev/mapper/mpath1p1 这个表示 mpath1 设备下面的分区 1.

 

如果没有看到或者不匹配,使用 multipath –F 命令清除多路径设备缓存后,再用 multipath –v3 命令重新加载。

分区之后使用 fdisk –l 命令查看磁盘会看到 dm-1 磁盘下面已经有分区的信息了。

 

****************************************************

isk /dev/dm-1: 2197.9 GB, 2197949513728 bytes

255 heads, 63 sectors/track, 267218 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

Device Boot Start End Blocks Id System

/dev/dm-1p1 1 121577 976567221 83 Linux

 

mkfs.ext3 /dev/mapper/mpath0p1

****************************************************

 

6 :最后将磁盘 mount 挂载,就可以正常使用了。

 

7 :将 multipathd 服务设置成开机自启动

 

chkconfig multipathd on

 

 

8 :注意事项:

 

删除失效的iscsi 连接:

 

如果因为错误配置等原因创建了 iscsi 对应,系统不会自动删除,需手动删除。

 

例如:

 

[root@as-h-01 ~]# iscsiadm -m node

192.168.1.51:3260,1 iqn.2006-01.com.openfiler:tsn.59dc8fc04fa2

 

我们看到上面有一个iscsi对应,但实际中这个对应已经失效,系统不会自动删除。

 

删除命名:

 

iscsiadm -m node -o delete -T iqn.2006-01.com.openfiler:tsn.59dc8fc04fa2 -p 192.168.1.51:3260

 

 

如果其中一条链路出现故障,那么在日志里面我们可以看到如下类似的信息:

 

 

[email]root@bhnfs1.baihui.com[/email]~>tail /var/log/messages

Dec 12 14:03:15 bhnfs1 kernel: iscsi: cmd 0x28 is not queued (8)

Dec 12 14:03:15 bhnfs1 kernel: iscsi: cmd 0x28 is not queued (8)

Dec 12 14:03:15 bhnfs1 multipathd: sdf: readsector0 checker reports path is down

Dec 12 14:03:15 bhnfs1 multipathd: sdg: readsector0 checker reports path is down

Dec 12 14:03:20 bhnfs1 kernel: iscsi: cmd 0x28 is not queued (8)

Dec 12 14:03:20 bhnfs1 multipathd: sdc: readsector0 checker reports path is down

Dec 12 14:03:20 bhnfs1 kernel: iscsi: cmd 0x28 is not queued (8)

Dec 12 14:03:20 bhnfs1 multipathd: sdf: readsector0 checker reports path is down

Dec 12 14:03:20 bhnfs1 kernel: iscsi: cmd 0x28 is not queued (8)

Dec 12 14:03:20 bhnfs1 multipathd: sdg: readsector0 checker reports path is down

 

 

 

[email]root@bhnfs1.baihui.com[/email]/etc>multipath -ll

sdc: checker msg is "readsector0 checker reports path is down"

sdf: checker msg is "readsector0 checker reports path is down"

sdg: checker msg is "readsector0 checker reports path is down"

mpath2 (3600508b4000a5bfd0000b00000200000) dm-2 HP,HSV300

[size=2.0T][features=0][hwhandler=0]

\_ round-robin 0 [prio=1][active]

\_ 1:0:0:2 sdd 8:48 [active][ready]

\_ 2:0:0:2 sdf 8:80 [failed][faulty]

mpath1 (3600508b4000a5bfd0000b000001a0000) dm-1 HP,HSV300

[size=2.0T][features=0][hwhandler=0]

\_ round-robin 0 [prio=1][active]

\_ 1:0:0:1 sdb 8:16 [active][ready]

\_ 2:0:0:1 sdc 8:32 [failed][faulty]

mpath3 (3600508b4000a5bfd0000b00000350000) dm-3 HP,HSV300

[size=2.0T][features=0][hwhandler=0]

\_ round-robin 0 [prio=1][active]

\_ 1:0:0:3 sde 8:64 [active][ready]

\_ 2:0:0:3 sdg 8:96 [failed][faulty]