Elastic search cluster behind azure public load balncer

i am trying to setup ES cluster behind azure load balancer /cloud service.
the cluster is 3 node with no specific data/client/master node settings. By
default 2 nodes are elected as master and 1 as data node.

As the request (create/update/search) from application comes to azure load
balancer on 9200 port which load balanced for all 3 vms the request can go
to any vm.

Will master node be able to serve the requests ?

Many article says that you don't need load balancer for ES cluster just use
client node but then it becomes single point of failure as azure vm can go
down any point of time. so load balancing is required mainly for high
availability from infrastructure point of view.
please suggest cluster setup and which nodes (data or client) to be put
behind load balancer.

ES version 1.4.1 on windows server 2012 r2 vm

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/47a28ee1-f216-480c-b148-c8e0d105a07c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Yes the master can serve requests.

You don't really want 2 masters and 1 data node though, make all 3
master+data to start with.
And sure the client can be a SPOF, but then isn't a single load balancer a
SPOF as well? So the question remains, where are you happy dealing with
these points, because at some point you cannot make everything redundant
without being excessive.

On 18 February 2015 at 21:36, Subodh Patil subodh007sp@gmail.com wrote:

i am trying to setup ES cluster behind azure load balancer /cloud service.
the cluster is 3 node with no specific data/client/master node settings. By
default 2 nodes are elected as master and 1 as data node.

As the request (create/update/search) from application comes to azure load
balancer on 9200 port which load balanced for all 3 vms the request can go
to any vm.

Will master node be able to serve the requests ?

Many article says that you don't need load balancer for ES cluster just
use client node but then it becomes single point of failure as azure vm can
go down any point of time. so load balancing is required mainly for high
availability from infrastructure point of view.
please suggest cluster setup and which nodes (data or client) to be put
behind load balancer.

ES version 1.4.1 on windows server 2012 r2 vm

--
You received this message because you are subscribed to the Google Groups
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/elasticsearch/47a28ee1-f216-480c-b148-c8e0d105a07c%40googlegroups.com
https://groups.google.com/d/msgid/elasticsearch/47a28ee1-f216-480c-b148-c8e0d105a07c%40googlegroups.com?utm_medium=email&utm_source=footer
.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/CAEYi1X8xGPe2aMORiNHYvrtj54nuPou%2B5wT-4WSOp-air%3DUQZA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Ok Thanks Mark.
So you are saying I should set node.master: true as well as node.data:
true for all the 3 nodes in the cluster.
And this will hold true for 4 node or even more node cluster ?

As of now I am making data redundant on all 3 nodes but please suggest
performance...
azure Load balancer chances of failure are much lesser than VM.

The redundancy is required from backup point of view. So I will have 4
node cluster with data replicated on all 4 nodes.
3 nodes in the same region (say East US) and behind load balancer and 4th
node will be in different region (say west us) but NOT behind load balancer
and just holding the all data.
In case east us data center has problem then I can redirect all traffic to
west US data center where single node will always have all update data, or
even i can take backups from west us data center.

Thanks,
Subodh

On Thursday, February 19, 2015 at 7:10:52 AM UTC+5:30, Mark Walkom wrote:

Yes the master can serve requests.

You don't really want 2 masters and 1 data node though, make all 3
master+data to start with.
And sure the client can be a SPOF, but then isn't a single load balancer a
SPOF as well? So the question remains, where are you happy dealing with
these points, because at some point you cannot make everything redundant
without being excessive.

On 18 February 2015 at 21:36, Subodh Patil <subod...@gmail.com
<javascript:>> wrote:

i am trying to setup ES cluster behind azure load balancer /cloud
service. the cluster is 3 node with no specific data/client/master node
settings. By default 2 nodes are elected as master and 1 as data node.

As the request (create/update/search) from application comes to azure
load balancer on 9200 port which load balanced for all 3 vms the request
can go to any vm.

Will master node be able to serve the requests ?

Many article says that you don't need load balancer for ES cluster just
use client node but then it becomes single point of failure as azure vm can
go down any point of time. so load balancing is required mainly for high
availability from infrastructure point of view.
please suggest cluster setup and which nodes (data or client) to be put
behind load balancer.

ES version 1.4.1 on windows server 2012 r2 vm

--
You received this message because you are subscribed to the Google Groups
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to elasticsearc...@googlegroups.com <javascript:>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/elasticsearch/47a28ee1-f216-480c-b148-c8e0d105a07c%40googlegroups.com
https://groups.google.com/d/msgid/elasticsearch/47a28ee1-f216-480c-b148-c8e0d105a07c%40googlegroups.com?utm_medium=email&utm_source=footer
.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/d961148e-13d5-444f-bb33-368c9a468078%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Do not run ES across regions, it's a bad idea. Use snapshot and restore or
some other method to replicate data.

On 19 February 2015 at 20:51, Subodh Patil subodh007sp@gmail.com wrote:

Ok Thanks Mark.
So you are saying I should set node.master: true as well as node.data:
true for all the 3 nodes in the cluster.
And this will hold true for 4 node or even more node cluster ?

As of now I am making data redundant on all 3 nodes but please suggest
performance...
azure Load balancer chances of failure are much lesser than VM.

The redundancy is required from backup point of view. So I will have 4
node cluster with data replicated on all 4 nodes.
3 nodes in the same region (say East US) and behind load balancer and
4th node will be in different region (say west us) but NOT behind load
balancer and just holding the all data.
In case east us data center has problem then I can redirect all traffic to
west US data center where single node will always have all update data, or
even i can take backups from west us data center.

Thanks,
Subodh

On Thursday, February 19, 2015 at 7:10:52 AM UTC+5:30, Mark Walkom wrote:

Yes the master can serve requests.

You don't really want 2 masters and 1 data node though, make all 3
master+data to start with.
And sure the client can be a SPOF, but then isn't a single load balancer
a SPOF as well? So the question remains, where are you happy dealing with
these points, because at some point you cannot make everything redundant
without being excessive.

On 18 February 2015 at 21:36, Subodh Patil subod...@gmail.com wrote:

i am trying to setup ES cluster behind azure load balancer /cloud
service. the cluster is 3 node with no specific data/client/master node
settings. By default 2 nodes are elected as master and 1 as data node.

As the request (create/update/search) from application comes to azure
load balancer on 9200 port which load balanced for all 3 vms the request
can go to any vm.

Will master node be able to serve the requests ?

Many article says that you don't need load balancer for ES cluster just
use client node but then it becomes single point of failure as azure vm can
go down any point of time. so load balancing is required mainly for high
availability from infrastructure point of view.
please suggest cluster setup and which nodes (data or client) to be put
behind load balancer.

ES version 1.4.1 on windows server 2012 r2 vm

--
You received this message because you are subscribed to the Google
Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to elasticsearc...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/
msgid/elasticsearch/47a28ee1-f216-480c-b148-c8e0d105a07c%
40googlegroups.com
https://groups.google.com/d/msgid/elasticsearch/47a28ee1-f216-480c-b148-c8e0d105a07c%40googlegroups.com?utm_medium=email&utm_source=footer
.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/elasticsearch/d961148e-13d5-444f-bb33-368c9a468078%40googlegroups.com
https://groups.google.com/d/msgid/elasticsearch/d961148e-13d5-444f-bb33-368c9a468078%40googlegroups.com?utm_medium=email&utm_source=footer
.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/CAEYi1X8r5s%2BavwSCdf1qkA9Yh1mU%3DFKEh7vo7yO-jOUG0MRoTw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Ok. I have 3 node ES cluster (node related settings are default), plugin
head shows 1 star (assuming master) and 2 dark circles (assuming data
node) now all 3 netwrok behind load balncer ?
when query goes to master will it be able to serve ?

When does master will not server the query ?

Thanks,
Subodh

On Friday, February 20, 2015 at 4:44:01 AM UTC+5:30, Mark Walkom wrote:

Do not run ES across regions, it's a bad idea. Use snapshot and restore or
some other method to replicate data.

On 19 February 2015 at 20:51, Subodh Patil <subod...@gmail.com
<javascript:>> wrote:

Ok Thanks Mark.
So you are saying I should set node.master: true as well as node.data:
true for all the 3 nodes in the cluster.
And this will hold true for 4 node or even more node cluster ?

As of now I am making data redundant on all 3 nodes but please suggest
performance...
azure Load balancer chances of failure are much lesser than VM.

The redundancy is required from backup point of view. So I will have 4
node cluster with data replicated on all 4 nodes.
3 nodes in the same region (say East US) and behind load balancer and
4th node will be in different region (say west us) but NOT behind load
balancer and just holding the all data.
In case east us data center has problem then I can redirect all traffic
to west US data center where single node will always have all update data,
or even i can take backups from west us data center.

Thanks,
Subodh

On Thursday, February 19, 2015 at 7:10:52 AM UTC+5:30, Mark Walkom wrote:

Yes the master can serve requests.

You don't really want 2 masters and 1 data node though, make all 3
master+data to start with.
And sure the client can be a SPOF, but then isn't a single load balancer
a SPOF as well? So the question remains, where are you happy dealing with
these points, because at some point you cannot make everything redundant
without being excessive.

On 18 February 2015 at 21:36, Subodh Patil subod...@gmail.com wrote:

i am trying to setup ES cluster behind azure load balancer /cloud
service. the cluster is 3 node with no specific data/client/master node
settings. By default 2 nodes are elected as master and 1 as data node.

As the request (create/update/search) from application comes to azure
load balancer on 9200 port which load balanced for all 3 vms the request
can go to any vm.

Will master node be able to serve the requests ?

Many article says that you don't need load balancer for ES cluster just
use client node but then it becomes single point of failure as azure vm can
go down any point of time. so load balancing is required mainly for high
availability from infrastructure point of view.
please suggest cluster setup and which nodes (data or client) to be put
behind load balancer.

ES version 1.4.1 on windows server 2012 r2 vm

--
You received this message because you are subscribed to the Google
Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to elasticsearc...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/
msgid/elasticsearch/47a28ee1-f216-480c-b148-c8e0d105a07c%
40googlegroups.com
https://groups.google.com/d/msgid/elasticsearch/47a28ee1-f216-480c-b148-c8e0d105a07c%40googlegroups.com?utm_medium=email&utm_source=footer
.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to elasticsearc...@googlegroups.com <javascript:>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/elasticsearch/d961148e-13d5-444f-bb33-368c9a468078%40googlegroups.com
https://groups.google.com/d/msgid/elasticsearch/d961148e-13d5-444f-bb33-368c9a468078%40googlegroups.com?utm_medium=email&utm_source=footer
.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/d14129ce-e417-446c-9975-d64ac209ce14%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

There are few issues with Azure Load Balancer. It is not cluster aware.
What I mean is follows

  1. Say one of nodes is booted out of cluster due to some bad state like JVM
    OOM. Now Azure Load Balancer is not aware of cluster. It will keep on
    sending requests to same node in case of some node getting bad.
  2. Load Balancer woks on hashing. So based on client all requests will go
    to a single node in cluster. So you can have scenarios where few customer
    are reporting persistent failure.
  3. You can use Nest client connection pool to load balance your requests.
    It also handles the above scenario.
  4. Is your cluster aware of Fault and Upgrade domain settings of Azure? You
    need to configure your cluster to be fault/upgrade domain aware,
    http://blogs.technet.com/b/yungchou/archive/2011/05/16/window-azure-fault-domain-and-update-domain-explained-for-it-pros.aspx

Regards
Satish

On Monday, February 23, 2015 at 7:30:23 PM UTC+5:30, Subodh Patil wrote:

Ok. I have 3 node ES cluster (node related settings are default), plugin
head shows 1 star (assuming master) and 2 dark circles (assuming data
node) now all 3 netwrok behind load balncer ?
when query goes to master will it be able to serve ?

When does master will not server the query ?

Thanks,
Subodh

On Friday, February 20, 2015 at 4:44:01 AM UTC+5:30, Mark Walkom wrote:

Do not run ES across regions, it's a bad idea. Use snapshot and restore
or some other method to replicate data.

On 19 February 2015 at 20:51, Subodh Patil subod...@gmail.com wrote:

Ok Thanks Mark.
So you are saying I should set node.master: true as well as node.data:
true for all the 3 nodes in the cluster.
And this will hold true for 4 node or even more node cluster ?

As of now I am making data redundant on all 3 nodes but please suggest
performance...
azure Load balancer chances of failure are much lesser than VM.

The redundancy is required from backup point of view. So I will have 4
node cluster with data replicated on all 4 nodes.
3 nodes in the same region (say East US) and behind load balancer and
4th node will be in different region (say west us) but NOT behind load
balancer and just holding the all data.
In case east us data center has problem then I can redirect all traffic
to west US data center where single node will always have all update data,
or even i can take backups from west us data center.

Thanks,
Subodh

On Thursday, February 19, 2015 at 7:10:52 AM UTC+5:30, Mark Walkom wrote:

Yes the master can serve requests.

You don't really want 2 masters and 1 data node though, make all 3
master+data to start with.
And sure the client can be a SPOF, but then isn't a single load
balancer a SPOF as well? So the question remains, where are you happy
dealing with these points, because at some point you cannot make
everything redundant without being excessive.

On 18 February 2015 at 21:36, Subodh Patil subod...@gmail.com wrote:

i am trying to setup ES cluster behind azure load balancer /cloud
service. the cluster is 3 node with no specific data/client/master node
settings. By default 2 nodes are elected as master and 1 as data node.

As the request (create/update/search) from application comes to azure
load balancer on 9200 port which load balanced for all 3 vms the request
can go to any vm.

Will master node be able to serve the requests ?

Many article says that you don't need load balancer for ES cluster
just use client node but then it becomes single point of failure as azure
vm can go down any point of time. so load balancing is required mainly for
high availability from infrastructure point of view.
please suggest cluster setup and which nodes (data or client) to be
put behind load balancer.

ES version 1.4.1 on windows server 2012 r2 vm

--
You received this message because you are subscribed to the Google
Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to elasticsearc...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/
msgid/elasticsearch/47a28ee1-f216-480c-b148-c8e0d105a07c%
40googlegroups.com
https://groups.google.com/d/msgid/elasticsearch/47a28ee1-f216-480c-b148-c8e0d105a07c%40googlegroups.com?utm_medium=email&utm_source=footer
.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google
Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to elasticsearc...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/elasticsearch/d961148e-13d5-444f-bb33-368c9a468078%40googlegroups.com
https://groups.google.com/d/msgid/elasticsearch/d961148e-13d5-444f-bb33-368c9a468078%40googlegroups.com?utm_medium=email&utm_source=footer
.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/773d7148-03b5-4021-bd9c-465a839db4da%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Thanks Satish.

All 3 nodes of my cluster are in availability set of azure which means all
of then can not reboot at the same time due to updates or n/w failure.
Can you please elaborate more on what do you mean by Nest clietn
connections ?

Request to search comes only from my API web role (again 3 to 6 machine
behind load balancer); what end users will se is UI.

End Users --> UI web role LB (3 UI nodes ) --> API web roles (3-6 api
nodes) --> ES LB (3 VMs ES clustered.)
All 3 ndoes of ES are default, which is data=true and master=true.
Sometime ES runs very slow and CPU usage go high.
All running on windows server 2012r2.

i am assuming of one of the node of es goes down (lb not able to ping over
9200) then other two will keep serving, even if the request goes to node
which elected as master.
i have no. of replicas to 2; which means all the node have all the data,
not sure if that is correct approach.

what all i want is if one or two vm goes down search should still work with
updated data.

Thanks,
Subodh

On Tuesday, February 24, 2015 at 12:18:34 AM UTC+5:30, satishmallik wrote:

There are few issues with Azure Load Balancer. It is not cluster aware.
What I mean is follows

  1. Say one of nodes is booted out of cluster due to some bad state like
    JVM OOM. Now Azure Load Balancer is not aware of cluster. It will keep on
    sending requests to same node in case of some node getting bad.
  2. Load Balancer woks on hashing. So based on client all requests will go
    to a single node in cluster. So you can have scenarios where few customer
    are reporting persistent failure.
  3. You can use Nest client connection pool to load balance your requests.
    It also handles the above scenario.
  4. Is your cluster aware of Fault and Upgrade domain settings of Azure?
    You need to configure your cluster to be fault/upgrade domain aware,

http://blogs.technet.com/b/yungchou/archive/2011/05/16/window-azure-fault-domain-and-update-domain-explained-for-it-pros.aspx

Regards
Satish

On Monday, February 23, 2015 at 7:30:23 PM UTC+5:30, Subodh Patil wrote:

Ok. I have 3 node ES cluster (node related settings are default), plugin
head shows 1 star (assuming master) and 2 dark circles (assuming data
node) now all 3 netwrok behind load balncer ?
when query goes to master will it be able to serve ?

When does master will not server the query ?

Thanks,
Subodh

On Friday, February 20, 2015 at 4:44:01 AM UTC+5:30, Mark Walkom wrote:

Do not run ES across regions, it's a bad idea. Use snapshot and restore
or some other method to replicate data.

On 19 February 2015 at 20:51, Subodh Patil subod...@gmail.com wrote:

Ok Thanks Mark.
So you are saying I should set node.master: true as well as
node.data: true for all the 3 nodes in the cluster.
And this will hold true for 4 node or even more node cluster ?

As of now I am making data redundant on all 3 nodes but please suggest
performance...
azure Load balancer chances of failure are much lesser than VM.

The redundancy is required from backup point of view. So I will have 4
node cluster with data replicated on all 4 nodes.
3 nodes in the same region (say East US) and behind load balancer and
4th node will be in different region (say west us) but NOT behind load
balancer and just holding the all data.
In case east us data center has problem then I can redirect all traffic
to west US data center where single node will always have all update data,
or even i can take backups from west us data center.

Thanks,
Subodh

On Thursday, February 19, 2015 at 7:10:52 AM UTC+5:30, Mark Walkom
wrote:

Yes the master can serve requests.

You don't really want 2 masters and 1 data node though, make all 3
master+data to start with.
And sure the client can be a SPOF, but then isn't a single load
balancer a SPOF as well? So the question remains, where are you happy
dealing with these points, because at some point you cannot make
everything redundant without being excessive.

On 18 February 2015 at 21:36, Subodh Patil subod...@gmail.com wrote:

i am trying to setup ES cluster behind azure load balancer /cloud
service. the cluster is 3 node with no specific data/client/master node
settings. By default 2 nodes are elected as master and 1 as data node.

As the request (create/update/search) from application comes to azure
load balancer on 9200 port which load balanced for all 3 vms the request
can go to any vm.

Will master node be able to serve the requests ?

Many article says that you don't need load balancer for ES cluster
just use client node but then it becomes single point of failure as azure
vm can go down any point of time. so load balancing is required mainly for
high availability from infrastructure point of view.
please suggest cluster setup and which nodes (data or client) to be
put behind load balancer.

ES version 1.4.1 on windows server 2012 r2 vm

--
You received this message because you are subscribed to the Google
Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it,
send an email to elasticsearc...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/
msgid/elasticsearch/47a28ee1-f216-480c-b148-c8e0d105a07c%
40googlegroups.com
https://groups.google.com/d/msgid/elasticsearch/47a28ee1-f216-480c-b148-c8e0d105a07c%40googlegroups.com?utm_medium=email&utm_source=footer
.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google
Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to elasticsearc...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/elasticsearch/d961148e-13d5-444f-bb33-368c9a468078%40googlegroups.com
https://groups.google.com/d/msgid/elasticsearch/d961148e-13d5-444f-bb33-368c9a468078%40googlegroups.com?utm_medium=email&utm_source=footer
.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/6af30d45-b426-4849-ac45-cec3a8885ef2%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.