Интеграционный практикум по отказоустойчивости

PostgreSQL на Proxmox VE и Ceph: ресурсы, отказ и восстановление

Курс связывает PostgreSQL, виртуальную машину Proxmox VE и Ceph в один проверяемый сценарий: подтверждение записи, ресурсы после отказа, самоизоляцию узла, восстановление Ceph, PITR и клиентскую приёмку.

Углублённый уровень80 минут6 модулей10 вопросов
После курса

Что вы сможете сделать

  1. Разделять ресурсы гостевой системы, резерв гипервизора и доступную мощность после отказа узла.
  2. Связывать подтверждение WAL и реплики с задержкой и заявленным RPO.
  3. Проверять кворум, самоизоляцию узла Proxmox VE, Corosync и восстановление Ceph отдельными наблюдениями.
  4. Проводить PITR и завершать испытание клиентской операцией с измеренным RTO.
Модуль 1 из 6

1. PostgreSQL: WAL и подтверждение записи

Зафиксируйте, после какого устойчивого сброса PostgreSQL отвечает клиенту и какой отказ должна пережить эта запись.

  • PostgreSQL сначала сохраняет в WAL сведения, нужные для повторного применения изменения, и только потом может отложенно записать основные страницы. Контроллер и носитель должны честно выполнять запрос устойчивого сброса.

  • Наличие BBU не доказывает сохранение и последующее воспроизведение данных кэша. Это свойство тракта проверяют отдельно; полные образы страниц WAL решают другую задачу PostgreSQL.

Модуль 2 из 6

2. Ресурсы ВМ и резерв после отказа

Размер ВМ определяют по измеренной нагрузке, а возможность перезапуска — по ресурсам каждого допустимого узла после резерва платформы.

  • ВМ должна помещаться на каждом узле, куда её разрешено перенести, после вычета резерва гипервизора. Свободные ресурсы, замеченные в один момент, не являются гарантированной резервацией.

  • Процессор, память и ввод-вывод принимают по счётчикам и хвосту задержки рабочей нагрузки. Схема N+1 должна выдерживать эту нагрузку после отказа одного узла, а не просто содержать ещё один сервер.

Модуль 3 из 6

3. Proxmox VE: кворум, самоизоляция и Corosync

Сначала отделите общий принцип единственного владельца от механизма Proxmox VE HA: кворум разрешает решения, а старый узел должен прекратить исполнение гостя.

  • Кворум задаёт порог для кластерных решений. Он сам по себе не подтверждает точку данных PostgreSQL и не доказывает, что прежний владелец перестал обращаться к общему диску.

  • Для HA-управляемых гостей Proxmox VE использует кластерные блокировки и watchdog. Узел, который не вернул связь Corosync с кворумной частью, самоизолируется перезапуском; в испытании подтверждают остановку старого экземпляра до восстановления гостя на другом узле.

  • Corosync требует устойчивой малой задержки. Высокая скорость сети миграции не доказывает пригодность служебного канала; основной и резервный каналы проверяют отказом и наблюдением состояния кластера.

Модуль 4 из 6

4. Ceph: RBD, копии и запас восстановления

Диск PostgreSQL проходит через RBD и реплицируемый пул Ceph; после отказа меняются доступная ёмкость и нагрузка восстановления.

  • RBD предоставляет блочное устройство поверх объектов Ceph. Для образа с включённой exclusive-lock после отказа владельца проверяют передачу блокировки и исключение соответствующего клиента, затем выполняют запись и чтение из PostgreSQL.

  • Параметр size задаёт число копий, min_size — порог доступности ввода-вывода. Состояние active ещё не означает завершённое восстановление, а правило CRUSH определяет допустимые устройства и домены отказа.

  • После отказа учитывают полезную ёмкость, запас и нагрузку восстановления. Сырая ёмкость и оценка MAX AVAIL сами по себе не отвечают, выдержит ли кластер заявленную нагрузку при восстановлении.

Модуль 5 из 6

5. Реплика, архив WAL и PITR

RPO зависит от момента подтверждения реплики и сохранённой истории; PITR требует материалов восстановления и выбранной точки до ошибки.

  • Для синхронной реплики выбирают конкретную резервную сторону и этап подтверждения записи, сброса или применения. Асинхронная реплика может отставать, поэтому фактическое отставание связывают с RPO.

  • PITR по архиву требует подходящую базовую копию, непрерывную нужную часть WAL и цель до ошибки. Текущая реплика или снимок ВМ отдельно не доказывают наличие этого набора.

Модуль 6 из 6

6. Приёмка полного сценария отказа

Испытание заканчивается успешной операцией клиента после восстановления; каждый слой оставляет собственные измерения и события.

  • Проверяют восстановленное содержимое и предусмотренную операцию клиента. Запущенный процесс PostgreSQL, состояние ВМ или успешное завершение задания резервного копирования сами по себе не закрывают приёмку.

  • Сценарий точно называет отказ: узел PVE, канал Corosync, OSD или RBD, PostgreSQL либо площадка. До запуска нового экземпляра подтверждают прекращение старой ВМ или её изоляцию; состояние Ceph фиксируют и клиентскую операцию измеряют в заранее согласованном состоянии пула.

Финишная прямая

Проверьте инженерное мышление

Вопросы проверяют не память на аббревиатуры, а умение не делать лишних выводов.

01После аварии основные страницы ещё не записаны, но подтверждённый PostgreSQL WAL пережил отказ на носителе. Как трактовать результат?
02Перед обещанием RPO для синхронной реплики PostgreSQL нужно выбрать режим подтверждения. Какие данные нужны?
03Как проверить, что ВМ PostgreSQL сможет работать после отказа одного узла PVE?
04После потери OSD нужно решить, выдержит ли Ceph работу PostgreSQL во время восстановления. Что сравнивают?
05Узел с HA-управляемой ВМ потерял Corosync-связь с кворумной частью PVE. Какой результат нужно подтвердить до запуска ВМ на другом узле?
06Как проверить резервный канал Corosync, если сеть миграции PVE показывает высокую скорость?
07После отказа узла новая ВМ видит образ RBD с включённой exclusive-lock. Как подтвердить безопасную передачу диска PostgreSQL?
08Нужно восстановить PostgreSQL на момент перед ошибочным DELETE. Какой набор позволяет выполнить PITR?
09Как испытать потерю узла PVE, если ВМ PostgreSQL использует RBD в том же кластере Ceph?
10Какой результат завершает приёмку PostgreSQL после PITR?

Следующий шаг

Сформулируйте задачу и уточните требования к своей системе.

Подготовить состав проекта

Откроется черновик вопроса. Отправьте его, когда будете готовы.

Проверяемая база

Источники курса

Ссылки приведены один раз для всего курса, чтобы не мешать чтению каждого тезиса.

  • Официальная документация

    PostgreSQL 18 Documentation: Write-Ahead Logging

    PostgreSQL Global Development Group · PostgreSQL 18, Chapter 28.3

    Описывает порядок устойчивой записи WAL до изменённых страниц, восстановление страниц из журнала после сбоя и фиксацию транзакций без обязательного сброса всех изменённых страниц.

    Открыть первоисточник
  • Официальная документация

    PostgreSQL 18 Documentation: WAL Configuration

    PostgreSQL Global Development Group · документация PostgreSQL 18, страница открыта 7 сентября 2026 года

    Открыт редактором 7 сентября 2026 года, заголовок документа сверен. Проверить fsync, synchronous_commit=off/on/remote_write/remote_apply и условия ожидания синхронных реплик.

    Открыть первоисточник
  • Официальная документация

    PostgreSQL 18 Documentation: Reliability

    PostgreSQL Global Development Group · документация PostgreSQL 18, страница открыта 7 сентября 2026 года

    Открыт редактором 7 сентября 2026 года, заголовок документа сверен. Проверить выполнение сброса всем трактом хранения, энергозависимые кэши накопителя и контроллера и границы гарантии при потере питания.

    Открыть первоисточник
  • Официальная документация

    SNIA Dictionary — write back cache

    SNIA · SNIA Online Dictionary; номер редакции не указан

    Проверены момент подтверждения, более поздняя запись на энергонезависимый носитель и необходимость сохранения/выгрузки кэша после отказа.

    Открыть первоисточник
  • Официальная документация

    Guide to Security for Full Virtualization Technologies

    National Institute of Standards and Technology · NIST SP 800-125, final от января 2011 года

    Определяет full virtualization, VM/guest, hypervisor, bare-metal и hosted architectures, snapshot и isolation boundary.

    Открыть первоисточник
  • Официальная документация

    Failover Clustering in Windows Server and Azure Local

    Microsoft · Microsoft Learn, обновлено 25 июня 2025 года

    Описывает nodes, clustered roles, health monitoring, failover и quorum в failover cluster.

    Открыть первоисточник
  • Первичная спецификация

    AMD64 Architecture Programmer's Manual, Volume 2: System Programming

    AMD · Документ № 24593, том 2; точная редакция PDF требует повторной проверки

    Документ № 24593 указан как том 2 System Programming. Точная редакция и разделы для цитирующих утверждений требуют проверки самого PDF; дата прежнего получения не обновлялась. Упоминание другого тома полностью удалено.

    Открыть первоисточник
  • Официальная документация

    I/O Statistics Fields

    Linux Kernel · Linux 6.15 documentation

    Определяет /proc/diskstats fields, включая I/Os currently in progress и weighted I/O time.

    Открыть первоисточник
  • Официальная документация

    Histograms and Summaries

    Prometheus · Prometheus documentation, проверено 29 августа 2026 года

    Определяет quantiles/percentiles, histogram buckets и ограничения aggregation precomputed quantiles.

    Открыть первоисточник
  • Официальная документация

    High Availability — CSRC Glossary

    National Institute of Standards and Technology · CSRC glossary, проверено 29 августа 2026 года

    Фиксирует HA как failover capability для доступности при отказе device или component.

    Открыть первоисточник
  • Официальная документация

    Contingency Planning Guide for Federal Information Systems

    National Institute of Standards and Technology · NIST SP 800-34 Rev. 1, update от 11 ноября 2010 года

    Первичный planning guide по BIA, recovery strategies, RPO/RTO, contingency и disaster recovery plans.

    Открыть первоисточник
  • Первичная спецификация

    Redfish Data Model Specification

    Distributed Management Task Force · DSP0268 Version 2025.3

    Определяет redundancy types, включая Failover, NPlusM, Sharing и Sparing.

    Открыть первоисточник
  • Официальная документация

    PowerEdge Grid Redundancy Policy

    Dell Technologies · CMC for PowerEdge FX2/FX2s User's Guide, проверено 29 августа 2026 года

    Показывает 1+1 grid redundancy, ограничение capacity одним PSU и необходимость разнести PSUs по independent grids.

    Открыть первоисточник
  • Официальная документация

    Pacemaker Explained

    ClusterLabs · Ветка 3.0; точная редакция непинованного PDF требует повторной проверки

    Прежняя точная пометка Pacemaker 3.0.1 снята после замечания редактора о непинованном URL. Фактически отдаваемая редакция и разделы требуют повторного открытия; новый номер и дата получения без документа не назначались.

    Открыть первоисточник
  • Официальная документация

    Recovery Point Objective — CSRC Glossary

    National Institute of Standards and Technology · CSRC glossary по NIST SP 800-34 Rev. 1, проверено 29 августа 2026 года

    Определяет RPO как точку во времени, до которой данные должны быть восстановлены после outage.

    Открыть первоисточник
  • Официальная документация

    Proxmox VE High Availability — ha-manager.adoc

    Proxmox Server Solutions GmbH · Официальное read-only зеркало pve-docs, ветка master; полный файл открыт 21.09.2026

    Полностью открыт файл из официального зеркала. Проверены How It Works (LRM/CRM locks и watchdog), Fencing, How Proxmox VE Fences, Configure Hardware Watchdog, Recover Fenced Services и Fencing & Watchdog Status. URL ветки не закреплён на commit, поэтому при следующей редакции источник перечитывают.

    Открыть первоисточник
  • Официальная документация

    Proxmox VE Administration Guide — Cluster Manager

    Proxmox Server Solutions GmbH · Документация 9.2.12, 18 сентября 2026, 12:15:08 UTC

    Проверены Cluster Network, Network Requirements, Corosync Redundancy, Corosync Over Bonds и Migration Network/Type. 9.2.12 — версия документации; это не утверждение о версии установленного сервера.

    Открыть первоисточник
  • Официальная документация

    Ceph Block Device

    Ceph Foundation · Ceph Squid documentation, branch squid

    Повторная сверка 20.09.2026. Проверены вводное описание RBD и способы доступа. Ветка squid, не фиксация отдельного patch-релиза; совместимость с Proxmox этим не установлена.

    Открыть первоисточник
  • Официальная документация

    RBD Exclusive Locks

    Ceph Foundation · Ceph Squid documentation, branch squid

    Повторная сверка 20.09.2026. Проверены Warning об автоматической передаче exclusive-lock и раздел Blocklisting. Блокировка образа не приравнена к координации файловой системы.

    Открыть первоисточник
  • Официальная документация

    Pools

    Ceph Foundation · Ceph Squid documentation, branch squid

    Повторная сверка 20.09.2026. Проверены определения пула, size/min_size и Setting the Number of RADOS Object Replicas. Общая фраза введения про число переживаемых отказов не использована как универсальное правило.

    Открыть первоисточник
  • Официальная документация

    Monitoring OSDs and PGs

    Ceph Foundation · Ceph Squid documentation, branch squid

    Повторная сверка 20.09.2026. Проверены Peering, Active, Clean, Degraded и условия восстановления. Не переносим состояние одной PG на готовность всего приложения.

    Открыть первоисточник
  • Официальная документация

    CRUSH Maps

    Ceph Foundation · Ceph Squid documentation, branch squid

    Повторная сверка 20.09.2026. Проверены CRUSH structure, Devices и Creating a rule for a replicated pool: root, host/rack, device class. Отказоустойчивость проверяется по реальной топологии.

    Открыть первоисточник
  • Официальная документация

    Ceph Squid — Monitoring a Cluster: usage statistics

    Ceph Foundation / Ceph contributors · Ceph Squid; версия документации в пути URL

    Проверены определения SIZE, RAW USED и MAX AVAIL. Обобщающие примечания о USED противоречат описанию столбца; это отмечено отдельно, универсальный пересказ не принят.

    Открыть первоисточник
  • Официальная документация

    Ceph Squid — Hardware recommendations

    Ceph Foundation / Ceph contributors · Ceph Squid; версия документации в пути URL

    Прочитаны CPU, RAM, Additional Considerations и Failure Domains. В этом пакете нет универсального числа ядер, процента памяти или обещания времени восстановления.

    Открыть первоисточник
  • Официальная документация

    PostgreSQL 18 Documentation: Log-Shipping Standby Servers

    PostgreSQL Global Development Group · PostgreSQL 18, Chapter 26.2

    Фиксирует async default, synchronous commit wait points и связь replication delay с data loss.

    Открыть первоисточник
  • Официальная документация

    Security Guidelines for Storage Infrastructure

    National Institute of Standards and Technology · NIST SP 800-209, October 2020

    Разделяет backup, replication, immutability, continuous data protection и point-in-time copies; описывает synchronous и asynchronous replication.

    Открыть первоисточник
  • Официальная документация

    PostgreSQL 18 Documentation: Replication

    PostgreSQL Global Development Group · документация PostgreSQL 18, страница открыта 7 сентября 2026 года

    Открыт редактором 7 сентября 2026 года, заголовок документа сверен. Сверить synchronous_standby_names, FIRST/ANY и удержание WAL слотами.

    Открыть первоисточник
  • Официальная документация

    PostgreSQL 18 Documentation: The Cumulative Statistics System

    PostgreSQL Global Development Group · документация PostgreSQL 18, страница открыта 7 сентября 2026 года

    Открыт редактором 7 сентября 2026 года, заголовок документа сверен. Сверить pg_stat_replication: позиции LSN, write_lag/flush_lag/replay_lag, NULL после простоя и отсутствие прогноза догоняния.

    Открыть первоисточник
  • Официальная документация

    PostgreSQL 18 Documentation: Continuous Archiving and Point-in-Time Recovery

    PostgreSQL Global Development Group · PostgreSQL 18, Chapter 25.3

    Связывает base backup, непрерывный WAL archive и проверяемый recovery target.

    Открыть первоисточник
  • Официальная документация

    Continuous Archiving and Point-in-Time Recovery

    PostgreSQL Global Development Group · PostgreSQL 18 current documentation, проверено 30 августа 2026 года

    Требует base backup и непрерывную WAL sequence, объясняет recovery target, timelines и зависимости incremental backup.

    Открыть первоисточник
  • Официальная документация

    Plan and Perform Restore Sequences for Full Recovery Model

    Microsoft · SQL Server 2016–2025 documentation, проверено 30 августа 2026 года

    Задаёт точную restore sequence: база, выбранный differential и последующие log backups в порядке до recovery target.

    Открыть первоисточник
  • Официальная документация

    Backup — CSRC Glossary

    National Institute of Standards and Technology · CSRC glossary по NIST SP 800-34 Rev. 1, проверено 29 августа 2026 года

    Определяет backup как копию files и programs, созданную для recovery.

    Открыть первоисточник
  • Официальная документация

    Restore testing

    Amazon Web Services · AWS Backup Developer Guide, проверено 30 августа 2026 года

    Описывает периодический real restore, измерение duration, отдельный test account и optional validation до удаления test resources.

    Открыть первоисточник
  • Официальная документация

    Recovery Time Objective — CSRC Glossary

    National Institute of Standards and Technology · CSRC glossary по NIST SP 800-34 Rev. 1, проверено 29 августа 2026 года

    Определяет RTO как допустимую длительность recovery phase до ущерба mission/business process.

    Открыть первоисточник
  • Официальная документация

    Guide for Cybersecurity Event Recovery

    National Institute of Standards and Technology · NIST SP 800-184, December 2016

    Определяет recovery planning как цикл приоритизации, playbooks, realistic testing, metrics и улучшения по lessons learned.

    Открыть первоисточник
  • Официальная документация

    Failover Clustering topologies

    Microsoft · Microsoft Learn для Windows Server 2016–2025, проверено 29 августа 2026 года

    Определяет fault domains и показывает границу single-rack HA, stretch cluster и multi-site DR.

    Открыть первоисточник
  • Официальная документация

    Failover — CSRC Glossary

    National Institute of Standards and Technology · CSRC glossary по NIST SP 800-53 Rev. 5, проверено 29 августа 2026 года

    Определяет automatic switch to redundant or standby system после failure active system.

    Открыть первоисточник
  • Официальная документация

    Live Migration Overview

    Microsoft · Microsoft Learn, обновлено 17 сентября 2020 года

    Отделяет перенос работающей VM без воспринимаемого простоя от automatic failover и показывает, что live migration может работать без кластера.

    Открыть первоисточник
Сообщить об ошибке

Опишите проблему — постараемся исправить как можно скорее.

Спасибо!

Получили ваше сообщение.
Подтвердите действие