CORTEL – Telegram
CORTEL
4.13K subscribers
1.86K photos
158 videos
156 files
1.58K links
Помогаем ИТ-директорам, DevOps и системным инженерам снижать TCO и поднимать SLA. Кейсы, инструменты и гайды.

Сайт:
https://cortel.cloud

Cотрудничество:
@ivan_cmo
Download Telegram
💤 Бэкапы. Как выбрать правильную стратегию?

Где хранить
— в облаке, на серверах или на лентах? И как быть уверенным, что восстановление реально сработает в нужный момент?

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

➡️ В карточках кратко разбираем, на что опираться при выборе схемы хранения и восстановления бэкапов.

#гайды
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥6👏3
⚙️ Схема резервного копирования исходя из задачи. Пример

#гайды
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍85🔥4
🖥 Надёжный способ бэкапа PostgreSQL

pg_dump — утилита для создания логических бэкапов PostgreSQL.

В отличие от физического бэкапа, она выгружает объекты (схемы/данные) в переносимый вид. Дамп, как правило, корректно восстанавливается в такую же или более новую версию Postgres.

Основные сценарии

Бэкап одной базы (plain SQL)

pg_dump mydb > backup.sql


Бэкап с компрессией «на лету» (для plain)

pg_dump mydb | gzip > backup.sql.gz


То же, но со встроенной компрессией (для custom/tar/directory)

pg_dump -Fc -Z 9 mydb > backup.dump


Только схема без данных:

pg_dump -s mydb > schema_only.sql
# или выборочно по схемам:
pg_dump -s -n public -N audit mydb > schema_public.sql


Бэкап конкретной таблицы:

pg_dump -t public.users mydb > users_backup.sql
# исключение таблиц:
pg_dump -T public.logs mydb > no_logs.sql


Параллельный бэкап (работает только с -Fd)

pg_dump -Fd /backups/mydb_$(date +%F) -j 4 mydb


Бэкап всего кластера (все БД + роли/табл.пространства)

pg_dumpall > all_databases.sql
# только «глобалы» (роли, табличные пространства):
pg_dumpall -g > globals.sql


Удаляем бэкапы старше 7 дней (недавний пост про find)

find /backups -type f -name "*.sql.gz" -mtime +7 -delete


👀 Дополнительно

-Fc — custom-формат: компактно, выборочное и параллельное восстановление через pg_restore.

-Fd — directory-формат: поддерживает параллельный дамп (-j) и гибкое восстановление.

--no-owner --no-privileges — удобно для переноса между серверами/окружениями.

--exclude-table-data=... — дамп схем без данных отдельных «тяжёлых» таблиц.

⚙️ pg_dump делает снапшот на момент старта дампа, поэтому данные консистентны даже при параллельных транзакциях. Это достигается через механизм MVCC PostgreSQL.
Необходимо учесть, что логические дампы не подходят для PITR — для этого нужны физические бэкапы + WAL.

🔘 Связка pg_dump(-Fc/-Fd) [| gzip] + find -delete — простой и надёжный пайплайн. Но периодически проверяйте восстановление на тестовом стенде и следите за версиями сервера/клиента.

#заметкиИнженера
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥4👏2
⚙️ Velero
— инструмент для бэкапа, миграции и аварийного восстановления Kubernetes-кластеров и их данных.

Позволяет безопасно сохранять и восстанавливать ресурсы кластера (поды, deployment, конфигурации), включая прикреплённые тома через снапшоты.

📍 Основной функционал:
— Резервное копирование ресурсов кластера и их восстановление в том же или другом кластере
— Снапшоты постоянных томов (PV)
— Миграция ресурсов между кластерами и облачными платформами
— Планирование бэкапов по расписанию
— Выборочное восстановление ресурсов с фильтрацией по namespace, меткам

📍 Ключевые особенности:
— Поддержка Restic для бэкапа любых томов (включая NFS, hostPath)
— Интеграция с облачными хранилищами (S3, GCS, Azure Blob)
— Расширяемая архитектура через плагины
— Ролевая модель доступа для безопасного использования

Velero превращает сложную задачу резервного копирования Kubernetes в предсказуемый и управляемый процесс.

👉 Git
#полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥3👏21
📸 LVM Snapshot: быстрые снимки без простоя

Снимок LVM — это точное состояние логического тома (LV) на момент создания. Он занимает место только для изменённых блоков и создаётся без остановки сервиса.

Как это работает (Copy-on-Write, CoW)

— При создании снимка исходный том и снимок ссылаются на одни и те же данные

— При изменении данных в исходном томе, старые блоки копируются в область снимка перед записью

— Таким образом, снимок хранит только те данные, которые были изменены после его создания

*Речь про «классические» снимки LVM. У thin-томов механика и команды отличаются.

🧑‍💻 Практика

Создать снимок (2 ГиБ под изменения)

lvcreate -s -n my_lv_snapshot -L 2G /dev/my_vg/my_lv


Паспорт snapshot через lvdisplay

lvdisplay /dev/my_vg/my_lv_snapshot

--- Logical volume ---
LV Path /dev/my_vg/my_lv_snapshot
LV Name my_lv_snapshot
VG Name my_vg
LV UUID y9FV7q-8UxB-7MmE-S8No-5A3F-2QJi-8x9LAD
LV Write Access read/write
LV snapshot status active destination for my_lv
LV Status available
# open 0
LV Size 3.00 GiB
Current LE 768
COW-table size 2.00 GiB
COW-table LE 512
...


Смонтировать для проверки (читать безопаснее в ro)

mkdir -p /mnt/snapshot
mount -o ro /dev/my_vg/my_lv_snapshot /mnt/snapshot
# Для XFS добавьте: -o ro,nouuid


Откат к снимку (merge)

# Если origin смонтирован, снимите его:
umount /mnt/data

# Запустить merge:
lvconvert --merge /dev/my_vg/my_lv_snapshot

# Если origin был активен/смонтирован, merge произойдёт при следующей активации LV
# (часто это выглядит как "после перезапуска сервиса/узла").

После успешного merge сам snapshot-LV исчезает — это нормально.

Удалить снимок (если не нужен)

lvremove /dev/my_vg/my_lv_snapshot


Важные нюансы

Размер снимка должен покрывать ожидаемый объём изменений. Если CoW-область переполнится, снимок станет неконсистентным и будет потерян.

Снимки читаются и монтируются как обычные тома; писать в snapshot можно, но обычно это не требуется.

Производительность: CoW даёт накладные расходы на запись в origin.

Merge требует, чтобы origin был не смонтирован/не активен; иначе откат откладывается до следующей активации.

Thin LVM: у thin-томов своя логика снапшотов и квот; команды и возможности merge отличаются от classic snapshots.

👍 Отличный способ создать точку возврата перед обновлениями/миграциями: быстрый откат без полного бэкапа и долгого восстановления. (Бэкапы всё равно нужны — снапшоты не заменяют резервное копирование.)

#линуксятина
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥4👏2
📚 Книги про бэкапы

Помогут разобраться в бэкапах от базовой механики и утилит — к стратегиям для гибридной инфраструктуры, облаков, SaaS и Kubernetes.

🤓 Backup & Recovery

Практический справочник по планированию и внедрению резервного копирования в смешанных средах с акцентом на Unix/Linux и open-source.

🔎 Рассматривается:

— инвентаризация, расписания, ротации, offsite и регулярные тесты восстановления;
— базовые утилиты: tar/cpio/dump/restore/dd/rsync;
— Amanda, BackupPC, Bacula: архитектура, конфигурации, сценарии восстанавления;
— near-CDP на базе rsync/snapshots (rsnapshot, rdiff-backup);
— носители: ленты/VTL, bare-metal восстановление, бэкап баз данных.

Автор: W. Curtis Preston · Издательство: O’Reilly, 2007

🤓 Modern Data Protection

Руководство по современной стратегии бэкапа и DR: процессы, метрики и инструменты для инфраструктуры.

🔎 Рассматривается:

— RPO/RTO, runbook’и, регулярные проверки восстановления;
— 3-2-1, неизменяемые копии, air-gap, шифрование;
— full/incremental, дедупликация, snapshots, репликация, (near)-CDP;
— защита VMware/Hyper-V, физических серверов, NAS, рабочих станций и мобильных;
— базы данных on-prem и PaaS; SaaS (M365, Google Workspace, Salesforce);
— контейнеры/Kubernetes; модели DR (cold/warm/hot), DRaaS.

Автор: W. Curtis Preston · Издательство: O’Reilly, 2021

✔️ Полезно ИТ-руководителям и архитекторам, которые обновляют стратегию защиты данных под облака и контейнеры; инженерам бэкапа/ИБ, SRE и DevOps, кому важно понимать устройство решений «на земле» и уверенно проводить восстановления; системным администраторам, строящим надёжный бэкап из доступных инструментов в смешанных средах.

#книги #полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥4👏32
🛒 Кейс: бэкапы как основа DR для дистрибьютора

Клиент: крупный дистрибьютор продуктов питания с круглосуточной работой и «тяжёлой» ERP.

🔵 Проблема:
при серьёзном сбое компания не была уверена, что сможет быстро восстановить работу из резервных копий — риск простоя, потери данных и денег.

🔵 Почему такие риски:

— не было удалённой DR-площадки, откуда гарантированно подниматься;

— метрики RPO/RTO с бизнесом не были формально согласованы;

— регламенты и тестовые восстановления требовали доработки;

— репликация «журналами» периодически давала расхождения в данных.

🤝 Совместно с заказчиком выстроили DR-процесс «под ключ»:
согласовали RPO/RTO, определили стратегию бэкапов, развернули удалённую площадку, зафиксировали регулярные test-restore и обновляемый runbook — всё, что превращает копии в гарантированное и предсказуемое восстановление.

🔵 Что сделали

Развернули географически удалённую DR-площадку в облаке CORTEL.

Согласовали с бизнесом RPO/RTO и настроили под них стратегию резервного копирования:
— базы данных — онлайн-обновления + полные бэкапы;
— виртуальные машины — ежедневные копии;
— мониторинг успешности бэкапов и регулярные test-restore.

Обеспечили консистентные копии ERP и ускорили восстановление критичных сервисов (в т.ч. за счёт SSD на DR-стороне).

Подготовили DR-план и runbook, распределили роли и ответственность, зафиксировали SLA/поддержку.

🔵 Что получили

👀 Подтверждённые метрики: RTO ≤ 4 часа, RPO < 24 часов.

👀 Предсказуемый подъём из резервных копий по отработанному сценарию.

👀 Снижение операционных рисков и прозрачные процессы восстановления.

➡️Подробную архитектуру, шаги и нюансы читайте в кейсе.

#изПрактики
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥5👏21😱1
➡️ Основные стратегии действий в момент аварии и восстановления (DR) в облаке:

➡️ Backup & Restore — просто достаём бэкап и поднимаем систему.
➡️ Pilot Light — заранее подготовлено ядро системы, остальное разворачиваем при аварии.
➡️ Warm Standby — почти рабочая копия, быстрое переключение.
➡️ Multi-Site — всё работает параллельно, авария почти не ощущается.

*чем ниже RTO/RPO — тем выше стоимость.

#полезное #красивое
Please open Telegram to view this post
VIEW IN TELEGRAM
👍95🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
🔍 Навигация по каналу

Друзья, вы же заметили, что у нас появилось несколько новых регулярных рубрик 🤗

🫥 Чтобы быстро находить нужные материалы — кейсы, инструменты, лайфхаки и т.д. — мы собрали всё по хэштегам.

➡️ #изПрактики — реальные кейсы и результаты проектов.

➡️ #заметкиИнженера — практические лайфхаки от DevOps-инженеров.

➡️ #гайды — пошаговые инструкции и чек-листы “как сделать”.

➡️ #полезное — инструменты, сервисы, песочницы.

➡️ #проИБ — всё, что касается информационной безопасности.

➡️ #линуксятина — всё про Linux.

➡️ #ИТиЗАКОН — регуляторка, изменения, соблюдение требований.

➡️ #книги — то, что стоит прочитать.

➡️ #MentalDebug — поддержка ментального здоровья в ИТ.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍8👏21
CORTEL pinned a video
🚩 AWS лёг и инфраструктура Perplexity, Coinbase, Duolingo, Signal, Airtable, Canva, Snapchat, Fortnite, Zoom и «тысячи» других сервисов были недоступны.

Друзья, осталась ли у вас инфраструктура за пределами РФ и ощутили ли вы последствия на себе?
Anonymous Poll
81%
Нет, мы полностью в РФ
13%
Есть инфра за границей, но не пострадали
6%
Есть инфра за границей, почувствовали
💎 Виртуализация — помогает управлять надёжностью, затратами и гибкостью инфраструктуры.

В ней есть основные функции, которые напрямую влияют на ключевые показатели:
SLA — фактическая доступность сервисов;
RTO/RPO — скорость восстановления и допустимые потери данных;
TCO — совокупная стоимость владения.

🧬 Разберем эти термины в виде краткого глоссария.

🟣 Live Migration (миграция на лету)

Перенос работающей ВМ между физическими серверами без остановки. Позволяет проводить плановое обслуживание и ребалансировку нагрузки без остановки сервисов.

*Снижается количество плановых простоев и соблюдается SLA.

🟣 High Availability (HA)

Автоматический перезапуск ВМ на другом узле при отказе. Сокращает простои из-за поломок оборудования.

*Предсказуемый RTO и выполнение SLA без ручных вмешательств.

🟣 Fault Tolerance (FT)

Параллельный «зеркальный» экземпляр ВМ с мгновенным переключением. Нужен там, где нельзя потерять ни секунды работы или транзакции.

*Исключаются простои для самых критичных систем, снижаются финансовые и репутационные риски.

🟣 Snapshot (снимок состояния)

Фиксация состояния ВМ в конкретный момент времени. Позволяет мгновенно создать "точку отката" перед рискованными операциями (обновления, изменение конфигураций) и быстро вернуться к ней в случае сбоя.

*Снижается время на восстановление после инцидентов (RTO) и риски при внесении изменений.

🟣 vSwitch и оверлеи (VXLAN/GENEVE)

Программные сети для связности и сегментации сервисов. Изменения выполняются политиками, без перестройки «железа».

*Быстрее запускаются новые среды и ограничивается влияние инцидентов.

🟣 Thin / Thick Provisioning

Способ выделять дисковое место: сразу целиком (thick) или по мере роста (thin). Thick — про стабильную производительность. Thin — про экономию ёмкости и плотность.

*Выбор нужного баланса цены и предсказуемости.

🟣 Scheduler / DRS

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

*Повышается общая эффективность использования инфраструктуры и снижается необходимость ручного вмешательства.

🟣 Ресурсные политики (Reservations / Limits / Shares)

Правила приоритета, гарантий и ограничений по CPU/памяти/IO. Критичные сервисы защищены от «соседей», фоновые — не мешают.

*Управление качеством сервисов и прозрачное планирование мощности.

🟣 NUMA и совместимость CPU (EVC)

Согласование ВМ с архитектурой процессоров и миграции между разными поколениями железа. Нагрузки свободно перемещаются по кластеру без привязки к конкретным узлам.

*Быстрее обновляется парк и получается избежать длительных простоев.

🟣 Storage QoS

Гарантии и лимиты по IOPS/пропускной способности для томов и ВМ. «Шумные» задачи не влияют на критичные сервисы.

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

#полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥7👏2
💿 zVirt: «Диск в некорректном состоянии» после сбоя миграции

Во время плановой миграции диска ВМ между доменами хранения (HDD → SSD) произошёл сбой задачи миграции.

Симптомы

В карточке ВМ появился снимок с пометкой «Диск в некорректном состоянии»; выключать/перезагружать ВМ рискованно из-за возможной потери данных.

Что произошло

Система создала snapshot на исходном домене и delta на целевом; snapshot полностью скопировался, но ссылки в БД не переключились на новый слой — delta оказалась на целевом домене, а база продолжила указывать на старый.

Как исправили

Так как snapshot уже был на целевом домене, обновили ссылки в БД на корректный снимок и принудительно активировали его; статус ВМ стал «Включено». После проверки работы удалили лишние тома на исходном домене.

👀 Вывод

В zVirt диск ВМ многослойный; при сбоях возможен разрыв ссылок между слоями. Сначала — диагностика по документации вендора, затем точечные правки.

#изПрактики
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥4👏3
🕐 Live Migration: как переместить работающую ВМ между серверами без простоя

Есть задача: перенести работающую виртуальную машину с одного физического сервера на другой (чтобы обновить железо или перераспределить нагрузку). При этом пользователи не должны заметить перерыва в работе.

🗣Основные шаги Live Migration:

Подготовка

Проверяется совместимость хостов (CPU, память, устройства). На целевом хосте выделяются ресурсы. QEMU устанавливает соединение (TCP или RDMA для скорости). Если что-то несовместимо (например, разные CPU флаги), миграция не стартует.

Фаза предварительного копирования (Pre-copy)

Итеративно копируется память VM с источника на цель, пока VM продолжает работать. Сначала вся RAM, затем только "грязные" страницы (изменённые). Это повторяется, пока разница не станет минимальной (конвергенция).

Фаза остановки и переноса (Stop-and-copy)

VM приостанавливается на источнике (downtime начинается). Передаются оставшиеся страницы памяти, состояние CPU, устройств (диски, сетевые карты). Это быстрый шаг, чтобы минимизировать простой.

Фаза запуска на целевом хосте

VM запускается на целевом хосте. Трафик перенаправляется (если нужно, через ARP или SDN). Источник очищается.

Live Migration — это сложный оркестр синхронизации состояний, превращающий, казалось бы, невозможную задачу перемещения работающей системы в рутинную операцию для современных дата-центров.

#заметкиИнженера
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥4👏21
🔄 KubeVirt

Фреймворк для управления виртуальными машинами прямо внутри Kubernetes.

Позволяет запускать ВМ как native-ресурсы кластера через Custom Resource Definitions (CRD).

⚙️ Основной функционал:

— Запуск и управление ВМ через Kubernetes API и kubectl
— Использование стандартных Kubernetes-сетей (CNI) и хранилищ (CSI)
— Live Migration ВМ между нодами кластера
— Поддержка cloud-init и автоматизированной настройки ВМ
— Интеграция с KVM/QEMU через специальные поды

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

#полезное
👉 Git
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥4👏2
KVM + QEMU — виртуализация на Linux

KVM (Kernel-based Virtual Machine) — модуль ядра, обеспечивающий аппаратную виртуализацию.

QEMU — эмулятор, который с KVM превращается в полноценный гипервизор. Вместе они позволяют запускать VM быстро и эффективно, без overhead, как в VirtualBox или VMware.

Полезно для тестирования, разработки.

🟢 Пример 1

Создание VM одной командой (через QEMU)


qemu-system-x86_64 \
-enable-kvm \
-m 1G \
-cpu host \
-drive file=focal-server-cloudimg-amd64-disk-kvm.img,format=qcow2 \
-netdev user,id=net0 \
-device virtio-net-pci,netdev=net0 \
-nographic


Где:
-enable-kvm — используем аппаратное ускорение
-m 1G — выделяем 1 ГБ памяти
-cpu host — пробрасываем CPU хоста без эмуляции
-nographic — запускаем без GUI (для серверов)

Преимущество
Максимально быстро и минималистично, но без персистентности — закрыли терминал = ВМ остановилась.

🟢 Пример 2

Создание управляемой ВМ одной командой (через libvirt)


virt-install \
--name vm \
--ram 2048 \
--vcpu 2 \
--disk my_disk.qcow2,size=8 \
--cdrom ubuntu-24.04.3-live-server-amd64.iso


Что это дает

— Автоматическая регистрация ВМ в libvirt
— Управление через virsh
— Сетевые мосты "из коробки"
— Персистентность конфигурации

Управление такими виртуальными машины происходит через утилиту virsh.

Основные команды:

virsh list --all # список всех ВМ
virsh start vm # запуск ВМ
virsh shutdown vm # штатная остановка
virsh destroy vm # принудительное завершение
virsh edit vm # редактирование конфигурации
virsh undefine vm # удаление ВМ (но не дисков)


📍 Первый пример с qemu-system-x86_64 — ваш выбор для быстрого тестирования образов и экспериментов, когда нужно запустить ВМ буквально одной командой.

📍 Второй подход через virt-install + virsh идеален, когда требуется полноценное управление виртуальными машинами — здесь на помощь приходит libvirt с его персистентностью и удобным CLI.

Оба способа отлично дополняют друг друга в арсенале инженера.

#линуксятина
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥42👏2
🤓 Mastering KVM Virtualization

Практическое руководство по KVM, QEMU и libvirt

🔎 Рассматривается:
— архитектура и внутреннее устройство KVM/QEMU, работа libvirt;
— установка окружения и создание ВМ (virt-manager, virt-install, PXE);
— виртуальные сети и хранилища: Linux bridge, NAT/ routed/ isolated сети, MacVTap, iSCSI, LVM;
— управление жизненным циклом ВМ: консоли (VNC/SPICE), агенты гостя, live-миграция;
— шаблоны и снапшоты, форматы дисков, клонирование/тонкое развёртывание;
— Kimchi: веб-управление KVM/libvirt;
— SDN для KVM: Open vSwitch, туннели (VXLAN), OpenDaylight;
— интеграция с OpenStack и устранение неполадок виртуализации;
— производительность и best practices: VirtIO, CPU/memory/NUMA, I/O, тайм-кипинг;
— инструменты V2V/P2V (virt-v2v) и конвертация гостевых систем.

Авторы:
Humble Devassy Chirammal, Prasad Mukhedkar, Anil Vettathu.
Издательство:
Packt Publishing, 2016.

#книги
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍4👏21