Инструменты пользователя

Инструменты сайта


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

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
создание_отказоустойчивых_linux_решений [2019/11/27 09:41]
val [Программа курса]
создание_отказоустойчивых_linux_решений [2020/06/17 13:21] (текущий)
val [Лабораторные работы]
Строка 29: Строка 29:
 ==== Лабораторные работы ==== ==== Лабораторные работы ====
  
-=== 1.1 Настройка систем ===+=== 1.0 Импорт VM Linux === 
 + 
 +=== 1.1 Аппаратная настройка систем ===
  
   * Адаптер 1 - eth0 - Внутренняя сеть (LAN)   * Адаптер 1 - eth0 - Внутренняя сеть (LAN)
Строка 36: Строка 38:
   * Адаптер 4 - eth3 - Сетевой мост (ISP2)   * Адаптер 4 - eth3 - Сетевой мост (ISP2)
   * Добавить жесткий диск 2Gb   * Добавить жесткий диск 2Gb
 +
 +=== 1.2 Настройка сети систем ===
 +
 +  * Методическая рекомендация - настроить только первый узел (node1). Второй узел настроить в следующем модуле.
  
 <​code>​ <​code>​
 +node1# ifconfig eth2 inet 10.5.7.100+X/​24
 +
 nodeN# cat /​etc/​hostname nodeN# cat /​etc/​hostname
 </​code><​code>​ </​code><​code>​
Строка 94: Строка 102:
 </​code><​code>​ </​code><​code>​
 nodeN# init 6 nodeN# init 6
- 
-... 
- 
-nodeN# apt update 
 </​code>​ </​code>​
  
  
-=== 1.Тестирование ===+=== 1.Тестирование ​настроек сети ​===
 <​code>​ <​code>​
-nodeN# ping node1+nodeN# ping proxy
  
-nodeN# ​ping node2 +nodeN# ​apt update
- +
-nodeN# ping proxy+
 </​code>​ </​code>​
  
Строка 131: Строка 133:
  
 <​code>​ <​code>​
 +node2# ifconfig eth0 inet 192.168.X.2/​24
 +
 +node1# ping node2
 +
 node1# ssh-keygen node1# ssh-keygen
 ... ...
Строка 143: Строка 149:
 <​code>​ <​code>​
 node1# scp /etc/hosts node2:/etc/ node1# scp /etc/hosts node2:/etc/
 +
 +node1# scp /​etc/​resolv.conf node2:/etc/
 +
 +node1# scp /​etc/​sysctl.conf node2:/etc/
 +
 +node1# scp .bashrc node2:
 +
 +node1# scp /​etc/​hostname node2:/etc/
 +
 +node1# scp /​etc/​network/​interfaces node2:/​etc/​network/​
 </​code>​ </​code>​
 +
 +  * Павим файлы конфигурации на node2, перезапускаем,​ тестируем сеть
 +  * [[Настройка командных интерпретаторов#​bash]] алиасы и функции
  
 === 2.2 С использованием пакета CSYNC2 === === 2.2 С использованием пакета CSYNC2 ===
Строка 152: Строка 171:
   * Устанавливаем и ЗАПУСКАЕМ на двух узлаx, настраиваем на node1   * Устанавливаем и ЗАПУСКАЕМ на двух узлаx, настраиваем на node1
 <​code>​ <​code>​
-node1# sh dns.sh+node1# sh conf/dns.sh
  
 node1# cat /​etc/​bind/​corpX.un node1# cat /​etc/​bind/​corpX.un
Строка 166: Строка 185:
 gate      A       ​192.168.X.254 gate      A       ​192.168.X.254
 </​code><​code>​ </​code><​code>​
-node2# apt install bind9+node1ssn2 apt install bind9
 </​code>​ </​code>​
  
Строка 175: Строка 194:
 node1# csync2 -xv node1# csync2 -xv
  
-node1# host node1 +nodeN# host ns
- +
-node1# host node2 +
- +
-node1# host ns+
 </​code>​ </​code>​
 === 2.3 С использованием пакета Ansible === === 2.3 С использованием пакета Ansible ===
Строка 204: Строка 219:
   * man dhcpd.conf (Dhcp Failover)   * man dhcpd.conf (Dhcp Failover)
 ==== Лабораторные работы ==== ==== Лабораторные работы ====
 +
 +=== 3.0 Импорт VM Windows ===
  
 === 3.1 Отказоустойчивый DHCP сервер === === 3.1 Отказоустойчивый DHCP сервер ===
Строка 209: Строка 226:
   * [[Сервис DHCP#​Установка]] cервиса DHCP   * [[Сервис DHCP#​Установка]] cервиса DHCP
 <​code>​ <​code>​
-nodeN# sh dhcp.sh+nodeN# sh conf/dhcp.sh
 </​code>​ </​code>​
 +
   * [[Сервис DHCP#​Отказоустойчивая конфигурация]] cервиса DHCP   * [[Сервис DHCP#​Отказоустойчивая конфигурация]] cервиса DHCP
   * [[Сервис DHCP#​Проверка конфигурации и запуск]] cервиса DHCP   * [[Сервис DHCP#​Проверка конфигурации и запуск]] cервиса DHCP
Строка 305: Строка 323:
 === 4.3.2 Модификация настроек dns сервера === === 4.3.2 Модификация настроек dns сервера ===
 <​code>​ <​code>​
-# cat named.conf+# cat /etc/bind/named.conf
 </​code><​code>​ </​code><​code>​
 ... ...
Строка 462: Строка 480:
  
 masternode# /​root/​select_isp.sh masternode# /​root/​select_isp.sh
 +
 +masternode# cat /​tmp/​current_isp
  
 nodeN# crontab -l nodeN# crontab -l
Строка 517: Строка 537:
  
 <​code>​ <​code>​
-node1# cat corpX.un+node1# cat /etc/bind/corpX.un
 </​code><​code>​ </​code><​code>​
 ... ...
Строка 531: Строка 551:
   * Устанавливаем сервер ftp на node1 и запускаем его ([[Сервис FTP#​Сервер ftp]])   * Устанавливаем сервер ftp на node1 и запускаем его ([[Сервис FTP#​Сервер ftp]])
   * Создаем тестовую www страницу для пользователя user1 используя протокол ftp на node1   * Создаем тестовую www страницу для пользователя user1 используя протокол ftp на node1
 +<​code>​
 +Каталог:​ public_html
 +Файл: ​   index.html
 +</​code>​
  
 === 5.1.2 Синхронизация пользовательских данных === === 5.1.2 Синхронизация пользовательских данных ===
Строка 536: Строка 560:
   * [[Пакет RSYNC]]   * [[Пакет RSYNC]]
   * Можно автоматизировать,​ ([[Планирование выполнения заданий в Linux]]), но, пока не нужно.   * Можно автоматизировать,​ ([[Планирование выполнения заданий в Linux]]), но, пока не нужно.
- 
 ==== 5.2 Автоматизация смены ролей узлов кластера ==== ==== 5.2 Автоматизация смены ролей узлов кластера ====
  
Строка 558: Строка 581:
   * [[Пакет HEARTBEAT]] (Демонстрирует преподаватель в методических целях)   * [[Пакет HEARTBEAT]] (Демонстрирует преподаватель в методических целях)
   * [[Пакет Corosync]]   * [[Пакет Corosync]]
-  * [[Пакет Pacemaker]]+  * [[Пакет Pacemaker]] ​(для pacemaker 2.X выполните начало лабораторной 5.2.3)
  
 === 5.2.3 Автоматическую синхронизация домашних каталогов === === 5.2.3 Автоматическую синхронизация домашних каталогов ===
Строка 564: Строка 587:
   * Настроить автоматическую синхронизацию домашних каталогов с мастер узла на резервный ​   * Настроить автоматическую синхронизацию домашних каталогов с мастер узла на резервный ​
 <​code>​ <​code>​
 +node2# ssh-keygen
 +
 +node2# ssh-copy-id node1
 +
 nodeN# crontab -l nodeN# crontab -l
 </​code><​code>​ </​code><​code>​
Строка 601: Строка 628:
 ==== 6.2 Автоматизация смены ролей узлов кластера ​ ==== ==== 6.2 Автоматизация смены ролей узлов кластера ​ ====
  
 +  * Pacemaker [[Пакет Pacemaker#​Удаление ресурсов]]
   * [[Решение DRBD#DRBD и Pacemaker]]   * [[Решение DRBD#DRBD и Pacemaker]]
  
 ==== 6.3 Настройка SAN сервера iSCSI ==== ==== 6.3 Настройка SAN сервера iSCSI ====
  
-  * Определяемна каком узле ​смонтирован зеркалируемый ​раздел+  * Демонстрирует преподаватель
   * Устанавливаем на оба узла пакет [[Сервис iSCSI#iSCSI target]]   * Устанавливаем на оба узла пакет [[Сервис iSCSI#iSCSI target]]
-  * Отключаем авто запуск сервиса 
-  * Останавливаем группу ресурсов кластера и удаляем ee [[Пакет Pacemaker#​Управление ресурсами]] 
  
 <​code>​ <​code>​
Строка 615: Строка 641:
 node1# crm configure node1# crm configure
  
-crm(live)configure#​ primitive ​pr_istgt ​lsb:istgt+crm(live)configure#​ primitive ​pr_srv_istgt ​lsb:istgt
  
-crm(live)configure#​ primitive ​pr_ip ocf:​heartbeat:​IPaddr2 params ip=192.168.X.15 cidr_netmask=32 nic=eth0+crm(live)configure#​ primitive ​pr_ip_istgt ​ocf:​heartbeat:​IPaddr2 params ip=192.168.X.15 cidr_netmask=32 nic=eth0
  
-crm(live)configure#​ group gr_ip_fs ​pr_ip pr_fs_r0 ​pr_istgt+crm(live)configure#​ group gr_ip_fs pr_fs_r0 ​pr_ip_istgt pr_srv_istgt
  
 crm(live)configure#​ commit crm(live)configure#​ commit
Строка 628: Строка 654:
 ==== 6.4 Настройка NAS сервера SMB/CIFS ==== ==== 6.4 Настройка NAS сервера SMB/CIFS ====
  
-  * Устанавливаем на оба узла пакет samba ([[Файловый сервер SAMBA]])+  ​* В зону corpX.un добавляем запись fs A 192.168.X.20 
 + 
 +<​code>​ 
 +node1# cat /​etc/​bind/​corpX.un 
 +</​code><​code>​ 
 +... 
 +fs     ​A ​      ​192.168.X.20 
 +</​code><​code>​ 
 +node1# csync2 -xv 
 +</​code>​ 
 + 
 +  ​* Устанавливаем на оба узла ​(лучше,​ отдельно на каждом) ​пакет samba ([[Файловый сервер SAMBA]])
   * Отключаем автоматический запуск сервиса   * Отключаем автоматический запуск сервиса
  
Строка 642: Строка 679:
   * Копируем на BACKUP узел файл конфигурации samba   * Копируем на BACKUP узел файл конфигурации samba
   * Настраиваем менеджер кластера на монтирование на мастер узле зеркалируемого раздела в каталог /disk2, назначение ip адреса 192.168.X.20 и запуск сервера samba   * Настраиваем менеджер кластера на монтирование на мастер узле зеркалируемого раздела в каталог /disk2, назначение ip адреса 192.168.X.20 и запуск сервера samba
-  * Останавливаем группу ресурсов кластера и удаляем ее [[Пакет Pacemaker#​Управление ресурсами]] 
  
 <​code>​ <​code>​
-crm(live)configure#​ primitive ​pr_smbd ​systemd:​smbd+node1# crm configure 
 + 
 +crm(live)configure#​ primitive ​pr_srv_smbd ​systemd:​smbd 
 + 
 +crm(live)configure#​ primitive pr_ip_smbd ocf:​heartbeat:​IPaddr2 params ip=192.168.X.20 cidr_netmask=32 nic=eth0 
 + 
 +crm(live)configure#​ group gr_ip_fs pr_fs_r0 pr_ip_smbd pr_srv_smbd 
 + 
 +или
  
 crm(live)configure#​ edit gr_ip_fs crm(live)configure#​ edit gr_ip_fs
Строка 656: Строка 700:
 <​code>​ <​code>​
 master# cat /proc/drbd master# cat /proc/drbd
 +
 +master# crm_mon -1
 </​code>​ </​code>​
  
   * Останавливаем MASTER сервер и дожидаемся монтирования на SLAVE узле "​половины"​ зеркалируемого раздела в каталог /disk2, назначение ip адреса 192.168.X.20 и запуск сервера samba    * Останавливаем MASTER сервер и дожидаемся монтирования на SLAVE узле "​половины"​ зеркалируемого раздела в каталог /disk2, назначение ip адреса 192.168.X.20 и запуск сервера samba 
   * Запускаем бывший MASTER узел и дожидаемся восстановления целостности зеркала   * Запускаем бывший MASTER узел и дожидаемся восстановления целостности зеркала
 +  * Останавливаем группу ресурсов кластера и удаляем ее [[Пакет Pacemaker#​Удаление ресурсов]]
 +<​code>​
 +master# crm resource stop pr_srv_smbd pr_ip_smbd
 +
 +master# crm configure delete pr_srv_smbd pr_ip_smbd gr_ip_fs
 +</​code>​
  
 ==== Вопросы ==== ==== Вопросы ====
Строка 681: Строка 733:
 ==== 7.1 Linux Containers в зеркалируемом разделе ==== ==== 7.1 Linux Containers в зеркалируемом разделе ====
  
-=== 7.1.1 Настройка bridge на узлах и сервисах ===+  * В зону corpX.un добавляем ​запись server A 192.168.X.30
  
-  * Отключение всех сервисов (особенно,​ ip, привязанного к eth), кроме зеркалируемого раздела [[Пакет Pacemaker#​Управление ресурсами]] 
 <​code>​ <​code>​
-node1# ​crm resource stop pr_ip pr_istgt pr_smbd +node1# ​cat /​etc/​bind/​corpX.un 
- +</​code><​code>​ 
-node1# ​crm configure delete pr_ip pr_istgt pr_smbd gr_ip_fs+... 
 +server ​    ​A ​      ​192.168.X.30 
 +</​code><​code>​ 
 +node1# ​csync2 -xv
 </​code>​ </​code>​
 +
 +
 +=== 7.1.1 Настройка bridge на узлах и сервисах ===
  
   * [[Технология LXC#​Подготовка сети]] для LXC   * [[Технология LXC#​Подготовка сети]] для LXC
   * Сервис CARP и bridge   * Сервис CARP и bridge
 <​code>​ <​code>​
 +nodeN# apt install bridge-utils
 +
 nodeN# cat /​etc/​network/​interfaces nodeN# cat /​etc/​network/​interfaces
 </​code><​code>​ </​code><​code>​
Строка 698: Строка 757:
 auto br0 auto br0
 iface br0 inet static iface br0 inet static
 +
 +        bridge_ports eth0
 +
         address 192.168.X.N         address 192.168.X.N
         netmask 255.255.255.0         netmask 255.255.255.0
         ​         ​
-        ucarp-vid 1 +...
-        ucarp-vip 192.168.X.254 +
-        ucarp-password secret +
-         +
-        bridge_ports eth0+
  
 iface br0:ucarp inet static iface br0:ucarp inet static
Строка 729: Строка 787:
 <​code>​ <​code>​
 nodeN# ps ax | grep carp nodeN# ps ax | grep carp
-nodeN# ifconfig | grep carp 
  
-nodeN# ps ax | grep dh+nodeN# ps ax | grep dhcp
  
-nodeNps ax | grep he +node1mount | grep ext 
-nodeN# ​mount | grep ext+ 
 +nodeN# ​cat /proc/drbd
 </​code>​ </​code>​
 +
 +  * Может понадобиться [[Решение DRBD#​Решение ситуации Split-Brain]]
  
 === 7.1.2 Подготовка виртуальных машин === === 7.1.2 Подготовка виртуальных машин ===
Строка 786: Строка 846:
  
 192.168.X.30 server.corpX.un 192.168.X.30 server.corpX.un
- 
-10.Z.M.254 proxy 
-</​code><​code>​ 
-server:/# cat /​etc/​resolv.conf 
-</​code><​code>​ 
-search corpX.un 
-nameserver 192.168.X.1 
-nameserver 192.168.X.2 
 </​code><​code>​ </​code><​code>​
 server:/# passwd server:/# passwd
Строка 804: Строка 856:
 </​code><​code>​ </​code><​code>​
 ... ...
-lxc.network.type = veth 
-lxc.network.link = br0 
-lxc.network.flags = up 
-lxc.network.ipv4 = 192.168.X.30/​24 
-lxc.network.ipv4.gateway = 192.168.X.254 
- 
 lxc.net.0.type = veth lxc.net.0.type = veth
 lxc.net.0.link = br0 lxc.net.0.link = br0
Строка 833: Строка 879:
 root@node1.corpX.un:​~#​ lxc-stop -n server root@node1.corpX.un:​~#​ lxc-stop -n server
  
-debian9_nodeN#​ mkdir /​etc/​systemd/​system/​lxc@server.service.d/​ 
- 
-debian9_nodeN#​ cat /​etc/​systemd/​system/​lxc@server.service.d/​kill_signal_fix.conf 
-</​code><​code>​ 
-[Service] 
-KillSignal=SIGRTMIN+3 
-</​code><​code>​ 
 root@node1.corpX.un:​~#​ systemctl start lxc@server root@node1.corpX.un:​~#​ systemctl start lxc@server
  
создание_отказоустойчивых_linux_решений.1574836917.txt.gz · Последние изменения: 2019/11/27 09:41 — val