301
Odkladiště / Re:Jak bezpečně skladujete data doma?
« kdy: 31. 12. 2019, 15:35:47 »
Já mám haldu onelinerů a jednoduchých věcí, která mi dohromady ale docela pěkně funguje :-)
Situace
NAS, několik desktopů (laptopů) s Linuxem (moje, manželky, společné atd.), několik mobilů s Androidem.
NAS je NanoPi se SATA modulem a čtveřicí 8TB disků WD Red v RAID5 (dmraid), na tom Arch Linux a různé služby (syncthing, web, gitlab, různé media servery).
Desktopy mají přímo na disku LUKS, v něm je jeden btrfs oddíl, v něm jako subvolumes všechno ostatní. Jediná nešifrovaná část je Grub (efi loader), který je podepsán secure boot klíčem. Tj. defaultní instalace Manjara :-)
Mobily mají tovární Android šifrování, klíč to nějak odvozuje z pinu, za provozu se ale odemykají otiskem prstu s výjimkou mobilu dcery, která je ještě moc malá a tak odemyká tlačítkem.
Synchronizace
Na všech strojích běží Syncthing, který synchronizuje určité adresáře tak, aby byl udržen globální stav. Jde hlavně o fotky (když udělám fotku na mobilu a konektivita je dostačující, je během několika sekund zapsána na NAS), galerii (dáváme tam ty vytříděné fotky s metadaty, které chceme mít po ruce), hudbu, různé další misc adresáře. Máme jich hodně - něco společné, něco má každá osoba jen mezi svými stroji.
Zálohování
Stroje s Linuxem (včetně NASu) jedou všechny na btrfs. Každých 15 minut se spouští cronjob (nebo teda systemd.timer), který udělá btrfs snapshot uživatelských subvolumes (ne třeba rootfs, ten je většinou bez změn). Tím se chráníme před situacemi, kdy si třeba něco omylem smažeme. Jednou za 4 hodiny se spustí služba, která vezme poslední snapshot a snapshot starý 4 hodiny, vypočte mezi nimi deltu (btrfs send), a tu komprimovanou pomocí zstd umístí do k tomu určenému Syncthing adresáře. Od tama se to příležitostně samo odleje do NASu, kde to systemd.path trigger sebere a přesune do archivu (čímž se uvolní místo na zálohovaném počítači). Patnáctiminutové snapshoty promazává další timer - u mě je to nastaveno na 3 dny, drahá polovička si to tam drží snad měsíc.
Párkrát do roka nechám (zatím ručně) udělat plný btrfs send místo delty, aby tam těch delt nebylo moc. Rekonstrukce disku ze stovky na sebe navazujících delt totiž může trvat i den :-) Staré pak ručně promažu tak, aby byl rollback tak 3 měsíce.
Na Androidu je automatické zálohování na facku (pokud vše nesvěřím Googlu, což jak asi tušíte nechci). Spíš se k tomu chováme tak, že o to můžeme snadno přijít. Data chrání Syncthing - na NASu se to taky snapshotuje, takže kdybych si omylem něco smazal, nejspíš to půjde obnovit. Aplikace s nastavením nepravidelně (ručně) zálohujeme přes Titanium Backup (opět do Syncthing adresáře, takže to nateče na NAS).
TODO
Chybí mi geograficky oddělená záloha, další NAS u rodičů nebo někde, kam bych nechával replikovat data (opět jen přidáním node do Syncthing). Před selháním jednoho disku mě chrání raid, ale uvažuju o nějaké explicitnější variantě, dedikovaný disk nebo pole na "vlažnou" zálohu.
Situace
NAS, několik desktopů (laptopů) s Linuxem (moje, manželky, společné atd.), několik mobilů s Androidem.
NAS je NanoPi se SATA modulem a čtveřicí 8TB disků WD Red v RAID5 (dmraid), na tom Arch Linux a různé služby (syncthing, web, gitlab, různé media servery).
Desktopy mají přímo na disku LUKS, v něm je jeden btrfs oddíl, v něm jako subvolumes všechno ostatní. Jediná nešifrovaná část je Grub (efi loader), který je podepsán secure boot klíčem. Tj. defaultní instalace Manjara :-)
Mobily mají tovární Android šifrování, klíč to nějak odvozuje z pinu, za provozu se ale odemykají otiskem prstu s výjimkou mobilu dcery, která je ještě moc malá a tak odemyká tlačítkem.
Synchronizace
Na všech strojích běží Syncthing, který synchronizuje určité adresáře tak, aby byl udržen globální stav. Jde hlavně o fotky (když udělám fotku na mobilu a konektivita je dostačující, je během několika sekund zapsána na NAS), galerii (dáváme tam ty vytříděné fotky s metadaty, které chceme mít po ruce), hudbu, různé další misc adresáře. Máme jich hodně - něco společné, něco má každá osoba jen mezi svými stroji.
Zálohování
Stroje s Linuxem (včetně NASu) jedou všechny na btrfs. Každých 15 minut se spouští cronjob (nebo teda systemd.timer), který udělá btrfs snapshot uživatelských subvolumes (ne třeba rootfs, ten je většinou bez změn). Tím se chráníme před situacemi, kdy si třeba něco omylem smažeme. Jednou za 4 hodiny se spustí služba, která vezme poslední snapshot a snapshot starý 4 hodiny, vypočte mezi nimi deltu (btrfs send), a tu komprimovanou pomocí zstd umístí do k tomu určenému Syncthing adresáře. Od tama se to příležitostně samo odleje do NASu, kde to systemd.path trigger sebere a přesune do archivu (čímž se uvolní místo na zálohovaném počítači). Patnáctiminutové snapshoty promazává další timer - u mě je to nastaveno na 3 dny, drahá polovička si to tam drží snad měsíc.
Párkrát do roka nechám (zatím ručně) udělat plný btrfs send místo delty, aby tam těch delt nebylo moc. Rekonstrukce disku ze stovky na sebe navazujících delt totiž může trvat i den :-) Staré pak ručně promažu tak, aby byl rollback tak 3 měsíce.
Na Androidu je automatické zálohování na facku (pokud vše nesvěřím Googlu, což jak asi tušíte nechci). Spíš se k tomu chováme tak, že o to můžeme snadno přijít. Data chrání Syncthing - na NASu se to taky snapshotuje, takže kdybych si omylem něco smazal, nejspíš to půjde obnovit. Aplikace s nastavením nepravidelně (ručně) zálohujeme přes Titanium Backup (opět do Syncthing adresáře, takže to nateče na NAS).
TODO
Chybí mi geograficky oddělená záloha, další NAS u rodičů nebo někde, kam bych nechával replikovat data (opět jen přidáním node do Syncthing). Před selháním jednoho disku mě chrání raid, ale uvažuju o nějaké explicitnější variantě, dedikovaný disk nebo pole na "vlažnou" zálohu.