This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
|
создание_отказоустойчивых_linux_решений_2020 [2020/01/22 14:37] val создано |
создание_отказоустойчивых_linux_решений_2020 [2020/01/24 11:46] (current) val [7.2 Интеграция контейнеров с менеджером кластера] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Создание отказоустойчивых Linux решений ====== | + | ====== Создание отказоустойчивых Linux решений 2020 ====== |
| ===== Программа курса ===== | ===== Программа курса ===== | ||
| Line 272: | Line 272: | ||
| ip addr add 172.16.1.X/24 dev eth1 | ip addr add 172.16.1.X/24 dev eth1 | ||
| send_arp 172.16.1.X `cat /sys/class/net/eth1/address` 172.16.1.254 ff:ff:ff:ff:ff:ff eth1 | send_arp 172.16.1.X `cat /sys/class/net/eth1/address` 172.16.1.254 ff:ff:ff:ff:ff:ff eth1 | ||
| - | route delete default | + | ip route delete default |
| - | route add default gw 172.16.1.254 | + | ip route add default via 172.16.1.254 |
| </code><code> | </code><code> | ||
| nodeN# cat /usr/share/ucarp/vip-down | nodeN# cat /usr/share/ucarp/vip-down | ||
| Line 282: | Line 282: | ||
| ip addr del 172.16.1.X/24 dev eth1 | ip addr del 172.16.1.X/24 dev eth1 | ||
| - | route add default gw 192.168.X.254 | + | ip route add default via 192.168.X.254 |
| </code><code> | </code><code> | ||
| masternode# killall -USR2 ucarp | masternode# killall -USR2 ucarp | ||
| Line 362: | Line 362: | ||
| <code> | <code> | ||
| + | # cat /etc/network/interfaces | ||
| + | </code><code> | ||
| + | ... | ||
| + | iface eth0 inet static | ||
| + | |||
| + | pre-up iptables-restore < /etc/iptables.rules | ||
| + | post-up ip rule add prio 100 from 192.168.X.0/24 to 192.168.X.0/24 table main | ||
| + | ... | ||
| + | </code><code> | ||
| nodeN# cat /usr/share/ucarp/vip-up | nodeN# cat /usr/share/ucarp/vip-up | ||
| </code><code> | </code><code> | ||
| Line 380: | Line 389: | ||
| case $1 in | case $1 in | ||
| ISP1) | ISP1) | ||
| - | ip rule del from 192.168.X/24 to 192.168.X/24 table main | ||
| while ip rule del from any table 101;do true;done | while ip rule del from any table 101;do true;done | ||
| while ip rule del from any table 102;do true;done | while ip rule del from any table 102;do true;done | ||
| - | ip rule add from 192.168.X.0/24 table 101 | + | ip rule add prio 200 from 192.168.X.0/24 table 101 |
| - | ip rule add from 192.168.X/24 to 192.168.X/24 table main | + | |
| /sbin/ip route flush cache | /sbin/ip route flush cache | ||
| Line 391: | Line 398: | ||
| ;; | ;; | ||
| ISP2) | ISP2) | ||
| - | ip rule del from 192.168.X/24 to 192.168.X/24 table main | ||
| while ip rule del from any table 101;do true;done | while ip rule del from any table 101;do true;done | ||
| while ip rule del from any table 102;do true;done | while ip rule del from any table 102;do true;done | ||
| - | ip rule add from 192.168.X.0/24 table 102 | + | ip rule add prio 200 from 192.168.X.0/24 table 102 |
| - | ip rule add from 192.168.X/24 to 192.168.X/24 table main | + | |
| /sbin/ip route flush cache | /sbin/ip route flush cache | ||
| Line 402: | Line 407: | ||
| ;; | ;; | ||
| ISP1ISP2) | ISP1ISP2) | ||
| - | ip rule del from 192.168.X/24 to 192.168.X/24 table main | ||
| while ip rule del from any table 101;do true;done | while ip rule del from any table 101;do true;done | ||
| while ip rule del from any table 102;do true;done | while ip rule del from any table 102;do true;done | ||
| - | ip rule add from 192.168.X.0/25 table 101 | + | ip rule add prio 200 from 192.168.X.0/25 table 101 |
| - | ip rule add from 192.168.X.128/25 table 102 | + | ip rule add prio 200 from 192.168.X.128/25 table 102 |
| - | ip rule add from 192.168.X/24 to 192.168.X/24 table main | + | |
| /sbin/ip route flush cache | /sbin/ip route flush cache | ||
| Line 431: | Line 434: | ||
| export PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATH | export PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATH | ||
| - | ifconfig | grep -q 192.168.X.254 || exit 0 | + | ip addr | grep -q 192.168.X.254 || exit 0 |
| - | route delete default | + | ip route delete default |
| ISP='' | ISP='' | ||
| - | route add default gw 172.16.1.254 | + | ip route add default via 172.16.1.254 |
| ping -c3 ya.ru && ISP=ISP1 | ping -c3 ya.ru && ISP=ISP1 | ||
| - | route delete default | + | ip route delete default |
| - | route add default gw 172.16.2.254 | + | ip route add default via 172.16.2.254 |
| ping -c3 ya.ru && ISP=${ISP}ISP2 | ping -c3 ya.ru && ISP=${ISP}ISP2 | ||
| - | route delete default | + | ip route delete default |
| echo $ISP | echo $ISP | ||
| Line 601: | Line 604: | ||
| ==== 6.2 Автоматизация смены ролей узлов кластера ==== | ==== 6.2 Автоматизация смены ролей узлов кластера ==== | ||
| + | * Пакет Pacemaker [[Пакет Pacemaker#Удаление ресурсов]] | ||
| * [[Решение DRBD#DRBD и Pacemaker]] | * [[Решение DRBD#DRBD и Pacemaker]] | ||
| Line 608: | Line 612: | ||
| * Устанавливаем на оба узла пакет [[Сервис iSCSI#iSCSI target]] | * Устанавливаем на оба узла пакет [[Сервис iSCSI#iSCSI target]] | ||
| * Отключаем авто запуск сервиса | * Отключаем авто запуск сервиса | ||
| - | * Останавливаем группу ресурсов кластера и удаляем ee [[Пакет Pacemaker#Управление ресурсами]] | ||
| <code> | <code> | ||
| Line 647: | Line 650: | ||
| crm(live)configure# primitive pr_smbd systemd:smbd | crm(live)configure# primitive pr_smbd systemd:smbd | ||
| - | crm(live)configure# edit gr_ip_fs | ||
| + | crm(live)configure# edit gr_ip_fs | ||
| + | или | ||
| + | crm(live)configure# group gr_ip_fs pr_ip pr_fs_r0 pr_smbd | ||
| + | </code><code> | ||
| crm(live)configure# commit | crm(live)configure# commit | ||
| </code> | </code> | ||
| Line 685: | Line 691: | ||
| * Отключение всех сервисов (особенно, ip, привязанного к eth), кроме зеркалируемого раздела [[Пакет Pacemaker#Управление ресурсами]] | * Отключение всех сервисов (особенно, ip, привязанного к eth), кроме зеркалируемого раздела [[Пакет Pacemaker#Управление ресурсами]] | ||
| <code> | <code> | ||
| - | node1# crm resource stop pr_ip pr_istgt pr_smbd | + | node1# crm resource stop pr_ip pr_smbd pr_istgt |
| - | node1# crm configure delete pr_ip pr_istgt pr_smbd gr_ip_fs | + | node1# crm configure delete pr_ip pr_smbd gr_ip_fs pr_istgt |
| </code> | </code> | ||
| Line 698: | Line 704: | ||
| auto br0 | auto br0 | ||
| iface br0 inet static | iface br0 inet static | ||
| + | |||
| + | pre-up iptables-restore < /etc/iptables.rules | ||
| + | post-up ip rule add prio 100 from 192.168.X.0/24 to 192.168.X.0/24 table main | ||
| + | |||
| address 192.168.X.N | address 192.168.X.N | ||
| netmask 255.255.255.0 | netmask 255.255.255.0 | ||
| Line 729: | Line 739: | ||
| <code> | <code> | ||
| nodeN# ps ax | grep carp | nodeN# ps ax | grep carp | ||
| - | nodeN# ifconfig | grep carp | + | nodeN# ip a | grep carp |
| nodeN# ps ax | grep dh | nodeN# ps ax | grep dh | ||
| - | nodeN# ps ax | grep he | + | nodeN# crm status |
| nodeN# mount | grep ext | nodeN# mount | grep ext | ||
| </code> | </code> | ||
| + | |||
| + | * [[Решение DRBD#Решение ситуации Split-Brain при использовании Pacemaker]] | ||
| === 7.1.2 Подготовка виртуальных машин === | === 7.1.2 Подготовка виртуальных машин === | ||
| Line 804: | Line 817: | ||
| </code><code> | </code><code> | ||
| ... | ... | ||
| + | #debian9 | ||
| lxc.network.type = veth | lxc.network.type = veth | ||
| lxc.network.link = br0 | lxc.network.link = br0 | ||
| Line 810: | Line 824: | ||
| lxc.network.ipv4.gateway = 192.168.X.254 | lxc.network.ipv4.gateway = 192.168.X.254 | ||
| + | #debian10 | ||
| lxc.net.0.type = veth | lxc.net.0.type = veth | ||
| lxc.net.0.link = br0 | lxc.net.0.link = br0 | ||
| Line 828: | Line 843: | ||
| root@node1.corpX.un:~# lxc-attach -n server -- ps ax | root@node1.corpX.un:~# lxc-attach -n server -- ps ax | ||
| + | |||
| + | root@node1.corpX.un:~# lxc-attach -n server -- bash | ||
| root@node1.corpX.un:~# ssh server | root@node1.corpX.un:~# ssh server | ||
| Line 850: | Line 867: | ||
| <code> | <code> | ||
| + | node1# crm configure show | grep order # у некоторых слушателей "исчезает" из конфигурации ) | ||
| + | |||
| + | node1# crm configure | ||
| + | </code><code> | ||
| primitive pr_lxc_server systemd:lxc@server | primitive pr_lxc_server systemd:lxc@server | ||
| group gr_fs_lxc pr_fs_r0 pr_lxc_server | group gr_fs_lxc pr_fs_r0 pr_lxc_server | ||