[sisyphus] 4.19.32-std-def-alt1

Gleb Kulikov glebus на asd.iao.ru
Пн Апр 1 12:42:33 MSK 2019


В письме от 2019 марта 31  20:27:27 пользователь Михаил Новоселов написал:
> 31.03.2019 15:02, Gleb Kulikov пишет:
> > overlayfs не держит нагрузку и имеет проблемы с EA/ACL.
> > 
> > у меня там объединение томов с разных физических устройств с
> > распределением
> > файлов/слепков файлов на предмет отказоустойчивости и моментального
> > восстановления в случае нечисти по типу "шифровальщиков". Объединённый
> > ресурс отдаётся в самбу и нфс.
> 
> Было бы очень интересно почитать, как такое сделано.

Очень просто: по идиотски, из г... костылей и жвачки. Просто нужно было быстро 
решить проблему, как-раз несколько раз подряд (несмотря на драконовские меры) 
попали под "шифровальщиков". 
Тем не менее, решение уже показало себя весьма эффективным и буквально спасло. 
Дополнительно продумывались меры по повышению надёжности, так как если не по-
бедности, то по э.. понятным соображениям, организовать правильно 
организованный бэкап сложно: инкрементальный бэкап периодически (сильно реже 
разумного) сливается на отдельный, не включенный постоянно, диск и (ещё реже), 
делается копия на блюрэй.

Общая идея: архив разбивается на две (или больше) частей. 1-ая всегда 
монтируется r/o и содержит холодные и редко изменяемые данные. Эта часть лежит 
на одной группе томов (рейд сконфигурирован так, что несколько групп томов 
лежат на своих физических дисках) и с неё достаточно редко делается резервная 
копия на блюрэй.

Для изменяемых данных выделен том, который лежит на другой группе томов 
(читай, другом физическом диске и в ещё одном случае, на другой ноде). Для 
хранения состояния файлов, сделано весьма идиотское решение, но опять-таки, 
практика показала его полезность. Раз в 30 минут ресурс попросту сканируется и 
если есть изменения, комитится в гит. База гита лежит перекрёстно, на другом 
томе (=> другом физическом устройстве). В основном, люди работают с доковскими 
и автокадовскими  файлами, но как оказалось,  несмотря на очевидную 
неатомарность, файлы в гите не бьются. За счёт сжатия, база гита пухнет 
умеренно.
Раз в три месяца, изменяемые части ресурса сканируются на предмет не 
изменявшихся за это время файлов и таковые переносятся в r/o хранилище. База 
гита архивируется и отправляется на хранение.

За счёт того, что изменяемая часть ресурса относительно маленькая, всё 
работает весьма шустро и не жрёт ресурсы.
 
Изменяемые и холодные файлы "слиты" в один ресурс через aufs. А поскольку факт 
"стирания"/изменения  файла в r/o хранилище aufs имитирует созданием спецфайла 
/ копии изменяемого файла, работа с таким комбинированным хранилищем 
прозрачна. В то же время, при работе "шифровальщика" или (не)преднамеренном 
удалении, страдает весьма незначительная часть хранилища, инцидент легко 
разобрать руками и файлы восстанавливаются моментально. Перекрёстное хранение 
на разных физических устройствах r/o, r/w и слепков истории изменений файлов, 
делает сон значительно спокойнее: потерять вразу ВСЁ можно, но значительно 
менее вероятно, чем при задействовании механизмов перераспределения LVM / 
снапшотов btrfs. С последними тоже экспериментирую, но более осторожно.

Вот как-то так.
Ну и неоднократно приходилось доставать копии файлов с совсем небольшим 
временным лагом и/или сравнивать с "историческими". В обычной схеме со сжатым 
бэкапом можно было-бы рехнуться.

PS: грабли, на которые можно наступить: если нужно поменять ACL/права доступа, 
это нельзя делать на объединённом ресурсе: aufs тупо скопирует на r/w раздел 
файлы из всех слоёв. Но если последовательно применить setacl ко всем слоям, 
изменения подхватятся и будут нормально работать.

PPS: overlayfs в такой схеме работает скверно.

PPPS: права (любые) в гите не сохраняются. В данном случае это геморрой, но 
схема всё равно оказывается спасительной.

-- 

С уважением, /GL


Подробная информация о списке рассылки Sisyphus