LINUX.ORG.RU
ФорумAdmin

А что есть по бэкапам?

 


0

5

В линуксе (бзди, виндовсы, огрызки и прочее) идут лесом. Кроме скриптов на баше с таром (хотя подойдут и они, если оттестированы и используются, например, на проде). Интересен прежде всего инкрементальный бекап и чтобы он жался посильнее. Основная хотелка такая: во время когда пекич нагружен сильно, бэкап не сжимается, а только делается, тот же сырой tar без пожатия. Потом когда мне удобно, я жму кнопку и оно всё запаковывается получше/сбрасываются лишние промежуточные этапы.

Так-то велосипед буду делать, может что лучше придумали уже?

★★★★★

Последнее исправление: peregrine (всего исправлений: 1)

Есть Bacula, но тебе честно скажу, что коллеги старались, настраивали, а я выкинул нахер за ненужностью и просто наклепал на баше по крону, вышло проще и надёжней.

WitcherGeralt ★★
()
Последнее исправление: WitcherGeralt (всего исправлений: 1)

borg, restic.

anonymous
()

urbackup? Там ещё дедупликацию завезли на файловом уровне. И сжатие можно включить. В общем не скучно.

DALDON ★★★★★
()
Последнее исправление: DALDON (всего исправлений: 1)

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

А потом ты забываешь недельку жать кнопку и вот.

И это, ниче, что пожать каким-нибудь lz4 и отправить в сеть сейчас подчас легче, чем на диск сохранить?

Так что btrfs send | lz4 | ssh backup_host 'lz4 -d | btrfs receive', ну или хотя бы tar c | lz4 | ssh backup_host lz4 -d | xz -9 > timestamped_file'.

t184256 ★★★★★
()

Backupninja можно как вручную тыкать, так и автоматически запускать.

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

Это была ирония. У белых людей дедупликация исключительно блочная. Файловая это смешно.

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

А потом ты забываешь недельку жать кнопку и вот.

Кнопка жмётся сама перед стартом программы, чтобы она данные не попортила (сорцов и сил переделывать нету), а вот в скрипт-лаунчер запихнуть не проблема. Но и автоматика хорошо.

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

Backup-ы делаю с помощью btrfs+rsync, получается always incremental backup:
- при первом backup-е естественно копируется всё;
- при очередном копировании делаем rw snapshot с предыдущего (самого последнего) snapshot-а - получаем как бы моментальную копию файлов «за вчера», которую можно править. Предыдущий snapshot при этом readonly, он не изменяется;
- rsync-ом подтягиваем копию «за вчера» до состояния «на сейчас»;
- переключаем в readonly;
- выполняем удаление старых snapshot-ов, вышедших за рамки периода/количества хранимых backup-ов.

Плюсы:
- место на диске потребляется только под изменения частей файлов. Если какие-то части или целые файлы не изменялись, они хранятся в единственном экземпляре, хоть и присутствуют в куче snapshot-ов;
- snapshot-ы не зависят друг от друга, они работают примерно как жёсткие ссылки, только более независимые. Можно удалять какие угодно и когда угодно, на остальные это не повлияет;
- snapshot-ы находятся в readonly режиме - исключается возможность случайно что-то в них повредить (даже root-у);
- все файлы хранятся как есть, а не в контейнере типа tar, backula/bareos - их максимально легко достать из backup-а. Есть возможность сделать grep/diff по всем backup-ам и проследить в какой момент тот или иной файл изменился;
- каждый snapshot - это конечный целостный набор файлов, при восстановлении нет надобности сначала разворачивать full или diff копию, а потом накатывать инкременты;
- ФС поддерживает хранение acl, xattr, т.е. при backup-е (rsync --numeric-owner) ничего не потеряется;
- ФС поддерживает сжатие и увеличение размера;
- копирование через rsync не требует наличия дополнительного свободного места на backup-ируемой машине и не нагружает её сжатием архива. Также ему можно указать выполнение pre/post-скриптов, например, для создания дампов баз.

Минусы: пока не обнаружены.

Такое умеют файловые системы btrfs и zfs.

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

Такое же умеют restic и borg, при этом не зависят от ФС, и ты можешь спокойно загрузить репозиторий в облако (если не выключил шифрование).

anonymous
()

restic или borg, но у первого нет сжатия

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

Пока файл не изменился, дополнительного места его снапшот действительно не занимает.

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

Продолжай наблюдение.

Вы не поняли, snapshot делается на машине backup-ов - КУДА копируем данные, а про место я писал на машине ОТКУДА делаем.
Туда, ОТКУДА делаем, мы приходим только забирать данные, ничего локально там не создаём.

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

snapshot делается на машине backup-ов

Оригинал не снапшотится и бекапятся грязные (изменяющиеся) данные?

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

Зачем нужен тормоз rsync? Почему send/recive?

Потому что для send/receive нам нужно наличие btrfs/zfs на обоих машинах. На обычных серверах таких ФС нет (приходит на поддержку сервер с только ext4, нужно сделать backup), неоткуда делать send.
А ещё send/receive не работает на уровне каталогов и файлов, только на уровне целых subvolume, а в subvolume может быть много лишнего (например, часто изменяющийся cache), которое мы хотим исключить.

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

Оригинал не снапшотится и бекапятся грязные (изменяющиеся) данные?

Да. На серверах, где важен моментальный снимок, и подход будет другой, там будет или ФС соответствующая, или LVM, ...

Если вы считаете такой вариант неприемлемым, тогда почти все системы backup-ов (bacula, bareos, ...) - это мусор, ибо они именно так и работают, на уровне изменяющихся «грязных» файлов.

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

Я считаю, что создание локальной копии (снапшота оригинала) с последующей отсылкой на бекап-сервер более правильно, чем торможение на неопределенное время rsync через сеть, посредством еще одного тормоза ssh.

Твой метод более-менее рабочий только для единственных файлов и очень маленьких каталогов.

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

Да. Их не надо чинить. Если проверка репозитория выявила повреждения, то ты просто восстанавливаешь всё из другого бэкапа. Тем более не нужно доставать данные.

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

Нет. Другие ФС проще починить, а также можно достать данные при помощи testdisk или иногда даже grep.

Вы вот сейчас серьезно о чем? Топик вроде про бэкапы. Или вы предлагаете бэкапы с помощью testdisk и grep выковыривать?
Возможно не понял вашего посыла, тогда извините.

ЗЫ Старое доброе, лучше которого не придумали. Большая периодичность full и с меньшей периодичностью к нему diff или inc от ситуации и реализации зависит. Но в любом случае full делаем регулярно.

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

Я уже запутался в ирониях, но блочная для бекапов, в общем случае глупая затея. В частном, если поднять отдельный инстанс urbackup, то прикрутить можно и такое. :)

DALDON ★★★★★
()

ключевые слова: duply, cron, nice, ionice

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

блочная для бекапов, в общем случае глупая затея

Очень странное заявление, наверное дураки используют borg в продакшене :) Храню в нём ежедневные дампы БД за несколько месяцев:

------------------------------------------------------------------------------
                       Original size      Compressed size    Deduplicated size
All archives:               12.59 TB              2.11 TB             57.54 GB

                       Unique chunks         Total chunks
Chunk index:                  187245              4795354

Kak tebe takoe, Elon Musk?

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

Каждый раз рука к лицу тянется когда вижу такие оторванные от контекста скриптики. Ты думаешь ТС без тебя не справится, или в чём смысл?

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

Это не скриптик, это схематичный набросок пары идей, которые ТСа миновали: диффы надо снимать эффективно, жать слегка по пропускной способности и слать по сети. Какие из них позаимствовать — решать ему.

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

Прости чел, но отправляю тебя в игнор, вроде не тупой, но странный, в условиях ТЗ от меня нет инета вообще и даже сервера в локалке, который работает постоянно и гарантированно. С сетью иди в проду, у меня не прода.

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

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

t184256 ★★★★★
()

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

btrfs snapshots + borg. Всё, что ты хочешь, но придётся много велосипедить.

У меня были точно такие же хотелки и я уже навелосипедил: https://github.com/intelfx/backup.sh (если ты реально соберёшься пользоваться этим говном, скажи, я причешу и напишу README). Рано или поздно перепишу на питоне и запилю гуй, но не сейчас.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 4)
Ответ на: комментарий от WitcherGeralt

Я не говорил, что это должна быть единственная копия. 3-2-1, ну.

anonymous
()

Не слушайте этих рекламщиков с их Btrfs и сетевыми «бэкапами», которые как игры от EA – не работают без интернета. Rsync+tar+таймер в systemd/«джоб» в cron. Всё остальное (инкременты, распределение нагрузки и прочее) – «портянкой» на «баше». Просто, доступно, понятно любому «линуксоиду».

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

«линуксоиду»

Редчайший случай, когда твоё болезненное злоупотребление кавычками уместно. Но вообще учи русский.

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

Не слушайте этих рекламщиков с их Btrfs и сетевыми «бэкапами», которые как игры от EA – не работают без интернета.

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

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

Бекапы БД, пожалуй единственный случай для которого подходит дедупликация. Но, и без дедупликации уже сто лет в обед придумали инкремент и дифф бекапы для СУБД.

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

нет сети — нет бэкапа

вы меня извините конечно, но…лолшто? на проде я могу КАК_ТО в это поверить, но в хоум системах - это ересь.

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