User Tools

Site Tools


создание_отказоустойчивых_linux_решений

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
создание_отказоустойчивых_linux_решений [2022/05/25 09:41]
val [Модуль 9. Кластерная файловая система OCFS2]
создание_отказоустойчивых_linux_решений [2025/04/08 15:41] (current)
val [Модуль 11. Тестирование отказоустойчивости]
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 -rf 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 ===
  
-=== 1.4 Исходная настройка сети шлюза ===+  * Подключаем,​ запускаем,​ преподаватель демонстрирует работу со статическими настройками IP 
 + 
 +=== 1.4 Исходная настройка сети шлюза ​(запускаем только node1) ​===
  
 <​code>​ <​code>​
Line 70: Line 76:
 </​code>​ </​code>​
  
-<​code>​ +  * PuTTY !!!
-gate# sh conf/​dhcp.sh +
-</​code>​ +
- +
-=== 1.5 Тестирование сети === +
-<​code>​ +
-windows> ping 1.1.1.1 +
-</​code>​+
  
-=== 1.Подготовка отказоустойчивой конфигурации ===+=== 1.Подготовка отказоустойчивой конфигурации ===
  
   * [[Сервис Keepalived]] (сервис не перезапускать!)   * [[Сервис Keepalived]] (сервис не перезапускать!)
Line 117: Line 116:
 </​code>​ </​code>​
  
-=== 1.Тестирование сети ===+=== 1.Тестирование сети ===
 <​code>​ <​code>​
 node1# ping ya.ru node1# ping ya.ru
- 
-windows> ping 1.1.1.1 
 </​code>​ </​code>​
 +
 +==== Практикум ====
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​lin6/​lin6_mod1_pract.mp4|Запись практикума]] (длительность:​ 14 минут)
  
 ==== Вопросы ==== ==== Вопросы ====
Line 194: Line 195:
 </​code><​code>​ </​code><​code>​
 ... ...
 +#    state MASTER
     state BACKUP     state BACKUP
 ... ...
Line 205: Line 207:
  
 <​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 235:
 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 247:
 </​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 256:
 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 262: Line 267:
  
   * [[Сервис Ansible]]   * [[Сервис Ansible]]
 +
 +==== Практикум ====
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​lin6/​lin6_mod2_pract.mp4|Запись практикума]] (длительность:​ 14 минут)
  
 ==== Вопросы ==== ==== Вопросы ====
Line 283: Line 292:
   * [[Сервис 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 306:
  
   * !!! Тестирование отказоустойчивости выполнить в лабораторной работе 4.2   * !!! Тестирование отказоустойчивости выполнить в лабораторной работе 4.2
 +  * Тестируем на системе Windows
 <​code>​ <​code>​
 windows> ipconfig /release windows> ipconfig /release
Line 305: Line 316:
 windows> ping ya.ru windows> ping ya.ru
 </​code>​ </​code>​
 +
 +==== Запись практикума ====
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​lin6/​lin6_mod3_pract.mp4|Запись практикума]] (длительность:​ 9 минут)
  
 ==== Вопросы ==== ==== Вопросы ====
Line 394: Line 409:
 **Сценарий:​** **Сценарий:​**
  
-  * Всем настроить 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 466: Line 481:
 node2# tracepath ya.ru node2# tracepath ya.ru
  
-windows> tracert ya.ru+windows> tracert ​-d ya.ru
  
 nodeN# cat select_isp.sh nodeN# cat select_isp.sh
 </​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 512: Line 527:
 master_node#​ ip rule show master_node#​ ip rule show
 </​code>​ </​code>​
 +
 +==== Практикум ====
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​lin6/​lin6_mod4_pract.mp4|Запись практикума]] (длительность:​ 4 минуты)
  
 ==== Вопросы ==== ==== Вопросы ====
Line 564: Line 583:
 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 602:
 Каталог:​ public_html Каталог:​ public_html
  
-В Браузере:​ http://​node1/​~user1+В Браузере:​ http://​node1.corpX.un/~user1
 </​code>​ </​code>​
  
Line 600: Line 621:
 nodeN# update-rc.d -f proftpd remove nodeN# update-rc.d -f proftpd remove
 или или
-debian11# systemctl disable proftpd+debian11_12# systemctl disable proftpd
 </​code>​ </​code>​
  
Line 627: Line 648:
 </​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>​
 +==== Практикум ====
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​lin6/​lin6_mod5_pract.mp4|Запись практикума]] (длительность:​ 15 минут)
 +
 ==== Вопросы ==== ==== Вопросы ====
  
Line 678: Line 703:
 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 750:
  
 <​code>​ <​code>​
-master# watch cat /proc/drbd+slave# watch cat /proc/drbd
  
-master# crm_mon+slave# crm_mon
 </​code>​ </​code>​
  
Line 737: Line 764:
 master# crm configure delete pr_srv_smbd pr_ip_smbd gr_ip_fs master# crm configure delete pr_srv_smbd pr_ip_smbd gr_ip_fs
 </​code>​ </​code>​
 +
 +==== Практикум ====
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​lin6/​lin6_mod6_pract.mp4|Запись практикума]] (длительность:​ 12 минут)
  
 ==== Вопросы ==== ==== Вопросы ====
Line 768: Line 799:
 @         ​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 819:
  
         bridge_ports eth0         bridge_ports eth0
-        #bridge_hw 08:​00:​27:​12:​34:​0N  ​#if generate same mac on nodes (Debian11)+        #####if generate same mac on nodes (Debian11/12) 
 +        #bridge_hw 08:​00:​27:​23:​45:​0N
  
         address 192.168.X.N         address 192.168.X.N
Line 822: Line 856:
   * [[Технология 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 864:
 </​code>​ </​code>​
  
-  * Создание ветки дочерней системы/​шаблона+  * Создание ветки дочерней системы/​шаблона ​(в большой группе занимает 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 -- --no-validate ​-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 846: Line 883:
 server-template:/#​ apt update server-template:/#​ apt update
  
-server-template:/#​ apt purge netplan.io+server-template:/#​ apt purge netplan.io ​isc-dhcp-client
  
-server-template:/#​ apt install nano ssh+server-template:/#​ apt install nano ssh iputils-ping sudo
 </​code>​ </​code>​
  
-  * !!! Методическая рекомендация - запустить процесс установки Ceph (лабораторная работа 8.3)+  * !!! Методическая рекомендация - запустить процесс установки Ceph (лабораторная работа 8.3) настроив proxy через [[Переменные окружения]] и [[Сервис Ansible#​Использование модулей]] Ansible
  
   * Настраиваем hostname, hosts, DNS client и учетную запись root в гостевой системе/​шаблоне   * Настраиваем hostname, hosts, DNS client и учетную запись root в гостевой системе/​шаблоне
Line 866: Line 903:
 192.168.X.30 server-template.corpX.un server-template 192.168.X.30 server-template.corpX.un server-template
 </​code><​code>​ </​code><​code>​
 +server-template:/#​ more /​etc/​resolv.conf ​
 +
 server-template:/#​ cat /​etc/​systemd/​resolved.conf server-template:/#​ cat /​etc/​systemd/​resolved.conf
 </​code><​code>​ </​code><​code>​
Line 872: Line 911:
 </​code><​code>​ </​code><​code>​
 server-template:/#​ passwd ubuntu server-template:/#​ passwd ubuntu
 +  или
 +server-template:/#​ useradd -m -s /bin/bash -G sudo student
 +server-template:/#​ passwd student
 </​code>​ </​code>​
 Ctrl-D Ctrl-D
Line 918: Line 960:
  
 root@node1.corpX.un:​~#​ ssh ubuntu@server1 root@node1.corpX.un:​~#​ ssh ubuntu@server1
 +root@node1.corpX.un:​~#​ ssh student@server1
  
 root@node1.corpX.un:​~#​ systemctl stop lxc@server1 root@node1.corpX.un:​~#​ systemctl stop lxc@server1
Line 941: Line 984:
  
 server1# apt install ansible git server1# apt install ansible git
-</​code>​ 
  
-  * Сервис Git [[Сервис Git#Клонирование и обновление локального репозитория из сетевого]]+server1git 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>​
 +
 +==== Практикум ====
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​lin6/​lin6_mod7_pract.mp4|Запись практикума]] (длительность:​ 33 минуты)
 +
 ==== Вопросы ==== ==== Вопросы ====
  
Line 963: Line 1009:
  
   - Настройка IP на node3-7, [[Сервис Ansible#​Настройка групп управляемых систем]],​ [[Сервис Ansible#​Настройка транспорта ssh]] и [[Сервис Ansible#​Использование модулей]] Ansible для тестирования связи с ними   - Настройка IP на node3-7, [[Сервис Ansible#​Настройка групп управляемых систем]],​ [[Сервис Ansible#​Настройка транспорта ssh]] и [[Сервис Ansible#​Использование модулей]] Ansible для тестирования связи с ними
-  - [[Сервис Ansible#​Использование ролей]] Ansible для настройки файлов конфигурации сети на node3-7 +  - [[Сервис Ansible#​Использование ролей]] Ansible для настройки файлов конфигурации сети на node3-7  
-  - [[Сервис Ansible#​Использование модулей]] Ansible для инсталляции Ceph на node3-7+  - [[Сервис Ansible#​Использование модулей]] Ansible для инсталляции Ceph на node3-7 ​(в большой группе ставится 45 минут)
   - [[Ceph - просто добавь узлов!#​Шаг 2. Установка и настройка Ceph]] сразу добавить 6-й узел как OSD   - [[Ceph - просто добавь узлов!#​Шаг 2. Установка и настройка Ceph]] сразу добавить 6-й узел как OSD
 +  - [[Решение Ceph]]
   - [[Сервис iSCSI#iSCSI initiator]]   - [[Сервис iSCSI#iSCSI initiator]]
   - [[Сервис multipath]]   - [[Сервис multipath]]
 +
 +==== Практикум ====
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​lin6/​lin6_mod8_pract.mp4|Запись практикума]] (длительность:​ 26 минут)
  
 ===== Модуль 9. Кластерная файловая система OCFS2 ===== ===== Модуль 9. Кластерная файловая система OCFS2 =====
Line 974: Line 1025:
   * [[Сервис OCFS2]]   * [[Сервис OCFS2]]
  
-===== Модуль 10. Система визуализации KVM =====+==== Практикум ==== 
 + 
 +  * [[https://​val.bmstu.ru/​~val/​pract/​lin6/​lin6_mod9_pract.mp4|Запись практикума]] (длительность:​ 8 минут) 
 + 
 +===== Модуль 10. Система виртуализации KVM =====
  
   * Методическая рекомендация - выключить win10 clientN (конфликт имен и путаница с ip адресами)   * Методическая рекомендация - выключить win10 clientN (конфликт имен и путаница с ip адресами)
   * Проверить,​ включена ли [[Технология VirtualBox#​Вложенная виртуализация]] в VirtualBox   * Проверить,​ включена ли [[Технология VirtualBox#​Вложенная виртуализация]] в VirtualBox
-  * [[Технология KVM]]+  * [[Технология KVM]] (в большой группе ставится 10 минут) 
 + 
 +==== Практикум ==== 
 + 
 +  * [[https://​val.bmstu.ru/​~val/​pract/​lin6/​lin6_mod10_pract.mp4|Запись практикума]] (длительность:​ 20 минут)
  
 ===== Модуль 11. Тестирование отказоустойчивости ===== ===== Модуль 11. Тестирование отказоустойчивости =====
  
   - Переместить все ресурсы на node1, обесточить его и убедиться что все ресурсы (winxp1 и server1) запустились на node2 (на winxp1 может начаться проверка диска)   - Переместить все ресурсы на node1, обесточить его и убедиться что все ресурсы (winxp1 и server1) запустились на node2 (на winxp1 может начаться проверка диска)
-  - Остановить/​запустить node2 (рекомендуется сперва корректно остановить winxp1), убедиться что все ресурсы (winxp1 и server1) запускается+  - Остановить node2 (рекомендуется сперва корректно остановить winxp1) 
 +  - запустить node2, убедиться что все ресурсы (winxp1 и server1) запустились (можно node1 и проверить письмо про splitbrain)
   - Выяснить,​ через какой узел подключается [[Сервис multipath]] на node2 по iSCSI к RBD Ceph   - Выяснить,​ через какой узел подключается [[Сервис multipath]] на node2 по iSCSI к RBD Ceph
   - Выполнить для этого узла [[Ceph - просто добавь узлов!#​Шаг 4. Сценарий - авария узла]]   - Выполнить для этого узла [[Ceph - просто добавь узлов!#​Шаг 4. Сценарий - авария узла]]
 +
 +  * Видео [[Бюджетная безотказная сеть для кластера]]
  
  
  
создание_отказоустойчивых_linux_решений.1653460915.txt.gz · Last modified: 2022/05/25 09:41 by val