Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤5🔥4
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
— инструмент для бэкапа, миграции и аварийного восстановления Kubernetes-кластеров и их данных.
Позволяет безопасно сохранять и восстанавливать ресурсы кластера (поды, deployment, конфигурации), включая прикреплённые тома через снапшоты.
— Резервное копирование ресурсов кластера и их восстановление в том же или другом кластере
— Снапшоты постоянных томов (PV)
— Миграция ресурсов между кластерами и облачными платформами
— Планирование бэкапов по расписанию
— Выборочное восстановление ресурсов с фильтрацией по namespace, меткам
— Поддержка Restic для бэкапа любых томов (включая NFS, hostPath)
— Интеграция с облачными хранилищами (S3, GCS, Azure Blob)
— Расширяемая архитектура через плагины
— Ролевая модель доступа для безопасного использования
Velero превращает сложную задачу резервного копирования Kubernetes в предсказуемый и управляемый процесс.
#полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥3👏2❤1
Снимок LVM — это точное состояние логического тома (LV) на момент создания. Он занимает место только для изменённых блоков и создаётся без остановки сервиса.
— При создании снимка исходный том и снимок ссылаются на одни и те же данные
— При изменении данных в исходном томе, старые блоки копируются в область снимка перед записью
— Таким образом, снимок хранит только те данные, которые были изменены после его создания
*Речь про «классические» снимки 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
Важные нюансы
#линуксятина
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥4👏2
Помогут разобраться в бэкапах от базовой механики и утилит — к стратегиям для гибридной инфраструктуры, облаков, SaaS и Kubernetes.
Практический справочник по планированию и внедрению резервного копирования в смешанных средах с акцентом на 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
Руководство по современной стратегии бэкапа и 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
#книги #полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥4👏3❤2
Клиент: крупный дистрибьютор продуктов питания с круглосуточной работой и «тяжёлой» ERP.
при серьёзном сбое компания не была уверена, что сможет быстро восстановить работу из резервных копий — риск простоя, потери данных и денег.
— не было удалённой DR-площадки, откуда гарантированно подниматься;
— метрики RPO/RTO с бизнесом не были формально согласованы;
— регламенты и тестовые восстановления требовали доработки;
— репликация «журналами» периодически давала расхождения в данных.
согласовали RPO/RTO, определили стратегию бэкапов, развернули удалённую площадку, зафиксировали регулярные test-restore и обновляемый runbook — всё, что превращает копии в гарантированное и предсказуемое восстановление.
— базы данных — онлайн-обновления + полные бэкапы;
— виртуальные машины — ежедневные копии;
— мониторинг успешности бэкапов и регулярные test-restore.
#изПрактики
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥5👏2❤1😱1
*чем ниже RTO/RPO — тем выше стоимость.
#полезное #красивое
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤5🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
Друзья, вы же заметили, что у нас появилось несколько новых регулярных рубрик
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍8👏2❤1
Друзья, осталась ли у вас инфраструктура за пределами РФ и ощутили ли вы последствия на себе?
Anonymous Poll
81%
Нет, мы полностью в РФ
13%
Есть инфра за границей, но не пострадали
6%
Есть инфра за границей, почувствовали
В ней есть основные функции, которые напрямую влияют на ключевые показатели:
SLA — фактическая доступность сервисов;
RTO/RPO — скорость восстановления и допустимые потери данных;
TCO — совокупная стоимость владения.
Перенос работающей ВМ между физическими серверами без остановки. Позволяет проводить плановое обслуживание и ребалансировку нагрузки без остановки сервисов.
*Снижается количество плановых простоев и соблюдается SLA.
Автоматический перезапуск ВМ на другом узле при отказе. Сокращает простои из-за поломок оборудования.
*Предсказуемый RTO и выполнение SLA без ручных вмешательств.
Параллельный «зеркальный» экземпляр ВМ с мгновенным переключением. Нужен там, где нельзя потерять ни секунды работы или транзакции.
*Исключаются простои для самых критичных систем, снижаются финансовые и репутационные риски.
Фиксация состояния ВМ в конкретный момент времени. Позволяет мгновенно создать "точку отката" перед рискованными операциями (обновления, изменение конфигураций) и быстро вернуться к ней в случае сбоя.
*Снижается время на восстановление после инцидентов (RTO) и риски при внесении изменений.
Программные сети для связности и сегментации сервисов. Изменения выполняются политиками, без перестройки «железа».
*Быстрее запускаются новые среды и ограничивается влияние инцидентов.
Способ выделять дисковое место: сразу целиком (thick) или по мере роста (thin). Thick — про стабильную производительность. Thin — про экономию ёмкости и плотность.
*Выбор нужного баланса цены и предсказуемости.
Автоматическое распределение и балансировка виртуальных машин между узлами кластера. Обеспечивает равномерное потребление ресурсов железа, предотвращая перегрузку отдельных серверов.
*Повышается общая эффективность использования инфраструктуры и снижается необходимость ручного вмешательства.
Правила приоритета, гарантий и ограничений по CPU/памяти/IO. Критичные сервисы защищены от «соседей», фоновые — не мешают.
*Управление качеством сервисов и прозрачное планирование мощности.
Согласование ВМ с архитектурой процессоров и миграции между разными поколениями железа. Нагрузки свободно перемещаются по кластеру без привязки к конкретным узлам.
*Быстрее обновляется парк и получается избежать длительных простоев.
Гарантии и лимиты по IOPS/пропускной способности для томов и ВМ. «Шумные» задачи не влияют на критичные сервисы.
*Стабильные задержки в пиковые часы и понятную связь уровня сервиса с затратами.
#полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥7👏2
Во время плановой миграции диска ВМ между доменами хранения (HDD → SSD) произошёл сбой задачи миграции.
В карточке ВМ появился снимок с пометкой «Диск в некорректном состоянии»; выключать/перезагружать ВМ рискованно из-за возможной потери данных.
Система создала snapshot на исходном домене и delta на целевом; snapshot полностью скопировался, но ссылки в БД не переключились на новый слой — delta оказалась на целевом домене, а база продолжила указывать на старый.
Так как snapshot уже был на целевом домене, обновили ссылки в БД на корректный снимок и принудительно активировали его; статус ВМ стал «Включено». После проверки работы удалили лишние тома на исходном домене.
В zVirt диск ВМ многослойный; при сбоях возможен разрыв ссылок между слоями. Сначала — диагностика по документации вендора, затем точечные правки.
#изПрактики
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥4👏3
Есть задача: перенести работающую виртуальную машину с одного физического сервера на другой (чтобы обновить железо или перераспределить нагрузку). При этом пользователи не должны заметить перерыва в работе.
Проверяется совместимость хостов (CPU, память, устройства). На целевом хосте выделяются ресурсы. QEMU устанавливает соединение (TCP или RDMA для скорости). Если что-то несовместимо (например, разные CPU флаги), миграция не стартует.
Итеративно копируется память VM с источника на цель, пока VM продолжает работать. Сначала вся RAM, затем только "грязные" страницы (изменённые). Это повторяется, пока разница не станет минимальной (конвергенция).
VM приостанавливается на источнике (downtime начинается). Передаются оставшиеся страницы памяти, состояние CPU, устройств (диски, сетевые карты). Это быстрый шаг, чтобы минимизировать простой.
VM запускается на целевом хосте. Трафик перенаправляется (если нужно, через ARP или SDN). Источник очищается.
#заметкиИнженера
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥4👏2❤1
Фреймворк для управления виртуальными машинами прямо внутри Kubernetes.
Позволяет запускать ВМ как native-ресурсы кластера через Custom Resource Definitions (CRD).
— Запуск и управление ВМ через Kubernetes API и kubectl
— Использование стандартных Kubernetes-сетей (CNI) и хранилищ (CSI)
— Live Migration ВМ между нодами кластера
— Поддержка cloud-init и автоматизированной настройки ВМ
— Интеграция с KVM/QEMU через специальные поды
KubeVirt стирает границы между виртуальными машинами и контейнерами, позволяя использовать единую платформу для всех рабочих нагрузок.
#полезное
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)
Где:
-enable-kvm — используем аппаратное ускорение
-m 1G — выделяем 1 ГБ памяти
-cpu host — пробрасываем CPU хоста без эмуляции
-nographic — запускаем без GUI (для серверов)
Преимущество
Максимально быстро и минималистично, но без персистентности — закрыли терминал = ВМ остановилась.
🟢 Пример 2
Создание управляемой ВМ одной командой (через libvirt)
✅ Что это дает
— Автоматическая регистрация ВМ в libvirt
— Управление через virsh
— Сетевые мосты "из коробки"
— Персистентность конфигурации
Управление такими виртуальными машины происходит через утилиту virsh.
Основные команды:
📍 Первый пример с qemu-system-x86_64 — ваш выбор для быстрого тестирования образов и экспериментов, когда нужно запустить ВМ буквально одной командой.
📍 Второй подход через virt-install + virsh идеален, когда требуется полноценное управление виртуальными машинами — здесь на помощь приходит libvirt с его персистентностью и удобным CLI.
Оба способа отлично дополняют друг друга в арсенале инженера.
#линуксятина
KVM (Kernel-based Virtual Machine) — модуль ядра, обеспечивающий аппаратную виртуализацию.
QEMU — эмулятор, который с KVM превращается в полноценный гипервизор. Вместе они позволяют запускать VM быстро и эффективно, без overhead, как в VirtualBox или VMware.
Полезно для тестирования, разработки.
Создание 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 (для серверов)
Преимущество
Максимально быстро и минималистично, но без персистентности — закрыли терминал = ВМ остановилась.
Создание управляемой ВМ одной командой (через 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 # удаление ВМ (но не дисков)
Оба способа отлично дополняют друг друга в арсенале инженера.
#линуксятина
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥4❤2👏2
Практическое руководство по 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👏2❤1
Обе технологии позволяют запускать несколько изолированных сред на одной физической машине, но подходы у них разные.
ВМ — минуты / контейнеры — секунды
ВМ занимают больше / контейнеры легче
ВМ сложнее переносить / контейнеры проще
у контейнеров выше
ВМ используют собственную ОС / контейнеры — общее ядро
#полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13👏4👎3🔥3