{"id":193,"date":"2014-07-28T15:14:55","date_gmt":"2014-07-28T07:14:55","guid":{"rendered":"http:\/\/blog.cyszys.com\/?p=193"},"modified":"2014-07-28T15:22:23","modified_gmt":"2014-07-28T07:22:23","slug":"linux%e4%b8%8b%e5%a4%9a%e8%b7%af%e5%be%84%e9%85%8d%e7%bd%ae%ef%bc%88multi-path%ef%bc%89","status":"publish","type":"post","link":"http:\/\/blog.cyszys.com\/?p=193","title":{"rendered":"LINUX\u4e0b\u591a\u8def\u5f84\u914d\u7f6e\uff08multi-path\uff09"},"content":{"rendered":"<p>\u4e00\u3001\u4ec0\u4e48\u662f\u591a\u8def\u5f84\n\u666e\u901a\u7684\u7535\u8111\u4e3b\u673a\u90fd\u662f\u4e00\u4e2a\u786c\u76d8\u6302\u63a5\u5230\u4e00\u4e2a\u603b\u7ebf\u4e0a\uff0c\u8fd9\u91cc\u662f\u4e00\u5bf9\u4e00\u7684\u5173\u7cfb\u3002\u800c\u5230\u4e86\u6709\u5149\u7ea4\u7ec4\u6210\u7684SAN\u73af\u5883\uff0c\u6216\u8005\u7531iSCSI\u7ec4\u6210\u7684IPSAN\u73af\u5883\uff0c\u7531\u4e8e\u4e3b\u673a\u548c\u5b58\u50a8\u901a\u8fc7\u4e86\u5149\u7ea4\u4ea4\u6362\u673a\u6216\u8005\u591a\u5757\u7f51\u5361\u53caIP\u6765\u8fde\u63a5\uff0c\u8fd9\u6837\u7684\u8bdd\uff0c\u5c31\u6784\u6210\u4e86\u591a\u5bf9\u591a\u7684\u5173\u7cfb\u3002\u4e5f\u5c31\u662f\u8bf4\uff0c\u4e3b\u673a\u5230\u5b58\u50a8\u53ef\u4ee5\u6709\u591a\u6761\u8def\u5f84\u53ef\u4ee5\u9009\u62e9\u3002\u4e3b\u673a\u5230\u5b58\u50a8\u4e4b\u95f4\u7684IO\u7531\u591a\u6761\u8def\u5f84\u53ef\u4ee5\u9009\u62e9\u3002\u6bcf\u4e2a\u4e3b\u673a\u5230\u6240\u5bf9\u5e94\u7684\u5b58\u50a8\u53ef\u4ee5\u7ecf\u8fc7\u51e0\u6761\u4e0d\u540c\u7684\u8def\u5f84\uff0c\u5982\u679c\u662f\u540c\u65f6\u4f7f\u7528\u7684\u8bdd\uff0cI\/O\u6d41\u91cf\u5982\u4f55\u5206\u914d\uff1f\u5176\u4e2d\u4e00\u6761\u8def\u5f84\u574f\u6389\u4e86\uff0c\u5982\u4f55\u5904\u7406\uff1f\u8fd8\u6709\u5728\u64cd\u4f5c\u7cfb\u7edf\u7684\u89d2\u5ea6\u6765\u770b\uff0c\u6bcf\u6761\u8def\u5f84\uff0c\u64cd\u4f5c\u7cfb\u7edf\u4f1a\u8ba4\u4e3a\u662f\u4e00\u4e2a\u5b9e\u9645\u5b58\u5728\u7684\u7269\u7406\u76d8\uff0c\u4f46\u5b9e\u9645\u4e0a\u53ea\u662f\u901a\u5411\u540c\u4e00\u4e2a\u7269\u7406\u76d8\u7684\u4e0d\u540c\u8def\u5f84\u800c\u5df2\uff0c\u8fd9\u6837\u662f\u5728\u4f7f\u7528\u7684\u65f6\u5019\uff0c\u5c31\u7ed9\u7528\u6237\u5e26\u6765\u4e86\u56f0\u60d1\u3002\u591a\u8def\u5f84\u8f6f\u4ef6\u5c31\u662f\u4e3a\u4e86\u89e3\u51b3\u4e0a\u9762\u7684\u95ee\u9898\u5e94\u8fd0\u800c\u751f\u7684\u3002\n\u591a\u8def\u5f84\u7684\u4e3b\u8981\u529f\u80fd\u5c31\u662f\u548c\u5b58\u50a8\u8bbe\u5907\u4e00\u8d77\u914d\u5408\u5b9e\u73b0\u5982\u4e0b\u529f\u80fd\uff1a\n1.\u6545\u969c\u7684\u5207\u6362\u548c\u6062\u590d\n2.IO\u6d41\u91cf\u7684\u8d1f\u8f7d\u5747\u8861\n3.\u78c1\u76d8\u7684\u865a\u62df\u5316<\/p>\n<p>\u7531\u4e8e\u591a\u8def\u5f84\u8f6f\u4ef6\u662f\u9700\u8981\u548c\u5b58\u50a8\u5728\u4e00\u8d77\u914d\u5408\u4f7f\u7528\u7684\uff0c\u4e0d\u540c\u7684\u5382\u5546\u57fa\u4e8e\u4e0d\u540c\u7684\u64cd\u4f5c\u7cfb\u7edf\uff0c\u90fd\u63d0\u4f9b\u4e86\u4e0d\u540c\u7684\u7248\u672c\u3002\u5e76\u4e14\u6709\u7684\u5382\u5546\uff0c\u8f6f\u4ef6\u548c\u786c\u4ef6\u4e5f\u4e0d\u662f\u4e00\u8d77\u5356\u7684\uff0c\u5982\u679c\u8981\u4f7f\u7528\u591a\u8def\u5f84\u8f6f\u4ef6\u7684\u8bdd\uff0c\u53ef\u80fd\u8fd8\u9700\u8981\u5411\u5382\u5546\u8d2d\u4e70license\u624d\u884c\u3002\u6bd4\u5982EMC\u516c\u53f8\u57fa\u4e8elinux\u4e0b\u7684\u591a\u8def\u5f84\u8f6f\u4ef6\uff0c\u5c31\u9700\u8981\u5355\u72ec\u7684\u8d2d\u4e70license\u3002\u597d\u5728\uff0c RedHat\u548cSuse\u76842.6\u7684\u5185\u6838\u4e2d\u90fd\u81ea\u5e26\u4e86\u514d\u8d39\u7684\u591a\u8def\u5f84\u8f6f\u4ef6\u5305\uff0c\u5e76\u4e14\u53ef\u4ee5\u514d\u8d39\u4f7f\u7528\uff0c\u540c\u65f6\u4e5f\u662f\u4e00\u4e2a\u6bd4\u8f83\u901a\u7528\u7684\u5305\uff0c\u53ef\u4ee5\u652f\u6301\u5927\u591a\u6570\u5b58\u50a8\u5382\u5546\u7684\u8bbe\u5907\uff0c\u5373\u4f7f\u662f\u4e00\u4e9b\u4e0d\u662f\u51fa\u540d\u7684\u5382\u5546\uff0c\u901a\u8fc7\u5bf9\u914d\u7f6e\u6587\u4ef6\u8fdb\u884c\u7a0d\u4f5c\u4fee\u6539\uff0c\u4e5f\u662f\u53ef\u4ee5\u652f\u6301\u5e76\u8fd0\u884c\u7684\u5f88\u597d\u7684\u3002<\/p>\n<div style=\"color: #555555;\"><b>\u4e8c\u3001Linux\u4e0bmultipath\u4ecb\u7ecd\uff0c\u9700\u8981\u4ee5\u4e0b\u5de5\u5177\u5305\uff1a<\/b><\/div>\n<div style=\"color: #555555;\">\u5728CentOS 5\u4e2d\uff0c\u6700\u5c0f\u5b89\u88c5\u7cfb\u7edf\u65f6multipath\u5df2\u7ecf\u88ab\u5b89\u88c5\uff0c\u67e5\u770bmultipath\u662f\u5426\u5b89\u88c5\u5982\u4e0b\uff1a<\/div>\n<div style=\"color: #555555;\">\n<pre class=\"brush:other\">[root@test ~]# rpm -qa |grep mapper\ndevice-mapper-event-libs-1.02.79-8.el6.x86_64\ndevice-mapper-event-1.02.79-8.el6.x86_64\ndevice-mapper-persistent-data-0.2.8-4.el6_5.x86_64\ndevice-mapper-1.02.79-8.el6.x86_64\ndevice-mapper-libs-1.02.79-8.el6.x86_64<\/pre>\n<\/div>\n<div style=\"color: #555555;\">\n<div><b>1<\/b>\n<b>\u3001device-mapper-multipath\uff1a<\/b>\u5373multipath-tools\u3002\u4e3b\u8981\u63d0\u4f9bmultipathd\u548cmultipath\u7b49\u5de5\u5177\u548c multipath.conf\u7b49\u914d\u7f6e\u6587\u4ef6\u3002\u8fd9\u4e9b\u5de5\u5177\u901a\u8fc7device mapper\u7684ioctr\u7684\u63a5\u53e3\u521b\u5efa\u548c\u914d\u7f6emultipath\u8bbe\u5907\uff08\u8c03\u7528device-mapper\u7684\u7528\u6237\u7a7a\u95f4\u5e93\u3002\u521b\u5efa\u7684\u591a\u8def\u5f84\u8bbe\u5907\u4f1a\u5728\/dev \/mapper\u4e2d\uff09\u3002<\/div>\n<div><b>2<\/b>\n<b>\u3001 device-mapper\uff1a<\/b>\u4e3b\u8981\u5305\u62ec\u4e24\u5927\u90e8\u5206\uff1a\u5185\u6838\u90e8\u5206\u548c\u7528\u6237\u90e8\u5206\u3002\u5185\u6838\u90e8\u5206\u4e3b\u8981\u7531device mapper\u6838\u5fc3\uff08dm.ko\uff09\u548c\u4e00\u4e9btarget driver\uff08md-multipath.ko\uff09\u3002\u6838\u5fc3\u5b8c\u6210\u8bbe\u5907\u7684\u6620\u5c04\uff0c\u800ctarget\u6839\u636e\u6620\u5c04\u5173\u7cfb\u548c\u81ea\u8eab\u7279\u70b9\u5177\u4f53\u5904\u7406\u4ecemappered device \u4e0b\u6765\u7684i\/o\u3002\u540c\u65f6\uff0c\u5728\u6838\u5fc3\u90e8\u5206\uff0c\u63d0\u4f9b\u4e86\u4e00\u4e2a\u63a5\u53e3\uff0c\u7528\u6237\u901a\u8fc7ioctr\u53ef\u548c\u5185\u6838\u90e8\u5206\u901a\u4fe1\uff0c\u4ee5\u6307\u5bfc\u5185\u6838\u9a71\u52a8\u7684\u884c\u4e3a\uff0c\u6bd4\u5982\u5982\u4f55\u521b\u5efamappered device\uff0c\u8fd9\u4e9bdivece\u7684\u5c5e\u6027\u7b49\u3002linux device mapper\u7684\u7528\u6237\u7a7a\u95f4\u90e8\u5206\u4e3b\u8981\u5305\u62ecdevice-mapper\u8fd9\u4e2a\u5305\u3002\u5176\u4e2d\u5305\u62ecdmsetup\u5de5\u5177\u548c\u4e00\u4e9b\u5e2e\u52a9\u521b\u5efa\u548c\u914d\u7f6emappered device\u7684\u5e93\u3002\u8fd9\u4e9b\u5e93\u4e3b\u8981\u62bd\u8c61\uff0c\u5c01\u88c5\u4e86\u4e0eioctr\u901a\u4fe1\u7684\u63a5\u53e3\uff0c\u4ee5\u4fbf\u65b9\u4fbf\u521b\u5efa\u548c\u914d\u7f6emappered device\u3002multipath-tool\u7684\u7a0b\u5e8f\u4e2d\u5c31\u9700\u8981\u8c03\u7528\u8fd9\u4e9b\u5e93\u3002\n<b><\/b><\/div>\n<div><b>3<\/b>\n<b>\u3001dm-multipath.ko\u548cdm.ko<\/b>\uff1adm.ko\u662fdevice mapper\u9a71\u52a8\u3002\u5b83\u662f\u5b9e\u73b0multipath\u7684\u57fa\u7840\u3002dm-multipath\u5176\u5b9e\u662fdm\u7684\u4e00\u4e2atarget\u9a71\u52a8\u3002\n<b><\/b><\/div>\n<div><b>4<\/b>\n<b>\u3001scsi_id<\/b>\uff1a \u5305\u542b\u5728udev\u7a0b\u5e8f\u5305\u4e2d\uff0c\u53ef\u4ee5\u5728multipath.conf\u4e2d\u914d\u7f6e\u8be5\u7a0b\u5e8f\u6765\u83b7\u53d6scsi\u8bbe\u5907\u7684\u5e8f\u53f7\u3002\u901a\u8fc7\u5e8f\u53f7\uff0c\u4fbf\u53ef\u4ee5\u5224\u65ad\u591a\u4e2a\u8def\u5f84\u5bf9\u5e94\u4e86\u540c\u4e00\u8bbe\u5907\u3002\u8fd9\u4e2a\u662f\u591a\u8def\u5f84\u5b9e\u73b0\u7684\u5173\u952e\u3002scsi_id\u662f\u901a\u8fc7sg\u9a71\u52a8\uff0c\u5411\u8bbe\u5907\u53d1\u9001EVPD page80\u6216page83 \u7684inquery\u547d\u4ee4\u6765\u67e5\u8be2scsi\u8bbe\u5907\u7684\u6807\u8bc6\u3002\u4f46\u4e00\u4e9b\u8bbe\u5907\u5e76\u4e0d\u652f\u6301EVPD \u7684inquery\u547d\u4ee4\uff0c\u6240\u4ee5\u4ed6\u4eec\u65e0\u6cd5\u88ab\u7528\u6765\u751f\u6210multipath\u8bbe\u5907\u3002\u4f46\u53ef\u4ee5\u6539\u5199scsi_id\uff0c\u4e3a\u4e0d\u80fd\u63d0\u4f9bscsi\u8bbe\u5907\u6807\u8bc6\u7684\u8bbe\u5907\u865a\u62df\u4e00\u4e2a\u6807\u8bc6\u7b26\uff0c\u5e76\u8f93\u51fa\u5230\u6807\u51c6\u8f93\u51fa\u3002multipath\u7a0b\u5e8f\u5728\u521b\u5efamultipath\u8bbe\u5907\u65f6\uff0c\u4f1a\u8c03\u7528scsi_id\uff0c\u4ece\u5176\u6807\u51c6\u8f93\u51fa\u4e2d\u83b7\u5f97\u8be5\u8bbe\u5907\u7684scsi id\u3002\u5728\u6539\u5199\u65f6\uff0c\u9700\u8981\u4fee\u6539scsi_id\u7a0b\u5e8f\u7684\u8fd4\u56de\u503c\u4e3a0\u3002\u56e0\u4e3a\u5728multipath\u7a0b\u5e8f\u4e2d\uff0c\u4f1a\u68c0\u67e5\u8be5\u76f4\u6765\u786e\u5b9ascsi id\u662f\u5426\u5df2\u7ecf\u6210\u529f\u5f97\u5230\u3002\n<b><\/b><\/div>\n<div><b>\u4e09\u3001multipath\u5728CentOS 5\u4e2d\u7684\u57fa\u672c\u914d\u7f6e\u8fc7\u7a0b\uff1a<\/b>\n<b>1<\/b>\n<b>\u3001\u5b89\u88c5\u548c\u52a0\u8f7d\u591a\u8def\u5f84\u8f6f\u4ef6\u5305\n<\/b># yum \u2013y install device-mapper device-mapper-multipath<\/div>\n<div># chkconfig \u2013level 2345 multipathd on #\u8bbe\u7f6e\u6210\u5f00\u673a\u81ea\u542f\u52a8multipathd<\/div>\n<div># lsmod |grep dm_multipath #\u6765\u68c0\u67e5\u5b89\u88c5\u662f\u5426\u6b63\u5e38\n<pre class=\"brush:other\">[root@test \/] # lsmod |grep dm_multipath\n\ndm_multipath    25421  2   dm_round_robin\nscsi_dh            12097   1   dm_multipath\ndm_mod             63225   1   dm_mirror,dm_multipath,dm_raid45,dm_log<\/pre>\n<span style=\"color: #555555;\">\u5982\u679c\u6a21\u5757\u6ca1\u6709\u52a0\u8f7d\u6210\u529f\u8bf7\u4f7f\u7528\u4e0b\u5217\u547d\u521d\u59cb\u5316DM\uff0c\u6216\u91cd\u542f\u7cfb\u7edf<\/span>\n<pre class=\"brush:other\">---Use the following commands to initialize and start DM for the first time: \n# modprobe dm-multipath \n# modprobe dm-round-robin \n# service multipathd start \n# multipath \u2013v2<\/pre>\n<div style=\"color: #555555;\"><b>2<\/b>\n<b>\u3001<b style=\"color: #555555;\">multipath\u57fa\u672c\u64cd\u4f5c\u547d\u4ee4<\/b><span style=\"color: #555555;\">\u00a0<\/span><br style=\"color: #555555;\"><span style=\"color: #555555;\"># \/etc\/init.d\/multipathd start #\u5f00\u542fmulitipath\u670d\u52a1\u00a0<\/span><br style=\"color: #555555;\"><span style=\"color: #555555;\"># multipath -F #\u5220\u9664\u73b0\u6709\u8def\u5f84\u00a0<\/span><br style=\"color: #555555;\"><span style=\"color: #555555;\"># multipath -v2 #\u683c\u5f0f\u5316\u8def\u5f84\u00a0<\/span><br style=\"color: #555555;\"><span style=\"color: #555555;\"># multipath -ll #\u67e5\u770b\u591a\u8def\u5f84<\/span><\/b><\/div>\n<div style=\"color: #555555;\"><\/div>\n<div style=\"color: #555555;\"><b>3\u3001\u914d\u7f6emultipath\uff1a<\/b><\/div>\n<div style=\"color: #555555;\">Multipath\u7684\u914d\u7f6e\u6587\u4ef6\u662f\/etc\/multipath.conf\uff0c\u5982\u679c\u6587\u4ef6\u4e0d\u5b58\u5728\uff0c\u4f60\u53ef\u4ee5\u53bb\u62f7\u8d1d\u4e00\u4efd\uff0c\u5b83\u7684\u4f4d\u7f6e\u5728\/usr\/share\/doc\/device-mapper-multipath-0.4.9\/<\/div>\n<div style=\"color: #555555;\">\u8fd9\u91cc\u63d0\u4f9b\u7684\u662f\u6211\u914d\u7f6e\u597d\u7684\u4e00\u4e2a\u8303\u4f8b\uff1a\n<pre class=\"brush:other\">[root@test \/] # cat \/etc\/multipath.conf\n## Use user friendly names, instead of using WWIDs as names.\ndefaults {\n        user_friendly_names yes\n}\n###############Hitachi Storage Configure#######################################\n#######no.1#####\nmultipaths {\n       multipath {\n               wwid                    360060e8010271a40051149d400000000\n               alias                   data1\n               path_grouping_policy    multibus\n               path_checker            readsector0\n               path_selector           \"round-robin 0\"\n               failback                manual\n               rr_weight               priorities\n               no_path_retry           5\n       }\n\ndevices {\n       device {\n               vendor                  \"HITACHI\"\n               product                 \"DF600F\"\n               path_grouping_policy    multibus\n               getuid_callout          \"\/sbin\/scsi_id -g -u -s \/block\/%n\"\n               path_checker            readsector0\n               path_selector           \"round-robin 0\"\n               hardware_handler        \"0\"\n               failback                -2\n               rr_weight               1\n               no_path_retry           NONE\n       }\n}\n###############Hitachi Storage Configure######################################<\/pre>\n\u00a0\n\nwwid\u662f\u4f60\u5916\u90e8\u78c1\u76d8\u7684\u552f\u4e00\u8bc6\u522b\u7801 \u4f60\u4f1a\u53d1\u73b0\u4ed6\u6709N\u4e2a\u8def\u5f84\uff0calias\u5c31\u662f\u4f60\u7ed9\u8fd9\u4e2a\u78c1\u76d8\u8bbe\u5907\u8d77\u7684mapper\u8bbe\u5907\u540d\u5b57\u4e86\uff0cvendor\u662f\u5b58\u50a8\u8bbe\u5907\u4e0a\u540d\u79f0\uff0c\u4e9b\u4ec0\u4e48\u90fd\u884c\uff0c\u76ee\u524d\u8fd8\u6ca1\u53d1\u73b0\u662f\u505a\u4ec0\u4e48\u7528\u7684\uff0c\u540e\u9762\u7684product\u4e5f\u662f\u4e00\u6837\uff0c\u4e0d\u8fc7\u5efa\u8bae\u6309\u7167\u5b9e\u9645\u7684\u8bbe\u5907\u5382\u5546\u548c\u578b\u53f7\u6765\u5199\u3002\n\n\u00a0\n\n<\/div>\n<div style=\"color: #555555;\"><\/div>\n\u00a0\n\n\u00a0\n\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>\u4e00\u3001\u4ec0\u4e48\u662f\u591a\u8def\u5f84 \u666e\u901a\u7684\u7535\u8111\u4e3b\u673a\u90fd\u662f\u4e00\u4e2a\u786c\u76d8\u6302\u63a5\u5230\u4e00\u4e2a\u603b\u7ebf\u4e0a\uff0c\u8fd9\u91cc\u662f\u4e00\u5bf9\u4e00\u7684\u5173\u7cfb\u3002\u800c\u5230\u4e86\u6709\u5149\u7ea4\u7ec4\u6210\u7684SAN\u73af\u5883 [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,70,12],"tags":[84,85],"aioseo_notices":[],"_links":{"self":[{"href":"http:\/\/blog.cyszys.com\/index.php?rest_route=\/wp\/v2\/posts\/193"}],"collection":[{"href":"http:\/\/blog.cyszys.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.cyszys.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.cyszys.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.cyszys.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=193"}],"version-history":[{"count":3,"href":"http:\/\/blog.cyszys.com\/index.php?rest_route=\/wp\/v2\/posts\/193\/revisions"}],"predecessor-version":[{"id":200,"href":"http:\/\/blog.cyszys.com\/index.php?rest_route=\/wp\/v2\/posts\/193\/revisions\/200"}],"wp:attachment":[{"href":"http:\/\/blog.cyszys.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=193"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.cyszys.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=193"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.cyszys.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=193"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}