{"action":"created","comment":{"url":"https://api.github.com/repos/SUSE/doc-sleha/pulls/comments/191755856","pull_request_review_id":124388826,"id":191755856,"diff_hunk":"@@ -200,7 +408,88 @@\n     </para>\n    </important>\n   </sect2>\n+\n+  <sect2 xml:id=\"sec.ha.config.basics.corosync.2-node\">\n+   <title>&corosync; Configuration for Two-Node Clusters</title>\n+   <para>\n+    When using the bootstrap scripts, the &corosync; configuration contains\n+    a <literal>quorum</literal> section with the following options:\n+   </para>\n+   <example xml:id=\"ex.ha.config.basics.corosync.quorum\">\n+    <title>Excerpt of &corosync; Configuration for a Two-Node Cluster</title>\n+    <screen>quorum {\n+   # Enable and configure quorum subsystem (default: off)\n+   # see also corosync.conf.5 and votequorum.5\n+   provider: corosync_votequorum\n+   expected_votes: 2\n+   two_node: 1\n+}</screen>\n+   </example>\n+   <para>\n+    Normally you do not need to change this. Do not set\n+    <literal>no-quorum-policy=ignore</literal> and <literal>two_node: 1</literal>\n+    together. By default, when <literal>two_node: 1</literal> is set, the\n+    <literal>wait_for_all</literal> option is automatically enabled.\n+    If <literal>wait_for_all</literal> is not enbaled, the cluster should be\n+    started on both nodes in parallel. Otherwise the first node will perform\n+    a startup-fencing on the missing second node.\n+   </para>\n+  </sect2>\n+  <sect2 xml:id=\"sec.ha.config.basics.corosync.n-node\">\n+   <title>&corosync; Configuration for N-Node Clusters</title>\n+   <para>\n+    When not using a two-node cluster, we strongly recommend an odd number\n+    of nodes four your N-node cluster. With regards to quorum configuration,\n+    you have the following options:\n+   </para>\n+   <itemizedlist>\n+    <listitem>\n+     <para>Adding additional nodes with the <command>ha-cluster-join</command>\n+     command, or</para>\n+    </listitem>\n+    <listitem>\n+     <para>Adapting the &corosync; configuration manually.</para>\n+    </listitem>\n+   </itemizedlist>\n+   <para>\n+    If you adjust <filename>/etc/corosync/corosync.conf</filename> manually,\n+    use the following settings:\n+   </para>\n+   <example>\n+    <title>Excerpt of &corosync; Configuration for a N-Node Cluster</title>\n+    <screen>quorum {\n+   provider: corosync_votequorum <co xml:id=\"co.corosync.quorum.n-node.corosync_votequorum\"/>\n+   expected_votes: <replaceable>N</replaceable> <co xml:id=\"co.corosync.quorum.n-node.expected_votes\"/>\n+   wait_for_all: 1 <co xml:id=\"co.corosync.quorum.n-node.wait_for_all\"/>\n+}</screen>\n+    <calloutlist>\n+     <callout arearefs=\"co.corosync.quorum.n-node.corosync_votequorum\">\n+      <para>Use the quorum service from &corosync;</para>\n+     </callout>\n+     <callout arearefs=\"co.corosync.quorum.n-node.expected_votes\">\n+      <para>The number of votes to expect. This parameter can either be\n+       provided inside the <literal>quorum</literal> section, or is\n+       automatically calculated when the <literal>nodelist</literal>\n+       section is available.</para>\n+     </callout>\n+     <callout arearefs=\"co.corosync.quorum.n-node.wait_for_all\">\n+      <para>\n+       Enables the wait for all (WFA) feature.\n+       When WFA is enabled, the cluster will be quorate for the first time\n+       only after all nodes have been visible.\n+       To avoid some startup race conditions, setting <option>wait_for_all</option>\n+       to <literal>1</literal> may help.\n+       For example, in a five-node cluster every node has one vote and thus,\n+       <option>expected_votes</option> is set to <literal>5</literal>.\n+       As soon as three or more nodes are visible to each other, the cluster\n+       partition becomes quorate and can start operating.","path":"xml/ha_config_basics.xml","position":470,"original_position":470,"commit_id":"f9ff143787615ef024233c6f73dfaa5d610b4b14","original_commit_id":"f9ff143787615ef024233c6f73dfaa5d610b4b14","user":{"login":"gao-yan","id":1002242,"avatar_url":"https://avatars1.githubusercontent.com/u/1002242?v=4","gravatar_id":"","url":"https://api.github.com/users/gao-yan","html_url":"https://github.com/gao-yan","followers_url":"https://api.github.com/users/gao-yan/followers","following_url":"https://api.github.com/users/gao-yan/following{/other_user}","gists_url":"https://api.github.com/users/gao-yan/gists{/gist_id}","starred_url":"https://api.github.com/users/gao-yan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gao-yan/subscriptions","organizations_url":"https://api.github.com/users/gao-yan/orgs","repos_url":"https://api.github.com/users/gao-yan/repos","events_url":"https://api.github.com/users/gao-yan/events{/privacy}","received_events_url":"https://api.github.com/users/gao-yan/received_events","type":"User","site_admin":false},"body":"And be aware that \"wait_for_all\" defaults to \"0\". In the previous 2-node scenario, it's just \"two_node_: 1\" automatically enables it.","created_at":"2018-05-30T12:57:17Z","updated_at":"2018-05-30T12:57:17Z","html_url":"https://github.com/SUSE/doc-sleha/pull/80#discussion_r191755856","pull_request_url":"https://api.github.com/repos/SUSE/doc-sleha/pulls/80","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/SUSE/doc-sleha/pulls/comments/191755856"},"html":{"href":"https://github.com/SUSE/doc-sleha/pull/80#discussion_r191755856"},"pull_request":{"href":"https://api.github.com/repos/SUSE/doc-sleha/pulls/80"}},"in_reply_to_id":191754069},"pull_request":{"url":"https://api.github.com/repos/SUSE/doc-sleha/pulls/80","id":186009806,"html_url":"https://github.com/SUSE/doc-sleha/pull/80","diff_url":"https://github.com/SUSE/doc-sleha/pull/80.diff","patch_url":"https://github.com/SUSE/doc-sleha/pull/80.patch","issue_url":"https://api.github.com/repos/SUSE/doc-sleha/issues/80","number":80,"state":"open","locked":false,"title":"WIP: Integrate bsc#1088466","user":{"login":"tomschr","id":1312925,"avatar_url":"https://avatars2.githubusercontent.com/u/1312925?v=4","gravatar_id":"","url":"https://api.github.com/users/tomschr","html_url":"https://github.com/tomschr","followers_url":"https://api.github.com/users/tomschr/followers","following_url":"https://api.github.com/users/tomschr/following{/other_user}","gists_url":"https://api.github.com/users/tomschr/gists{/gist_id}","starred_url":"https://api.github.com/users/tomschr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tomschr/subscriptions","organizations_url":"https://api.github.com/users/tomschr/orgs","repos_url":"https://api.github.com/users/tomschr/repos","events_url":"https://api.github.com/users/tomschr/events{/privacy}","received_events_url":"https://api.github.com/users/tomschr/received_events","type":"User","site_admin":false},"body":"This PR contains the following changes:\r\n\r\n* Introduce section \"Quorum Calculation\"\r\n* Carve out difference between 2-node and n-node clusters\r\n* Add Corosync excerpt of config for 2-node cluster\r\n* <s>TODO: Amed section \"sec.ha.config.basics.corosync.n-node\" about n-node clusters</s>","created_at":"2018-05-04T15:01:36Z","updated_at":"2018-05-30T12:57:17Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1d71013a3f6660342d43091c1e3b54940a1b8128","assignee":{"login":"tomschr","id":1312925,"avatar_url":"https://avatars2.githubusercontent.com/u/1312925?v=4","gravatar_id":"","url":"https://api.github.com/users/tomschr","html_url":"https://github.com/tomschr","followers_url":"https://api.github.com/users/tomschr/followers","following_url":"https://api.github.com/users/tomschr/following{/other_user}","gists_url":"https://api.github.com/users/tomschr/gists{/gist_id}","starred_url":"https://api.github.com/users/tomschr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tomschr/subscriptions","organizations_url":"https://api.github.com/users/tomschr/orgs","repos_url":"https://api.github.com/users/tomschr/repos","events_url":"https://api.github.com/users/tomschr/events{/privacy}","received_events_url":"https://api.github.com/users/tomschr/received_events","type":"User","site_admin":false},"assignees":[{"login":"tomschr","id":1312925,"avatar_url":"https://avatars2.githubusercontent.com/u/1312925?v=4","gravatar_id":"","url":"https://api.github.com/users/tomschr","html_url":"https://github.com/tomschr","followers_url":"https://api.github.com/users/tomschr/followers","following_url":"https://api.github.com/users/tomschr/following{/other_user}","gists_url":"https://api.github.com/users/tomschr/gists{/gist_id}","starred_url":"https://api.github.com/users/tomschr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tomschr/subscriptions","organizations_url":"https://api.github.com/users/tomschr/orgs","repos_url":"https://api.github.com/users/tomschr/repos","events_url":"https://api.github.com/users/tomschr/events{/privacy}","received_events_url":"https://api.github.com/users/tomschr/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":228720154,"url":"https://api.github.com/repos/SUSE/doc-sleha/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"milestone":null,"commits_url":"https://api.github.com/repos/SUSE/doc-sleha/pulls/80/commits","review_comments_url":"https://api.github.com/repos/SUSE/doc-sleha/pulls/80/comments","review_comment_url":"https://api.github.com/repos/SUSE/doc-sleha/pulls/comments{/number}","comments_url":"https://api.github.com/repos/SUSE/doc-sleha/issues/80/comments","statuses_url":"https://api.github.com/repos/SUSE/doc-sleha/statuses/f9ff143787615ef024233c6f73dfaa5d610b4b14","head":{"label":"SUSE:feature/bsc1088466-quorum","ref":"feature/bsc1088466-quorum","sha":"f9ff143787615ef024233c6f73dfaa5d610b4b14","user":{"login":"SUSE","id":1067733,"avatar_url":"https://avatars0.githubusercontent.com/u/1067733?v=4","gravatar_id":"","url":"https://api.github.com/users/SUSE","html_url":"https://github.com/SUSE","followers_url":"https://api.github.com/users/SUSE/followers","following_url":"https://api.github.com/users/SUSE/following{/other_user}","gists_url":"https://api.github.com/users/SUSE/gists{/gist_id}","starred_url":"https://api.github.com/users/SUSE/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SUSE/subscriptions","organizations_url":"https://api.github.com/users/SUSE/orgs","repos_url":"https://api.github.com/users/SUSE/repos","events_url":"https://api.github.com/users/SUSE/events{/privacy}","received_events_url":"https://api.github.com/users/SUSE/received_events","type":"Organization","site_admin":false},"repo":{"id":38032771,"name":"doc-sleha","full_name":"SUSE/doc-sleha","owner":{"login":"SUSE","id":1067733,"avatar_url":"https://avatars0.githubusercontent.com/u/1067733?v=4","gravatar_id":"","url":"https://api.github.com/users/SUSE","html_url":"https://github.com/SUSE","followers_url":"https://api.github.com/users/SUSE/followers","following_url":"https://api.github.com/users/SUSE/following{/other_user}","gists_url":"https://api.github.com/users/SUSE/gists{/gist_id}","starred_url":"https://api.github.com/users/SUSE/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SUSE/subscriptions","organizations_url":"https://api.github.com/users/SUSE/orgs","repos_url":"https://api.github.com/users/SUSE/repos","events_url":"https://api.github.com/users/SUSE/events{/privacy}","received_events_url":"https://api.github.com/users/SUSE/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/SUSE/doc-sleha","description":"Official SUSE Linux Enterprise High Availability documentation","fork":false,"url":"https://api.github.com/repos/SUSE/doc-sleha","forks_url":"https://api.github.com/repos/SUSE/doc-sleha/forks","keys_url":"https://api.github.com/repos/SUSE/doc-sleha/keys{/key_id}","collaborators_url":"https://api.github.com/repos/SUSE/doc-sleha/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/SUSE/doc-sleha/teams","hooks_url":"https://api.github.com/repos/SUSE/doc-sleha/hooks","issue_events_url":"https://api.github.com/repos/SUSE/doc-sleha/issues/events{/number}","events_url":"https://api.github.com/repos/SUSE/doc-sleha/events","assignees_url":"https://api.github.com/repos/SUSE/doc-sleha/assignees{/user}","branches_url":"https://api.github.com/repos/SUSE/doc-sleha/branches{/branch}","tags_url":"https://api.github.com/repos/SUSE/doc-sleha/tags","blobs_url":"https://api.github.com/repos/SUSE/doc-sleha/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/SUSE/doc-sleha/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/SUSE/doc-sleha/git/refs{/sha}","trees_url":"https://api.github.com/repos/SUSE/doc-sleha/git/trees{/sha}","statuses_url":"https://api.github.com/repos/SUSE/doc-sleha/statuses/{sha}","languages_url":"https://api.github.com/repos/SUSE/doc-sleha/languages","stargazers_url":"https://api.github.com/repos/SUSE/doc-sleha/stargazers","contributors_url":"https://api.github.com/repos/SUSE/doc-sleha/contributors","subscribers_url":"https://api.github.com/repos/SUSE/doc-sleha/subscribers","subscription_url":"https://api.github.com/repos/SUSE/doc-sleha/subscription","commits_url":"https://api.github.com/repos/SUSE/doc-sleha/commits{/sha}","git_commits_url":"https://api.github.com/repos/SUSE/doc-sleha/git/commits{/sha}","comments_url":"https://api.github.com/repos/SUSE/doc-sleha/comments{/number}","issue_comment_url":"https://api.github.com/repos/SUSE/doc-sleha/issues/comments{/number}","contents_url":"https://api.github.com/repos/SUSE/doc-sleha/contents/{+path}","compare_url":"https://api.github.com/repos/SUSE/doc-sleha/compare/{base}...{head}","merges_url":"https://api.github.com/repos/SUSE/doc-sleha/merges","archive_url":"https://api.github.com/repos/SUSE/doc-sleha/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/SUSE/doc-sleha/downloads","issues_url":"https://api.github.com/repos/SUSE/doc-sleha/issues{/number}","pulls_url":"https://api.github.com/repos/SUSE/doc-sleha/pulls{/number}","milestones_url":"https://api.github.com/repos/SUSE/doc-sleha/milestones{/number}","notifications_url":"https://api.github.com/repos/SUSE/doc-sleha/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/SUSE/doc-sleha/labels{/name}","releases_url":"https://api.github.com/repos/SUSE/doc-sleha/releases{/id}","deployments_url":"https://api.github.com/repos/SUSE/doc-sleha/deployments","created_at":"2015-06-25T06:44:49Z","updated_at":"2018-05-30T12:50:25Z","pushed_at":"2018-05-30T12:50:23Z","git_url":"git://github.com/SUSE/doc-sleha.git","ssh_url":"git@github.com:SUSE/doc-sleha.git","clone_url":"https://github.com/SUSE/doc-sleha.git","svn_url":"https://github.com/SUSE/doc-sleha","homepage":"https://www.suse.com/doc/sle-ha-12/","size":61204,"stargazers_count":4,"watchers_count":4,"language":"Makefile","has_issues":false,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":11,"mirror_url":null,"archived":false,"open_issues_count":3,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":11,"open_issues":3,"watchers":4,"default_branch":"develop"}},"base":{"label":"SUSE:develop","ref":"develop","sha":"bc051b167d6ba2661f6927570f5ebb34ef973178","user":{"login":"SUSE","id":1067733,"avatar_url":"https://avatars0.githubusercontent.com/u/1067733?v=4","gravatar_id":"","url":"https://api.github.com/users/SUSE","html_url":"https://github.com/SUSE","followers_url":"https://api.github.com/users/SUSE/followers","following_url":"https://api.github.com/users/SUSE/following{/other_user}","gists_url":"https://api.github.com/users/SUSE/gists{/gist_id}","starred_url":"https://api.github.com/users/SUSE/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SUSE/subscriptions","organizations_url":"https://api.github.com/users/SUSE/orgs","repos_url":"https://api.github.com/users/SUSE/repos","events_url":"https://api.github.com/users/SUSE/events{/privacy}","received_events_url":"https://api.github.com/users/SUSE/received_events","type":"Organization","site_admin":false},"repo":{"id":38032771,"name":"doc-sleha","full_name":"SUSE/doc-sleha","owner":{"login":"SUSE","id":1067733,"avatar_url":"https://avatars0.githubusercontent.com/u/1067733?v=4","gravatar_id":"","url":"https://api.github.com/users/SUSE","html_url":"https://github.com/SUSE","followers_url":"https://api.github.com/users/SUSE/followers","following_url":"https://api.github.com/users/SUSE/following{/other_user}","gists_url":"https://api.github.com/users/SUSE/gists{/gist_id}","starred_url":"https://api.github.com/users/SUSE/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SUSE/subscriptions","organizations_url":"https://api.github.com/users/SUSE/orgs","repos_url":"https://api.github.com/users/SUSE/repos","events_url":"https://api.github.com/users/SUSE/events{/privacy}","received_events_url":"https://api.github.com/users/SUSE/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/SUSE/doc-sleha","description":"Official SUSE Linux Enterprise High Availability documentation","fork":false,"url":"https://api.github.com/repos/SUSE/doc-sleha","forks_url":"https://api.github.com/repos/SUSE/doc-sleha/forks","keys_url":"https://api.github.com/repos/SUSE/doc-sleha/keys{/key_id}","collaborators_url":"https://api.github.com/repos/SUSE/doc-sleha/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/SUSE/doc-sleha/teams","hooks_url":"https://api.github.com/repos/SUSE/doc-sleha/hooks","issue_events_url":"https://api.github.com/repos/SUSE/doc-sleha/issues/events{/number}","events_url":"https://api.github.com/repos/SUSE/doc-sleha/events","assignees_url":"https://api.github.com/repos/SUSE/doc-sleha/assignees{/user}","branches_url":"https://api.github.com/repos/SUSE/doc-sleha/branches{/branch}","tags_url":"https://api.github.com/repos/SUSE/doc-sleha/tags","blobs_url":"https://api.github.com/repos/SUSE/doc-sleha/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/SUSE/doc-sleha/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/SUSE/doc-sleha/git/refs{/sha}","trees_url":"https://api.github.com/repos/SUSE/doc-sleha/git/trees{/sha}","statuses_url":"https://api.github.com/repos/SUSE/doc-sleha/statuses/{sha}","languages_url":"https://api.github.com/repos/SUSE/doc-sleha/languages","stargazers_url":"https://api.github.com/repos/SUSE/doc-sleha/stargazers","contributors_url":"https://api.github.com/repos/SUSE/doc-sleha/contributors","subscribers_url":"https://api.github.com/repos/SUSE/doc-sleha/subscribers","subscription_url":"https://api.github.com/repos/SUSE/doc-sleha/subscription","commits_url":"https://api.github.com/repos/SUSE/doc-sleha/commits{/sha}","git_commits_url":"https://api.github.com/repos/SUSE/doc-sleha/git/commits{/sha}","comments_url":"https://api.github.com/repos/SUSE/doc-sleha/comments{/number}","issue_comment_url":"https://api.github.com/repos/SUSE/doc-sleha/issues/comments{/number}","contents_url":"https://api.github.com/repos/SUSE/doc-sleha/contents/{+path}","compare_url":"https://api.github.com/repos/SUSE/doc-sleha/compare/{base}...{head}","merges_url":"https://api.github.com/repos/SUSE/doc-sleha/merges","archive_url":"https://api.github.com/repos/SUSE/doc-sleha/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/SUSE/doc-sleha/downloads","issues_url":"https://api.github.com/repos/SUSE/doc-sleha/issues{/number}","pulls_url":"https://api.github.com/repos/SUSE/doc-sleha/pulls{/number}","milestones_url":"https://api.github.com/repos/SUSE/doc-sleha/milestones{/number}","notifications_url":"https://api.github.com/repos/SUSE/doc-sleha/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/SUSE/doc-sleha/labels{/name}","releases_url":"https://api.github.com/repos/SUSE/doc-sleha/releases{/id}","deployments_url":"https://api.github.com/repos/SUSE/doc-sleha/deployments","created_at":"2015-06-25T06:44:49Z","updated_at":"2018-05-30T12:50:25Z","pushed_at":"2018-05-30T12:50:23Z","git_url":"git://github.com/SUSE/doc-sleha.git","ssh_url":"git@github.com:SUSE/doc-sleha.git","clone_url":"https://github.com/SUSE/doc-sleha.git","svn_url":"https://github.com/SUSE/doc-sleha","homepage":"https://www.suse.com/doc/sle-ha-12/","size":61204,"stargazers_count":4,"watchers_count":4,"language":"Makefile","has_issues":false,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":11,"mirror_url":null,"archived":false,"open_issues_count":3,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":11,"open_issues":3,"watchers":4,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/SUSE/doc-sleha/pulls/80"},"html":{"href":"https://github.com/SUSE/doc-sleha/pull/80"},"issue":{"href":"https://api.github.com/repos/SUSE/doc-sleha/issues/80"},"comments":{"href":"https://api.github.com/repos/SUSE/doc-sleha/issues/80/comments"},"review_comments":{"href":"https://api.github.com/repos/SUSE/doc-sleha/pulls/80/comments"},"review_comment":{"href":"https://api.github.com/repos/SUSE/doc-sleha/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/SUSE/doc-sleha/pulls/80/commits"},"statuses":{"href":"https://api.github.com/repos/SUSE/doc-sleha/statuses/f9ff143787615ef024233c6f73dfaa5d610b4b14"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"gao-yan"}}