LINUX.ORG.RU
решено ФорумAdmin

Снимки диска как бэкапы - панацея?

 ,


2

5

Хотел обсудить с уважаемым сообществом (неуважаемых просьба пройти в толксы) тему бэкапов с помощью снимков на уровне логических дисков (lvm snapshots) или их аналог в zfs (не изучал, знаю только примерно).

Суть в чём. Обычно, снэпшоты позиционируются как универсальное решение для любого (ну почти) случая. Типа, заморозил, скопировал дамп неспешно, отморозил. Но ведь в большинстве случаев нельзя уверенно сказать, что в момент заморозки данные на диске актуальные. При чём, для каждого сервиса способ сброса и приведения своих файлов данных в непротиворечивое целостное состояние - различный. Для mysql - flush & lock, для mcedit - save & sync и так далее. Кому-то достаточно sigusrN, а кто-то в принципе не умеет морозить файлы данных.

Соответственно, админ должен уметь не только делать снэпшоты, но и понимать, как их согласовывать с бегущими на сервере сервисами. Кроме того, если вдруг список сервисов меняется (программисты накатили апдейт и какой-то новый кусок апликации внезапно начал mmap'ить большие файлы данных) - нужно под всех их подстроиться.

Отсюда вопрос. Я прав? Снэпшоты не панацея и надо в любом случае делать всё аккуратно и согласованно с сервисами?

Я просто всю жизнь бэкапился rsync'ом. Обычно этого хватало. Всякие mysql старался бэкапить стандартными средствами (условно, mysqldump), когда это позволяли объемы баз данных. В общем-то, если я прав в предыдущих абзацах, то особой разницы с несогласованными снэпшотами нету. rsync даже выгоднее, потому что сильно экономит на передаче данных (бинарные дельты и вообще, файлы меньше дисков).

P.S. Речь идёт только о снимках дисков. Снимки виртуальных машин (единое согласование состояние процессора, памяти и дисков заведомо можно записать, это понятно) я не беру во внимание.

★★★★★

Я прав? Снэпшоты не панацея и надо в любом случае делать всё аккуратно и согласованно с сервисами?

Да.

Снимок можно снимать не парясь с реплицированного сервера, где можно на время бэкапа погасить сами сервисы. Как-то так.

Krieger_Od ★★
()

1) Снапшоты лучше делать на выключенной виртуалке. В случае lxc/openvz, виртуалка стартует и стопится дотстаточно шустро.
2) Если выключение критично, то можно сделать flush и заблочить запись (в mysql делается несложно), потом сделать снапшот и разлочить.
3) Еще вариант уже писали выше - репликация

Если данные не особо активно пишутся и базы нет, то можно просто сделать sync, а после этого бэкап

xorik ★★★★★
()
Последнее исправление: xorik (всего исправлений: 1)
Ответ на: комментарий от Krieger_Od

Снимок можно снимать не парясь с реплицированного сервера, где можно на время бэкапа погасить сами сервисы. Как-то так.

Да, это понятно.

AngryElf ★★★★★
() автор топика

Да, прав. Мало того, что снапшоты надо согласовывать с сервисами, так неплохо бы ещё и убедиться, что например дисковый кэш ОС синхронизирован.

generator ★★★
()

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

dada ★★★★★
()
Ответ на: комментарий от dada

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

Deleted
()

бэкапы - это zfs/btrfs send/receive

а снапшоты - это так, оперативная закладка, чтобы быстро откатиться после фейловых операций

anonymous
()
Ответ на: комментарий от anonymous

а снапшоты - это так, оперативная закладка, чтобы быстро откатиться после фейловых операций

Ну, тот же Veeam Backup весь построен на снапшотах - делает снимок, подключает его к своей ВМ и бэкапится из него. Потом удаляет.

так неплохо бы ещё и убедиться, что например дисковый кэш ОС синхронизирован.

Для журналированных ФС и ACID СУБД это до барабана.

blind_oracle ★★★★★
()

Одно не заменяет другое. Всё от задач зависит. Я тебя попросил вчерашний инкрементальный бакап базы прислать по почте а ты мне образ диска со свопом вместе прислал, зачем мне такое?

af5 ★★★★★
()
Ответ на: комментарий от blind_oracle

Здравствуйте! Верите ли вы в бога?

anonymous
()

Соответственно, админ должен уметь не только делать снэпшоты, но и понимать, как их согласовывать с бегущими на сервере сервисами.

Чудес не бывает.

В большинстве случаев xfs, вернее xfs_freeze, вызываемый при создании снапшота lvm, позволяет минимизировать кол-во недописанных файлов

The -f flag requests the specified XFS filesystem to be frozen from new modifications. When this is selected, all ongoing transactions in the filesystem are allowed to complete, new write system calls are halted, other calls which modify the filesystem are halted, and all dirty data, metadata, and log information are written to disk. Any process attempting to write to the frozen filesystem will block waiting for the filesystem to be unfrozen.

Note that even after freezing, the on-disk filesystem can contain information on files that are still in the process of unlinking. These files will not be unlinked until the filesystem is unfrozen or a clean mount of the snapshot is complete.

sdio ★★★★★
()

нельзя уверенно сказать, что в момент заморозки данные на диске актуальные

Естественно. Но сервисы должны переживать неожиданный рестарт сервера, т.ч. это вполне приемлемо.

надо в любом случае делать всё аккуратно и согласованно?

Нет - если тебе достаточно восстановления данных на момент бекапа.

DonkeyHot ★★★★★
()

Подвожу итог.

Мнение сообщества совпадает с топикстартеровским за небольшими дополнениями про ACID-базы данных и сервисы, обязанные восстановиться после внезапного рестарта сервера.

Всем спасибо.

AngryElf ★★★★★
() автор топика
Ответ на: комментарий от AngryElf

Мнение сообщества совпадает с топикстартеровским

Для баланса «lvm нинужин!111адинадин» (с) (Это ж лор)

slackwarrior ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.