如何进行Linux环境iSCSI存储及多路径功能配置

这篇文章将为大家详细讲解有关如何进行Linux环境iSCSI存储及多路径功能配置,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

公司主营业务:网站制作、成都做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联建站是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联建站推出建安免费做网站回馈大家。

一.概述

工作中遇到大存储,多分区挂载linux出现多路径,根据此文配置多路径,介绍在Linux OS环境下iSCSI存储设备连接安装配置使用方法和步骤,特别是Linux操作系统提供的Mutipath多路径功能作为Linux平台下多路径主要可选方案之一,在本文中有重点介绍和讲述。

二.安装配置步骤和方法

2.1客户端安装iSCSI包

(1)服务器安装iscsi initiator包。安装包从OS安装光盘中找到。是否安装成功将可以通过以下命令行确认

[root@localhost ~]# rpm -qa|grep iscsi

iscsi-initiator-utils-6.2.0.872-10.el5

(2)在/etc/iscsi/目录下/etc/iscsi/initiatorname.iscsi 

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

2.2划分磁盘阵列磁盘空间

基于磁盘阵列设备手册在磁盘阵列上做好RAID配置后,并成功将LUN映射到服务器,需要根据应用需要对磁盘空间进行合理规划使用.

磁盘阵列配置步骤方法不同设备会存在差异,需要依据相应设备手册配置使用。

2.3启动iSCSI设备

(1)在服务器端,启动ISCSI服务:

[root@localhost ~]# service iscsi start

(2)查询ISCSI设备(HP storageworks  P2000G3)target的iqn号码:(必须)

[root@localhost ~]# iscsiadm -m discovery -t sendtargets -p 192.168.100.102

192.168.100.102:3260,1 iqn.1986-03.com.hp:storage.p2000g3.114513bbf6

(3)登陆到iSCSI存储设备

[root@localhost ~]# iscsiadm -m node -T iqn.1986-03.com.hp:storage.p2000g3.114513bbf6 –p

192.168.100.102:3260 -l

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

(4)查看磁盘:

[root@localhost ~]# fdisk -l

Disk /dev/cciss/c0d0: 146.7 GB, 146778685440 bytes

255 heads, 32 sectors/track, 35132 cylinders

Units = cylinders of 8160 * 512 = 4177920 bytes

Disk /dev/sda: 10999.9 GB, 10999999954944 bytes

255 heads, 63 sectors/track, 1337340 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sda doesn't contain a valid partition table

Disk /dev/sdb: 10999.9 GB, 10999999954944 bytes

255 heads, 63 sectors/track, 1337340 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn't contain a valid partition table

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

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

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

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

[root@localhost ~]# iscsiadm -m node

192.168.100.102:3260,1 iqn.1986-03.com.hp:storage.p2000g3.114513bbf6

192.168.100.101:3260,2 iqn.1986-03.com.hp:storage.p2000g3.114513bbf6

2.4安装DM-multipath 软件包

由于需要实现存储设备的多路径访问及故障切换,故需要运行multipath服务,这个在os中已经安装好了。如没有执行下面的命令。Multipath服务原理为iSCSI磁阵中的一个真实的virtual disk通过与2个冗余阵列控制器连接的端口对外提供映射,故服务器上可以看到两个物理磁盘,但此磁盘对应一个真实的一个真实的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

2.5 配置文件的修改和创建

(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 关系。断掉其中一根线路,那么系统自动切换到另外一条。

[root@localhost ~]# multipath -ll

mpath3 (3600508b4000a5bfd0000b00000200000) dm-2 HP,P2000G3

[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]

mpath2 (3600508b4000a5bfd0000b000001a0000) dm-1 HP,P2000G3

[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]

mpath4 (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/mpath2

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

fdisk /dev/mapper/mpath2

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

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

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

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

Disk /dev/dm-1: 10982.1 GB, 10982198870016 bytes

255 heads, 63 sectors/track, 1335176 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/dm-1 doesn't contain a valid partition table

mkfs.ext3 /dev/mapper/mpath0p1

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

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

chkconfig multipathd on

(8)其他注意事项:

①删除失效的iscsi 连接:如果因为错误配置等原因创建了iscsi 对应,系统不会自动删除,需手动删除。例如:

[root@localhost ~]# iscsiadm -m node

192.168.1.252:3260,3 iqn.1986-03.com.hp:storage.p2000g3.114513bbf6

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

②删除命名:

iscsiadm -m node -o delete –T iqn.1986-03.com.hp:storage.p2000g3 -p 192.168.1.252:3260

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

[root@localhost ~]# 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

查看多链路状态:

[root@localhost 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"

mpath3 (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]

mpath2 (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]

mpath4 (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]

三.         总结

    随着iSCSI存储技术的发展和普及,iSCSI存储产品在电信行业应用越来越多,掌握iSCSI存储在不同应用环境下的配置和使用非常必要,而Linux提供的多路径方案作为一种开放的应用解决方案也为用户应用方案配套提供了更灵活的选择。

机器重启后LVM和LUN识别问题:

1、修改initrd初始化模块队列,添加FC驱动模块:

[root@localhost ~]# grep MOD /etc/sysconfig/kernel

INITRD_MODULES="sata_nv mptsas reiserfs qla2xxx qla2400"

MODULES_LOADED_ON_BOOT=""

2、重新制作initrd:

# cd /boot/

[root@localhost boot]# cp initrd-2.6.5-7.244-smp initrd-2.6.5-7.244-smp-bak20090416

[root@localhost boot]#  mkinitrd -k vmlinuz-2.6.5-7.244-smp -i initrd-2.6.5-7.244-smp

3、重启系统自动识别LVM等LUN设备:

[root@localhost boot]#  reboot

关于如何进行Linux环境iSCSI存储及多路径功能配置就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


文章名称:如何进行Linux环境iSCSI存储及多路径功能配置
链接地址:http://scyanting.com/article/jjhgig.html