8
Тестирование
Chaos engineering, плановое тестирование failover
30 минУрок 8 из 9
Прогресс0%
Теория
Регулярное тестирование failover критически важено для уверенности в отказоустойчивости.
Chaos engineering — подход к тестированию путём намеренного создания сбоев.
Тестируйте как плановый, так и внеплановый failover.
Документируйте результаты тестов и улучшайте процедуры.
Практика
1. План тестирования
Создайте план тестирования failover:
План тестирования
Команда
cat > /usr/local/bin/test_failover.sh << 'EOF'
#!/bin/bash
echo "=== Тест failover ==="
echo "1. Проверка состояния кластера"
patronictl list
echo "2. Остановка мастера"
sudo systemctl stop postgresql
echo "3. Ожидание failover"
sleep 10
echo "4. Проверка нового мастера"
patronictl list
echo "5. Запуск старого мастера"
sudo systemctl start postgresql
echo "6. Проверка синхронизации"
sleep 5
patronictl list
echo "=== Тест завершён ==="
EOF
chmod +x /usr/local/bin/test_failover.sh2. Запуск теста
Запустите тест failover:
Запуск теста
Команда
sudo /usr/local/bin/test_failover.shВывод:
=== Тест failover === 1. Проверка состояния кластера Cluster: pg-cluster ...
Проверка
Проверьте, что кластер восстановился:
Проверка
Команда
patronictl listВывод:
Cluster: pg-cluster +---------+---------+---------+---------+-----------+ | Member | Host | Role | State | Lag | +---------+---------+---------+---------+-----------+ | node1 | 127.0.0 | Leader | running | 0MB | | node2 | 127.0.0 | Replica | running | 0MB | +---------+---------+---------+---------+-----------+