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/22 17:45]
val [6.3 Настройка NAS сервера SMB/CIFS]
создание_отказоустойчивых_linux_решений [2026/10/23 13:52] (current)
val [Слайд]
Line 4: Line 4:
  
   * [[http://​www.specialist.ru/​course/​un5|Linux. Уровень 6. Создание отказоустойчивых кластерных решений.]]   * [[http://​www.specialist.ru/​course/​un5|Linux. Уровень 6. Создание отказоустойчивых кластерных решений.]]
- 
-===== Ссылка на вебинар ===== 
  
  
Line 12: Line 10:
   * Научиться настраивать отказоустойчивую конфигурацию сервисов Linux на "​железном"​ оборудовании в сети предприятия.   * Научиться настраивать отказоустойчивую конфигурацию сервисов Linux на "​железном"​ оборудовании в сети предприятия.
  
 +===== Презентация =====
  
 +  * [[https://​docs.google.com/​presentation/​d/​e/​2PACX-1vTWuBUuTEKhgEMbj_R7c_wGvSwPDIH1yBZxXgJVW6f5PPcy6AahWRTPHnzwrW4P8Q/​pub?​slide=id.p3|О преподавателе]]
 ===== Модуль 0. Подготовка стенда в классе ===== ===== Модуль 0. Подготовка стенда в классе =====
  
Line 26: Line 26:
  
 ===== Модуль 1. Развертывание систем и сети кластера ===== ===== Модуль 1. Развертывание систем и сети кластера =====
 +
 +==== Слайд ====
 +
 +  * [[https://​docs.google.com/​presentation/​d/​e/​2PACX-1vTWuBUuTEKhgEMbj_R7c_wGvSwPDIH1yBZxXgJVW6f5PPcy6AahWRTPHnzwrW4P8Q/​pub?​slide=id.p6|Модуль 1]]
  
 ==== Теория ==== ==== Теория ====
Line 33: Line 37:
   * [[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 51:
  
 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>​
-ubuntu# sh net_gate.sh+debian# sh net_gate.sh
  
-ubuntu# init 6+debian# init 6
 </​code>​ </​code>​
  
-<​code>​ +  * PuTTY !!!
-gate# sh conf/​dhcp.sh +
-</​code>​ +
- +
-=== 1.5 Тестирование сети === +
-<​code>​ +
-windows> ping 1.1.1.1 +
-</​code>​+
  
-=== 1.6 Подготовка отказоустойчивой конфигурации ===+=== 1.5 Подготовка отказоустойчивой конфигурации ===
  
   * [[Сервис Keepalived]] (сервис не перезапускать!)   * [[Сервис Keepalived]] (сервис не перезапускать!)
Line 117: Line 122:
 </​code>​ </​code>​
  
-=== 1.7 Тестирование сети ===+=== 1.6 Тестирование сети ===
 <​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 132: Line 139:
 ===== Модуль 2. Синхронизация файлов конфигураций узлов ===== ===== Модуль 2. Синхронизация файлов конфигураций узлов =====
  
 +==== Слайд ====
 +
 +  * [[https://​docs.google.com/​presentation/​d/​e/​2PACX-1vTWuBUuTEKhgEMbj_R7c_wGvSwPDIH1yBZxXgJVW6f5PPcy6AahWRTPHnzwrW4P8Q/​pub?​slide=id.g3f766b6cc24_0_0|Модуль 2]]
 ==== Теория ==== ==== Теория ====
  
Line 166: Line 176:
 scp /​etc/​hostname node2:/etc/ scp /​etc/​hostname node2:/etc/
 scp /​etc/​network/​interfaces node2:/​etc/​network/​ scp /​etc/​network/​interfaces node2:/​etc/​network/​
 +scp /​etc/​resolv.conf node2:/etc/
  
 node1# ssh node2 route add default gw 192.168.X.254 node1# ssh node2 route add default gw 192.168.X.254
Line 181: Line 192:
 node1# ssh node2 node1# ssh node2
  
-ubuntu# cat /​etc/​hostname+debian# cat /​etc/​hostname
 </​code><​code>​ </​code><​code>​
 node2.corpX.un node2.corpX.un
 </​code><​code>​ </​code><​code>​
-node2# cat /​etc/​network/​interfaces+debian# cat /​etc/​network/​interfaces
 </​code><​code>​ </​code><​code>​
 ... ...
Line 191: Line 202:
 ... ...
 </​code><​code>​ </​code><​code>​
-node2# cat /​etc/​keepalived/​keepalived.conf+debian# cat /​etc/​keepalived/​keepalived.conf
 </​code><​code>​ </​code><​code>​
 ... ...
 +#    state MASTER
     state BACKUP     state BACKUP
 ... ...
 </​code><​code>​ </​code><​code>​
-node2# init 6+debian# init 6
 </​code>​ </​code>​
  
Line 205: Line 217:
  
 <​code>​ <​code>​
-node1# scn2 /​etc/​sysctl.conf+node1# ​ 
 +scn2 /​etc/​resolv.conf 
 +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 247:
 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 259:
 </​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 268:
 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 279:
  
   * [[Сервис Ansible]]   * [[Сервис Ansible]]
 +
 +==== Практикум ====
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​lin6/​lin6_mod2_pract.mp4|Запись практикума]] (длительность:​ 14 минут)
  
 ==== Вопросы ==== ==== Вопросы ====
Line 273: Line 294:
 ===== Модуль 3. Развертывание сервисов с интегрированной поддержкой отказоустойчивости ===== ===== Модуль 3. Развертывание сервисов с интегрированной поддержкой отказоустойчивости =====
  
 +==== Слайд ====
 +
 +  * [[https://​docs.google.com/​presentation/​d/​e/​2PACX-1vTWuBUuTEKhgEMbj_R7c_wGvSwPDIH1yBZxXgJVW6f5PPcy6AahWRTPHnzwrW4P8Q/​pub?​slide=id.g3f766b6cc24_0_5|Модуль 3]]
 ==== Теория ==== ==== Теория ====
  
Line 283: Line 307:
   * [[Сервис 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 321:
  
   * !!! Тестирование отказоустойчивости выполнить в лабораторной работе 4.2   * !!! Тестирование отказоустойчивости выполнить в лабораторной работе 4.2
 +  * Тестируем на системе Windows
 <​code>​ <​code>​
 windows> ipconfig /release windows> ipconfig /release
Line 305: Line 331:
 windows> ping ya.ru windows> ping ya.ru
 </​code>​ </​code>​
 +
 +==== Запись практикума ====
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​lin6/​lin6_mod3_pract.mp4|Запись практикума]] (длительность:​ 9 минут)
  
 ==== Вопросы ==== ==== Вопросы ====
Line 315: Line 345:
 ===== Модуль 4. Развертывание отказоустойчивого шлюза в Internet ===== ===== Модуль 4. Развертывание отказоустойчивого шлюза в Internet =====
  
 +==== Слайд ====
 +
 +  * [[https://​docs.google.com/​presentation/​d/​e/​2PACX-1vTWuBUuTEKhgEMbj_R7c_wGvSwPDIH1yBZxXgJVW6f5PPcy6AahWRTPHnzwrW4P8Q/​pub?​slide=id.g3f766b6cc24_0_10|Модуль 4]]
 ==== Теория ==== ==== Теория ====
  
Line 333: Line 366:
 ==== 4.2 Отказоустойчивый nat ==== ==== 4.2 Отказоустойчивый nat ====
  
-  * Настроить NAT трансляцию для сети 192.168.X/​24 в реальный адрес ISP ([[Сервис NAT]])+  * Настроить NAT трансляцию для сети 192.168.X/​24 в реальный адрес ISP ([[Сервис NAT]], [[Сервис NAT#​nftables]])
   * После этого **преподавателю** отключить маршруты в локальные сети стендов   * После этого **преподавателю** отключить маршруты в локальные сети стендов
  
Line 394: Line 427:
 **Сценарий:​** **Сценарий:​**
  
-  * Всем настроить 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 406: Line 439:
  
 node1# ip route show table 102 node1# ip route show table 102
 +
 +nodeN# apt install conntrack
  
 nodeN# cat set_isp.sh nodeN# cat set_isp.sh
 </​code><​code>​ </​code><​code>​
 #!/bin/sh #!/bin/sh
 +
 +ip rule del from 192.168/16 to 192.168/16 table main 2>/​dev/​null
 +while ip rule del from any table 101 2>/​dev/​null;​ do true; done
 +while ip rule del from any table 102 2>/​dev/​null;​ do true; done
 +ip route delete default 2>/​dev/​null
  
 case $1 in case $1 in
-        ​ISP1) +    ​ISP1) 
-                ip rule del from 192.168/16 to 192.168/16 table main +        ip rule add from 192.168.X.0/​24 table 101 
-                while ip rule del from any table 101;do true;done +        ip route add default via 172.16.1.254
-                while ip rule del from any table 102;do true;done +
-                ip route delete default +
- +
-                ​ip rule add from 192.168.X.0/​24 table 101 +
-                ip rule add from 192.168/16 to 192.168/16 table main +
- +
-                ​ip route add default via 172.16.1.254 +
- +
-                /sbin/ip route flush cache +
-                /​usr/​sbin/​conntrack -F+
         ;;         ;;
-        ​ISP2) +    ​ISP2) 
-                ip rule del from 192.168/16 to 192.168/16 table main +        ip rule add from 192.168.X.0/​24 table 102 
-                while ip rule del from any table 101;do true;done +        ip route add default via 172.16.2.254
-                while ip rule del from any table 102;do true;done +
-                ip route delete default +
- +
-                ​ip rule add from 192.168.X.0/​24 table 102 +
-                ip rule add from 192.168/16 to 192.168/16 table main +
- +
-                ​ip route add default via 172.16.2.254 +
- +
-                /sbin/ip route flush cache +
-                /​usr/​sbin/​conntrack -F+
         ;;         ;;
-        ​ISP1ISP2) +    ​ISP1ISP2) 
-                ip rule del from 192.168/16 to 192.168/16 table main +        ip rule add from 192.168.X.0/​25 table 101 
-                while ip rule del from any table 101;do true;done +        ip rule add from 192.168.X.128/​25 table 102 
-                while ip rule del from any table 102;do true;done +        ip route add default via 172.16.1.254
-                ip route delete default +
- +
-                ​ip rule add from 192.168.X.0/​25 table 101 +
-                ip rule add from 192.168.X.128/​25 table 102 +
-                ip rule add from 192.168/16 to 192.168/16 table main +
- +
-                ​ip route add default via 172.16.1.254 +
-                #ip route add default via 172.16.2.254  +
- +
-                /sbin/ip route flush cache +
-                /​usr/​sbin/​conntrack -F+
         ;;         ;;
 esac esac
 +
 +ip rule add from 192.168/16 to 192.168/16 table main
 +ip route flush cache
 +conntrack -F 2>/​dev/​null
 </​code><​code>​ </​code><​code>​
 nodeN# chmod +x set_isp.sh nodeN# chmod +x set_isp.sh
Line 464: Line 477:
 node1# ip rule show node1# ip rule show
  
 +node2# apt install iputils-tracepath
 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
 +
 +ip a | grep -q '​192.168.*254'​ || exit 0
  
 TESTIP=1.1.1.1 TESTIP=1.1.1.1
- 
-ip a | grep -q '​192.168.*254'​ || exit 0 
  
 ISP=''​ ISP=''​
  
-ip route del $TESTIP+ip route del $TESTIP ​2>/​dev/​null
 ip route add $TESTIP via 172.16.1.254 ip route add $TESTIP via 172.16.1.254
 ping -c3 $TESTIP && ISP=ISP1 ping -c3 $TESTIP && ISP=ISP1
Line 512: Line 526:
 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 533: Line 551:
  
 ===== Модуль 5. Использование систем управления ресурсами кластера ===== ===== Модуль 5. Использование систем управления ресурсами кластера =====
 +
 +==== Слайд ====
 +
 +  * [[https://​docs.google.com/​presentation/​d/​e/​2PACX-1vTWuBUuTEKhgEMbj_R7c_wGvSwPDIH1yBZxXgJVW6f5PPcy6AahWRTPHnzwrW4P8Q/​pub?​slide=id.g3f766b6cc24_0_15|Модуль 5]]
  
 ==== Теория ==== ==== Теория ====
Line 541: Line 563:
   * [[https://​clusterlabs.org/​pacemaker/​doc/​2.1/​Pacemaker_Administration/​html/​pcs-crmsh.html|Quick Comparison of pcs and crm shell]]   * [[https://​clusterlabs.org/​pacemaker/​doc/​2.1/​Pacemaker_Administration/​html/​pcs-crmsh.html|Quick Comparison of pcs and crm shell]]
   * [[https://​clusterlabs.org/​pacemaker/​doc/​|ClusterLabs Pacemaker Documentation]]   * [[https://​clusterlabs.org/​pacemaker/​doc/​|ClusterLabs Pacemaker Documentation]]
- 
- 
  
 ==== Лабораторные работы ==== ==== Лабораторные работы ====
Line 564: Line 584:
 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 603:
 Каталог:​ public_html Каталог:​ public_html
  
-В Браузере:​ http://​node1/​~user1+В Браузере:​ http://​node1.corpX.un/~user1
 </​code>​ </​code>​
  
Line 596: Line 618:
    
 <​code>​ <​code>​
-nodeN# ​service ​proftpd ​stop +nodeN# ​systemctl disable ​proftpd --now
- +
-nodeN# update-rc.d -f proftpd remove +
-или +
-debian11# systemctl disable proftpd+
 </​code>​ </​code>​
  
Line 627: Line 645:
 </​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 645: Line 667:
  
 ===== Модуль 6. Развертывание отказоустойчивых файловых сервисов ===== ===== Модуль 6. Развертывание отказоустойчивых файловых сервисов =====
 +
 +==== Слайд ====
 +
 +  * [[https://​docs.google.com/​presentation/​d/​e/​2PACX-1vTWuBUuTEKhgEMbj_R7c_wGvSwPDIH1yBZxXgJVW6f5PPcy6AahWRTPHnzwrW4P8Q/​pub?​slide=id.g3f766b6cc24_0_20|Модуль 6]]
  
 ==== Теория ==== ==== Теория ====
Line 664: Line 690:
  
   * Pacemaker [[Пакет Pacemaker#​Удаление ресурсов]]   * Pacemaker [[Пакет Pacemaker#​Удаление ресурсов]]
 +  * Pacemaker [[Пакет Pacemaker#​Управление конфигурацией]] (уменьшение вероятности split-brain)
   * [[Решение DRBD#DRBD и Pacemaker]] (оставить приклрепление к node1) ​   * [[Решение DRBD#DRBD и Pacemaker]] (оставить приклрепление к node1) ​
   * Можно показать на отдельном стенде [[Решение DRBD#​Конфигурация с двумя primaries]]   * Можно показать на отдельном стенде [[Решение DRBD#​Конфигурация с двумя primaries]]
Line 677: Line 704:
 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 685: Line 714:
 <​code>​ <​code>​
 root@nodeN:​~#​ root@nodeN:​~#​
- +systemctl disable smbd --now 
-service smbd stop +systemctl disable nmbd --now
-service nmbd stop +
- +
-systemctl disable smbd +
-systemctl disable nmbd+
  
  
Line 722: Line 747:
  
 <​code>​ <​code>​
-master# watch cat /proc/drbd+slave# watch cat /proc/drbd
  
-master# crm_mon+slave# crm_mon
 </​code>​ </​code>​
  
Line 736: Line 761:
 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 747: Line 776:
  
 ===== Модуль 7. Развертывание контейнеров в отказоустойчивой конфигурации ===== ===== Модуль 7. Развертывание контейнеров в отказоустойчивой конфигурации =====
 +==== Слайд ====
  
 +  * [[https://​docs.google.com/​presentation/​d/​e/​2PACX-1vTWuBUuTEKhgEMbj_R7c_wGvSwPDIH1yBZxXgJVW6f5PPcy6AahWRTPHnzwrW4P8Q/​pub?​slide=id.g3f766b6cc24_0_25|Модуль 7]]
 ==== Теория ==== ==== Теория ====
  
Line 767: Line 798:
 @         ​MX ​ 10  server1 @         ​MX ​ 10  server1
 </​code><​code>​ </​code><​code>​
 +node1# named-checkconf -z
 +
 node1# csync2 -xv node1# csync2 -xv
 </​code>​ </​code>​
Line 785: Line 818:
  
         bridge_ports eth0         bridge_ports eth0
-        #bridge_hw 08:00:27:12:34:0N  #if generate same mac on nodes (Debian11)+        ​#For VBox clones 
 +        ​#bridge_hw 08:00:27:23:45:0N
  
         address 192.168.X.N         address 192.168.X.N
Line 816: Line 850:
  
   * Может понадобиться [[Решение DRBD#​Решение ситуации Split-Brain]] или, в нашем случае [[Решение DRBD#​Решение ситуации Split-Brain при использовании Pacemaker]]   * Может понадобиться [[Решение DRBD#​Решение ситуации Split-Brain]] или, в нашем случае [[Решение DRBD#​Решение ситуации Split-Brain при использовании Pacemaker]]
 +  * Может понадобиться удаление ресурсов из модуля 6.3
  
 === 7.1.2 Подготовка виртуальных машин === === 7.1.2 Подготовка виртуальных машин ===
Line 821: 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 828: 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_debian12# lxc-create -t debian ​-n server-template 
 + 
 +node1_debian13#​ lxc-create ​-t download ​-n server-template ​-- -d debian ​-r trixie ​-a amd64 
 +node1_debian13#​ cp --remove-destination /​etc/​resolv.conf /​var/​lib/​lxc/​server-template/​rootfs/​etc/​resolv.conf
 </​code>​ </​code>​
  
Line 845: Line 884:
 server-template:/#​ apt update server-template:/#​ apt update
  
-server-template:/#​ apt purge netplan.io+server-template:/#​ apt purge isc-dhcp-client
  
-server-template:/#​ apt install nano ssh+server-template:/#​ apt install nano ssh iputils-ping sudo
 </​code>​ </​code>​
- 
-  * !!! Методическая рекомендация - запустить процесс установки Ceph (лабораторная работа 8.3) 
  
   * Настраиваем hostname, hosts, DNS client и учетную запись root в гостевой системе/​шаблоне   * Настраиваем hostname, hosts, DNS client и учетную запись root в гостевой системе/​шаблоне
  
 <​code>​ <​code>​
 +server:/# more /​etc/​resolv.conf
 +
 +server_debian13:/#​ rm -v /​etc/​systemd/​network/​*.network
 +
 server:/# cat /​etc/​hostname server:/# cat /​etc/​hostname
 </​code><​code>​ </​code><​code>​
Line 865: Line 906:
 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:/# ​cat /etc/systemd/​resolved.conf +server-template:/# ​useradd -m -s /bin/bash -G sudo student 
-</​code><​code>​ + 
-[Resolve] +server-template:/#​ passwd ​student
-DNS=192.168.X.1 192.168.X.2 +
-</​code><​code>​ +
-server-template:/#​ passwd ​ubuntu+
 </​code>​ </​code>​
 Ctrl-D Ctrl-D
Line 882: Line 920:
 lxc.rootfs.path = dir:/​var/​lib/​lxc/​server-template/​rootfs lxc.rootfs.path = dir:/​var/​lib/​lxc/​server-template/​rootfs
 lxc.uts.name = server-template lxc.uts.name = server-template
-...+ 
 +# Network configuration
 lxc.net.0.type = veth lxc.net.0.type = veth
 lxc.net.0.link = br0 lxc.net.0.link = br0
Line 901: Line 940:
 DST_IP=192.168.X.31 DST_IP=192.168.X.31
  
-time cp -rp /​var/​lib/​lxc/​$SRC_CONTAINER/​ /​var/​lib/​lxc/​$DST_CONTAINER/​+time cp -rpT /​var/​lib/​lxc/​$SRC_CONTAINER/​ /​var/​lib/​lxc/​$DST_CONTAINER/​
  
-find /​var/​lib/​lxc/​$DST_CONTAINER/​rootfs/​etc/​ -type f -exec sed -i'' ​-e "​s/​$SRC_CONTAINER/​$DST_CONTAINER/"​ -e "​s/​$SRC_IP/​$DST_IP/"​ {} \;+find /​var/​lib/​lxc/​$DST_CONTAINER/​rootfs/​etc/​ -type f -exec sed -i -e "​s/​$SRC_CONTAINER/​$DST_CONTAINER/​g" -e "​s/​$SRC_IP/​$DST_IP/​g" {} \;
  
-sed -i'' ​-e "​s/​$SRC_CONTAINER/​$DST_CONTAINER/"​ -e "​s/​$SRC_IP/​$DST_IP/"​ /​var/​lib/​lxc/​$DST_CONTAINER/​config+sed -i -e "​s/​$SRC_CONTAINER/​$DST_CONTAINER/​g" -e "​s/​$SRC_IP/​$DST_IP/​g" /​var/​lib/​lxc/​$DST_CONTAINER/​config
  
 </​code>​ </​code>​
Line 916: Line 955:
 root@node1.corpX.un:​~#​ systemctl start lxc@server1 root@node1.corpX.un:​~#​ systemctl start lxc@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 934: Line 973:
 ==== Настройка виртуальной системы как сервер электронной почты и тестирование отказоустойчивости ==== ==== Настройка виртуальной системы как сервер электронной почты и тестирование отказоустойчивости ====
  
-  * [[Сервис SSH#PuTTY]]+  * [[Сервис SSH#​PuTTY]] ​(можно с host системы)
  
 <​code>​ <​code>​
Line 940: Line 979:
  
 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 (нужно с vm win client)
  
-  * Roundcube http://server1.corpX.un/mail +  * [[Сервис MTA#​Использование почтовых псевдонимов]] для получения гарантированных уведомлений и [[Решение DRBD#​Решение ситуации Split-Brain при использовании Pacemaker]] 
-  * [[Thunderbird]]+ 
 + 
 +==== Практикум ==== 
 + 
 +  * [[https://val.bmstu.ru/~val/​pract/​lin6/​lin6_mod7_pract.mp4|Запись практикума]] (длительность:​ 33 минуты)
  
-<​code>​ 
-node1# crm resource move gr_fs_lxc node2 
-</​code>​ 
 ==== Вопросы ==== ==== Вопросы ====
  
Line 961: Line 1000:
 ===== Модуль 8. Распределенное отказоустойчивое хранилище Ceph ===== ===== Модуль 8. Распределенное отказоустойчивое хранилище Ceph =====
  
 +==== Слайд ====
 +
 +  * [[https://​docs.google.com/​presentation/​d/​e/​2PACX-1vTWuBUuTEKhgEMbj_R7c_wGvSwPDIH1yBZxXgJVW6f5PPcy6AahWRTPHnzwrW4P8Q/​pub?​slide=id.g3f766b6cc24_0_30|Модуль 8]]
 +
 +  - Настройка MAC адресов 08:​00:​27:​12:​34:​5N (для получения назначенного IP через [[Сервис DHCP]]) и запуск node3-7
   - Настройка 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]] ​(ключи ssh) 
-  - [[Сервис iSCSI#iSCSI initiator]] +  - Развертывание Ceph [[Решение Ceph#​MON]] 
-  - [[Сервис multipath]]+  - Запуск Ceph [[Решение Ceph#​MGR]] 
 +  - Добавление [[Решение Ceph#OSD]] (сразу добавить 6-й узел) 
 +  - Создание [[Решение Ceph#OSD POOL]] 
 +  - Инициализация [[Решение Ceph#RBD POOL]] 
 + 
 +  - Включение [[Решение Ceph#​TGT-RBD]] для iSCSI доступа к хранилищу 
 +  - Подключение к linux через ​[[Сервис iSCSI#iSCSI initiator]] 
 +  - Настрока ​[[Сервис multipath]] ​доступа 
 + 
 +  - [[Технология KVM]]  
 +  - [[Технология KVM#​Использование Ceph RBD в качестве диска]] 
 + 
 + 
 + 
 +==== Практикум ==== 
 + 
 +  * [[https://​val.bmstu.ru/​~val/​pract/​lin6/​lin6_mod8_pract.mp4|Запись практикума]] (длительность:​ 26 минут)
  
 ===== Модуль 9. Кластерная файловая система OCFS2 ===== ===== Модуль 9. Кластерная файловая система OCFS2 =====
 +
 +==== Слайд ====
 +
 +  * [[https://​docs.google.com/​presentation/​d/​e/​2PACX-1vTWuBUuTEKhgEMbj_R7c_wGvSwPDIH1yBZxXgJVW6f5PPcy6AahWRTPHnzwrW4P8Q/​pub?​slide=id.g3f766b6cc24_0_35|Модуль 9]]
 +
 +==== Лабораторные работы ====
  
   * [[Сервис OCFS2]]   * [[Сервис OCFS2]]
  
-===== Модуль 10. Система визуализации KVM =====+==== Практикум ==== 
 + 
 +  * [[https://​val.bmstu.ru/​~val/​pract/​lin6/​lin6_mod9_pract.mp4|Запись практикума]] (длительность:​ 8 минут) 
 + 
 +===== Модуль 10. Система виртуализации KVM ===== 
 + 
 +==== Слайд ==== 
 + 
 +  * [[https://​docs.google.com/​presentation/​d/​e/​2PACX-1vTWuBUuTEKhgEMbj_R7c_wGvSwPDIH1yBZxXgJVW6f5PPcy6AahWRTPHnzwrW4P8Q/​pub?​slide=id.g3f766b6cc24_0_40|Модуль 10]] 
 + 
 +==== Лабораторные работы ​====
  
   * Методическая рекомендация - выключить win10 clientN (конфликт имен и путаница с ip адресами)   * Методическая рекомендация - выключить win10 clientN (конфликт имен и путаница с ip адресами)
   * Проверить,​ включена ли [[Технология VirtualBox#​Вложенная виртуализация]] в VirtualBox   * Проверить,​ включена ли [[Технология VirtualBox#​Вложенная виртуализация]] в VirtualBox
-  * [[Технология KVM]]+  * [[Технология KVM]]  
 + 
 +==== Практикум ==== 
 + 
 +  * [[https://​val.bmstu.ru/​~val/​pract/​lin6/​lin6_mod10_pract.mp4|Запись практикума]] (длительность:​ 20 минут)
  
 ===== Модуль 11. Тестирование отказоустойчивости ===== ===== Модуль 11. Тестирование отказоустойчивости =====
 +
 +==== Слайд ====
 +
 +  * [[https://​docs.google.com/​presentation/​d/​e/​2PACX-1vTWuBUuTEKhgEMbj_R7c_wGvSwPDIH1yBZxXgJVW6f5PPcy6AahWRTPHnzwrW4P8Q/​pub?​slide=id.h2bbd9c17cdaa879d_0_0|Модуль 11]]
 +==== Лабораторные работы ====
  
   - Переместить все ресурсы на node1, обесточить его и убедиться что все ресурсы (winxp1 и server1) запустились на node2 (на winxp1 может начаться проверка диска)   - Переместить все ресурсы на node1, обесточить его и убедиться что все ресурсы (winxp1 и server1) запустились на node2 (на winxp1 может начаться проверка диска)
-  - Остановить/​запустить node2 (рекомендуется сперва корректно остановить winxp1), убедиться что все ресурсы (winxp1 и server1) запускается +  - Остановить node2 (рекомендуется сперва корректно остановить winxp1) 
-  - Выяснить,​ через какой узел подключается [[Сервис multipath]] на node2 по iSCSI к RBD Ceph +  - Запустить node2, убедиться что все ресурсы (winxp1 и server1) запустились 
-  - Выполнить для этого узла [[Ceph - просто добавь узлов!#​Шаг 4. Сценарий - авария узла]]+  - Выяснить,​ через какой узел подключается ​([[Сервис multipath]] ​или [[Технология KVM#Использование Ceph RBD в качестве диска]]) node2 к RBD Ceph 
 +  - Выполнить для этого узла [[Ceph - просто добавь узлов!#​Шаг 4. Сценарий - авария узла]] или [[Решение Ceph#​Замена MON]], [[Решение Ceph#​Добавление узла OSD]], [[Решение Ceph#​Удаление узла OSD]] 
 + 
 +===== Модуль 12. Дополнительные материалы ===== 
 + 
 +==== Слайд ==== 
 + 
 +  * [[https://​docs.google.com/​presentation/​d/​e/​2PACX-1vTWuBUuTEKhgEMbj_R7c_wGvSwPDIH1yBZxXgJVW6f5PPcy6AahWRTPHnzwrW4P8Q/​pub?​slide=id.h2bbd9c17cdaa879d_0_5|Модуль 12]] 
 + 
 +==== Лабораторные работы ==== 
 + 
 +  * Видео [[Бюджетная безотказная сеть для кластера]]
  
  
  
создание_отказоустойчивых_linux_решений.1653230751.txt.gz · Last modified: 2022/05/22 17:45 by val