Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Published by Scroll Versions from space ML1 and version 5.3
Sv translation
languageen

Xpand requires an external tcp load balancer to evenly distribute load across the cluster. Xpand recommends using HAProxy or the Xpand Monitor.  

Instructions to install HAProxy:

1) Install HAProxy to a server that will be used for load balancing and routing traffic to the cluster. If you are running Centos or Redhat you can install HAProxy with yum by running the following command from bash:  

shell> sudo yum install haproxy 

If your server doesn't support yum, you can download HAProxy here.

2) Once you have HAProxy installed, you will need to edit the haproxy.cfg file located at: /etc/haproxy/haproxy.cfg. A sample haproxy.cfg file is included below. You will need to change the timeout variables in the defaults section and then set two listen sections, the first for Xpand access, and the second for XpandGUI.

The first thing to do in the haproxy.cfg file is to change the timeout variables in the default section. You want to increase the timeout connect, timeout client, and timeout server to 1d. This is because you'll want Xpand to handle the timeout settings instead of HAProxy. There are several other timeout variables provided by HAProxy that can be set as you see fit. The next thing is to change httplog to tcplog, as we are going to be sending mostly tcp traffic to the cluster.

Example:

defaults
    log                     global
    option                  tcplog
    option                  dontlognull
    option                  redispatch
    retries                 3
    timeout connect         1d
    timeout client          1d
    timeout server          1d
    maxconn                 3000
Note

If you have queries that run for longer than 1 day, you should consider upping the timeout values even higher.

In the first listen section, you will need to supply the name, in this case, Xpand, and the IP address and port of the VIP to which clients will connect. This VIP can be an additional IP configured on the box running HAProxy. You will want to use the port from which you plan to access Xpand.

Now you will need to set the mode to mode tcp as you will be balancing tcp and not http traffic.

Next, you will need to select what type of balance you want HAProxy to perform. The suggested methods are leastconn and roundrobin. You can find out more about the balance modes by searching for "balance <algorithm>" in the Configuration Manual of the HAProxy documentation that corresponds to your installed version.

For each node to which you will be balancing traffic, you will need a server entry. For each server, you will need to supply the name and IP or DNS hostname of the node. Finally, for each server entry, you will want to add the check port argument, and have it set to 3581, the Xpand health check port. Setting this check port 3581 argument will ensure that traffic is only balanced to nodes that are in quorum.

Example:

listen ClustrixDB 10.1.1.100:3306
    mode tcp
    balance leastconn
    server examplenode001 10.1.1.101:3306 check port 3581
    server examplenode002 10.1.1.102:3306 check port 3581
    server examplenode003 10.1.1.103:3306 check port 3581 

The second listen section handles configuration for load balancing XpandGUI in the case of a node failure. First, you supply the name gui and the IP address from which you are going to be accessing the XpandGUI. Also, make sure to include port 80. 

Now make sure the mode is set to http with mode http

Next, you will need to select what type of balance you want HAProxy to perform. The suggested methods are leastconn and roundrobin.

For each node to which you will be balancing web traffic, you will need a server entry. For each server, you will need to supply the name followed by _gui and IP or DNS hostname of the node.

Example:

listen gui 10.1.1.100:80
    mode http
    balance leastconn
    server examplenode001_gui 10.1.1.101:80
    server examplenode002_gui 10.1.1.102:80
    server examplenode003_gui 10.1.1.103:80

3) Once you have all the settings correct, you will need to restart HAProxy to make them take effect.

shell> sudo service haproxy restart  

Below is the full haproxy.cfg file used for internal testing by the Xpand Support team.

haproxy.cfg
#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
    log         127.0.0.1 local2
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats

#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
    log                     global
    option                  tcplog
    option                  dontlognull
    option                  redispatch
    retries                 3
    timeout connect         1d
    timeout client          1d
    timeout server          1d
    maxconn                 3000

listen ClustrixDB 10.1.1.100:3306
    mode tcp
    balance leastconn
    server examplenode001 10.1.1.101:3306 check port 3581
    server examplenode002 10.1.1.102:3306 check port 3581
    server examplenode003 10.1.1.103:3306 check port 3581

listen gui 10.1.1.100:80
    mode http
    balance leastconn
    server examplenode001_gui 10.1.1.101:80
    server examplenode002_gui 10.1.1.102:80
    server examplenode003_gui 10.1.1.103:80

For more information on configuring HAProxy, please see their documentation.

Sv translation
languageko

ClustrixDB는 클러스터 전체에 부하를 균등하게 분산하기 위해 외부 TCP 로드 밸런서를 필요로 합니다. Clustrix는 HAProxy를 사용할 것을 권장합니다.

HAProxy 설치 방법:

1) 로드 밸런싱과 트래픽을 클러스터로 라우팅하는 데 사용할 서버에 HAProxy를 설치합니다. CentOS 또는 Redhat에서 실행하는 경우 bash에서 다음 명령을 실행하여 yum으로 HAProxy를 설치할 수 있습니다.

shell> sudo yum install haproxy 

만약 서버가 yum을 지원하지 않으면 여기에서 HAProxy를 다운로드할 수 있습니다.

2) HAProxy를 설치한 후 /etc/haproxy/haproxy.cfg에 있는 haproxy.cfg 파일을 편집해야 합니다. 샘플 haproxy.cfg 파일이 아래에 있습니다. defaults 섹션에서 timeout 변수를 변경한 후 2개의 listen 섹션을 설정해야 합니다. 첫 번째는 ClustrixDB 액세스용이고 두 번째는 ClustrixGUI 액세스용입니다.

haproxy.cfg 파일에서 가장 먼저 할 일은 default 섹션의 timeout 변수를 변경하는 것입니다. timeout connect, timeout clienttimeout server 변수를 1d로 변경합니다. 이것은 ClustrixDB가 HAProxy 대신 timeout 설정을 처리하도록 하기 위한 것입니다. 필요에 따라 설정할 만한 HAProxy가 제공하는 몇 가지 다른 timeout 변수가 있습니다. 대부분의 TCP 트래픽을 클러스터에 보내고자 하는 경우 다음으로 할 일은 httplogtcplog로 변경하는 것입니다.

예:

defaults
    log                     global
    option                  tcplog
    option                  dontlognull
    option                  redispatch
    retries                 3
    timeout connect         1d
    timeout client          1d
    timeout server          1d
    maxconn                 3000


Note

1일 이상 실행되는 쿼리가 있으면 timeout 값을 더 올리는 것을 고려해야 합니다.

첫 번째 listen 섹션에서 이름(이 예제에서는 ClustrixDB)과 클라이언트가 연결할 VIP의 IP 주소와 포트를 지정해야 합니다. 이 VIP는 HAProxy를 실행하는 서버에 구성된 추가 IP일 수 있습니다. 포트는 ClustrixDB에 액세스하려는 포트를 사용하십시오.

이제 HTTP 트래픽이 아니라 TCP 밸런싱을 맞춰야 하므로 모드를 mode tcp로 설정해야 합니다.

그런 다음 HAProxy에서 실행하는 밸런스 유형을 선택해야 합니다. 제안된 방법은 leastconnroundrobin입니다. 밸런스 모드에 대한 자세한 내용은 Configuration Manual의 HAProxy 문서에서 "balance <algorithm>"을 검색하십시오.

트래픽을 분산하는 각 노드별 server 항목이 필요합니다. 각 서버 노드의 이름과 IP 또는 DNS 호스트 이름을 지정해야 합니다. 마지막으로, 각 server 항목에 대한 check port 인수를 추가하고 ClustrixDB 상태 확인 포트인 3581로 설정해야 합니다. 이 check port 3581 인수를 설정하면 트래픽은 쿼럼 내에 있는 노드로만 밸런스 됩니다.

예:

listen ClustrixDB 10.1.1.100:3306
    mode tcp
    balance leastconn
    server examplenode001 10.1.1.101:3306 check port 3581
    server examplenode002 10.1.1.102:3306 check port 3581
    server examplenode003 10.1.1.103:3306 check port 3581 

두 번째 listen 섹션은 노드에 장애가 발생한 경우 ClustrixGUI의 로드 밸런싱 구성을 처리합니다. 먼저 gui 이름과 ClustrixGUI에 액세스하는 IP 주소를 지정합니다. 포트 80을 포함하는 것을 유의하십시오.

mode 변수가 mode http로 설정되어 있는지 확인하십시오.

그런 다음, HAProxy에서 실행하는 밸런스 유형을 선택해야 합니다. 제안된 방법은 leastconnroundrobin입니다.

Web 트래픽을 밸런싱할 각 노드의 server 항목이 필요합니다. 각 서버의 이름은 뒤에 _gui를 붙이고 IP 또는 DNS 호스트 이름도 지정해야 합니다.

예:

listen gui 10.1.1.100:80
    mode http
    balance leastconn
    server examplenode001_gui 10.1.1.101:80
    server examplenode002_gui 10.1.1.102:80
    server examplenode003_gui 10.1.1.103:80

3) 모든 설정이 완료되면 HAProxy를 다시 시작하고 활성화해야 합니다.

shell> sudo service haproxy restart  

다음은 Clustrix Support 팀의 내부 테스트에 사용되는 전체 haproxy.cfg 파일입니다.

haproxy.cfg
#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
    log         127.0.0.1 local2
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats

#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
    log                     global
    option                  tcplog
    option                  dontlognull
    option                  redispatch
    retries                 3
    timeout connect         1d
    timeout client          1d
    timeout server          1d
    maxconn                 3000

listen ClustrixDB 10.1.1.100:3306
    mode tcp
    balance leastconn
    server examplenode001 10.1.1.101:3306 check port 3581
    server examplenode002 10.1.1.102:3306 check port 3581
    server examplenode003 10.1.1.103:3306 check port 3581

listen gui 10.1.1.100:80
    mode http
    balance leastconn
    server examplenode001_gui 10.1.1.101:80
    server examplenode002_gui 10.1.1.102:80
    server examplenode003_gui 10.1.1.103:80

HAProxy 설정에 대한 자세한 내용은 이 문서를 참조하십시오.