This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
создание_отказоустойчивых_linux_решений [2022/07/28 06:40] val [Модуль 11. Тестирование отказоустойчивости] |
создание_отказоустойчивых_linux_решений [2024/06/04 15:50] val [7.1 Linux Containers в зеркалируемом разделе] |
||
---|---|---|---|
Line 4: | Line 4: | ||
* [[http://www.specialist.ru/course/un5|Linux. Уровень 6. Создание отказоустойчивых кластерных решений.]] | * [[http://www.specialist.ru/course/un5|Linux. Уровень 6. Создание отказоустойчивых кластерных решений.]] | ||
- | |||
- | |||
Line 33: | Line 31: | ||
* [[https://ru.wikipedia.org/wiki/%D0%92%D0%B5%D1%80%D0%BE%D1%8F%D1%82%D0%BD%D0%BE%D1%81%D1%82%D1%8C_%D0%B1%D0%B5%D0%B7%D0%BE%D1%82%D0%BA%D0%B0%D0%B7%D0%BD%D0%BE%D0%B9_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B|Вероятность безотказной работы]] | * [[https://ru.wikipedia.org/wiki/%D0%92%D0%B5%D1%80%D0%BE%D1%8F%D1%82%D0%BD%D0%BE%D1%81%D1%82%D1%8C_%D0%B1%D0%B5%D0%B7%D0%BE%D1%82%D0%BA%D0%B0%D0%B7%D0%BD%D0%BE%D0%B9_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B|Вероятность безотказной работы]] | ||
* [[https://www.youtube.com/watch?v=-izJHCPKvCg|youtube Отказоустойчивый микрокластер своими руками / Виталий Гаврилов (Ленвендо)]] Схема сети на 4-й минуте | * [[https://www.youtube.com/watch?v=-izJHCPKvCg|youtube Отказоустойчивый микрокластер своими руками / Виталий Гаврилов (Ленвендо)]] Схема сети на 4-й минуте | ||
+ | * [[https://ru.wikipedia.org/wiki/VRRP|VRRP]] | ||
==== Лабораторные работы ==== | ==== Лабораторные работы ==== | ||
Line 46: | Line 45: | ||
cd | cd | ||
+ | |||
+ | test -d conf && rm -r conf | ||
git clone http://val.bmstu.ru/unix/conf.git | git clone http://val.bmstu.ru/unix/conf.git | ||
cd conf/virtualbox/ | cd conf/virtualbox/ | ||
+ | |||
+ | !!! 6 - это номер курса, вместо X укажите Ваш номер стенда, если не знаете его, спросите преподавателя !!! | ||
./setup.sh X 6 | ./setup.sh X 6 | ||
</code> | </code> | ||
- | === 1.2 Аппаратная настройка систем === | + | === 1.2 Аппаратная настройка систем node1 и node2 === |
* Адаптер 1 - eth0 - Виртуальный адаптер хоста (LAN) | * Адаптер 1 - eth0 - Виртуальный адаптер хоста (LAN) | ||
* Адаптер 2 - eth1 - Сетевой мост (ISP1) только для node1 и node2 | * Адаптер 2 - eth1 - Сетевой мост (ISP1) только для node1 и node2 | ||
+ | * 2, а если есть возможность, 4 Gb RAM | ||
* Жесткий диск размер 4G уже добавлен | * Жесткий диск размер 4G уже добавлен | ||
=== 1.3 Импорт VM Windows === | === 1.3 Импорт VM Windows === | ||
+ | |||
+ | * Подключаем, запускаем, преподаватель демонстрирует работу со статическими настройками IP | ||
=== 1.4 Исходная настройка сети шлюза === | === 1.4 Исходная настройка сети шлюза === | ||
Line 70: | Line 76: | ||
</code> | </code> | ||
- | <code> | + | * PuTTY !!! |
- | gate# sh conf/dhcp.sh | + | |
- | </code> | + | |
- | === 1.5 Тестирование сети === | + | === 1.5 Подготовка отказоустойчивой конфигурации === |
- | <code> | + | |
- | windows> ping 1.1.1.1 | + | |
- | </code> | + | |
- | + | ||
- | === 1.6 Подготовка отказоустойчивой конфигурации === | + | |
* [[Сервис Keepalived]] (сервис не перезапускать!) | * [[Сервис Keepalived]] (сервис не перезапускать!) | ||
Line 117: | Line 116: | ||
</code> | </code> | ||
- | === 1.7 Тестирование сети === | + | === 1.6 Тестирование сети === |
<code> | <code> | ||
node1# ping ya.ru | node1# ping ya.ru | ||
- | |||
- | windows> ping 1.1.1.1 | ||
</code> | </code> | ||
Line 194: | Line 191: | ||
</code><code> | </code><code> | ||
... | ... | ||
+ | # state MASTER | ||
state BACKUP | state BACKUP | ||
... | ... | ||
Line 205: | Line 203: | ||
<code> | <code> | ||
- | node1# scn2 /etc/sysctl.conf | + | node1# scn2 /etc/sysctl.d/20-my-forward.conf |
- | node1# ssn2 sysctl -f | + | node1# ssn2 sysctl -p --system |
</code> | </code> | ||
- | |||
=== 2.4 Синхронизация с использованием пакета CSYNC2 === | === 2.4 Синхронизация с использованием пакета CSYNC2 === | ||
Line 234: | Line 231: | ||
gate A 192.168.X.254 | gate A 192.168.X.254 | ||
</code><code> | </code><code> | ||
+ | node1# named-checkconf -z | ||
+ | |||
node1# ssn2 apt install bind9 | node1# ssn2 apt install bind9 | ||
</code> | </code> | ||
Line 244: | Line 243: | ||
</code> | </code> | ||
<code> | <code> | ||
- | nodeN# host ns node1 | + | node1# host ns node1 |
- | nodeN# host ns node2 | + | node1# host ns node2 |
</code> | </code> | ||
<code> | <code> | ||
Line 253: | Line 252: | ||
nameserver 192.168.X.1 | nameserver 192.168.X.1 | ||
nameserver 192.168.X.2 | nameserver 192.168.X.2 | ||
+ | </code><code> | ||
+ | nodeN# host ns | ||
</code> | </code> | ||
Line 283: | Line 284: | ||
* [[Сервис DHCP#Установка]] cервиса DHCP | * [[Сервис DHCP#Установка]] cервиса DHCP | ||
<code> | <code> | ||
+ | node1# sh conf/dhcp.sh | ||
+ | |||
node2# sh conf/dhcp.sh | node2# sh conf/dhcp.sh | ||
</code> | </code> | ||
Line 295: | Line 298: | ||
* !!! Тестирование отказоустойчивости выполнить в лабораторной работе 4.2 | * !!! Тестирование отказоустойчивости выполнить в лабораторной работе 4.2 | ||
+ | * Тестируем на системе Windows | ||
<code> | <code> | ||
windows> ipconfig /release | windows> ipconfig /release | ||
Line 394: | Line 397: | ||
**Сценарий:** | **Сценарий:** | ||
- | * Всем настроить NAT на два ISP ([[Сервисы Gateway и routing#Использование iproute2 для управления выбором ISP]]), iptables-restore можно "привязать" к интерфейсу eth0 | + | * Настроить NAT на два ISP ([[Сервисы Gateway и routing#Использование iproute2 для управления выбором ISP]]) |
- | * Преподавателю продемонстрировать PBR в "ручном" режиме ([[Сервисы Gateway и routing#NetFilter iproute2 (Linux)]]) | + | * PBR в "ручном" режиме ([[Сервисы Gateway и routing#NetFilter iproute2 (Linux)]]) |
Line 471: | Line 474: | ||
</code><code> | </code><code> | ||
#!/bin/sh | #!/bin/sh | ||
- | |||
- | TESTIP=1.1.1.1 | ||
ip a | grep -q '192.168.*254' || exit 0 | ip a | grep -q '192.168.*254' || exit 0 | ||
+ | |||
+ | TESTIP=1.1.1.1 | ||
ISP='' | ISP='' | ||
Line 564: | Line 567: | ||
www A 192.168.X.10 | www A 192.168.X.10 | ||
</code><code> | </code><code> | ||
+ | node1# named-checkconf -z | ||
+ | |||
node1# csync2 -xv | node1# csync2 -xv | ||
</code> | </code> | ||
Line 581: | Line 586: | ||
Каталог: public_html | Каталог: public_html | ||
- | В Браузере: http://node1/~user1 | + | В Браузере: http://node1.corpX.un/~user1 |
</code> | </code> | ||
Line 627: | Line 632: | ||
</code><code> | </code><code> | ||
... | ... | ||
- | * * * * * ps ax | grep -v grep | grep -q 'proftpd: (accepting connections)' && /usr/bin/rsync -az --delete /home/ nodeM:/home/ | + | * * * * * ps ax | grep -q '[p]roftpd: (accepting connections)' && /usr/bin/rsync -az --delete /home/ nodeM:/home/ |
</code> | </code> | ||
==== Вопросы ==== | ==== Вопросы ==== | ||
Line 678: | Line 683: | ||
fs A 192.168.X.20 | fs A 192.168.X.20 | ||
</code><code> | </code><code> | ||
+ | node1# named-checkconf -z | ||
+ | |||
node1# csync2 -xv | node1# csync2 -xv | ||
</code> | </code> | ||
Line 723: | Line 730: | ||
<code> | <code> | ||
- | master# watch cat /proc/drbd | + | slave# watch cat /proc/drbd |
- | master# crm_mon | + | slave# crm_mon |
</code> | </code> | ||
Line 768: | Line 775: | ||
@ MX 10 server1 | @ MX 10 server1 | ||
</code><code> | </code><code> | ||
+ | node1# named-checkconf -z | ||
+ | |||
node1# csync2 -xv | node1# csync2 -xv | ||
</code> | </code> | ||
Line 786: | Line 795: | ||
bridge_ports eth0 | bridge_ports eth0 | ||
- | #bridge_hw 08:00:27:12:34:0N #if generate same mac on nodes (Debian11) | + | #bridge_hw 08:00:27:23:45:0N #if generate same mac on nodes (Debian11/12) |
address 192.168.X.N | address 192.168.X.N | ||
Line 822: | Line 831: | ||
* [[Технология LXC#Установка и настройка lxc]] на обоих узлах | * [[Технология LXC#Установка и настройка lxc]] на обоих узлах | ||
* Готовимся все, относящееся к виртуальным системам, хранить на зеркалируемом разделе | * Готовимся все, относящееся к виртуальным системам, хранить на зеркалируемом разделе | ||
+ | * [[https://www.claudiokuenzler.com/blog/1206/debian-bullseye-11.3-lxc-container-static-ip-config-not-working|LXC containers with static IP in config not working anymore after Debian Bullseye 11.3 update]] | ||
<code> | <code> | ||
Line 829: | Line 839: | ||
</code> | </code> | ||
- | * Создание ветки дочерней системы/шаблона (в большой группе занимает 5 минут) | + | * Создание ветки дочерней системы/шаблона (в большой группе занимает 5 минут, попробовать настроить proxy через [[Переменные окружения]]) |
| | ||
<code> | <code> | ||
root@node1.corpX.un:~# mkdir -p /disk2/var/lib/lxc/ | root@node1.corpX.un:~# mkdir -p /disk2/var/lib/lxc/ | ||
- | root@node1.corpX.un:~# lxc-create -t download -n server-template -- -d ubuntu -r focal -a amd64 | + | node1_ubuntu# lxc-create -t download -n server-template -- -d ubuntu -r focal -a amd64 |
+ | |||
+ | node1_debian# lxc-create -t debian -n server-template | ||
</code> | </code> | ||
Line 851: | Line 863: | ||
</code> | </code> | ||
- | * !!! Методическая рекомендация - запустить процесс установки Ceph (лабораторная работа 8.3) | + | * !!! Методическая рекомендация - запустить процесс установки Ceph (лабораторная работа 8.3) настроив proxy через [[Переменные окружения]] и [[Сервис Ansible#Использование модулей]] Ansible |
* Настраиваем hostname, hosts, DNS client и учетную запись root в гостевой системе/шаблоне | * Настраиваем hostname, hosts, DNS client и учетную запись root в гостевой системе/шаблоне | ||
Line 941: | Line 953: | ||
server1# apt install ansible git | server1# apt install ansible git | ||
- | </code> | ||
- | * Сервис Git [[Сервис Git#Клонирование и обновление локального репозитория из сетевого]] | + | server1# git clone http://val.bmstu.ru/unix/conf.git |
- | <code> | ||
server1# ansible-playbook conf/ansible/roles/mail.yml | server1# ansible-playbook conf/ansible/roles/mail.yml | ||
</code> | </code> | ||
- | |||
* Roundcube http://server1.corpX.un/mail | * Roundcube http://server1.corpX.un/mail | ||
- | * [[Thunderbird]] | ||
<code> | <code> | ||
+ | node1# crm configure delete location cli-prefer-pr_fs_r0 | ||
+ | |||
node1# crm resource move gr_fs_lxc node2 | node1# crm resource move gr_fs_lxc node2 | ||
</code> | </code> |