Voting only master/cluster_manager

Versions (relevant - OpenSearch/Dashboard/Server OS/Browser):

version[2.13.0], pid[23007], build[tar/7ec678d1b7c87d6e779fdef94e33623e1f1e2647/2024-03-26T00:02:39.659767978Z], OS[Linux/5.15.0-105-generic/amd64], JVM[Eclipse Adoptium/OpenJDK 64-Bit Server VM/21.0.2/21.0.2+13-LTS]

Describe the issue:

I have a 3-node setup:

  • 2 x very powerful physical servers (2 x Sockets, 32 Cores/64 Threads, 2TB RAM, 4 x NVME, 12 x SAS)
  • 1 x very limited VM

I want to make the VM a voting_only just to make quorum in case of a physical server goes bad. And I’m unable to do so, adding node.roles: [master,voting_only] to the VM, still makes it a cluster_manager when rotating restart the physical servers.

How can I set the VM to not be a master in any circumstance?

Configuration:

Physical servers: (node.name is different, rest is the same):

cluster.name: "opensearch-se1"
node.name: "opensearch-se1-01"
network.host: "0.0.0.0"
http.port: 9200
bootstrap.memory_lock: true
discovery.seed_hosts: ["opensearch-se1-01","opensearch-se1-02","opensearch-se1-03"]
node.roles: [data,master,ingest]

VM:

cluster.name: "opensearch-se1"
node.name: "opensearch-se1-03"
network.host: "0.0.0.0"
http.port: 9200
bootstrap.memory_lock: true
discovery.seed_hosts: ["opensearch-se1-01","opensearch-se1-02","opensearch-se1-03"]
node.roles: [master,voting_only]

Relevant Logs or Screenshots:

[2024-05-07T14:55:15,561][INFO ][o.o.c.s.MasterService    ] [opensearch-se1-03] elected-as-cluster-manager ([2] nodes joined)[{opensearch-se1-02}{ydgFyeQOREWK64TUyHT68Q}{Q_tITwb1TRm6cAMj7W3pQg}{10.23.70.211}{10.23.70.211:9300}{dim}{shard_indexing_pressure_enabled=true} elect leader, {opensearch-se1-03}{xWNIbQVmTIGgrv8dKk_uug}{CmqH_bS3Q6epUrvVHXlQSA}{10.23.80.115}{10.23.80.115:9300}{mvoting_only}{shard_indexing_pressure_enabled=true} elect leader, _BECOME_CLUSTER_MANAGER_TASK_, _FINISH_ELECTION_], term: 21, version: 268, delta: cluster-manager node changed {previous [], current [{opensearch-se1-03}{xWNIbQVmTIGgrv8dKk_uug}{CmqH_bS3Q6epUrvVHXlQSA}{10.23.80.115}{10.23.80.115:9300}{mvoting_only}{shard_indexing_pressure_enabled=true}]}

Found this: OpenSearch/server/src/main/java/org/opensearch/repositories/RepositoriesService.java at 6b6a0a2b3c3fc278b2af0cacfbfe7dce0f6bc7e7 · opensearch-project/OpenSearch · GitHub

Looks like voting_only is not implemented. this will make the use of opensearch not possible in our case here.