Přenos 6 TB pomocí rsync

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Přenos 6 TB pomocí rsync
« Odpověď #15 kdy: 12. 12. 2013, 20:52:18 »
To na toho osla mate namontovano pres sshfs? Neni mozne, ze to pres sshfs spatne reportuje vyuziti FS? Neni mozne, ze sshfs neco jinak zaokrouhluje nebo neco a vy dostanete spatny udaj? Zkousel jste to po prihlaseni pres ssh? Jestli se dobre pamatuji, tak kdysi sshfs snad ani neumelo vylistovat velikost souboru v adresari a vracelo to nulu nebo co.

Vite, jestli v tech datech mate harlinky, jak nekdo zminil? Rsync vam z nich nadela oddelene soubory, pokud mu parametrem nereknete, ze ma ty hardlinky hledat, ale pak to bezi strasne pomalu.


dustin

Re:Přenos 6 TB pomocí rsync
« Odpověď #16 kdy: 12. 12. 2013, 21:28:48 »
Pro spoustu souborů (milióny) není 6,6 a 6,8TB místa na disku žádný zásadní rozdíl. Jak již zde bylo řečeno, jako první  bych udělal výpis všech souborů s jejich velikostmi a porovnal.

Jimm

Re:Přenos 6 TB pomocí rsync
« Odpověď #17 kdy: 12. 12. 2013, 21:37:02 »
Tak já to zkusím ještě jednou. TMP vám zvětší velikost. Někdo oponoval, že jen jeden soubor. Ale co když to jede ve více threadech, což bych považoval za samozřejmost?

dustin

Re:Přenos 6 TB pomocí rsync
« Odpověď #18 kdy: 12. 12. 2013, 21:54:45 »
Když už je to nakopírované, na opakované zkopírování (synchronizaci) je rsync ideální. Na kompletní novou kopii je rychlejší cp nebo tar se streamem po síti (bez ssh, napřímo přes netcat).

Jinak rsync pro hodně souborů žere spoustu paměti.

Jimm

Re:Přenos 6 TB pomocí rsync
« Odpověď #19 kdy: 12. 12. 2013, 22:12:30 »
A pokud není paměť, swap. A jsme tam kde jsem říkal?


Re:Přenos 6 TB pomocí rsync
« Odpověď #20 kdy: 13. 12. 2013, 10:58:59 »
Co se týká rozdílu velikostí, přidávám se k odhadu ostatních výše. Rozdíl může být díky jiným parametrům souborovému systému.
Zobrazovaná hodnota při použití "du -hs" bere v potaz fyzické rozložení dat na něm a je to vždy víc, než prostý součet velikostí souborů. Takže např. pokud chci základně srovnat celkové velikosti zkopírovaných adresářů mezi dvěma počítači, téměř nikdy to nesedí. GNU varianta utility du, používaná v Linuxu, má ale i přepínač "--aparent-size", s kterým sčítá jen čisté velikosti.
Jinak používám rsync poměrně dost na přesuny velkého množství dat i mezi různými platformami a nedá se paušálně říct, že je vždy rychlostně lepší použít nativní rsync přenos (rsync -> rsyncd). Většinou vychází líp použití nad lokálně připojeným NFS, i když to samozřejmě není pravidlem. Další věc, která pomáhá, je obrácení procesu, kdy si připojím zdrojový server a "tahám" data na lokální disk. V tomto případě pomůže i volba "--preallocate", pokud cílový souborový systém používá extenty (ext4, xfs).
Jinak rsync nepřenáší víc souborů naráz, což beru pro tohle použití (přesun dat mezi servery s rychlým úložištěm v LAN) jako jeho největší nevýhodu, protože na současných konfiguracích (rychlost sítě a disků) by se z toho dalo dostat daleko víc. Proto se občas vyplatí si zdrojová data rozdělit do víc adresářů a pak pustit několik rsynců paralelně.

Michal

Re:Přenos 6 TB pomocí rsync
« Odpověď #21 kdy: 13. 12. 2013, 13:50:44 »
Co se týče rozdílu velikostí, může to mít asi tak milion důvodů. Vzhledem k tomu, že jediné, co víme, je název programu, který byl použit pro kopírování, těžko některé z důvodů vyloučit. Mohou to být různé souborové systémy, různé konfigurace souborového systému, data mohou být jinak uložená (hardlinky, řídké soubory), mohou tam být soubory s jiným obsahem (na cílovém disku už něco bylo a rsync nebyl nastavený, aby to smazal, nějaké soubory se po zkopírování změnily nebo smazaly na zdrojovém disku)...

Pokud tazatele zajímá důvod, proč jsou velikosti rozdílné, bude asi muset prozradit další informace. Bylo by vhodné taky zjistit, jestli se velikostí liší "vše", nebo jestli se postupným porovnáním jednotlivých podadresářů nedí ukázat na jedno místo, které způsobuje ten rozdíl.

Kolemjdoucí

Re:Přenos 6 TB pomocí rsync
« Odpověď #22 kdy: 13. 12. 2013, 13:53:34 »
Další věc, která pomáhá, je obrácení procesu, kdy si připojím zdrojový server a "tahám" data na lokální disk. V tomto případě pomůže i volba "--preallocate", pokud cílový souborový systém používá extenty (ext4, xfs).

Na --preallocate pozor, může se to bít s delayed allocation a výkon nakonec může být nižší!

Re:Přenos 6 TB pomocí rsync
« Odpověď #23 kdy: 13. 12. 2013, 16:07:58 »
Další věc, která pomáhá, je obrácení procesu, kdy si připojím zdrojový server a "tahám" data na lokální disk. V tomto případě pomůže i volba "--preallocate", pokud cílový souborový systém používá extenty (ext4, xfs).
Na --preallocate pozor, může se to bít s delayed allocation a výkon nakonec může být nižší!

To za určitých okolností samozřejmě může nastat a je potřeba vždy ozkoušet přínos na konkrétní konfiguraci a typu přenášených dat. Nemyslel jsem to tak, že to automaticky zrychlilo ve všech případech proces synchronizace, ale dle mých zkušeností převážně s XFS a video daty (sekvence obrázků a mnohagigabytové soubory) to stojí za vyzkoušení, zejména při použití paralelního spouštění více rsync procesů, jak jsem psal. Jinak to samozřejmě vždy záleží na implementaci systém. volání fallocate() u konkrétního soub. systému.

Michal