{"id":58,"date":"2017-03-01T15:57:52","date_gmt":"2017-03-01T07:57:52","guid":{"rendered":"\/\/hqidi.com\/?p=58"},"modified":"2017-03-01T15:57:52","modified_gmt":"2017-03-01T07:57:52","slug":"%e7%94%9f%e4%ba%a7%e7%8e%af%e5%a2%83%e4%b8%8b%e7%9a%84%e9%ab%98%e5%8f%af%e7%94%a8nfs%e6%96%87%e4%bb%b6%e6%9c%8d%e5%8a%a1%e5%99%a8","status":"publish","type":"post","link":"https:\/\/hqidi.com\/58.html","title":{"rendered":"\u751f\u4ea7\u73af\u5883\u4e0b\u7684\u9ad8\u53ef\u7528NFS\u6587\u4ef6\u670d\u52a1\u5668"},"content":{"rendered":"<p>\u5206\u5e03\u5f0f\u590d\u5236\u5757\u8bbe\u5907\uff08distributed replicated block device\uff09\u662f\u4e00\u79cd\u57fa\u4e8elinux \u7684\u8f6f\u4ef6\u7ec4\u4ef6\uff0c\u7531\u5185\u6838\u6a21\u5757\u548c\u76f8\u5173\u7a0b\u5e8f\u7ec4\u6210\uff08<a href=\"http:\/\/biancheng.dnbcw.info\/linux\/\">linux<\/a>2.6.33\u4e4b\u540e\u7684\u5185\u6838\u81ea\u5e26\uff09\uff0c\u53ef\u901a\u8fc7\u7f51\u7edc\u955c\u50cf\u4fc3\u8fdb\u5171\u4eab\u5b58\u50a8\u7684\u66ff\u6362\uff0c\u4e5f\u5c31\u662f\u8bf4\uff0c\u5f53\u4f60\u5c06\u6570\u636e\u5199\u5165\u672c\u5730DRBD\u8bbe\u5907\u4e0a\u7684\u6587\u4ef6\u7cfb\u7edf\u65f6\uff0c\u6570\u636e\u4f1a\u540c\u65f6\u88ab\u53d1\u9001\u5230\u7f51\u7edc\u4e0a\u7684\u53e6\u5916\u4e00\u53f0\u4e3b\u673a\u4e0a\uff0c\u4ee5\u5b8c\u5168\u76f8\u540c\u7684\u5f62\u5f0f\u8bb0\u5f55\u5728\u4e00\u4e2a\u6587\u4ef6\u7cfb\u7edf\u4e2d\u3002\u672c\u8282\u70b9\u4e0e\u8fdc\u7a0b\u8282\u70b9\u7684\u6570\u636e\u53ef\u4ee5\u4fdd\u8bc1\u5b9e\u65f6\u540c\u6b65\uff0c\u5e76\u4e14\u53ef\u4ee5\u4fdd\u8bc1I\/O\u7684\u4e00\u81f4\u6027\u3002\u4ee5\u8fbe\u5230\u9ad8\u53ef\u7528\u7684\u76ee\u7684\u3002<br \/>\nDRBD\u7684\u5de5\u4f5c\u539f\u7406\u5982\u4e0b\u56fe\u6240\u793a\u3002<br \/>\n<a href=\"\/\/hqidi.com\/wp-content\/uploads\/2015\/08\/DRBD.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-243\" src=\"\/\/hqidi.com\/wp-content\/uploads\/2015\/08\/DRBD.jpg\" alt=\"DRBD\" width=\"525\" height=\"374\" \/><\/a><\/p>\n<p>\u6211\u4eec\u53ef\u4ee5\u8fd9\u6837\u7406\u89e3DRBD\uff0c\u5b83\u5176\u5b9e\u5c31\u662f\u7f51\u7edc\u7684RAID-1\uff0c\u4e24\u53f0\u670d\u52a1\u5668\u4e2d\u5c31\u7b97\u5176\u4e2d\u67d0\u53f0\u56e0\u7535\u6e90\u6216\u8005\u4e3b\u677f\u635f\u574f\u4e5f\u4e0d\u4f1a\u5bf9\u6570\u636e\u6709\u4efb\u4f55\u7684\u5f71\u54cd\uff0c\u800c\u771f\u6b63\u7684\u70ed\u5207\u6362\u7528heartbeat\u6765\u5b9e\u73b0\uff0c\u8fd9\u6837\u7684\u5207\u6362\u8fc7\u7a0b\u8ddfkeepalived\u7c7b\u4f3c\uff0c\u975e\u5e38\u77ed\u6682\u4e14\u4e0d\u9700\u8981\u4eba\u4e3a\u5e72\u9884\u3002<br \/>\nDRBD\u9700\u8981\u6784\u5efa\u5728\u5e95\u5c42\u8bbe\u5907\u4e4b\u4e0a\uff0cDRBD\u7684\u4f4d\u7f6e\u5904\u4e8e\u6587\u4ef6\u7cfb\u7edf\u4ee5\u4e0b\uff0c\u6bd4\u6587\u4ef6\u7cfb\u7edf\u66f4\u52a0\u9760\u8fd1\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838\u53caIO\u6808\u3002<br \/>\nDRBD\u9700\u8981\u6784\u5efa\u51fa\u4e00\u4e2a\u5757\u8bbe\u5907\u6765\u3002\u5bf9\u4e8e\u7528\u6237\u6765\u8bf4\uff0c\u4e00\u4e2aDRBD\u8bbe\u5907\uff0c\u5c31\u50cf\u662f\u4e00\u5757\u7269\u7406\u78c1\u76d8\uff0c\uff08\u7c7b\u4f3c\u4e8e\u7ec4\u5efa\u597d\u7684raid\uff09<br \/>\n\u53ef\u4ee5\u5728\u78c1\u76d8\u5185\u521b\u5efa\u6587\u4ef6\u7cfb\u7edf\u3002<br \/>\n\u4e0b\u9762\u4ecb\u7ecdDRBD+heartbeat+NFS\u7684\u8be6\u7ec6\u914d\u7f6e\u8fc7\u7a0b\u3002<\/p>\n<h2>\u505a\u597d\u6574\u4e2a\u73af\u5883\u7684\u51c6\u5907\u5de5\u4f5c<\/h2>\n<p>\u4e24\u53f0\u670d\u52a1\u5668\u90fd\u8bbe\u7f6e\u597dhosts\u6587\u4ef6\u548c\u8fdb\u884cntpd\u5bf9\u65f6\u3002<br \/>\n\u4e3b\u670d\u52a1\u5668\uff1anfs1\uff0c\u5355\u72ec\u62ff\u4e00\u5757\u786c\u76d8sdb\u4f5c\u4e3aDRBD.<br \/>\n\u4e3b\u670d\u52a1\u5668\uff1anfs2\uff0c\u5355\u72ec\u62ff\u4e00\u5757\u786c\u76d8sdb\u4f5c\u4e3aDRBD.<br \/>\n\u7f51\u7edc\u7ed3\u6784\u5f88\u7b80\u5355\uff0c\u5982\u4e0b\uff1a<br \/>\nnfs1 eth0:192.168.2.5\uff0ceth1:10.0.0.5 \uff08\u5fc3\u8df3\u7ebf\uff09\u3002<br \/>\nnfs2 eth0:192.168.2.6\uff0ceth1:10.0.0.6 \uff08\u5fc3\u8df3\u7ebf\uff09\u3002<\/p>\n<p>DRBD\u5bf9\u5916\u7684VIP\u5730\u5740\u662f\uff1a192.168.2.3\uff0c\u8fd9\u662f\u901a\u8fc7heartbeat\u6765\u5b9e\u73b0\u7684\uff0c\u539f\u7406\u8ddfkeepalived\u7c7b\u4f3c\uff0c\u5b83\u901a\u8fc7\u5728\u67d0\u53f0\u670d\u52a1\u5668\u7684eth0:0\u4e0a\u7ed1\u5b9a\uff0c\u5982\u679c\u9047\u5230\u6545\u969c\u5c31\u8f6c\u79fb\uff0c\u8fbe\u5230HA\u7684\u76ee\u7684\u3002\u8fd9\u540c\u65f6\u4e5f\u662f\u5bf9\u5916\u63d0\u4f9bNFS\u670d\u52a1\u7684IP.<\/p>\n<p>(nfs1)\u4e3a\u4ec5\u4e3b\u8282\u70b9\u7aef\u914d\u7f6e<br \/>\n(nfs2)\u4e3a\u4ec5\u4ece\u8282\u70b9\u7aef\u914d\u7f6e<br \/>\n(nfs1,nfs2)\u4e3a\u4e3b\u4ece\u8282\u70b9\u90fd\u9700\u914d\u7f6e<\/p>\n<p>\/etc\/hosts\u7684\u914d\u7f6e\u5982\u4e0b\uff0c\u4e24\u53f0\u673a\u5668\u4e0a\u90fd\u4e00\u6837\u914d\u7f6e<br \/>\n192.168.2.5 nfs1<br \/>\n192.168.2.6 nfs2<br \/>\n\u672c\u7740\u7b80\u5355\u9ad8\u6548\u7684\u539f\u5219\uff0c\u4e24\u53f0\u670d\u52a1\u5668\u4e4b\u95f4\u7684\u5fc3\u8df3\u68c0\u6d4b\u76f4\u63a5\u7528\u4ea4\u53c9\u7ebf\u8fde\u63a5\u3002\u4e3a\u4e86\u6587\u4ef6\u5b89\u5168\uff0c\u5efa\u8bae\u4f7f\u7528RAID-5\u3002<br \/>\n\u7136\u540e\u8fdb\u884c\u65f6\u95f4\u540c\u6b65\uff1a<br \/>\nntpdate ntp.sjtu.edu.cn #\u8fd9\u4e2a\u65f6\u95f4\u670d\u52a1\u5668\u662f\u4e0a\u6d77\u4ea4\u5927\u7684<\/p>\n<h2>DRBD\u7684\u5b89\u88c5\u914d\u7f6e\u8fc7\u7a0b<\/h2>\n<p>1\uff09\u5b89\u88c5\u5f00\u59cb (nfs1,nfs2)<br \/>\ncd \/usr\/local\/src<br \/>\nwget http:\/\/oss.linbit.com\/drbd\/8.4\/drbd-8.4.3.tar.gz<br \/>\nyum install gcc gcc-c++ make glibc flex kernel-devel kernel-headers -y<br \/>\n\u6ce8\u610f\uff1a\u5b89\u88c5kernel-devel\u4e00\u5b9a\u8981\u548c\u4f60uname -r \u770b\u5230\u7684\u5185\u6838\u7248\u672c\u4e00\u81f4\uff0c\u5efa\u8baekernel-devel\u7528\u672c\u5730\u6e90\u5b89\u88c5\uff0c\u4e0d\u8981\u7528\u7f51\u7edc\u6e90\u5b89\u88c5<br \/>\ntar zxf drbd-8.4.3.tar.gz<br \/>\ncd drbd-8.4.3<br \/>\n.\/configure --prefix=\/usr\/local\/drbd --with-km<br \/>\n\u6ce8\u610f\uff1a--with-km\u662f\u542f\u7528\u5185\u6838\u6a21\u5757<br \/>\nmake KDIR=\/usr\/src\/kernels\/`uname -r`<\/p>\n<p>make install<br \/>\nmkdir -p \/usr\/local\/drbd\/var\/run\/drbd<br \/>\ncp \/usr\/local\/drbd\/etc\/rc.d\/init.d\/drbd \/etc\/rc.d\/init.d\/<br \/>\nchkconfig --add drbd<br \/>\nchkconfig drbd on<\/p>\n<p>\u52a0\u8f7dDRBD\u6a21\u5757<br \/>\nmodprobe drbd<\/p>\n<p>2\uff09\u67e5\u770b\u6a21\u5757\u662f\u5426\u52a0\u8f7d\u6210\u529f<br \/>\nlsmod | grep drbd<br \/>\ndrbd 278955 0<br \/>\nlibcrc32c 841 1 drbd<\/p>\n<p>\u5982\u679c\u51fa\u73b0\"Could not determine uts_release\"\u9519\u8bef\uff0c\u6211\u4eec\u8981\u68c0\u67e5\u662f\u5426\u5b89\u88c5\u4e86\u65b0\u7684\u5185\u6838\uff0c\u8fd8\u8981\u8bb0\u5f97\u91cd\u542f\u673a\u5668\uff0c\u5426\u5219\u4e5f\u4e0d\u80fd\u5b89\u88c5\u6210\u529f\u3002<br \/>\n3\uff09DRBD\u7a0b\u5e8f\u5b89\u88c5\u5b8c\u6210\u540e\u4e3b\u8981\u751f\u6210\u547d\u4ee4drbdsetup,drbdadmin,\u914d\u7f6e\u6587\u4ef6\/etc\/drbd.conf\u3001\u542f\u52a8\u6587\u4ef6\/etc\/init.d\/drbd\u53ca\u6a21\u5757\u6587\u4ef6drbd.ko<\/p>\n<p>4)\u786e\u8ba4\u4e24\u53f0\u8981\u955c\u50cf\u7684\u673a\u5668\u662f\u5426\u6b63\u5e38\uff0c\u5b83\u4eec\u4e4b\u95f4\u7684\u7f51\u7edc\u662f\u5426\u901a\u7545\uff0c\u9700\u8981\u52a0\u8f7d\u7684\u786c\u76d8\u662f\u5426\u5904\u4e8eumount\u72b6\u6001\u3002<\/p>\n<p>5)\u4e24\u53f0\u673a\u5668\u5c06\/dev\/sdb1\u4e92\u4e3a\u955c\u50cf\uff0c\u8fd9\u91cc\u53ea\u5217\u51fanfs1\u7684\u64cd\u4f5c\u6b65\u9aa4\uff1a<br \/>\nyum -y install portmap nfs-utils<br \/>\nmkdir \/drbd<br \/>\n\u521b\u5efa\u5171\u4eab\u76ee\u5f55\uff0c\u7528vim\u53ef\u4ee5\u7f16\u8f91\/etc\/exports\u6587\u4ef6\uff0c\u5185\u5bb9\u5982\u4e0b\uff1a(nfs1,nfs2)<br \/>\n\/drbd 192.168.2.0\/255.255.255.0(rw,no_root_squash,no_all_squash,sync)<\/p>\n<p>NFS\u4e0d\u9700\u8981\u542f\u52a8\uff0c\u4e5f\u4e0d\u9700\u8981\u5f00\u673a\u81ea\u52a8\u8fd0\u884c\uff0c\u8fd9\u4e9b\u90fd\u7531heartbeat\u6765\u5b8c\u6210\u3002<br \/>\n6\uff09\u7f16\u8f91\/usr\/local\/drbd\/etc\/drbd.conf\u914d\u7f6eDRBD\uff0c\u4e24\u53f0\u673a\u5668\u4e0a\u540c\u6837\u914d\u7f6e\u3002(nfs1,nfs2)<\/p>\n<pre class=\"prettyprint\" >\r\nresource r0{\r\nprotocol C;\r\nstartup { wfc-timeout 0; degr-wfc-timeout 120;}\r\ndisk { on-io-error detach;}\r\nnet{\r\n  timeout 60;\r\n  connect-int 10;\r\n  ping-int 10;\r\n  max-buffers 2048;\r\n  max-epoch-size 2048;\r\n}\r\nsyncer { rate 800M;}             #\u6700\u5927\u540c\u6b65\u6570\u636e\u901f\u5ea6\r\n\r\non nfs1 {                        #on\u5f00\u5934\uff0c\u540e\u9762\u662f\u4e3b\u673a\u540d\u79f0\r\ndevice \/dev\/drbd0;      #drbd\u8bbe\u5907\u540d\u79f0\r\ndisk \/dev\/sdb1;              #drbd0\u4f7f\u7528\u7684\u78c1\u76d8\u5206\u533a\u4e3asdb1\r\naddress 10.0.0.5:7788; #\u8bbe\u7f6edrbd\u76d1\u542c\u5730\u5740\u4e0e\u7aef\u53e3\r\nmeta-disk internal;\r\n}\r\non nfs2 {                            #on\u5f00\u5934\uff0c\u540e\u9762\u662f\u4e3b\u673a\u540d\u79f0\r\ndevice \/dev\/drbd0;          #drbd\u8bbe\u5907\u540d\u79f0\r\ndisk \/dev\/sdb1;                 #drbd0\u4f7f\u7528\u7684\u78c1\u76d8\u5206\u533a\u4e3asdb1\r\naddress 10.0.0.6:7788;    #\u8bbe\u7f6edrbd\u76d1\u542c\u5730\u5740\u4e0e\u7aef\u53e3\r\nmeta-disk internal;\r\n}\r\n}\r\n<\/pre>\n<p>7\uff09\u5728\u4e24\u53f0\u673a\u5668\u4e0a\u90fd\u521b\u5efa\u786c\u4ef6\u8bbe\u5907DRBD\uff0c\u547d\u4ee4\u5982\u4e0b<br \/>\nmknod \/dev\/drbd0 b 147 0<\/p>\n<p>8\uff09\u5728\u542f\u52a8DRBD\u524d\uff0c\u9700\u8981\u5206\u522b\u5728\u4e24\u53f0\u673a\u5668\u7684hdb1\u5206\u533a\u4e0a\u521b\u5efa\u4f9bDRBD\u8bb0\u5f55\u4fe1\u606f\u7684\u6570\u636e\u5757\uff0c\u5206\u522b\u5728\u4e24\u53f0\u673a\u5668\u4e0a\u6267\u884c\u5982\u4e0b\u547d\u4ee4\uff1a<br \/>\ndrbdadm create-md r0<br \/>\n\u547d\u4ee4\u663e\u793a\u5982\u4e0b\u7ed3\u679c\uff1a<\/p>\n<pre class=\"prettyprint\" >\r\n\t\t--== This is a new installation of DRBD ==--\r\nPlease take part in the global DRBD usage count at http:\/\/usage.drbd.org.\r\n\r\nThe counter works anonymously. It creates a random number to identify\r\nyour machine and sends that random number, along with the kernel and\r\nDRBD version, to usage.drbd.org.\r\n\r\nThe benefits for you are:\r\n * In response to your submission, the server (usage.drbd.org) will tell you\r\n   how many users before you have installed this version (8.4.3).\r\n * With a high counter LINBIT has a strong motivation to\r\n   continue funding DRBD's development.\r\n\r\nhttp:\/\/usage.drbd.org\/cgi-bin\/insert_usage.pl?nu=2580642927742615245&git=89a294209144b68adb3ee85a73221f964d3ee515\r\n\r\nIn case you want to participate but know that this machine is firewalled,\r\nsimply issue the query string with your favorite web browser or wget.\r\nYou can control all of this by setting 'usage-count' in your drbd.conf.\r\n\r\n* You may enter a free form comment about your machine, that gets\r\n  used on usage.drbd.org instead of the big random number.\r\n* If you wish to opt out entirely, simply enter 'no'.\r\n* To count this node without comment, just press [RETURN]\r\n<\/pre>\n<p>\u6309\u4e24\u6b21\u56de\u8f66\uff0c\u5c31\u4f1a\u663e\u793asuccess\u8868\u793adrbd\u5757\u521b\u5efa\u6210\u529f<br \/>\n\u518d\u6b21\u8f93\u5165\u8be5\u547d\u4ee4\uff1a<br \/>\ndrbdadm create-md r0<br \/>\n\u6210\u529f\u6fc0\u6d3br0<br \/>\n<a href=\"\/\/hqidi.com\/wp-content\/uploads\/2015\/08\/2016-03-22_103357.png\"><img loading=\"lazy\" decoding=\"async\" src=\"\/\/hqidi.com\/wp-content\/uploads\/2015\/08\/2016-03-22_103357.png\" alt=\"2016-03-22_103357\" width=\"664\" height=\"234\" class=\"alignnone size-full wp-image-394\" \/><\/a><\/p>\n<p>9)\u73b0\u5728\u53ef\u4ee5\u542f\u52a8DRBD\u4e86\uff0c\u5206\u522b\u5728\u4e24\u53f0\u673a\u5668\u4e0a\u6267\u884c\uff0c\u5982\u4e0b\uff1a<br \/>\n \/etc\/init.d\/drbd start<br \/>\n\u73b0\u5728\u53ef\u4ee5\u67e5\u770bDRBD\u5f53\u524d\u7684\u72b6\u6001\uff0c\u5728nfs1\u4e0a\u6267\u884c\u5982\u4e0b\u547d\u4ee4\uff1a<br \/>\n \/etc\/init.d\/drbd status<br \/>\n\u6b21\u547d\u4ee4\u6267\u884c\u540e\u7684\u7ed3\u679c\u5982\u4e0b\uff1a<\/p>\n<pre class=\"prettyprint\" >\r\ndrbd driver loaded OK; device status:\r\nversion: 8.4.3 (api:1\/proto:86-101)\r\nGIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by root@nfs2, 2016-03-22 10:09:14\r\nm:res  cs         ro                   ds                         p  mounted  fstype\r\n0:r0   Connected  Secondary\/Secondary  Inconsistent\/Inconsistent  C\r\n<\/pre>\n<p>ro\u4e0b\u9762\u663e\u793a\u7684Secondary\/Secondary \u8868\u793a\u4e24\u53f0\u4e3b\u673a\u7684\u72b6\u6001\u90fd\u662f\u5907\u673a\u72b6\u6001\uff0cds\u662f\u78c1\u76d8\u72b6\u6001\uff0c\u663e\u793a\u5176\u72b6\u6001\u4e0d\u4e00\u81f4\u3002\u8fd9\u662f\u56e0\u4e3aDRBD\u65e0\u6cd5\u5224\u65ad\u54ea\u4e00\u65b9\u4e3a\u4e3b\u673a\uff0c\u5e94\u8be5\u4ee5\u54ea\u4e00\u65b9\u7684\u78c1\u76d8\u6570\u636e\u4f5c\u4e3a\u6807\u51c6\u6570\u636e\u3002<br \/>\n\u6240\u4ee5\u6211\u4eec\u8981\u521d\u59cb\u5316\u4e00\u4e2a\u4e3b\u673a\uff0c\u5728nfs1\u4e0a\u6267\u884c\u3002<\/p>\n<p>10\uff09\u521d\u59cb\u5316nfs1\uff08\u8fd9\u4e00\u6b65\u53ea\u9700\u8981\u5728\u4e3b\u8282\u70b9\u70b9\u64cd\u4f5c\uff09<br \/>\ndrbdsetup \/dev\/drbd0 primary --force<\/p>\n<p>\u518d\u6b21\u67e5\u770bDRBD\u5f53\u524d\u7684\u72b6\u6001\uff0c\u547d\u4ee4\u8f93\u51fa\u5982\u4e0b\uff1a<br \/>\n[root@nfs1 ~]# \/etc\/init.d\/drbd status|tail -1<br \/>\n0:r0   Connected  Primary\/Secondary  UpToDate\/Inconsistent  C<\/p>\n<p>\u73b0\u5728\u4e3b\u5907\u673a\u72b6\u6001\u5206\u522b\u662f\u201c\u4e3b\/\u5907\u201d\uff0c\u4e3b\u673a\u78c1\u76d8\u72b6\u6001\u662f\u201c\u5b9e\u65f6\u201d\uff0c\u5907\u673a\u72b6\u6001\u662f\u4e0d\u4e00\u81f4\u3002<br \/>\n\u5728\u7b2c3\u884c\u4e2d\u53ef\u4ee5\u770b\u5230\u6570\u636e\u6b63\u5728\u540c\u6b65\uff0c\u5373\u4e3b\u673a\u6b63\u5728\u5c06\u78c1\u76d8\u4e0a\u7684\u6570\u636e\u4f20\u9012\u5230\u5907\u673a\u4e0a\u3002<br \/>\n\u8bbe\u7f6e\u5b8c\u4e4b\u540e\u7684\u7b2c\u4e00\u6b21\u540c\u6b65\u8017\u65f6\u4f1a\u6bd4\u8f83\u957f\uff0c\u56e0\u4e3a\u9700\u8981\u628a\u6574\u4e2a\u5206\u533a\u6570\u636e\u540c\u6b65\u4e00\u904d\uff0c\u6240\u4ee5\u5982\u679c\u662f\u505a\u5b9e\u9a8c\u7684\u8bdd\uff0c\u628a\u8fd9\u4e2a\u5206\u533a\u5f04\u5c0f\u4e00\u70b9\u3002<br \/>\n\u540c\u6b65\u5b8c\u6210\u540e\uff0c\u6211\u4eec\u518d\u770b\u770bDRBD\u7684\u72b6\u6001<br \/>\n[root@nfs2 ~]# cat \/proc\/drbd<br \/>\nversion: 8.4.3 (api:1\/proto:86-101)<br \/>\nGIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by root@nfs2, 2016-03-22 10:09:14<br \/>\n 0: cs:Connected ro:Secondary\/Primary ds:UpToDate\/UpToDate C r-----<br \/>\n    ns:0 nr:1110020 dw:1110020 dr:0 al:0 bm:65 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0<\/p>\n<p>\u73b0\u5728\u78c1\u76d8\u72b6\u6001\u90fd\u662f\u201c\u5b9e\u65f6\u201d\uff0c\u8868\u793a\u6570\u636e\u540c\u6b65\u5b8c\u6210\u4e86\u3002<\/p>\n<p>drbd\u72b6\u6001\u4fe1\u606f\u89e3\u91ca\uff1a<br \/>\nro \u662f\u89d2\u8272\u4fe1\u606f\uff0cSecondary\/Primary\u8bf4\u660e\u4e86\u5f53\u524d\u4e3b\u673a\u662fSecondary\u8282\u70b9\uff0c\u53e6\u5916\u4e00\u53f0\u662fPrimary\u8282\u70b9<br \/>\nds \u662f\u78c1\u76d8\u72b6\u6001\uff0c\u663e\u793a\u6570\u636e\u662f\u5426\u4e00\u81f4\uff0c\uff08\u5982\u679c\u663e\u793aUpToDate\/UpToDate\u8868\u793a\u540c\u6b65\u6ca1\u6709\u5ef6\u65f6\u3002\uff09<br \/>\nns \u662f\u7f51\u7edc\u53d1\u9001\u7684\u6570\u636e\u5305\uff0c\u4ee5K\u5b57\u8282\u8ba1\u7b97<br \/>\ndw \u662f\u78c1\u76d8\u5199\u64cd\u4f5c<br \/>\ndr \u662f\u78c1\u76d8\u8bfb\u64cd\u4f5c<br \/>\n11\uff09DRBD\u7684\u4f7f\u7528\u3002\u73b0\u5728\u53ef\u4ee5\u628a\u4e3b\u673a\u7684DRBD\u8bbe\u5907\u6302\u8f7d\u5230\u4e00\u4e2a\u76ee\u5f55\u4e0a\u4f7f\u7528\u3002\u5907\u673a\u7684DRBD\u8bbe\u5907\u65e0\u6cd5\u88ab\u6302\u8f7d\uff0c\u56e0\u4e3a\u5b83\u662f\u7528\u6765\u63a5\u6536\u4e3b\u673a\u6570\u636e\u7684\uff0c\u7531DRBD\u8d1f\u8d23\u64cd\u4f5c\u3002<br \/>\n\u5728nfs1\u4e3b\u670d\u52a1\u5668\u4e0a\u6267\u884c\u5982\u4e0b\u64cd\u4f5c<br \/>\nmkfs.ext4 \/dev\/drbd0<br \/>\nmount \/dev\/drbd0 \/drbd<br \/>\n<a href=\"\/\/hqidi.com\/wp-content\/uploads\/2015\/08\/2016-03-22_110635.png\"><img loading=\"lazy\" decoding=\"async\" src=\"\/\/hqidi.com\/wp-content\/uploads\/2015\/08\/2016-03-22_110635.png\" alt=\"2016-03-22_110635\" width=\"402\" height=\"179\" class=\"alignnone size-full wp-image-396\" \/><\/a><br \/>\n\u73b0\u5728\u5c31\u53ef\u4ee5\u5bf9\/drbd\u5206\u533a\u8fdb\u884c\u8bfb\u5199\u64cd\u4f5c\u4e86\u3002<br \/>\n\u6ce8\u610f\uff1a\u4ece\u8282\u70b9\u4e0a\u4e0d\u5141\u8bb8\u5bf9DRBD\u8bbe\u5907\u8fdb\u884c\u4efb\u4f55\u64cd\u4f5c\uff0c\u5305\u62ec\u53ea\u8bfb\u3002\u6240\u6709\u7684\u8bfb\u5199\u64cd\u4f5c\u53ea\u80fd\u5728\u4e3b\u8282\u70b9\u4e0a\u8fdb\u884c\uff0c\u53ea\u6709\u5f53\u4e3b\u8282\u70b9\u6302\u6389\u65f6\uff0c\u4ece\u8282\u70b9\u624d\u80fd\u63d0\u5347\u6210\u4e3a\u4e3b\u8282\u70b9\uff0c\u7ee7\u7eed\u8fdb\u884c\u8bfb\u5199\u64cd\u4f5c\u3002<br \/>\n\u5230\u8fd9\u91cc\uff0cDRBD\u7684\u5b89\u88c5\u7b97\u6210\u529f\u4e86\u3002<\/p>\n<h2>heartbeat\u7684\u914d\u7f6e\u8fc7\u7a0b<\/h2>\n<p>1\uff09\u5728\u4e24\u53f0\u673a\u5668\u4e0a\u5206\u522b\u5b89\u88c5heartbeat\uff0c\u547d\u4ee4\u5982\u4e0b<br \/>\nyum install heartbeat -y<br \/>\n2\uff09nfs1\u4e0a\u7684\/etc\/ha.d\/hd.cf\u6587\u4ef6\u5185\u5bb9\u5982\u4e0b\uff1a<\/p>\n<pre class=\"prettyprint\" >\r\nlogfile \/var\/log\/ha-log\r\nlogfacility local0\r\nkeepalive 2              # \u5fc3\u8df3\u76d1\u6d4b\u65f6\u95f4\r\ndeadtime 5               # \u5907\u7528\u8282\u70b95\u79d2\u5185\u6ca1\u68c0\u6d4b\u5230\u4e3b\u673a\u5fc3\u8df3\uff0c\u786e\u8ba4\u5bf9\u65b9\u6545\u969c\r\nucast eth1 10.0.0.6      #\u5bf9\u65b9\u5fc3\u8df3\u7ebfIP\uff0c\u7ebf\u4e0a\u73af\u5883\u53ef\u4ee5\u7528\u591a\u6761\u76f4\u8fde\u4ea4\u53c9\u7ebf\u6765\u505a\u5fc3\u8df3\u7ebf\r\nauto_failback off        #\u4e3b\u670d\u52a1\u5668\u4fee\u590d\u540e\u4ece\u670d\u52a1\u5668\u4e0d\u653e\u5f03\u8be5\u8d44\u6e90\uff0c\u76f4\u5230\u4ece\u670d\u52a1\u5668\u6545\u969c\uff0c\u5982\u679c\u4e3b\u670d\u52a1\u5668\u7684\u914d\u7f6e\u6bd4\u4ece\u9ad8\uff0c\u53ef\u4ee5\u8bbeon\r\nnode nfs1 nfs2\r\n<\/pre>\n<p>nfs2\u4e0a\u7684\/etc\/ha.d\/hd.cf\u6587\u4ef6\u5185\u5bb9\u5982\u4e0b\uff1a<\/p>\n<pre class=\"prettyprint\" >\r\nlogfile \/var\/log\/ha-log\r\nlogfacility local0\r\nkeepalive 2\r\ndeadtime 5\r\nucast eth1 10.0.0.5\r\nauto_failback off\r\nnode nfs1 nfs2\r\n<\/pre>\n<p>3)\u7f16\u8f91\u53cc\u51fb\u4e92\u8054\u9a8c\u8bc1\u6587\u4ef6vim \/etc\/ha.d\/authkeys (nfs1,nfs2)<br \/>\nauth 1<br \/>\n1 sha1 hqidi.com        #\u4f7f\u7528sha1\u9a8c\u8bc1\uff0c\u5bc6\u7801\u4e3a\uff1ahqidi.com<br \/>\n\u5c06\/etc\/ha.d\/authkeys \u8bbe\u4e3a600\u7684\u6743\u9650\uff0c\u547d\u4ee4\u5982\u4e0b<br \/>\nchmod 600 \/etc\/ha.d\/authkeys<br \/>\n4)\u7f16\u8f91\u7fa4\u96c6\u8d44\u6e90\u6587\u4ef6\/etc\/ha.d\/haresources\uff1a\uff08\u4e24\u53f0\u673a\u5668\u4e0a\u914d\u7f6e\u4e00\u6837\u90fd\u662fnfs1\u5f00\u5934\uff09<br \/>\nnfs1 IPaddr::192.168.2.3\/24\/eth0 drbddisk::r0 Filesystem::\/dev\/drbd0::\/drbd::ext4 killnfsd<br \/>\n\u8be5\u6587\u4ef6\u5185IPaddr,Filesystem\u7b49\u811a\u672c\u5b58\u653e\u8def\u5f84\u5728\/etc\/ha.d\/resource.d\/\u4e0b,\u4e5f\u53ef\u5728\u8be5\u76ee\u5f55\u4e0b\u5b58\u653e\u670d\u52a1\u542f\u52a8\u811a\u672c\uff08\u4f8b\u5982\uff1amysql,www\uff09,\u5c06\u76f8\u540c\u811a\u672c\u540d\u79f0\u6dfb\u52a0\u5230\/etc\/ha.d\/haresources\u5185\u5bb9\u4e2d\uff0c\u4ece\u800c\u8ddf\u968fheartbeat\u542f\u52a8\u800c\u542f\u52a8\u8be5\u811a\u672c\u3002<\/p>\n<p>IPaddr::192.168.2.3\/24\/eth0\uff1a\u7528IPaddr\u811a\u672c\u914d\u7f6e\u6d6e\u52a8VIP<br \/>\ndrbddisk::r0\uff1a\u7528drbddisk\u811a\u672c\u5b9e\u73b0DRBD\u4e3b\u4ece\u8282\u70b9\u8d44\u6e90\u7ec4\u7684\u6302\u8f7d\u548c\u5378\u8f7d<br \/>\nFilesystem::\/dev\/drbd0::\/data::ext4\uff1a\u7528Filesystem\u811a\u672c\u5b9e\u73b0\u78c1\u76d8\u6302\u8f7d\u548c\u5378\u8f7d<\/p>\n<p>5\uff09\u7f16\u8f91\u811a\u672c\u6587\u4ef6killnfsd,\u7528\u6765\u91cd\u542fNFS\u670d\u52a1\uff1a<br \/>\n\u6ce8\uff1a\u56e0\u4e3aNFS\u670d\u52a1\u5207\u6362\u540e\uff0c\u5fc5\u987b\u91cd\u65b0mount NFS\u5171\u4eab\u51fa\u6765\u7684\u76ee\u5f55\uff0c\u5426\u5219\u4f1a\u62a5\u9519\uff08\u5f85\u9a8c\u8bc1\uff09<br \/>\n# vi \/etc\/ha.d\/resource.d\/killnfsd<br \/>\n-----------------<br \/>\nkillall -9 nfsd; \/etc\/init.d\/nfs restart;exit 0<br \/>\n-----------------<br \/>\n\u8d4b\u4e88\u6267\u884c\u6743\u9650\uff1a<br \/>\n# chmod 755 \/etc\/ha.d\/resource.d\/killnfsd<\/p>\n<p>6\uff09\u521b\u5efaDRBD\u811a\u672c\u6587\u4ef6drbddisk:(node1,node2)<\/p>\n<pre class=\"prettyprint\" >\r\n# vi \/etc\/ha.d\/resource.d\/drbddisk\r\n-----------------------\r\n#!\/bin\/bash\r\n#\r\n# This script is inteded to be used as resource script by heartbeat\r\n#\r\n# Copright 2003-2008 LINBIT Information Technologies\r\n# Philipp Reisner, Lars Ellenberg\r\n#\r\n###\r\nDEFAULTFILE=\"\/etc\/default\/drbd\"\r\nDRBDADM=\"\/sbin\/drbdadm\"\r\nif [ -f $DEFAULTFILE ]; then\r\n . $DEFAULTFILE\r\nfi\r\nif [ \"$#\" -eq 2 ]; then\r\n RES=\"$1\"\r\n CMD=\"$2\"\r\nelse\r\n RES=\"all\"\r\n CMD=\"$1\"\r\nfi\r\n## EXIT CODES\r\n# since this is a \"legacy heartbeat R1 resource agent\" script,\r\n# exit codes actually do not matter that much as long as we conform to\r\n#  http:\/\/wiki.linux-ha.org\/HeartbeatResourceAgent\r\n# but it does not hurt to conform to lsb init-script exit codes,\r\n# where we can.\r\n#  http:\/\/refspecs.linux-foundation.org\/LSB_3.1.0\/\r\n#LSB-Core-generic\/LSB-Core-generic\/iniscrptact.html\r\n####\r\ndrbd_set_role_from_proc_drbd()\r\n{\r\nlocal out\r\nif ! test -e \/proc\/drbd; then\r\nROLE=\"Unconfigured\"\r\nreturn\r\nfi\r\ndev=$( $DRBDADM sh-dev $RES )\r\nminor=${dev#\/dev\/drbd}\r\nif [[ $minor = *[!0-9]* ]] ; then\r\n# sh-minor is only supported since drbd 8.3.1\r\nminor=$( $DRBDADM sh-minor $RES )\r\nfi\r\nif [[ -z $minor ]] || [[ $minor = *[!0-9]* ]] ; then\r\nROLE=Unknown\r\nreturn\r\nfi\r\nif out=$(sed -ne \"\/^ *$minor: cs:\/ { s\/:\/ \/g; p; q; }\" \/proc\/drbd); then\r\nset -- $out\r\nROLE=${5%\/**}\r\n: ${ROLE:=Unconfigured} # if it does not show up\r\nelse\r\nROLE=Unknown\r\nfi\r\n}\r\ncase \"$CMD\" in\r\n   start)\r\n# try several times, in case heartbeat deadtime\r\n# was smaller than drbd ping time\r\ntry=6\r\nwhile true; do\r\n$DRBDADM primary $RES && break\r\nlet \"--try\" || exit 1 # LSB generic error\r\nsleep 1\r\ndone\r\n;;\r\n   stop)\r\n# heartbeat (haresources mode) will retry failed stop\r\n# for a number of times in addition to this internal retry.\r\ntry=3\r\nwhile true; do\r\n$DRBDADM secondary $RES && break\r\n# We used to lie here, and pretend success for anything != 11,\r\n# to avoid the reboot on failed stop recovery for \"simple\r\n# config errors\" and such. But that is incorrect.\r\n# Don't lie to your cluster manager.\r\n# And don't do config errors...\r\nlet --try || exit 1 # LSB generic error\r\nsleep 1\r\ndone\r\n;;\r\n   status)\r\nif [ \"$RES\" = \"all\" ]; then\r\n   echo \"A resource name is required for status inquiries.\"\r\n   exit 10\r\nfi\r\nST=$( $DRBDADM role $RES )\r\nROLE=${ST%\/**}\r\ncase $ROLE in\r\nPrimary|Secondary|Unconfigured)\r\n# expected\r\n;;\r\n*)\r\n# unexpected. whatever...\r\n# If we are unsure about the state of a resource, we need to\r\n# report it as possibly running, so heartbeat can, after failed\r\n# stop, do a recovery by reboot.\r\n# drbdsetup may fail for obscure reasons, e.g. if \/var\/lock\/ is\r\n# suddenly readonly.  So we retry by parsing \/proc\/drbd.\r\ndrbd_set_role_from_proc_drbd\r\nesac\r\ncase $ROLE in\r\nPrimary)\r\necho \"running (Primary)\"\r\nexit 0 # LSB status \"service is OK\"\r\n;;\r\nSecondary|Unconfigured)\r\necho \"stopped ($ROLE)\"\r\nexit 3 # LSB status \"service is not running\"\r\n;;\r\n*)\r\n# NOTE the \"running\" in below message.\r\n# this is a \"heartbeat\" resource script,\r\n# the exit code is _ignored_.\r\necho \"cannot determine status, may be running ($ROLE)\"\r\nexit 4 #  LSB status \"service status is unknown\"\r\n;;\r\nesac\r\n;;\r\n   *)\r\necho \"Usage: drbddisk [resource] {start|stop|status}\"\r\nexit 1\r\n;;\r\nesac\r\nexit 0\r\n\r\n<\/pre>\n<p>\u8d4b\u4e88\u6267\u884c\u6743\u9650\uff1a<br \/>\n# chmod 755 \/etc\/ha.d\/resource.d\/drbddisk<br \/>\n\u5728\u4e24\u4e2a\u8282\u70b9\u4e0a\u542f\u52a8HeartBeat\u670d\u52a1\uff0c\u5148\u542f\u52a8node1\uff1a(node1,node2)<br \/>\n# service heartbeat start<br \/>\n# chkconfig heartbeat on<br \/>\n\u8fd9\u91cc\u7528CMD\u80fd\u591fPING\u901a\u865aIP 192.168.2.3\uff0c\u800c\u4e14arp -a 192.168.2.3\u548c192.168.2.5\u7684mac\u5730\u5740\u76f8\u540c\uff0c\u8868\u793a\u914d\u7f6e\u6210\u529f\u3002<\/p>\n<p>\u91cd\u542fNFS\u670d\u52a1\uff1a<br \/>\n# service rpcbind restart<br \/>\n# service nfs restart<br \/>\n# chkconfig rpcbind on<br \/>\n# chkconfig nfs off<br \/>\n\u8fd9\u91cc\u8bbe\u7f6eNFS\u5f00\u673a\u4e0d\u8981\u81ea\u52a8\u8fd0\u884c\uff0c\u56e0\u4e3a\/etc\/ha.d\/resource.d\/killnfsd \u8be5\u811a\u672c\u5185\u5bb9\u63a7\u5236NFS\u7684\u542f\u52a8\u3002<\/p>\n<p>7\uff09\u6700\u7ec8\u6d4b\u8bd5<br \/>\n\u5728\u53e6\u5916\u4e00\u53f0LINUX\u7684\u5ba2\u6237\u7aef\u6302\u8f7d\u865aIP\uff1a192.168.2.3\uff0c\u6302\u8f7d\u6210\u529f\u8868\u660eNFS+DRBD+HeartBeat\u5927\u529f\u544a\u6210.<br \/>\nyum install -y nfs-utils<br \/>\nmount -t nfs 192.168.2.3:\/drbd \/data<\/p>\n<p>[root@tianqi ~]# df -Th|tail -1<br \/>\n192.168.2.3:\/drbd nfs    988M  1.4M  934M   1% \/data<\/p>\n<h2>\u6d4b\u8bd5DRBD+HeartBeat+NFS\u53ef\u7528\u6027<\/h2>\n<p>1.\u5411\u6302\u8f7d\u7684\/tmp\u76ee\u5f55\u4f20\u9001\u6587\u4ef6\uff0c\u5ffd\u7136\u91cd\u65b0\u542f\u52a8\u4e3b\u7aefDRBD\u670d\u52a1\uff0c\u67e5\u770b\u53d8\u5316<br \/>\n\u7ecf\u672c\u4eba\u6d4b\u8bd5\u80fd\u591f\u5b9e\u73b0\u65ad\u70b9\u7eed\u4f20<br \/>\n2.\u6b63\u5e38\u72b6\u6001\u91cd\u542fPrimary\u4e3b\u673a\u540e\uff0c\u89c2\u5bdf\u4e3bDRBD\u72b6\u6001\u662f\u5426\u6062\u590dPrimary\u5e76\u80fd\u6b63\u5e38\u88ab\u5ba2\u6237\u7aef\u6302\u8f7d\u5e76\u4e14\u4e4b\u524d\u5199\u5165\u7684\u6587\u4ef6\u5b58\u5728\uff0c\u53ef\u4ee5\u6b63\u5e38\u518d\u5199\u5165\u6587\u4ef6\u3002<br \/>\n\u7ecf\u672c\u4eba\u6d4b\u8bd5\u53ef\u4ee5\u6b63\u5e38\u6062\u590d\uff0c\u4e14\u5ba2\u6237\u7aef\u65e0\u9700\u91cd\u65b0\u6302\u8f7dNFS\u5171\u4eab\u76ee\u5f55\uff0c\u4e4b\u524d\u6570\u636e\u5b58\u5728\uff0c\u4e14\u53ef\u76f4\u63a5\u5199\u5165\u6587\u4ef6\u3002<br \/>\n3.\u5f53Primary\u4e3b\u673a\u56e0\u4e3a\u786c\u4ef6\u635f\u574f\u6216\u5176\u4ed6\u539f\u56e0\u9700\u8981\u5173\u673a\u7ef4\u4fee\uff0c\u9700\u8981\u5c06Secondary\u63d0\u5347\u4e3aPrimary\u4e3b\u673a\uff0c\u5982\u4f55\u624b\u52a8\u64cd\u4f5c\uff1f<br \/>\n\u5982\u679c\u8bbe\u5907\u80fd\u591f\u6b63\u5e38\u542f\u52a8\u5219\u6309\u7167\u5982\u4e0b\u64cd\u4f5c\uff0c\u65e0\u6cd5\u542f\u52a8\u5219\u5f3a\u884c\u63d0\u5347Secondary\u4e3aPrimary\uff0c\u5f85\u5b95\u673a\u8bbe\u5907\u80fd\u591f\u6b63\u5e38\u542f\u52a8\uff0c\u82e5\u201c\u8111\u88c2\u201d\uff0c\u518d\u505a\u540e\u7eed\u4fee\u590d\u5de5\u4f5c\u3002<br \/>\n\u9996\u5148\u5148\u5378\u8f7d\u5ba2\u6237\u7aef\u6302\u8f7d\u7684NFS\u4e3b\u673a\u76ee\u5f55<br \/>\n# umount \/tmp<br \/>\n(nfs1)<br \/>\n\u5378\u8f7dDRBD\u8bbe\u5907\uff1a<br \/>\n# service nfs stop<br \/>\n# umount \/data<br \/>\n\u964d\u6743\uff1a<br \/>\n# drbdadm secondary r0<br \/>\n\u67e5\u770b\u72b6\u6001\uff0c\u5df2\u964d\u6743<br \/>\n# service drbd status<br \/>\n-----------------<br \/>\ndrbd driver loaded OK; device status:<br \/>\nversion: 8.4.3 (api:1\/proto:86-101)<br \/>\nGIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by root@drbd1.example.com, 2013-05-27 20:45:19<br \/>\nm:res  cs         ro                   ds                 p  mounted  fstype<br \/>\n0:r0   Connected  Secondary\/Secondary  UpToDate\/UpToDate  C<br \/>\n-----------------<br \/>\n(nfs2)<br \/>\n\u63d0\u6743\uff1a<br \/>\n# drbdadm primary r0<br \/>\n\u67e5\u770b\u72b6\u6001\uff0c\u5df2\u63d0\u6743\uff1a<br \/>\n# service drbd status<br \/>\n----------------<br \/>\ndrbd driver loaded OK; device status:<br \/>\nversion: 8.4.3 (api:1\/proto:86-101)<br \/>\nGIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by root@drbd2.example.com, 2013-05-27 20:49:06<br \/>\nm:res  cs         ro                 ds                 p  mounted  fstype<br \/>\n0:r0   Connected  Primary\/Secondary  UpToDate\/UpToDate  C<br \/>\n----------------<br \/>\n\u8fd9\u91cc\u8fd8\u672a\u6302\u8f7dDRBD\u76ee\u5f55\uff0c\u8ba9Heartbeat\u5e2e\u5fd9\u6302\u8f7d\uff1a<br \/>\n\u6ce8\uff1a\u82e5\u91cd\u542f\u8fc7\u7a0b\u4e2d\u53d1\u73b0Heartbeat\u65e5\u5fd7\u62a5\u9519\uff1a<br \/>\nERROR: glib: ucast: error binding socket. Retrying: Permission denied<br \/>\n\u8bf7\u68c0\u67e5selinux\u662f\u5426\u5173\u95ed<br \/>\n# service heartbeat restart<br \/>\n# service drbd status<br \/>\n-----------------------<br \/>\ndrbd driver loaded OK; device status:<br \/>\nversion: 8.4.3 (api:1\/proto:86-101)<br \/>\nGIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by root@drbd2.example.com, 2013-05-27 20:49:06<br \/>\nm:res  cs         ro                 ds                 p  mounted  fstype<br \/>\n0:r0   Connected  Primary\/Secondary  UpToDate\/UpToDate  C  \/data    ext4<br \/>\n------------------------<br \/>\n\u6210\u529f\u8ba9HeartBeat\u6302\u8f7dDRBD\u76ee\u5f55<br \/>\n\u91cd\u65b0\u5728\u5ba2\u6237\u7aef\u505aNFS\u6302\u8f7d\u6d4b\u8bd5\uff1a<br \/>\n# mount -t nfs 192.168.2.3:\/data \/tmp<br \/>\n# ll \/tmp<br \/>\n------------------<br \/>\n1  10  2  2222  3  4  5  6  7  8  9  lost+found  orbit-root<br \/>\n------------------<br \/>\n\u91cd\u542f\u521a\u521a\u88ab\u63d0\u6743\u7684\u4e3b\u673a\uff0c\u5f85\u91cd\u542f\u67e5\u770b\u72b6\u6001\uff1a<br \/>\n# service drbd status<br \/>\n------------------------<br \/>\ndrbd driver loaded OK; device status:<br \/>\nversion: 8.4.3 (api:1\/proto:86-101)<br \/>\nGIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by root@drbd2.example.com, 2013-05-27 20:49:06<br \/>\nm:res  cs            ro               ds                 p  mounted  fstype<br \/>\n0:r0   WFConnection  Primary\/Unknown  UpToDate\/DUnknown  C  \/data    ext4<br \/>\n------------------------<br \/>\nHeartBeat\u6210\u529f\u6302\u8f7dDRBD\u76ee\u5f55\uff0cdrbd\u65e0\u7f1d\u8fde\u63a5\u5230\u5907\u4efd\u8282\u70b9\uff0c\u5ba2\u6237\u7aef\u4f7f\u7528NFS\u6302\u8f7d\u70b9\u5bf9\u6545\u969c\u65e0\u4efb\u4f55\u611f\u77e5\u3002<br \/>\n4.\u6d4b\u8bd5\u6700\u540e\u521a\u624d\u90a3\u53f0\u5b95\u673a\u91cd\u65b0\u6062\u590d\u6b63\u5e38\u540e\uff0c\u4ed6\u662f\u5426\u4f1a\u4ece\u65b0\u593a\u53d6Primary\u8d44\u6e90\uff1f<br \/>\n\u91cd\u542f\u540e\u4e0d\u4f1a\u91cd\u65b0\u83b7\u53d6\u8d44\u6e90\uff0c\u9700\u624b\u52a8\u5207\u6362\u4e3b\u4ece\u6743\u9650\u65b9\u53ef\u3002<br \/>\n\u6ce8\uff1avi \/etc\/ha.d\/ha.cf\u914d\u7f6e\u6587\u4ef6\u5185\u8be5\u53c2\u6570\uff1a<br \/>\n--------------------<br \/>\nauto_failback   off<br \/>\n--------------------<br \/>\n\u8868\u793a\u670d\u52a1\u5668\u6b63\u5e38\u540e\u7531\u65b0\u7684\u4e3b\u670d\u52a1\u5668\u63a5\u7ba1\u8d44\u6e90\uff0c\u53e6\u4e00\u53f0\u65e7\u670d\u52a1\u5668\u653e\u5f03\u8be5\u8d44\u6e90<br \/>\n5.\u4ee5\u4e0a\u90fd\u672a\u5229\u7528heartbeat\u5b9e\u73b0\u6545\u969c\u81ea\u52a8\u8f6c\u79fb\uff0c\u5f53\u7ebf\u4e0aDRBD\u4e3b\u8282\u70b9\u5b95\u673a\uff0c\u5907\u4efd\u8282\u70b9\u662f\u5426\u7acb\u5373\u65e0\u7f1d\u63a5\u7ba1\uff0cheartbeat+drbd\u9ad8\u53ef\u7528\u6027\u662f\u5426\u80fd\u591f\u5b9e\u73b0\uff1f<br \/>\n\u9996\u5148\u5148\u5728\u5ba2\u6237\u7aef\u6302\u8f7dNFS\u5171\u4eab\u76ee\u5f55<br \/>\n# mount -t nfs 192.168.2.3:\/data \/tmp<br \/>\na.\u6a21\u62df\u5c06\u4e3b\u8282\u70b9nfs1 \u7684heartbeat\u670d\u52a1\u505c\u6b62\uff0c\u5219\u5907\u8282\u70b9nfs2\u662f\u5426\u63a5\u7ba1\u670d\u52a1\uff1f<br \/>\n(nfs1)<br \/>\n# service drbd status<br \/>\n----------------------------<br \/>\ndrbd driver loaded OK; device status:<br \/>\nversion: 8.4.3 (api:1\/proto:86-101)<br \/>\nGIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by root@drbd1.example.com, 2013-05-27 20:45:19<br \/>\nm:res  cs         ro                 ds                 p  mounted  fstype<br \/>\n0:r0   Connected  Primary\/Secondary  UpToDate\/UpToDate  C  \/data    ext4<br \/>\n----------------------------<br \/>\n# service heartbeat stop<br \/>\n(nfs2)<br \/>\n# service drbd status<br \/>\n----------------------------------------<br \/>\ndrbd driver loaded OK; device status:<br \/>\nversion: 8.4.3 (api:1\/proto:86-101)<br \/>\nGIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by root@drbd2.example.com, 2013-05-27 20:49:06<br \/>\nm:res  cs         ro                 ds                 p  mounted  fstype<br \/>\n0:r0   Connected  Primary\/Secondary  UpToDate\/UpToDate  C  \/data    ext4<br \/>\n-----------------------------------------<br \/>\n\u4ece\u673a\u65e0\u7f1d\u63a5\u7ba1\uff0c\u6d4b\u8bd5\u5ba2\u6237\u7aef\u662f\u5426\u80fd\u591f\u4f7f\u7528NFS\u5171\u4eab\u76ee\u5f55<br \/>\n# cd \/tmp<br \/>\n# touch test01<br \/>\n# ls test01<br \/>\n------------------<br \/>\ntest01<br \/>\n------------------<br \/>\n\u6d4b\u8bd5\u901a\u8fc7\u3002\u3002\u3002<br \/>\nb.\u6a21\u62df\u5c06\u4e3b\u8282\u70b9\u5b95\u673a\uff08\u76f4\u63a5\u5f3a\u884c\u5173\u673a\uff09\uff0c\u5219\u5907\u8282\u70b9nfs2\u662f\u5426\u63a5\u7ba1\u670d\u52a1\uff1f<br \/>\n(nfs1)<br \/>\n\u5f3a\u5236\u5173\u673a,\u76f4\u63a5\u5173\u95ednfs1\u865a\u62df\u673a\u7535\u6e90<br \/>\n(nfs2)<br \/>\n# service drbd status<br \/>\n-------------------------------<br \/>\ndrbd driver loaded OK; device status:<br \/>\nversion: 8.4.3 (api:1\/proto:86-101)<br \/>\nGIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by root@drbd2.example.com, 2013-05-27 20:49:06<br \/>\nm:res  cs            ro               ds                 p  mounted  fstype<br \/>\n0:r0   WFConnection  Primary\/Unknown  UpToDate\/DUnknown  C  \/data    ext4<br \/>\n-------------------------------<br \/>\n\u4ece\u673a\u65e0\u7f1d\u63a5\u7ba1\uff0c\u6d4b\u8bd5\u5ba2\u6237\u7aef\u662f\u5426\u80fd\u591f\u4f7f\u7528NFS\u5171\u4eab\u76ee\u5f55<br \/>\n# cd \/tmp<br \/>\n# touch test02<br \/>\n# ls test02<br \/>\n------------------<br \/>\ntest02<br \/>\n------------------<br \/>\n\u5f85nfs1\u6062\u590d\u542f\u52a8\uff0c\u67e5\u770bdrbd\u72b6\u6001\u4fe1\u606f\uff1a<br \/>\n# service drbd status<br \/>\n------------------------------<br \/>\ndrbd driver loaded OK; device status:<br \/>\nversion: 8.4.3 (api:1\/proto:86-101)<br \/>\nGIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by root@drbd2.example.com, 2013-05-27 20:49:06<br \/>\nm:res  cs         ro                 ds                 p  mounted  fstype<br \/>\n0:r0   Connected  Primary\/Secondary  UpToDate\/UpToDate  C  \/data    ext4<br \/>\n-------------------------------<br \/>\nnfs1\u5df2\u8fde\u63a5\u4e0a\u7ebf\uff0c\u5904\u4e8eUpToDate\u72b6\u6001\uff0c\u6d4b\u8bd5\u901a\u8fc7\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5206\u5e03\u5f0f\u590d\u5236\u5757\u8bbe\u5907\uff08distributed replicated block device\uff09\u662f\u4e00\u79cd\u57fa\u4e8elinux \u7684\u8f6f\u4ef6\u7ec4\u4ef6\uff0c\u7531\u5185\u6838\u6a21\u5757\u548c\u76f8\u5173\u7a0b\u5e8f\u7ec4\u6210\uff08linux2.6.33\u4e4b\u540e\u7684\u5185\u6838\u81ea\u5e26\uff09\uff0c\u53ef\u901a\u8fc7\u7f51\u7edc\u955c\u50cf\u4fc3\u8fdb\u5171\u4eab\u5b58\u50a8\u7684\u66ff\u6362\uff0c\u4e5f\u5c31\u662f\u8bf4\uff0c\u5f53\u4f60\u5c06\u6570\u636e\u5199\u5165\u672c\u5730DRBD\u8bbe\u5907\u4e0a\u7684\u6587\u4ef6\u7cfb\u7edf\u65f6\uff0c\u6570\u636e\u4f1a\u540c\u65f6\u88ab\u53d1\u9001\u5230\u7f51\u7edc\u4e0a\u7684\u53e6\u5916\u4e00\u53f0\u4e3b\u673a\u4e0a\uff0c\u4ee5\u5b8c\u5168\u76f8\u540c\u7684\u5f62\u5f0f\u8bb0\u5f55\u5728\u4e00\u4e2a\u6587\u4ef6\u7cfb\u7edf\u4e2d\u3002...<\/p>\n<a class=\"read-more\" href=\"https:\/\/hqidi.com\/58.html\">\u9605\u8bfb\u5168\u6587 &raquo;<\/a>","protected":false},"author":1,"featured_media":3002,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[36],"class_list":["post-58","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-work","tag-nfs"],"_links":{"self":[{"href":"https:\/\/hqidi.com\/wp-json\/wp\/v2\/posts\/58"}],"collection":[{"href":"https:\/\/hqidi.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hqidi.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hqidi.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hqidi.com\/wp-json\/wp\/v2\/comments?post=58"}],"version-history":[{"count":1,"href":"https:\/\/hqidi.com\/wp-json\/wp\/v2\/posts\/58\/revisions"}],"predecessor-version":[{"id":3003,"href":"https:\/\/hqidi.com\/wp-json\/wp\/v2\/posts\/58\/revisions\/3003"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hqidi.com\/wp-json\/wp\/v2\/media\/3002"}],"wp:attachment":[{"href":"https:\/\/hqidi.com\/wp-json\/wp\/v2\/media?parent=58"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hqidi.com\/wp-json\/wp\/v2\/categories?post=58"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hqidi.com\/wp-json\/wp\/v2\/tags?post=58"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}