Создание кластера в Oracle Linux на основе Linux Virtual Server (LVS) | Securny

Создание кластера в Oracle Linux на основе Linux Virtual Server (LVS)

Создание кластера в Oracle Linux на основе Linux Virtual Server (LVS)

Сегодня я расскажу про один простой способ организации кластера с балансировкой нагрузки. Этот способ актуален для серверов на базе линукса в целом и Oracle Linux в частности. Создание кластера осуществляется с помощью Linux Virtual Server (LVS). Его главный плюс в том, что модуль, осуществляющий балансировку, уже включен в ядро линукса, поэтому кластер работает быстро и нетребователен к ресурсам при большом количестве активных соединений. Этот метод актуален, если нужно быстрое и простое решение по отказоустойчивости.

Допустим, что имеются три сервера. Один будет балансировщиком, два других - нодами кластера. Все серверы имеют по одному сетевому интерфейсу и находятся в общей подсети, плюс к этому имеется один общий виртуальный IP-адрес.

Настраиваем балансировщик.

  1. Проверяем наличие модуля в ядре:
    /sbin/modinfo ip_vs

    filename: /lib/modules/2.6.39-400.17.1.el6uek.x86_64/kernel/net/netfilter/ipvs/ip_vs.ko
    license: GPL
    srcversion: F56D2E133CDCBC4C486F282
    depends: ipv6,nf_conntrack,libcrc32c
    vermagic: 2.6.39-400.17.1.el6uek.x86_64 SMP mod_unload modversions
    parm: conn_tab_bits:Set connections' hash size (int)

  2. Поднимаем виртуальный интерфейс с общим IP-адресом на балансировщике:
    /sbin/ifconfig eth0:0 10.0.0.1 netmask 255.255.255.0 broadcast 10.0.0.1 up
  3. Включаем и применяем необходимые параметры ОС:
    nano /etc/sysctl.conf

    # Controls IP packet forwarding
    net.ipv4.ip_forward = 1

    sysctl -p

  4. Выключаем фаерволл:
    iptables -F
  5. Устанавливаем консольную "админку" кластера:
    yum install ipvsadm
  6. Проверяем консольную "админку" кластера:
    ipvsadm

    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
    -> RemoteAddress:Port Forward Weight ActiveConn InActConn

  7. Настраиваем балансировщик с помощью консольной "админки":
    /sbin/ipvsadm -A -t 10.0.0.1:80
    /sbin/ipvsadm -a -t 10.0.0.1:80 -r 10.0.0.102 -g
    /sbin/ipvsadm -a -t 10.0.0.1:80 -r 10.0.0.103 -g
    /sbin/ipvsadm-save
    /sbin/chkconfig ipvsadm on
    /sbin/service ipvsadm save
  8. Проверяем настройки:
    nano /etc/sysconfig/ipvsadm
    nano /etc/sysconfig/network-scripts/ifcfg-eth0:0

На нодах кластера настройка выглядит еще проще.

  1. Нужно установить и применить параметры ОС:
    nano /etc/sysctl.conf

    net.ipv4.conf.lo.arp_ignore = 1
    net.ipv4.conf.lo.arp_announce = 2
    net.ipv4.conf.all.arp_ignore = 1
    net.ipv4.conf.all.arp_announce = 2

    sysctl -p

  2. Выключить фаерволл:
    iptables -F
  3. Создать виртуальный интерфейс с кластерным адресом:
    /sbin/ifconfig lo:0 10.0.0.1 netmask 255.255.255.255 broadcast 10.0.0.1 up
    /sbin/route add -host 10.0.0.1 dev lo:0
  4. Чтобы настройки не потерялись после перезагрузки, фиксируем их в файле:
    nano /etc/sysconfig/network-scripts/ifcfg-lo:0

Проверка. На каждой ноде включаем по http-серверу и создаем тестовую html-страничку.

  1. Создаем дефолтную страничку:
    nano /var/www/html/index.html

    Это нода номер < 1 или 2 >

  2. Устанавливаем и запускаем http-сервер:
    yum install httpd
    chkconfig httpd on
    service httpd start
  3. Заходим на балансировщик по http://10.0.0.1 и обновляем страничку, пока не надоест.
  4. На балансировщике смотрим в консольной "админке":
    ipvsadm -Ln

Более подробную информацию и варианты настройки кластера можно найти в официальной документации: http://www.austintek.com/LVS/LVS-HOWTO/mini-HOWTO/LVS-mini-HOWTO.html

Оставить комментарий