{"id":985,"date":"2026-02-23T23:29:52","date_gmt":"2026-02-23T14:29:52","guid":{"rendered":"http:\/\/www.igoni.kr\/?p=985"},"modified":"2026-02-23T23:29:52","modified_gmt":"2026-02-23T14:29:52","slug":"corosync-pacemaker%eb%a5%bc-%ec%9d%b4%ec%9a%a9%ed%95%9c-ha%ea%b5%ac%ec%84%b1","status":"publish","type":"post","link":"http:\/\/www.igoni.kr\/?p=985","title":{"rendered":"corosync \/ pacemaker\ub97c \uc774\uc6a9\ud55c HA\uad6c\uc131"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\ubaa9 \ucc28<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"\ubaa9\ucc28 \ud1a0\uae00\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"http:\/\/www.igoni.kr\/?p=985\/#%EC%84%A4%EC%B9%98_%EB%B0%A9%EC%95%88_%EB%AA%A8%EB%93%A0_%EB%85%B8%EB%93%9C\" >\uc124\uce58 \ubc29\uc548 (\ubaa8\ub4e0 \ub178\ub4dc)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"http:\/\/www.igoni.kr\/?p=985\/#%EA%B4%80%EB%A6%AC%ED%88%B4crmsh_%EC%84%A4%EC%B9%98\" >\uad00\ub9ac\ud234(crmsh) \uc124\uce58<\/a><\/li><\/ul><\/nav><\/div>\n<p>HA stack<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-987\" src=\"http:\/\/www.igoni.kr\/wp-content\/uploads\/2026\/02\/iaEimage.png\" alt=\"\" width=\"710\" height=\"254\" srcset=\"http:\/\/www.igoni.kr\/wp-content\/uploads\/2026\/02\/iaEimage.png 710w, http:\/\/www.igoni.kr\/wp-content\/uploads\/2026\/02\/iaEimage-300x107.png 300w\" sizes=\"auto, (max-width: 710px) 100vw, 710px\" \/><\/p>\n<p>&nbsp;<\/p>\n<ol id=\"bkmrk-ha-stackhardware-%3A-%EB%AC%BC\">\n<li style=\"list-style-type: none;\">\n<ol>\n<li>Hardware : \ubb3c\ub9ac\uc11c\ubc84<\/li>\n<li>Message : Clustering \ub9f4\ubc84\uac04 \ud1b5\uc2e0\uc0c1\ud0dc \ud655\uc778<\/li>\n<li>Resoure Manager : failover \/ failback \uc791\uc5c5 \uc218\ud589<\/li>\n<li>Management : HA\ub97c \uad6c\uc131\ud558\ub3c4\ub85d \uc81c\uacf5\ub418\ub294 Tool<\/li>\n<li>Service : HA\uc6a9 \uc11c\ube44\uc2a4<\/li>\n<\/ol>\n<\/li>\n<li>Service Architecture (Active\u00a0 \/ Standby)<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-989\" src=\"http:\/\/www.igoni.kr\/wp-content\/uploads\/2026\/02\/t0mimage.png\" alt=\"\" width=\"280\" height=\"223\" \/><br \/>\n&nbsp;<\/li>\n<\/ol>\n<h3 id=\"bkmrk-%EC%84%A4%EC%B9%98-%EB%B0%A9%EC%95%88-%28%EB%AA%A8%EB%93%A0-%EB%85%B8%EB%93%9C%29\" class=\"wikigeneratedid\"><span class=\"ez-toc-section\" id=\"%EC%84%A4%EC%B9%98_%EB%B0%A9%EC%95%88_%EB%AA%A8%EB%93%A0_%EB%85%B8%EB%93%9C\"><\/span>\uc124\uce58 \ubc29\uc548 (\ubaa8\ub4e0 \ub178\ub4dc)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p id=\"bkmrk-1.%ED%8C%A8%ED%82%A4%EC%A7%80-%EC%84%A4%EC%B9%98\">1.\ud328\ud0a4\uc9c0 \uc124\uce58<\/p>\n<pre id=\"bkmrk-%24%3E-yum-install-coros\"><code class=\"language-shell\">$&gt; yum install corosync pacemaker pcs automake -y<\/code><\/pre>\n<p id=\"bkmrk-1.ha%EB%A5%BC-%EC%9C%84%ED%95%9C-%EC%82%AC%EC%9A%A9%EC%9E%90-%EA%B3%84%EC%A0%95%EC%84%A4%EC%A0%95-%ED%9B%84-\">1.HA\ub97c \uc704\ud55c \uc0ac\uc6a9\uc790 \uacc4\uc815\uc124\uc815 \ud6c4 pcsd \uc11c\ube44\uc2a4 \uc2e4\ud589 (\ubaa8\ub4e0\ub178\ub4dc \ub3d9\uc77c\ud55c \ud328\uc2a4\uc6cc\ub4dc \uc785\ub825)<\/p>\n<pre id=\"bkmrk-%24%3E-passwd-hacluster-\"><code class=\"language-shell\">$&gt; passwd hacluster\r\nChanging password for user hacluster.\r\nNew password:\r\nBAD PASSWORD: it is based on a dictionary word\r\nRetype new password:\r\npasswd: all authentication tokens updated successfully.\r\n$&gt; systemctl start pcsd<\/code><\/pre>\n<div id=\"bkmrk-\">\n<div class=\"box\">\n<div class=\"code\"><\/div>\n<\/div>\n<\/div>\n<ol id=\"bkmrk-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-%EC%9D%B8%EC%A6%9D%EA%B5%AC%EC%84%B1-%28%EC%9D%B4%ED%9B%84-%EA%B3%BC%EC%A0%95%EC%9D%80-ma\">\n<li>\ud074\ub7ec\uc2a4\ud130 \uc778\uc99d\uad6c\uc131 (\uc774\ud6c4 \uacfc\uc815\uc740 master or slave \uc911 1\ub300\uc5d0\uc11c\ub9cc \uc218\ud589)\n<pre><code class=\"language-shell\">$&gt; pcs cluster auth master slave\r\nUsername: hacluster\r\nPassword:\r\nmaster: Authorized\r\nslave: Authorized<\/code><\/pre>\n<\/li>\n<li>\ud074\ub7ec\uc2a4\ud130 \uad6c\uc131\n<pre><code class=\"language-shell\">$&gt; pcs cluster setup --name cluster master slave\r\nDestroying cluster on nodes: master, slave...\r\nmaster: Stopping Cluster (pacemaker)...\r\nslave: Stopping Cluster (pacemaker)...\r\nslave: Successfully destroyed cluster\r\nmaster: Successfully destroyed cluster\r\n\r\nSending 'pacemaker_remote authkey' to 'master', 'slave'\r\nslave: successful distribution of the file 'pacemaker_remote authkey'\r\nmaster: successful distribution of the file 'pacemaker_remote authkey'\r\nSending cluster config files to the nodes...\r\nmaster: Succeeded\r\nslave: Succeeded\r\n\r\nSynchronizing pcsd certificates on nodes master, slave...\r\nmaster: Success\r\nslave: Success\r\nRestarting pcsd on the nodes in order to reload the certificates...\r\nmaster: Success\r\nslave: Success<\/code><\/pre>\n<\/li>\n<li>\ud074\ub7ec\uc2a4\ud130 \uc5d0 \ud544\uc694\ud55c \uc11c\ube44\uc2a4 \uad6c\ub3d9\n<pre><code class=\"language-shell\">$&gt; pcs cluster start --all\r\n# pcs status corosync\r\n\r\nMembership information\r\n----------------------\r\n\u00a0\u00a0\u00a0\u00a0Nodeid \u00a0\u00a0\u00a0\u00a0\u00a0Votes Name\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a01 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a01 master (local)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a02 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a01 slave\r\n\r\n\r\n#pcs property set stonith-enabled=false<\/code><\/pre>\n<\/li>\n<li>\uc7ac\ubd80\ud305 \ud6c4 \uc11c\ube44\uc2a4 \ud65c\uc131\ud654 (\uc591\ucabd\uc11c\ubc84\uc5d0\uc11c \ubaa8\ub450 \uc218\ud589)\n<pre><code class=\"language-shell\"># systemctl enable pacemaker\r\n# systemctl enable corosync<\/code><\/pre>\n<\/li>\n<\/ol>\n<h3 id=\"bkmrk-%EA%B4%80%EB%A6%AC%ED%88%B4%28crmsh%29-%EC%84%A4%EC%B9%98\" class=\"wikigeneratedid\"><span class=\"ez-toc-section\" id=\"%EA%B4%80%EB%A6%AC%ED%88%B4crmsh_%EC%84%A4%EC%B9%98\"><\/span>\uad00\ub9ac\ud234(crmsh) \uc124\uce58<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ol id=\"bkmrk-crmsh%EC%84%A4%EC%B9%98%EB%A5%BC-%EC%9C%84%ED%95%9C-os-%ED%8C%A8%ED%82%A4%EC%A7%80-%EC%84%A4\">\n<li>crmsh\uc124\uce58\ub97c \uc704\ud55c OS \ud328\ud0a4\uc9c0 \uc124\uce58\n<pre><code class=\"language-shell\">$&gt; yum install -y python-lxml \u00a0pacemaker-libs-devel asciidoc python-dateutil python-yaml --skip-broken\r\n$&gt; yum install python-devel python-setuptools -y<\/code><\/pre>\n<\/li>\n<li>crmsh \ud328\ud0a4\uc9c0 \ub2e4\uc6b4\ub85c\ub4dc \ud6c4 \uc124\uce58\n<pre><code class=\"language-shell\">$&gt; .\/autogen.sh\r\nautoconf: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0autoconf (GNU Autoconf) 2.63\r\nautomake: \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0automake (GNU automake) 1.11.1\r\naclocal\r\nautomake --add-missing --include-deps --copy\r\nconfigure.ac:33: installing `.\/install-sh'\r\nconfigure.ac:33: installing `.\/missing'\r\nautoconf\r\nNow run .\/configure\r\n\r\n&gt;# .\/configure\r\nchecking for a BSD-compatible install... \/usr\/bin\/install -c\r\nchecking whether build environment is sane... yes\r\nchecking for a thread-safe mkdir -p... \/bin\/mkdir -p\r\nchecking for gawk... gawk\r\nchecking whether make sets $(MAKE)... yes\r\nchecking for python... \/usr\/bin\/python\r\nchecking for python version... 2.6\r\nchecking for python platform... linux2\r\nchecking for python script directory... ${prefix}\/lib\/python2.6\/site-packages\r\nchecking for python extension module directory... ${exec_prefix}\/lib64\/python2.6\/site-packages\r\nchecking for asciidoc... no\r\nconfigure: creating .\/config.status\r\nconfig.status: creating Makefile\r\nconfig.status: creating hb_report\/hb_report\r\nconfig.status: creating crm.conf\r\nconfig.status: creating version\r\n&gt;# make; make install\r\n...<\/code><\/pre>\n<\/li>\n<li>CRM \ub77c\uc774\ube0c\ub7ec\ub9ac \uc5f0\ub3d9\n<pre><code class=\"language-shell\"># ln -s \/usr\/local\/lib\/python2.6\/site-packages\/crmsh \u00a0\u00a0\/usr\/lib\/python2.6\/site-packages\/<\/code><\/pre>\n<\/li>\n<li>\uc11c\ube44\uc2a4 \uad6c\ub3d9\n<pre><code class=\"language-shell\"># \/etc\/init.d\/corosync start\r\n&gt;# \/etc\/init.d\/pacemaker start\r\n&gt;# chkconfig corosync on\r\n&gt;# chkconfig pacemaker on<\/code><\/pre>\n<ul>\n<li>\uc8fc\uc758\uc0ac\ud56d : Pacemaker\/Corosync\ub97c \uc774\uc6a9\ud55c HA\uc2dc corosync\uc5d0\uc11c \uba54\uc2dc\uc9c0\ub97c \ucc98\ub9ac\ud558\uae30 \ub54c\ubb38\uc5d0 pacemaker\ubcf4\ub2e4 corosync\uac00 \uba3c\uc800 \uc2e4\ud589\ub418\uc5b4\uc57c \ud55c\ub2e4.<\/li>\n<li>\uc11c\ube44\uc2a4 \uc911\uc9c0\ub294 pacemaker\u00a0\u2192 corosync \uc21c\uc73c\ub85c \uc885\ub8cc<\/li>\n<\/ul>\n<\/li>\n<li>\uc11c\ube44\uc2a4 \uc774\uc0c1\uc5ec\ubd80 \ud655\uc778\n<pre><code class=\"language-\">$&gt; crm_mon -1<\/code><\/pre>\n<\/li>\n<li>HA \ub9ac\uc18c\uc2a4 \uad6c\uc131\n<pre><code class=\"language-shell\">########## \ub3d9\uc77c\ud55c \uac00\uc911\uce58 \uc124\uc815\uc73c\ub85c Auto-Failback \ube44\ud65c\uc131\ud654 #############\r\n&gt;#crm configure\r\ncrm(configure)# property stonith-enabled=false\r\ncrm(configure)# property no-quorum-policy=ignore\r\ncrm(configure)# rsc_defaults resource-stickiness=100\r\ncrm(configure)# commit\r\n\r\n\r\n############## HA\uc6a9 VIP \uc124\uc815 #####################\r\ncrm(configure)# primitive TEST_STOR_VIP ocf:heartbeat:IPaddr2 params ip={HA VIP} cidr_netmask=24 op monitor interval=10s\r\n\r\n############## DRBD \uc5f0\ub3d9 #########################\r\ncrm(configure)# primitive TEST_STOR_DRBD ocf:linbit:drbd params drbd_resource=\"drbd0\" op monitor interval=\"20s\" role=\"Master\" op monitor interval=\"20s\" role=\"Slave\"\r\ncrm(configure)# ms MS_TEST_STOR_DRBD TEST_STOR_DRBD meta master-max=\"1\" master-node-max=\"1\" clone-max=\"2\" clone-node-max=\"1\" notify=\"true\"\r\ncrm(configure)# primitive TEST_STOR_FS ocf:heartbeat:Filesystem params device=\"\/dev\/drbd0\" directory=\"\/data\" fstype=\"xfs\"\r\n\r\n\r\n\r\n\r\n############ DRBD \uadf8\ub8f9\uad6c\uc131, \uc11c\ube44\uc2a4 \uad6c\ub3d9 \uc21c\uc11c \uc124\uc815 #################3\r\ncrm(configure)# group TEST_STOR_GP TEST_STOR_FS TEST_STOR_VIP meta migration-threshold=\"5\"\r\ncrm(configure)# colocation DRBD_on_HA inf: TEST_STOR_GP MS_TEST_STOR_DRBD:Master\r\ncrm(configure)# order DRBD_after_HA inf: MS_TEST_STOR_DRBD:promote TEST_STOR_GP:start\r\n\r\n\r\n\r\n\r\n############## \ub9ac\uc18c\uc2a4 \uad6c\uc131\ud6c4 \uc644\ub8cc ######################\r\ncrm(configure)# commit<\/code><\/pre>\n<\/li>\n<li>HA\uad6c\uc131\uc815\ubcf4 \ud655\uc778\n<pre><code class=\"language-shell\"># crm_mon -1\r\nStack: classic openais (with plugin)\r\nCurrent DC: TEST-STOR#1 (version 1.1.18-3.el6-bfe4e80420) - partition with quorum\r\nLast updated: Wed Dec 18 18:29:46 2019\r\nLast change: Mon Sep \u00a02 19:26:34 2019 by root via crm_resource on TEST-STOR#1\r\n\r\n2 nodes configured (2 expected votes)\r\n5 resources configured\r\n\r\nOnline: [ TEST-STOR#1 TEST-STOR#2 ]\r\n\r\nActive resources:\r\n\r\n\u00a0Master\/Slave Set: MS_TEST_STOR_DRBD [TEST_STOR_DRBD]\r\n\u00a0\u00a0\u00a0\u00a0\u00a0Masters: [ TEST-STOR#1 ]\r\n\u00a0\u00a0\u00a0\u00a0\u00a0Slaves: [ TEST-STOR#2 ]\r\n\u00a0Resource Group: TEST_STOR_GP\r\n\u00a0\u00a0\u00a0\u00a0\u00a0TEST_STOR_FS \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0(ocf::heartbeat:Filesystem): \u00a0\u00a0\u00a0Started TEST-STOR#1\r\n\u00a0\u00a0\u00a0\u00a0\u00a0TEST_STOR_APACHE \u00a0\u00a0\u00a0(lsb:httpd): \u00a0\u00a0\u00a0Started TEST-STOR#1\r\n\u00a0\u00a0\u00a0\u00a0\u00a0TEST_STOR_VIP \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0(ocf::heartbeat:IPaddr): \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Started TEST-STOR#1<\/code><\/pre>\n<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>HA stack &nbsp; Hardware : \ubb3c\ub9ac\uc11c\ubc84 Message : Clustering \ub9f4\ubc84\uac04 \ud1b5\uc2e0\uc0c1\ud0dc \ud655\uc778 Resoure Manager : failover&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[265],"tags":[267,195],"class_list":["post-985","post","type-post","status-publish","format-standard","hentry","category-high-availability","tag-corosync","tag-pacemaker"],"aioseo_notices":[],"_links":{"self":[{"href":"http:\/\/www.igoni.kr\/index.php?rest_route=\/wp\/v2\/posts\/985","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.igoni.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.igoni.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.igoni.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.igoni.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=985"}],"version-history":[{"count":1,"href":"http:\/\/www.igoni.kr\/index.php?rest_route=\/wp\/v2\/posts\/985\/revisions"}],"predecessor-version":[{"id":991,"href":"http:\/\/www.igoni.kr\/index.php?rest_route=\/wp\/v2\/posts\/985\/revisions\/991"}],"wp:attachment":[{"href":"http:\/\/www.igoni.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=985"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.igoni.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=985"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.igoni.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=985"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}