1、MPIO登录linux环境下iSCSI及MPIO配置指南 首页 最新改动 创建网页 网页分类 查找网页 标题索引 随机网页 网页流量 帮助目录 帮助索引 linux环境下iSCSI及MPIO配置指南 编辑 备注 信息 附件 窗体顶端窗体底端目录 1. 简介 2. 准备工具 3. 环境配置 4. 使用iscsiadm连接target 5. 使用multipth建立设备映射 6. MPIO测试 7. 参考文档及注解简介 本文介绍在linux(ubuntu、redhat/centos)环境下通过多路径(multipath)连接iSCSI设备,并配置设备映射实现 MPIO 功能。 MPIO是利用多条实
2、体存取通道,在服务器(iSCSI Initiator段)与存储设备(iSCSI Target端)之间建立逻辑通道,可透过轮替的存取动作,避免单一实体通道中断时,连带导致存取中断;或是平衡多个实体通道间的传输负载,避免传输负荷集中在单一实体通道上。也就是说,允许1个iSCSI Initiator透过多个Session连入同1个iSCSI Target设备,以便利用多网卡或iSCSI HBA启用负载平衡与故障失效切换机制,也可称作Multiple Sessions per Initiator。 准备工具 ubuntu: o open-iscsi - High performance, transp
3、ort independent iSCSI implementation o open-iscsi-utils - iSCSI initiatior administrative utility o multipath-tools - maintain multipath block device access redhat/centos: o iscsi-initiator-utils.i386 : iSCSI daemon and utility programs o device-mapper-multipath.i386 : 用 device-mapper 管理多路径设备的工具。 ub
4、untu下使用apt-get安装,redhat/centos下使用yum安装。 ubuntu和redhat/centos下的工具略有不同,但使用方法相同。都是通过/etc/init.d目录下的脚本启动、停止。配置命令都是iscsiadm和multipath。 不同之处,iscsi的脚本不同,ubuntu下是open-iscsi,redhat/centos下是iscsi和iscsid。redhat/centos下探测到target的同时设置了开机自动登录,而ubuntu不会设置自动登录。 以下操作都在CentOS 5.4下进行。 环境配置 target:MS1000I-G2 o 双网口 eth0
5、 192.168.100.190 eth1 192.168.101.190 o 4块盘做raid5,映射一个20G的用户数据卷 initiator:CentOS 5.4 安装在win2003的vm虚拟机上,双网口分别桥接在win2003的两个网口上 o 双网口 eth0 192.168.100.199 eth1 192.168.101.199 o 只有一块本地硬盘 四个网口通过交换机连接组成2条链路。如果四个网口配置在同一网段,就会有4条链路。 使用iscsiadm连接target 命令帮助 rootlocalhost # iscsiadm -h iscsiadm -m discovery -
6、hV -d debug_level -P printlevel -t type -p ip:port -I ifaceN . -l | -p ip:port -o operation -n name -v value iscsiadm -m node -hV -d debug_level -P printlevel -L all,manual,automatic -U all,manual,automatic -S -T targetname -p ip:port -I ifaceN -l | -u | -R | -s -o operation -n name -v value iscsiad
7、m -m session -hV -d debug_level -P printlevel -r sessionid | sysfsdir -R | -u | -s -o operation -n name -v value iscsiadm -m iface -hV -d debug_level -P printlevel -I ifacename -o operation -n name -v value iscsiadm -m fw -l iscsiadm -m host -P printlevel -H hostno iscsiadm -k priority iface介绍 o ifa
8、ce就是initiator本地的接口,用来探测,连接target。默认存在两个iface接口,default和iser。default使用tcp协议。iser是使用iser协议(注1)。iface中可配置的参数参见下面命令的输出结果。不指定iface时会逐个使用所有可用的iface接口。自定义iface接口后可灵活的通过多路径连接target。比如上面环境配置的说的四个网口配置在同一网段会有4条链路,就需要自定义两个iface接口,各使用一个网口的ip(同时也需要配置高级路由保证两个网口独立工作)。否则默认使用default接口,只会使用一个ip。 o 相应的,target端有portal接口
9、,就是网络监听的端口ip:port,默认会监听所有ip的3260端口。(参见下面 探测target 章节) o 查看系统预定义的接口 o rootlocalhost # iscsiadm -m iface o default tcp,o iser iser,o o rootlocalhost # iscsiadm -m iface -I defaulto # BEGIN RECORD 2.0-871o iface.iscsi_ifacename = defaulto _ifacename = o iface.ipaddress = o iface.hwaddress = o iface.tra
10、nsport_name = tcpo iface.initiatorname = o # END RECORDo o rootlocalhost # iscsiadm -m iface -I isero # BEGIN RECORD 2.0-871o iface.iscsi_ifacename = isero _ifacename = o iface.ipaddress = o iface.hwaddress = o iface.transport_name = isero iface.initiatorname = # END RECORDo 下面演示了如何自定义、修改、删除iface接口。
11、 o rootlocalhost # iscsiadm -m iface -I iface0 -o newo New interface iface0 addedo o rootlocalhost # iscsiadm -m iface -I iface0 -o update -n _ifacename -v eth0o iface0 updated.o o rootlocalhost # iscsiadm -m iface -I iface0 -o update -n iface.ipaddress -v 192.168.100.199o iface0 updated.o o rootloc
12、alhost # iscsiadm -m iface -I iface0o # BEGIN RECORD 2.0-871o iface.iscsi_ifacename = iface0o _ifacename = eth0o iface.ipaddress = 192.168.100.199o iface.hwaddress = o iface.transport_name = tcpo iface.initiatorname = o # END RECORDo o rootlocalhost # iscsiadm -m iface -I iface0 -o deleteiface0 unbo
13、und and deleted. 探测target o 测试环境中网口设置在不同网段,不需要自定义iface接口,target ip使用其中任意一个即可。 o rootlocalhost # iscsiadm -m discovery -t sendtargets -p 192.168.100.190o 192.168.100.190:3260,1 iqn.2010-06.iscsiraid:raid-271800034C:default-target192.168.101.190:3260,1 iqn.2010-06.iscsiraid:raid-271800034C:default-tar
14、geto 返回了两条记录,同一个target名字,两个portal接口。使用下面方式查看更清晰,本地iface接口是default。 o rootlocalhost # iscsiadm -m node -P 1o Target: iqn.2010-06.iscsiraid:raid-271800034C:default-targeto Portal: 192.168.100.190:3260,1o Iface Name: defaulto Portal: 192.168.101.190:3260,1 Iface Name: defaulto 还可以查看更详细的信息(因输出太多,一部分没有粘出
15、来) o rootlocalhost # iscsiadm -m node -T iqn.2010-06.iscsiraid:raid-271800034C:default-targeto # BEGIN RECORD 2.0-871o node.name = iqn.2010-06.iscsiraid:raid-271800034C:default-targeto node.tpgt = 1o node.startup = automatico iface.hwaddress = o iface.ipaddress = o iface.iscsi_ifacename = defaulto _
16、ifacename = o iface.transport_name = tcpo iface.initiatorname = o node.discovery_address = 192.168.100.190o node.discovery_port = 3260o node.discovery_type = send_targetso . .o node.conn0.address = 192.168.100.190o node.conn0.port = 3260o node.conn0.startup = manualo . .o # END RECORDo # BEGIN RECOR
17、D 2.0-871o node.name = iqn.2010-06.iscsiraid:raid-271800034C:default-targeto node.tpgt = 1o node.startup = automatico iface.hwaddress = o iface.ipaddress = o iface.iscsi_ifacename = defaulto _ifacename = o iface.transport_name = tcpo iface.initiatorname = o node.discovery_address = 192.168.100.190o
18、node.discovery_port = 3260o node.discovery_type = send_targetso . .o node.conn0.address = 192.168.101.190o node.conn0.port = 3260o node.conn0.startup = manualo . .# END RECORD也是返回两条记录,除了node.conn0.address是target的2个ip外,其余都相同。如果使用 -p 指定其中一个ip,就只返回该ip的那条记录。 o node.startup的值为automatic,开机自动登录,如果不需要自动登录,将
19、其值设置为 manual。不指定ip时两条记录都会修改,只改一条的话需要指定相应的ip,如下所示: o rootlocalhost # iscsiadm -m node -T iqn.2010-06.iscsiraid:raid-271800034C:default-target -p 192.168.100.190 -o update -n node.startup -v manualo o rootlocalhost # iscsiadm -m node -T iqn.2010-06.iscsiraid:raid-271800034C:default-target -p 192.168.1
20、00.190o # BEGIN RECORD 2.0-871o node.name = iqn.2010-06.iscsiraid:raid-271800034C:default-targeto node.tpgt = 1o node.startup = manualo iface.hwaddress = o iface.ipaddress = o iface.iscsi_ifacename = defaulto _ifacename = o iface.transport_name = tcpo iface.initiatorname = o node.discovery_address =
21、 192.168.100.190o node.discovery_port = 3260o node.discovery_type = send_targetso . .o node.conn0.address = 192.168.100.190o node.conn0.port = 3260o node.conn0.startup = manualo . .# END RECORD 登录target rootlocalhost # iscsiadm -m node -T iqn.2010-06.iscsiraid:raid-271800034C:default-target -l Loggi
22、ng in to iface: default, target: iqn.2010-06.iscsiraid:raid-271800034C:default-target, portal: 192.168.100.190,3260 Logging in to iface: default, target: iqn.2010-06.iscsiraid:raid-271800034C:default-target, portal: 192.168.101.190,3260 Login to iface: default, target: iqn.2010-06.iscsiraid:raid-271
23、800034C:default-target, portal: 192.168.100.190,3260: successful Login to iface: default, target: iqn.2010-06.iscsiraid:raid-271800034C:default-target, portal: 192.168.101.190,3260: successful rootlocalhost # fdisk -l Disk /dev/sda: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylind
24、ers Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 2610 20860402+ 8e Linux LVM Note: sector size is 4096 (not 512) Disk /dev/sdb: 20.0 GB, 20000014336 bytes 64 heads, 32 sectors/track, 2384 cylinders Units = cylin
25、ders of 2048 * 4096 = 8388608 bytes Disk /dev/sdb doesnt contain a valid partition table Note: sector size is 4096 (not 512) Disk /dev/sdc: 20.0 GB, 20000014336 bytes 64 heads, 32 sectors/track, 2384 cylinders Units = cylinders of 2048 * 4096 = 8388608 bytes Disk /dev/sdc doesnt contain a valid part
26、ition tableo 没有指定target的ip,会自动登录到target的所有portal接口。可以通过session命令看到详细的连接信息。 o 使用fdisk查看多出来2块20G的硬盘,在target端对应同一个用户数据卷,每块硬盘代表一个链路,将2块硬盘映射为一块就实现了MPIO。 使用multipth建立设备映射 命令帮助 (详细介绍请参见参考文档 MultipathUsageGuide) rootlocalhost # multipath -h multipath-tools v0.4.7 (03/12, 2006) Usage: multipath -v level -d -
27、h|-l|-ll|-f|-F|-r -p failover|multibus|group_by_serial|group_by_prio device -v level verbosity level 0 no output 1 print created devmap names only 2 default verbosity 3 print debug information -h print this usage text -b file bindings file location -d dry run, do not create or update devmaps -l show
28、 multipath topology (sysfs and DM info) -ll show multipath topology (maximum info) -f flush a multipath device map -F flush all multipath device maps -r force devmap reload -p policy force all maps to specified policy : failover 1 path per priority group multibus all paths in 1 priority group group_
29、by_serial 1 priority group per serial group_by_prio 1 priority group per priority lvl group_by_node_name 1 priority group per target node device limit scope to the devices multipath (udev-style $DEVNAME reference, eg /dev/sdb or major:minor or a device map name) 建立默认设备映射 o 直接执行multipath就可以自动检测所有设备,将多个相同的设备映射为一个设备。新设备在/dev/mapper/目录下。 o rootlocalhost # multipatho
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1