LINUX.ORG.RU

Виды бэкапов и способы их реализации. Мысли вслух.

 ,


0

1

Влажные фантазии сисьадмина: моментальный снапшот работающей системы... винт в 1тб моментально заснапшоть, ага. Я не представляю как это вообще возможно в ситуации когда у нас живая линукс-система на железе «as is». Когда это не чудо-виртуалка, с чудо-виртуализацией, что ещё было бы понятно. Нет, чудес не бывает и сделать снапшот «на живую» невозможно. И ладно, если какие-то файлы ещё в кэше, выполним sync, и ладно, если работает база данных в памяти, сделаем # .dump > /database.sql. Моментальный снапшот — слишком большой риск, когда каждую наносекунду в системе происходят изменения. В принципе понятно, почему это невозможно.

Хардкорные сисьадмины делают снапшот путём даунтайма, — выбрали ночь с воскресенья на понедельник, вырубили всё, сделали dd-копию и включили обратно. Такие советы на stackoverflow встречаются. Это норм, если у тебя из проектов — лишь блог про тебя, да про твоего кота, который кроме твоего кота никто и не читает. Другие ограничиваются архивированием /etc, /home, мол в случае поломок легко всё накатить с нуля, а ничего важного в других местах храниться не должно. Способ хороший для пользователей десктопа, но не для сервера же.

В реальности мы имеем проект который может отвалиться с нашей стороны в любой момент: сгорит блок питания, выйдет из строя материнская плата или жёсткий диск накроется бэд-секторами. Брать новую железку, накатывать откуда-то бэкап недельной давности, это э... вообще не ынтырпрайзно ниразу. Это время, время это самый дорогостоящий ресурс который нужно экономить, а уж я то знаю толк в экономии ресурса!

Все эти моментальные снапшоты, копии системы даже наносекундной давности, храние готовой конфигурации — вот это всё херня и вообще не то пальто. Бэкапы хороши в случае утери информации, но когда речь зашла о работе системы — мы должны смотреть в сторону создания _отказоустойчивости_, а не бэкапов вовсе!

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

И только так мы сможем иметь тот самый волшебный моментальный «снапшот» системы из одной железки на другую: когда они работают в паре и одна может заменить другую. Верно?

Теперь вопрос. А посоветуйте что-нибудь конкретное почтитать про настройку, чтобы были nginx, php, postgresql/sqlite, код обновляется через на всех системах-клонах git, всё это делалось само, автоматически, и всё добро было распараллеленно для отказоустойчивости!

Заранее спасибо.

★★★★★

php/sqlite - это не про это. Это про блог про тебя и твоего сраного кота. По теме - erlang, микросервисы, репликация субд.

crutch_master ★★★★★
()

почтитать про настройку, чтобы были nginx, php, postgresql/sqlite, код обновляется через на всех системах-клонах git, всё это делалось само, автоматически

Тебе надо смотреть в сторону инструментов для continuous integration - всякие там ансиблы с паппетами, докеры, и вот это все.

и всё добро было распараллеленно для отказоустойчивости!

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

micronekodesu ★★★
()

Чтоб хранить и обновлять конфигурацию - puppet на 2 сервера, и репликация базы данных

Кстати puppet способен настроить сервер с нуля за минуту, в том числе задеплоить проекты при желании. Так что можно один сервак и запасная железяка даже необязательно включенная. Но это для экономов

ism ★★★
()

винт в 1тб моментально заснапшоть

Реально. Снапшот — это тупо референс на readonly-состояние данных в момент N. Он нужен только чтобы снять консистентный бэкап.

Естественно, ФС (или что-то ниже уровнем) обязаны уметь это.

x3al ★★★★★
()

А в чем проблема, ставищь кластер с drbd, в любой момент имеешь две или более копий фс, останавливаешь любую ноду, делаешь с нее бэкап.

Bobby_
()

Вот тебя расперло. Тут где то баннер висел - запишись, 48 кусков всего.

anonymous
()

Прочитал целиком. Выдохни, а?

postgresql

В смысле slony?

sqlite

Лол. Буду считать это шуткой.

код обновляется через на всех системах-клонах git

Это делается по дефолту и обычно чуть сложнее, чем через git. В простом случае у тебя собирается docker-образ с бэкэндом. Машин, куда он деплоится, может быть сколько угодно. Где-то сбоку от этого — load balancer. Совсем обзорно можешь ознакомиться с https://12factor.net/

А ключевые слова для гугля — high availability.

https://www.postgresql.org/docs/current/static/high-availability.html будет основной вводной точкой для «конкретное почитать», ибо состояние твоего тырпрайза будет храниться там, если я правильно прочитал ОП.

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

А чем zfs snapshot не подходит?

anonymous
()

по делу - пиишешь руками и не кладёшь в одну корзину. ИМХО, ПО, заточенное под это дело требует некую сруктуру, пока её нетт - выше.

Deleted
()

и спроси пацанов в Ирке (crux.nu) Finnist очень в теме (фапает на механику и сервера, дада) и Jaeger, j_v. Как раз молодым писали (кажЫсь в феврале), что да как.

Deleted
()

знатная у тебя каша в голове

anonymous
()

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

Тогда надо следить, чтобы нагрузка ни на одну из них не превышала 50%. Иначе в момент отказа одной копии другая просто упадет под нагрузкой.

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

вариант «всё будет работать медленнее» в эти ваши линуксы так и не завезли?

и модерам - капчу, сука, поменяйте на что-то более человечное. 23, сука, раза нажимал картинки.

anonymous
()

raid 1 с ежедневным свапом второго hdd по крону

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

Ответ на сообщение:

Почему в talks висит откровенно жж тема пользователя catap? Какое отношение к Линукс имеет его жизнь и пьянка в Грузии?
Тбилиси-сходка
Наверное потому, что он модератор

На вот ещё тему: Музыка на формуе

Вообще это его типичное быдлоповедение. Он заходит сюда только по пьяне и это-то ещё ладно, безобидные темы были бы пофиг, если бы другим тоже позволяли бы это постить. Он крайне редко тут бывает, и однажды завалившись сюда как обычно по пьяни, начал тупо рандомно тереть всякие посты, мой безобидный пост тоже потёр с -20. На множество претензий пользователей в разделе l-o-r он даже не соизволил откликнуться, молча всех проигнорировал. Это ублюдочное неуважение к сообществу, а остальные модераторы его выгораживали. И его даже не лишили полномочий. Быдлофорум.

#t14191037

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