Rsync celého disku

Rsync celého disku
« kdy: 18. 02. 2022, 19:20:40 »
Zdravím všechny,

prosím o radu. Vytvořil jsem si domácí NAS ze zbylého PC a dvou 3TB disků. Puštěno bude občas jen pro příjem dat přes síť. Z toho důvodu jsem upustil od Raid1. Na fóru openmediavault to moc lidí nedoporučuje, pokud se pouští takto občas.

Jdu tedy rsync cestou na druhý disk,  s tím, že po nějaké době inaktivity NAS, se pustí rync a NAS se vypne.
Nicméně pokud pustím rsync -ahv tak se dost dlouho skenuje disk. Nevím jak přesně hledá změny, ale trvá to klidně i 2 minuty a i když se nic nenajde. Běhěm toho pracuje hlasitě disk. Tomu bych se chtěl vyhnout, abych po každém puštění projížděl celý disk. Kde je chyba ? V parametrech jsem nic nenašel. Může být tím, že fs je NTSF , z původních windows ?

Díky za radu.





Re:Rsync celého disku
« Odpověď #1 kdy: 18. 02. 2022, 19:50:47 »
Není to žádná chyba, rsync takhle pracuje (a nemůže pracovat jinak). Když chcete synchronizovat dva disky, rsync musí projít všechny soubory, zjistit, které jsou na druhé straně starší nebo tam chybí, a ty na druhou stranu přenést. Standardně rsync neprochází obsah všech souborů, jenom ty, kde se liší velikost nebo čas, ale projít všechny soubory na disku musí. OS neposkytuje (ani neukládá) žádné informace o tom, které soubory se změnily od nějaké doby.

k3dAR

  • *****
  • 2 289
  • porad nemam telo, ale uz mam hlavu... nobody
    • Zobrazit profil
    • E-mail
Re:Rsync celého disku
« Odpověď #2 kdy: 18. 02. 2022, 23:03:25 »
k tomu co napsal Filip navic:
- proc tam mas NTFS pokud ten NAS bezi na GNU/Linuxu tak je to nesmysl, minimalne z toho duvodu ze po naboreni filesystemu nemas zadnej nastroj na jeho opravu...
- ze RAID1 nekdo nedoporucuje "kdyz se to pousti obcas" je take blbost, obzvlast pokud ten "RAID1" delas pak rucne pres rsync ;-) i kdyz jeden duvod by asi byl, pokud bys to poustel 1x mesic, tak by se pokazde "zrovna" delal check pole, ale vypnout casovace ktere to delaji (mdcheck_start.timer a mdcheck_continue.timer) je porad jednodusi nez to resit pres rsync ;-)

_Jenda

  • *****
  • 1 095
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Rsync celého disku
« Odpověď #3 kdy: 19. 02. 2022, 00:42:24 »
Není to žádná chyba, rsync takhle pracuje (a nemůže pracovat jinak).
Pomohlo by, kdyby FS uměl při změně souboru nastavit rekurzivně flag "změněno" (resp. čas změny) nadřazeným adresářům až po /. Pak by rsync nemusel skenovat všechny soubory, ale vyhazoval podstromy, co se nezměnily. Znamenalo by to nějaké zpomalení při zápisu, ale třeba Apple se chlubil, že něco podobného dělá (APFS fast directory sizing).

Re:Rsync celého disku
« Odpověď #4 kdy: 19. 02. 2022, 07:24:13 »
Pokud jsou ty disky ve stejném stroji a ne, nějakým způsobem oddělené, tak je to opravdu úkol pro RAID.
Zajímalo by mě, z čeho v tom openmediavault vycházeli.

RAID vás samozřejmě primárně chrání před chcípnutím jednoho z disků. Zato vás nechrání před spoustou jiných případů ztráty dat.

Pokud ne RAID, tak pak uvažovat o jiných způsobech zálohování, které sice budou náročnější na zprovoznění, ale nabídnou možnosti, které vám RAID nedá. Mohou to být metody založené na plné a rozdílových zálohách, nebo na využítí možností speciálnějších souborových systémů a snapshotů, nebo distribuované ukládání používané v HAL systémech (https://cloud.netapp.com/blog/cvo-blg-high-availability-cluster-concepts-and-architecture).

Optimální řešení záleží na mnoha faktorech, objem a charakter zálohovaných dat (hromada malých souborů / velké soubory, stabilní data + drobné přírůstky, masivní přepisování velkých objemů {editace videí}, ... ), zda je záloha na NASu až sekundární kopie dat v PC, nebo primární, možnosti mít ty disky geograficky odděleny, vzácnost těch dat a o jak velký časový úsek je možné přijít, způsob připojení těch dat mezi NASem a PC (FTP / SAMBA / NFS / ...), ...


Re:Rsync celého disku
« Odpověď #5 kdy: 19. 02. 2022, 08:15:18 »
Tak moznost by bola
Kód: [Vybrat]
find -mtime odporucam
Kód: [Vybrat]
find -- help to ale bude zrejme fungovat na fs ktory si uklada cas zmeny suboru, ako na tom ntfs neviem.

I ked preco, ked prirodzenejsie je pouzit raid. To kopirovanie vas proti nechcenym zmenam neochrani - zmeny sa skopiruju. Naproti tomu raid ochrani proti zlyhaniu disku spolahlivejsie. Ak budete kopirovat z poskodeneho disku, tak si velmi lahko ponicite data aj na tom zdravom cielovom disku...
« Poslední změna: 19. 02. 2022, 08:18:51 od Death Walker »

Re:Rsync celého disku
« Odpověď #6 kdy: 19. 02. 2022, 09:43:03 »
Tak moznost by bola
Kód: [Vybrat]
find -mtime odporucam
Kód: [Vybrat]
find -- help to ale bude zrejme fungovat na fs ktory si uklada cas zmeny suboru, ako na tom ntfs neviem.
Takže místo aby rsync procházel všechny soubory na disku a zjišťoval, jestli se změnil jejich čas změny, tak by find procházel všechny soubory na disku a zjišťoval, jestli se změnil čas změny… Hm, jak by to asi mohlo pomoci?

Jediný rozdíl je v tom, že rsync to porovnává proti času modifikace souboru na protějším disku, takže ho také musí načíst. Ale pokud není cílový disk pomalejší, než zdrojový, nemělo by to mít na přenos podstatný vliv.

NTFS čas změny souboru ukládá.

Nicméně pokud vím, NTFS ukládá čas změny s nižší přesností, než Linux, což by znamenalo, že i stejné soubory musí rsync porovnat podle obsahu. rsync by měl ve výchozím nastavení porovnávat čas modifikace s přesností na sekundy, ale teoreticky může být někde výchozí nastavení jiné. Některé verze rsync mají přepínač --modify-window, kterým je možné nastavit, jak různé časy modifikace souboru má rsync ještě považovat ze stejné.

Re:Rsync celého disku
« Odpověď #7 kdy: 19. 02. 2022, 11:19:29 »
Když říkáš že se jedná o NTFS filesystém, nešel by použít příznak A tj. archive?
Tady píšou že i v Linuxu se s ním dá pracovat: How do I set the archive Bit of a file shared with samba.
Tj. vybrat seznam souborů který ho mají nastaven => nakopírovat na druhý disk a pak atribut shodit. A jednou za čas provést kompletní sync pro jistotu.

Re:Rsync celého disku
« Odpověď #8 kdy: 19. 02. 2022, 12:39:07 »
Jediný rozdíl je v tom, že rsync to porovnává proti času modifikace souboru na protějším disku, takže ho také musí načíst. Ale pokud není cílový disk pomalejší, než zdrojový, nemělo by to mít na přenos podstatný vliv.

Tak si skuste cez time porovnat find a rsync so zapnutym dry run, nech ten rsync len porovnava. Potom si mozete pogooglit preco je tam rozdiel. Bude to uzitocnejsie, nez tie troliace eseje...

AM

Re:Rsync celého disku
« Odpověď #9 kdy: 19. 02. 2022, 13:54:38 »
Rsync byl primárně navržen tak, aby synchronizoval obsah obou disků. Proto porovnává velikost souborů. Pokud chcete jen dělat zálohu (víte, že data na zálohovacím disku žádný proces změnit nemůže), zálohujte jen data modifikovaná po poslední záloze. Dá se použít již zmiňovaný find v kombinaci s cpio nebo tar. Hotová řešení možná na internetu budou. Jinak je to skript na pár řádek.

k3dAR

  • *****
  • 2 289
  • porad nemam telo, ale uz mam hlavu... nobody
    • Zobrazit profil
    • E-mail
Re:Rsync celého disku
« Odpověď #10 kdy: 19. 02. 2022, 14:09:44 »
je hezke jak tu vymejslite moznosti, ale to se vazne skoro nikdo nepozastavita nad zbytecnosti rucne delat sync 2 lokalnich disku misto pouziti raid1? ;-)

Re:Rsync celého disku
« Odpověď #11 kdy: 19. 02. 2022, 14:25:08 »
je hezke jak tu vymejslite moznosti, ale to se vazne skoro nikdo nepozastavita nad zbytecnosti rucne delat sync 2 lokalnich disku misto pouziti raid1? ;-)

Jj, ja som tam k tomu pripisal ze je spravne pouzit raid, ak zmrsi data uzivatel tak v oboch pripadoch bude vysledok rovnaky, ak mu rachne prvy disk, tak rsync alebo copy bude kopirovat len nez sa vyskytne chyba, kdezto raid tomu predide...
« Poslední změna: 19. 02. 2022, 14:27:13 od Death Walker »

Re:Rsync celého disku
« Odpověď #12 kdy: 19. 02. 2022, 21:04:19 »
je hezke jak tu vymejslite moznosti, ale to se vazne skoro nikdo nepozastavita nad zbytecnosti rucne delat sync 2 lokalnich disku misto pouziti raid1? ;-)

Jj, ja som tam k tomu pripisal ze je spravne pouzit raid, ak zmrsi data uzivatel tak v oboch pripadoch bude vysledok rovnaky, ak mu rachne prvy disk, tak rsync alebo copy bude kopirovat len nez sa vyskytne chyba, kdezto raid tomu predide...

No tak co muze nastat.

1. Crypto - na to je RAID naprd.
2. Fail disku tak, ze neni v systemu videt - rsync nic nesynchronuzuje. Pokud slozka/disk neni vubec pristupna, tak pochybuju, ze smaze druhy mirror. Nezkousel jsem, slo by overit vypnutim disku a pustenim rsync.
3. Fail disku tak, ze je filesystem, ale pres vadne sektory neprectu nektere soubory. Opet tezko testovatelne, ale pokud se soubor neprecte, asi ho nesmaze na mirroru.

Existuje lsyncd, ktery monitoruje zmeny v adresarich a potom dela jen pres rsync kopie. Pokud nezmenim soubor, tak se na prvnim disku muze stat cokoliv, druhy disk je stale ok.

Na foru OMV je plno threadu o degradade RAIDu, za mne je to pro muj ucel zbytene. Pak se k souborum nedostanu. Lsyncd je celkem dobre reseni.  Druha varaianta, pokud nechci uplne live zalohy, tak rsync pustit jednou za cas.


Re:Rsync celého disku
« Odpověď #13 kdy: 19. 02. 2022, 22:13:54 »
3. Fail disku tak, ze je filesystem, ale pres vadne sektory neprectu nektere soubory. Opet tezko testovatelne, ale pokud se soubor neprecte, asi ho nesmaze na mirroru.

No, rsync pouziva delta-transfer na vzdialene fs, na lokalne pouziva copy. Takze ak budete mat nastavene aby sa riadil podla mtime a nie podla obsahu(vyrazne pomalsie) tak v zalohe budete mat len to co sa mu podarilo precitat, minus to co pri chybe neflusne z buffferu.

Ale ono je to asi jedno, kedze zalohujete na disk, tak to zrejme nebude nic dolezite...

Re:Rsync celého disku
« Odpověď #14 kdy: 19. 02. 2022, 22:20:32 »
Ale napada ma este ina alternativa, pomocou
Kód: [Vybrat]
inotifywait -e modify si mozete vytvorit subor s cestami k zmenenym suborom a nim vymedzit co ma rsync synchronizovat. Aka je podpora inotify na ntfs, neviem najdete na webe...