Jun 15

[原]使用mdadm创建多路径磁盘设备 不指定

linuxing , 15:13 , 基础知识 » 系统命令 , 评论(1) , 引用(0) , 阅读(31687) , Via 本站原创 | |
 继续昨天的话题,还是mdadm的使用。之前,我们一直都是用mdadm创建RAID阵列。其实,mdadm还有一个选项:multipath。它可以实现硬件支持的多I/O路径指向单SCSI LUNs的功能,用于创建多路径访问的磁盘设备。
一、原理
 多路径存储是为了实现当有硬件损坏或单个SCSI LUNs饱和时,仍可以对数据进行访问。要实现multipath,前提是必须有对应的硬件支持。
 举个例:我们有一个光纤盘柜,主机通过2块HBA卡通过光纤交换机连接到盘柜上,通过配置光纤交换机实现这样的结果:
引用
/dev/sdb-
            |--光纤交换机--200G(盘柜上的同一个空间)
/dev/sdc-

 也就是说,在系统中是看到虽然是分别看到sdb和sdc,但其实他们都是通过光纤交换机,指向同一个盘柜空间。只是访问的路径不同而已。
 有了上述的硬件支持,我们就可以通过mdadm进行配置了。

二、创建
mdadm -C /dev/md0 --level=multipath --raid-devices=2 /dev/sd[bc]1

--level=multipath,会告诉linux内核的md层,在出现I/O路径故障的时候,选择新的访问路径。
echo DEVICE /dev/sd[bc]1 >> /etc/mdadm.conf
mdadm --detail --scan >> /etc/mdadm.conf

修改/etc/mdadm.conf文件,方便以后识别。
mdadm --detail /dev/md0
/dev/md0:
Version : 00.90.01
Creation Time : Wed Jun 14 14:58:54 2006
Raid Level : multipath
Array Size : 1044096 (1019.63 MiB 1069.15 MB)
Raid Devices : 1
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Wed Jun 14 15:44:59 2006
State : clean
Active Devices : 1
Working Devices : 2
Failed Devices : 0
Spare Devices : 1

   Number   Major   Minor   RaidDevice State
      0       8       49        0      active sync   /dev/sdb1
      1       8       17        1      spare   /dev/sdc1
          UUID : 8aca2297:510fe735:0b224387:33e20925
        Events : 0.1

※请注意差别。看上去这些命令和建立RAID1很像。但其实有很大差别:在做RAID时,每个sd设备号都是代表不同的物理磁盘;但在做Multipath时,使用到的sd设备号都是指向相同的公用磁盘驱动器。

三、代替
 今后,我们通过访问/dev/md0,即可对公用的SCSI LUN进行访问,Linux内核会通过每个路径检测到共享的驱动器。当出现硬件故障,或但SCSI LUNs饱和时,即会切换到另一条链路进行访问。
 该方法可替代未能实现failover的HBA卡驱动问题。
Tags: , ,
Yuri Email Homepage
2008/04/24 18:04
不错,我转走了,跟你说一声。
linuxing 回复于 2008/05/16 12:32
o(∩_∩)o...哈哈
分页: 1/1 第一页 1 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]