This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
создание_отказоустойчивых_linux_решений [2022/07/28 06:40] val [Модуль 11. Тестирование отказоустойчивости] |
создание_отказоустойчивых_linux_решений [2026/10/16 11:10] (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> | ||
| - | 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 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> | ||
| + | |||
| + | ==== Практикум ==== | ||
| + | |||
| + | * [[https://val.bmstu.ru/~val/pract/lin6/lin6_mod1_pract.mp4|Запись практикума]] (длительность: 14 минут) | ||
| ==== Вопросы ==== | ==== Вопросы ==== | ||
| Line 166: | Line 167: | ||
| 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 183: | ||
| 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 193: | ||
| ... | ... | ||
| </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 208: | ||
| <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 238: | ||
| 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 250: | ||
| </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 259: | ||
| 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 270: | ||
| * [[Сервис Ansible]] | * [[Сервис Ansible]] | ||
| + | |||
| + | ==== Практикум ==== | ||
| + | |||
| + | * [[https://val.bmstu.ru/~val/pract/lin6/lin6_mod2_pract.mp4|Запись практикума]] (длительность: 14 минут) | ||
| ==== Вопросы ==== | ==== Вопросы ==== | ||
| Line 283: | Line 295: | ||
| * [[Сервис 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 309: | ||
| * !!! Тестирование отказоустойчивости выполнить в лабораторной работе 4.2 | * !!! Тестирование отказоустойчивости выполнить в лабораторной работе 4.2 | ||
| + | * Тестируем на системе Windows | ||
| <code> | <code> | ||
| windows> ipconfig /release | windows> ipconfig /release | ||
| Line 305: | Line 319: | ||
| 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 412: | ||
| **Сценарий:** | **Сценарий:** | ||
| - | * Всем настроить 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 424: | ||
| 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 462: | ||
| node1# ip rule show | node1# ip rule show | ||
| + | node2# apt install iputils-tracepath | ||
| node2# tracepath ya.ru | node2# tracepath ya.ru | ||
| Line 471: | Line 470: | ||
| </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 511: | ||
| 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 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 596: | Line 601: | ||
| <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 628: | ||
| </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 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 686: | Line 693: | ||
| <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 723: | Line 726: | ||
| <code> | <code> | ||
| - | master# watch cat /proc/drbd | + | slave# watch cat /proc/drbd |
| - | master# crm_mon | + | slave# crm_mon |
| </code> | </code> | ||
| Line 737: | Line 740: | ||
| 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 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) | + | #For VBox clones |
| + | #bridge_hw 08:00:27:23:45:0N | ||
| address 192.168.X.N | address 192.168.X.N | ||
| Line 817: | Line 827: | ||
| * Может понадобиться [[Решение DRBD#Решение ситуации Split-Brain]] или, в нашем случае [[Решение DRBD#Решение ситуации Split-Brain при использовании Pacemaker]] | * Может понадобиться [[Решение DRBD#Решение ситуации Split-Brain]] или, в нашем случае [[Решение DRBD#Решение ситуации Split-Brain при использовании Pacemaker]] | ||
| + | * Может понадобиться удаление ресурсов из модуля 6.3 | ||
| === 7.1.2 Подготовка виртуальных машин === | === 7.1.2 Подготовка виртуальных машин === | ||
| Line 822: | Line 833: | ||
| * [[Технология 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 841: | ||
| </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_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 846: | Line 861: | ||
| 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 866: | Line 883: | ||
| 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 883: | Line 897: | ||
| 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 902: | Line 917: | ||
| 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 917: | Line 932: | ||
| 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 935: | Line 950: | ||
| ==== Настройка виртуальной системы как сервер электронной почты и тестирование отказоустойчивости ==== | ==== Настройка виртуальной системы как сервер электронной почты и тестирование отказоустойчивости ==== | ||
| - | * [[Сервис SSH#PuTTY]] | + | * [[Сервис SSH#PuTTY]] (можно с host системы) |
| <code> | <code> | ||
| Line 941: | Line 956: | ||
| 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 962: | Line 977: | ||
| ===== Модуль 8. Распределенное отказоустойчивое хранилище Ceph ===== | ===== Модуль 8. Распределенное отказоустойчивое хранилище Ceph ===== | ||
| + | - Настройка 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 (в большой группе ставится 45 минут) | - [[Сервис Ansible#Использование модулей]] Ansible для инсталляции Ceph на node3-7 (в большой группе ставится 45 минут) | ||
| - | - [[Ceph - просто добавь узлов!#Шаг 2. Установка и настройка Ceph]] сразу добавить 6-й узел как OSD | + | - [[Ceph - просто добавь узлов!#Шаг 2. Установка и настройка Ceph]] (ключи ssh) |
| + | - [[Решение Ceph]] (в теме про OSD сразу добавить 6-й узел) | ||
| - [[Сервис 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 973: | Line 994: | ||
| * !!! Методическая рекомендация - СРАЗУ после установки пакетов для ocfs запустить процесс установки пакетов для kvm | * !!! Методическая рекомендация - СРАЗУ после установки пакетов для ocfs запустить процесс установки пакетов для kvm | ||
| * [[Сервис OCFS2]] | * [[Сервис OCFS2]] | ||
| + | |||
| + | ==== Практикум ==== | ||
| + | |||
| + | * [[https://val.bmstu.ru/~val/pract/lin6/lin6_mod9_pract.mp4|Запись практикума]] (длительность: 8 минут) | ||
| ===== Модуль 10. Система виртуализации KVM ===== | ===== Модуль 10. Система виртуализации KVM ===== | ||
| Line 979: | Line 1004: | ||
| * Проверить, включена ли [[Технология VirtualBox#Вложенная виртуализация]] в VirtualBox | * Проверить, включена ли [[Технология VirtualBox#Вложенная виртуализация]] в VirtualBox | ||
| * [[Технология KVM]] (в большой группе ставится 10 минут) | * [[Технология KVM]] (в большой группе ставится 10 минут) | ||
| + | |||
| + | ==== Практикум ==== | ||
| + | |||
| + | * [[https://val.bmstu.ru/~val/pract/lin6/lin6_mod10_pract.mp4|Запись практикума]] (длительность: 20 минут) | ||
| ===== Модуль 11. Тестирование отказоустойчивости ===== | ===== Модуль 11. Тестирование отказоустойчивости ===== | ||
| Line 984: | Line 1013: | ||
| - Переместить все ресурсы на node1, обесточить его и убедиться что все ресурсы (winxp1 и server1) запустились на node2 (на winxp1 может начаться проверка диска) | - Переместить все ресурсы на node1, обесточить его и убедиться что все ресурсы (winxp1 и server1) запустились на node2 (на winxp1 может начаться проверка диска) | ||
| - Остановить node2 (рекомендуется сперва корректно остановить winxp1) | - Остановить node2 (рекомендуется сперва корректно остановить winxp1) | ||
| - | - запустить node2, убедиться что все ресурсы (winxp1 и server1) запустились (можно node1 и проверить письмо про splitbrain) | + | - Запустить node2, убедиться что все ресурсы (winxp1 и server1) запустились |
| - Выяснить, через какой узел подключается [[Сервис multipath]] на node2 по iSCSI к RBD Ceph | - Выяснить, через какой узел подключается [[Сервис multipath]] на node2 по iSCSI к RBD Ceph | ||
| - Выполнить для этого узла [[Ceph - просто добавь узлов!#Шаг 4. Сценарий - авария узла]] | - Выполнить для этого узла [[Ceph - просто добавь узлов!#Шаг 4. Сценарий - авария узла]] | ||
| + | |||
| + | * Видео [[Бюджетная безотказная сеть для кластера]] | ||