# When server A is turned off, then servers B and C are not available. This is normal?

**URL:** <https://discuss.elastic.co/t/when-server-a-is-turned-off-then-servers-b-and-c-are-not-available-this-is-normal/131709>\
**Category:** Elasticsearch\
**Created:** [May 14, 2018, 9:57am UTC](https://discuss.elastic.co/t/when-server-a-is-turned-off-then-servers-b-and-c-are-not-available-this-is-normal/131709 "2018-05-14T09:57:14Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![clgs](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/clgs/32/48363_2.png) [@clgs](https://discuss.elastic.co/u/clgs)\
**Post date:** [May 14, 2018, 9:57am UTC](https://discuss.elastic.co/t/when-server-a-is-turned-off-then-servers-b-and-c-are-not-available-this-is-normal/131709/1 "2018-05-14T09:57:14Z")

</div>

Hi.  
We have three servers (A, B and C).  
Server A must be made a master.  
Servers B and C with slaves.

Server A:  
node.master: true  
node.data: true  
node.ingest: false  
discovery.zen.ping.unicast.hosts: ["A", "B", "C"]

Server B  
node.master: false  
node.data: true  
node.ingest: false  
discovery.zen.ping.unicast.hosts: ["B", "C", "A"]

Server C  
node.master: false  
node.data: true  
node.ingest: false  
discovery.zen.ping.unicast.hosts: ["C", "A", "B"]

When server A is turned off, then servers B and C are not available. This is normal?

---

<div class="post-metadata">

**Author:** ![A\_B](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/a_b/32/17104_2.png) [@A\_B](https://discuss.elastic.co/u/A_B)\
**Post date:** [May 14, 2018, 10:08am UTC](https://discuss.elastic.co/t/when-server-a-is-turned-off-then-servers-b-and-c-are-not-available-this-is-normal/131709/2 "2018-05-14T10:08:00Z")

</div>

If you only have one `master` I think that is what happens.

Why can't B and C be masters?

---

<div class="post-metadata">

**Author:** ![rcowart](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rcowart/32/88091_2.png) [@rcowart](https://discuss.elastic.co/u/rcowart)\
**Post date:** [May 14, 2018, 10:14am UTC](https://discuss.elastic.co/t/when-server-a-is-turned-off-then-servers-b-and-c-are-not-available-this-is-normal/131709/3 "2018-05-14T10:14:08Z")

</div>

`node.master: true` means that the node is "master eligible", not that it will be THE master. For a three node cluster you need...

```auto
Server A:
node.master: true
node.data: true
node.ingest: false
discovery.zen.ping.unicast.hosts: ["B", "C"]
discovery.zen.minimum_master_nodes: 2

Server B
node.master: true
node.data: true
node.ingest: false
discovery.zen.ping.unicast.hosts: ["C", "A"]
discovery.zen.minimum_master_nodes: 2

Server C
node.master: true
node.data: true
node.ingest: false
discovery.zen.ping.unicast.hosts: ["A", "B"]
discovery.zen.minimum_master_nodes: 2

```

---

<div class="post-metadata">

**Author:** ![clgs](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/clgs/32/48363_2.png) [@clgs](https://discuss.elastic.co/u/clgs)\
**Post date:** [May 14, 2018, 10:15am UTC](https://discuss.elastic.co/t/when-server-a-is-turned-off-then-servers-b-and-c-are-not-available-this-is-normal/131709/4 "2018-05-14T10:15:09Z")

</div>

Do the wizards B and C, and write data only on A?

It is assumed that A is RW, B and C are only R.

---

<div class="post-metadata">

**Author:** ![A\_B](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/a_b/32/17104_2.png) [@A\_B](https://discuss.elastic.co/u/A_B)\
**Post date:** [May 14, 2018, 10:16am UTC](https://discuss.elastic.co/t/when-server-a-is-turned-off-then-servers-b-and-c-are-not-available-this-is-normal/131709/5 "2018-05-14T10:16:31Z")

</div>

That is not what `node.master` means... The master role has to do with managing the cluster nodes.

All nodes will be RW. And `node.data` is what sets if documents are stored on the node or not.

---

<div class="post-metadata">

**Author:** ![clgs](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/clgs/32/48363_2.png) [@clgs](https://discuss.elastic.co/u/clgs)\
**Post date:** [May 14, 2018, 10:16am UTC](https://discuss.elastic.co/t/when-server-a-is-turned-off-then-servers-b-and-c-are-not-available-this-is-normal/131709/6 "2018-05-14T10:16:32Z")

</div>

Or to make all servers node.master: true?

---

<div class="post-metadata">

**Author:** ![A\_B](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/a_b/32/17104_2.png) [@A\_B](https://discuss.elastic.co/u/A_B)\
**Post date:** [May 14, 2018, 10:19am UTC](https://discuss.elastic.co/t/when-server-a-is-turned-off-then-servers-b-and-c-are-not-available-this-is-normal/131709/7 "2018-05-14T10:19:06Z")

</div>

> [@clgs](#):
>
> Or to make all servers node.master: true?

yes 😃

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [May 14, 2018, 10:19am UTC](https://discuss.elastic.co/t/when-server-a-is-turned-off-then-servers-b-and-c-are-not-available-this-is-normal/131709/8 "2018-05-14T10:19:40Z")

</div>

Even easier start your nodes with the only following configuration:

```auto
discovery.zen.ping.unicast.hosts: ["A", "B", "C"]
discovery.zen.minimum_master_nodes: 2

```

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [May 14, 2018, 10:23am UTC](https://discuss.elastic.co/t/when-server-a-is-turned-off-then-servers-b-and-c-are-not-available-this-is-normal/131709/9 "2018-05-14T10:23:29Z")

</div>

Elasticsearch nodes form a cluster, it is not a master-slave architecture.

---

<div class="post-metadata">

**Author:** ![A\_B](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/a_b/32/17104_2.png) [@A\_B](https://discuss.elastic.co/u/A_B)\
**Post date:** [May 14, 2018, 3:40pm UTC](https://discuss.elastic.co/t/when-server-a-is-turned-off-then-servers-b-and-c-are-not-available-this-is-normal/131709/10 "2018-05-14T15:40:00Z")

</div>

> [@rcowart](#):
>
> Server A:  
> node.master: true  
> node.data: true  
> node.ingest: false  
> discovery.zen.ping.unicast.hosts: ["B", "C"]  
> discovery.zen.minimum\_master\_nodes: 2
> 
> Server B  
> node.master: true  
> node.data: true  
> node.ingest: false  
> discovery.zen.ping.unicast.hosts: ["C", "A"]  
> discovery.zen.minimum\_master\_nodes: 2
> 
> Server C  
> node.master: true  
> node.data: true  
> node.ingest: false  
> discovery.zen.ping.unicast.hosts: ["A", "B"]  
> discovery.zen.minimum\_master\_nodes: 2

Is this config not a little bit dangerous? Not listing the "local" node in `discovery.zen.ping.unicast.hosts` that is.

When ever any node goes down `discovery.zen.minimum_master_nodes: 2` is not true anymore...

Say, node **A** goes down for any reason.

- **A** can not be master (it is stopped)
- **B** can not be elected master as it will need an answer from both **C** and **A** for who should be elected master
- **C** can not be elected master as it will need an answer from both **A** and **B** for who should be elected master

I'm just curious... Maybe I don't know something about master election.

---

<div class="post-metadata">

**Author:** ![clgs](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/clgs/32/48363_2.png) [@clgs](https://discuss.elastic.co/u/clgs)\
**Post date:** [May 14, 2018, 3:55pm UTC](https://discuss.elastic.co/t/when-server-a-is-turned-off-then-servers-b-and-c-are-not-available-this-is-normal/131709/11 "2018-05-14T15:55:34Z")

</div>

**dadoonet** write:

```
discovery.zen.ping.unicast.hosts: ["A", "B", "C"]
discovery.zen.minimum_master_nodes: 2
```

---

<div class="post-metadata">

**Author:** ![rcowart](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rcowart/32/88091_2.png) [@rcowart](https://discuss.elastic.co/u/rcowart)\
**Post date:** [May 14, 2018, 4:37pm UTC](https://discuss.elastic.co/t/when-server-a-is-turned-off-then-servers-b-and-c-are-not-available-this-is-normal/131709/12 "2018-05-14T16:37:45Z")

</div>

No it doesn't need an answer from both of those. B already knows about his own configuration, he just needs to find another master eligible node and he is good to go. So as long as A or C are reachable (in you example C would be), there is a 2 node quorum and all is well. B doesn't have to send a unicast message to himself.

@dadoonet was just arguing in favor of consistency on all three nodes. Either way works.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [June 11, 2018, 4:37pm UTC](https://discuss.elastic.co/t/when-server-a-is-turned-off-then-servers-b-and-c-are-not-available-this-is-normal/131709/13 "2018-06-11T16:37:51Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
