【摘要】:在大数据时代的今天,随着数据量的不断增大,对于存储数据的空间需求也越来越大,而集中式的存储服务器很好的解决了此问题。在存储服务器向应用服务器分发存储的时候,多路径技术很好的保障二者链路质量。本文会介绍Linux系统如何聚合划分过来的存储。 【正文】 我们都知道,当一块存储划分给一台服务器时候,一般都是通过两对光纤线来连接,而每对光纤线又可以模拟出两条链路,因此一块存储划过来,你在服务器端可以看到的是四块。此时用户是还不可以使用这“四块”磁盘做挂载等动作的。而多路径聚合,就是把这四条链路聚合成一条,“四块”聚合成一块。如此,聚合出来的路径就可以供用户进行操作了。 当存储划分到服务器上后,需要做的步骤如下所示: 1.确认存储 你需要先确认服务器是否能够正常识别到新划分的存储。运行以下命令: #fdisk –l 如果你的服务器能够识别到存储,则此时除了你本地的磁盘外会多出n*4个盘。(n为你划分的存储数目)。 如果此时没有发现新划分的存储,则使用以下命令,重新扫描磁盘: #echo "- - -" >/sys/class/scsi_host/host0/scan 如果至此还不能识别到存储,则需要重启你的服务器了。 2.安装多路径软件 确认多路径聚合所需的rpm包是否有安装: #rpm-qa|grep device-mapper #rpm -qa|grep device-mapper-multipath 若未安装则需安装以上两个包。(不同版本可能会有所差异) 安装完两个包后,分别进行以下操作 # lsmod |grepdm_multipath #来检查安装是否正常 如果模块没有加载成功请使用下列命初始化DM,或重启系统 # modprobedm-multipath #加载模块 # modprobedm-round-robin #加载模块 # servicemultipathd start #启动多路径聚合服务 # chkconfig multipathd on #设置成开机自启动multipathd 3.多路径聚合 查看/etc 目录下是否有multipath.conf文件,如果之前没做过多路径聚合是没有的,此时需要提取多路径聚合配置文件,放到/etc下 。源文件在以下目录 # cd/usr/share/doc/device-mapper-multipath-0.4.9/ # cpmultipath.conf /etc/ #把配置文件复制到/etc目录下 #vim /etc/multipath.conf #编辑多路径配置文件 在这里我们只需把黑名单开启起来。(若不开启系统自身的存储也会产生别名哦。)在multipath.conf文件中找到blacklist相应的位置添加一下语句: blacklist { devnode"^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*" devnode "^hd[a-z]" } 这时候我们可以进行多路径聚合啦。 # multipath –v2 #多路径聚合,这里 可以使用-v2也可以使用-v0 #multipath –ll #列出聚合后的多路径 运行multipath –ll命令后你可以看到聚合出来的路径,默认是以别名mpathx形式,(x为数字),而一般提供给用户使用的就是此别名。后面接着一串数字,则为这块存储的wwid号;而dm-x则是该存储的设备名,x是随机的,用户一般需要使用此名做操作。下面还会列出聚合成此路径的四条链路。 其实到这里多路径聚合可以结束了,用户可以使用mpathx做pv、vg、lv,进而进行挂载之类的操作。 4.优化步骤 在这里你也可以做一些优化的工作。 (1)绑定别名和存储模块,以及对别名做个性化设置。前者可以消除服务器意外重启有可能导致的别名错乱(虽然目前还没遇到过,可以防患于未然);而个性化的别名可以让你更容易记录每块存储的用途。要做到这点,你只需在multipath.conf文件中找到multipaths的位置,添加以下内容。 multipath { wwid 360060e801053a3f0056e3c2f0000001a alias arch_disk001 } 其中wwid后面跟的是相应存储对应的wwid号。这个号你可以问存储管理的人员提供,也可以聚合一次之后,记录下来。然后把相应的聚合路径拆了,重新再聚合。 而alias后面跟的就是你自行设置的个性化别名啦。 多路径拆除的命令如下: #multipath–f mpatha #拆除指定的多路径 #multipath–F #拆除所有多路径 (慎重使用) (2)多路径权限绑定 默认情况下,每次重启计算机的时候,多路径会重新聚合一次,而重新聚合后的多路径包括别名mpathx和设备名dm-x,其所有者都会恢复到root,权限都会恢复到777。而很多时候,可能我们需要把所划分过来的存储权限绑定,包括所有者和使用权限。例如在做oracle群集的时候,我们需要用到的ASM磁盘,就一定要保持权限固定了。在这里权限绑定包括两方面。 A. 从别名mpathx上绑定权限。 B. 从设备名dm-x上绑定权限。 A.一般情况如果我们只需要控制磁盘的访问权限,从别名上绑定绑定权限就可以了,这里介绍的主要是以开机跑命令的形式。 我们只需在/etc/udev/rule.d/目录下添加新规则文件,如99-permissions.rules。内容如下: #99-permissions.rules PROGRAM="/bin/chown-R grid:asmadmin /dev/mapper/ocrvt_disk001" #绑定所有者 PROGRAM="/bin/chmod-R 660 /dev/mapper/ocrvt_disk001" #绑定使用权限 B.而有些时候需要绑定设备的权限,例如oracle群集的ASM磁盘,则我们需要从设备名dm-x上绑定。 这时候我们需要在/etc/udev/rule.d/目录下创建12-dm-permissions.rules文件。(该文件的源模板在/usr/share/doc/device-mapper-1.02.77目录下,可以复制过去。) #vim/etc/udev/rule.d/12-dm-permissions.rules #编辑文件 在绑定dm权限相应的位置加上以下内容 ENV{DM_NAME}=="mpath*", OWNER:="grid", GROUP:="asmadmin",MODE:="660" ENV{DM_NAME}=="mpath*"为设备别名,类型默认为mpath*, OWNER:="grid" 为所有者 GROUP:="asmadmin"为所属组 MODE:="660" 为访问权限 当然在12-dm-permissions.rules 还可以设置其他权限,有兴趣的可以自行测试。 至此,我们多路径配置以及其权限绑定介绍结束啦。若文章有不当之处,请多多包涵。毕竟本人所知有限。谢谢。
|