ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
From: Gleb Kulikov <glebus@asd.iao.ru>
To: ALT Linux Sisyphus discussions <sisyphus@lists.altlinux.org>
Subject: Re: [sisyphus] 4.19.32-std-def-alt1
Date: Mon, 01 Apr 2019 16:42:33 +0700
Message-ID: <2601952.Y30KtdlkS9@gleb.lls.net.iao.ru> (raw)
In-Reply-To: <c865918c-b58a-b361-63d5-43135f43a1bf@dumalogiya.ru>

В письме от 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

  reply	other threads:[~2019-04-01  9:42 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-30  3:52 Gleb Kulikov
2019-03-31 11:38 ` Michael Shigorin
2019-03-31 12:02   ` Gleb Kulikov
2019-03-31 12:13     ` Michael Shigorin
2019-03-31 12:18       ` Gleb Kulikov
2019-04-01 10:50         ` Anton V. Boyarshinov
2019-04-01 22:32         ` Leonid Krivoshein
2019-04-02 11:01           ` Anton V. Boyarshinov
2019-04-02 11:45             ` Leonid Krivoshein
2019-04-22  7:41           ` Gleb Kulikov
2019-05-01 14:50             ` Leonid Krivoshein
2019-05-03 21:27               ` Michael Shigorin
2019-05-06 11:32             ` Anton V. Boyarshinov
2019-03-31 17:27     ` Михаил Новоселов
2019-04-01  9:42       ` Gleb Kulikov [this message]
2019-04-01 11:39         ` Michael Shigorin
2019-04-02 13:28         ` Михаил Новоселов
2019-04-03  7:23           ` Gleb Kulikov
2019-04-01 18:44     ` Michael A. Kangin
2019-04-01 22:27     ` Leonid Krivoshein
2019-04-02  4:53       ` Gleb Kulikov
2019-04-02 14:05       ` Michael A. Kangin
2019-04-02 15:07         ` Michael Shigorin
2019-04-02 16:45         ` Leonid Krivoshein

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2601952.Y30KtdlkS9@gleb.lls.net.iao.ru \
    --to=glebus@asd.iao.ru \
    --cc=sisyphus@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Sisyphus discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
		sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
	public-inbox-index sisyphus

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sisyphus


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git