Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Ma ktoś jakiś ciekawy pomysł na zrobienie backupu danych z jednego pc na drugi wykorzystując do tego sieć? Chodzi generalnie o jak najmniejsze zjadanie zasobów systemowych (przepustowość łącza nie gra roli). Do tej pory jechałem na rsync + sshfs ale to jest chyba najgorsze rozwiązanie z możliwych -- może i najbezpieczniejsze ale znowu ta sieć, w której ten backup ma być robiony, jest zaufana i wszelkie szyfrowanie jest zbędne, przynajmniej jeśli chodzi o sam przesył danych przez sieć. Do tego dochodzi ten overhead z samego rsync, który niezbyt miło operuje na plikach co spowalnia drastycznie przesyłanie danych w przypadku gdy plików jest dużo, a ja zamierzam robić sync całych partycji i jest to jakieś 200G na partycję. Gdzieś mi się przez oczy przewineło również zaprzęganie wielu procesów rsync by przyśpieszyć proces kopiowania ale nie byłem w stanie tego odtworzyć u siebie i mi się lekki burdel zrobił na dysku docelowym, na szczęście łatwy do posprzątania. xD
Myślałem też by czasem nie przepuścić tego przez dd ale na necie znalazłem w sumie tylko info jak połączyć dd z ssh, co może i przyśpieszyłoby samo kopiowanie ale trzeba by przesłać całe 200G.
Przestrzeń na docelowym jak i źródłowym dysku jest zaszyfrowana i mi by zależało na pozbyciu się szyfrowania w ssh oraz uniknąć także szyfrowania samych danych przy zapisie. Czyli najlepszym rozwiązaniem chyba to by było puszczenie tego przez nieszyfrowany kanał przy i pomocy dd dane bezpośrednio zapisać na dysku docelowym. Pomijam również kompresję, bo tamten procek ma 2ghz z czego też obniżyłem mu taktowanie do 1ghz by zjadał jedynie 17W. xD Generalnie rzecz biorąc utylizacja procesora na 100% by była przy jakichś 50M/s, choć u mnie laptop i tak max przez sieć potrafi przesłać najwyżej 250mbitów/s (100mbit lan + wifi5g na usb2), czyli nieco ponad 30M/s.
Czy ktoś próbował robić takie cuda? xD
Ostatnio edytowany przez morfik (2015-03-27 15:18:30)
Offline
Rsync bez szyfrowania?
Dużo lźejsze od Rsynca są np Svn, Git albo Mercurial, ale musiałbyś się nieźle nagimnastykować z konfiguracją. xD
Poza tym jak backupuje tylko /etc, konfig kernela i własne skrypty, reszty i tak nie ma po co, bo po prostu nie ma tam nic tajnego.
A do tego Rsync starcza w zupełności.
Jeśli natomiast masz problem z partycją na dane, np /home, to albo RAID1 lokalnie, albo np DRBD.
DD możesz puścić nawet przez netcaty, ale ze stabilnością jest średnio.
Ja bym raczej na noc zapuścił Rsynca i rano zobaczył, co wyszło, albo np skołował obudowę na dyzia - z portem USB (czy wsadził zapasowego dyzia prosto do kompa), i skopiował w kompie na linii dyzio => dyzio.
Ostatnio edytowany przez Jacekalex (2015-03-27 15:34:18)
Offline
Jeśli chodzi o system, to ja mam 22M paczkę, w której mam tylko zmienione pliki konfiguracyjne (no i kopię systemu na innej partycji xD), poza tym, ja i tak już nigdy nie mam zamiaru wgrywać tej paczki na nowy systemie -- już raz mi to rozwaliło system, bo debian nie trzyma numerów grup i użytkowników i w zależności od kolejności wgrywania pakietów, te numerki ulegają zmianie -- kto to wymyślił? Ponad 65k numerów do dyspozycji i nie można tego ustandaryzować. xD
A te dane co chce sobie backupować to one nie wiele mają wspólnego z systemem, a tam jest tyle rzeczy, że gdyby mi to zdechło, to nie wiedziałbym w co łapy wsadzić by przywrócić to do stanu używalności. xD
Raid mnie za bardzo nie zadowala -- to laptop w końcu. Poza tym, taki obszerniejszy sync mi wystarczy raz na kilka tygodni.
Rsync to ja robię cały czas póki co ale to trwa niemiłosiernie długo -- mam do dyspozycji transfer teoretycznie 1G/s a leci mi to z taką prędkością:
44,273 100% 85.61kB/s 0:00:00 (xfr#41005, ir-chk=1116/129141)
Im większy plik tym lepiej. Dlatego najlepiej to by przesyłało pliki 30-40M przy pomocy tego rsync, czyli tyle ile jest ten mój staroć w stanie obsłużyć. Ale w przypadku setek czy tysięcy tych małych plików, to rsync przez sieć ssie. xD
A co do samego przełączania dysków, to mógłbym to robić ale to mało praktyczne. Póki co to nadaje zwykle przez ścianę przez wifi i tak latać z dyskiem na usb nie uśmiecha mi się za bardzo. xD
Co do DRBD, to poszukam info o tym, a z kolei sam git to może być ciekawe rozwiązanie i też nad tym pomyślę.
FTP? Uprawnienia chyba szlag trafi przy takim rozwiązaniu.
Ostatnio edytowany przez morfik (2015-03-27 16:08:31)
Offline
1795
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:14:44)
Offline
a co nfs albo iscsi nie bylo lepszym rozwiazaniem lub gfs2.
jest parallel nfs ktory mozne znacznie przyspieszyc kopiowanie.
mozna rowniez zobaczyc baclula, amanda
Offline
[quote=morfik]Rsync to ja robię cały czas póki co ale to trwa niemiłosiernie długo — mam do dyspozycji transfer teoretycznie 1G/s a leci mi to z taką prędkością:
44,273 100% 85.61kB/s 0:00:00 (xfr#41005, ir-chk=1116/129141)
[/quote]
Jeśli jest to backup tylko w jedną stronę, to czemu nie wykorzystasz [b]cp[/b] i [b]ssfs[/b]? Pliki się nadpiszą, kopiowanie będzie (chyba) szybsze i uprawnienia zostaną.
Offline
Jeśli jest to backup tylko w jedną stronę, to czemu nie wykorzystasz cp i ssfs? Pliki się nadpiszą, kopiowanie będzie (chyba) szybsze i uprawnienia zostaną.[/quote]
Zobacz jak to by wyglądało. Pierw wyciągasz dane i przesyłasz je via sshfs — tu masz pierwsze szyfrowanie danych. Następnie po odszyfrowaniu tych danych, zapisujesz je na dysk i tu ponownie je szyfrujesz, Mój stary PC nie wyrobi przy tym. xD Poza tym, takie reszyfrowanie jest zwyczajnie bez sensu. Dużo szybciej by poszło zrobić kopię całego dysku przy pomocy dd i ją przesłać xD
Ta bacula wygląda milo, tylko chyba ktoś w debianie zapomniał o aktualizacji pakietów. xD W każdym razie rzucę sobie na to okiem później.
NFS, w sumie fakt, to taki sshfs bez szyfrowania, tylko strasznie dużo błędów mi wyrzuca. Jeden typ błędu obszedłem via --omit-link-times --omit-dir-times ale nie wiem czy to jest bez znaczenia dla samego kopiowania. Inny typ to:Kod:
rsync: mkstemp "" failed: Permission denied (13)I nie mam pojęcia co z tym zrobić — tego typu błędów nie było przy kopiowaniu via ssh. Swoją drogą to dziwne są te błędy bo dotyczą plików, które mają końcówki typu .pMyC5U , mimo, że takich plików w ogóle nie ma. Pewnie jakieś tymczasowe pliki, z którymi rsync coś robi.
Tak sobie testuję ten rsync po nfs i strasznie się wlecze, jest z 10x gorzej niż na ssh. xD Zużycie proca na serwie jest w okolicy 2%, dysk ryje tak, że go słychać z drugiego końca pokoju. xD Coś mi wpadło w oczy, że to tak będzie się wlekło i chyba nic się nie da z tym zrobić i generalnie odradza się rsync via nfs.Ostatnio edytowany przez morfik (2015-03-27 18:51:43)
Offline
Chyba jednak będę robił to na kota. xD Jest to proste i praktycznie nie obciąża procka (15M/s zjada około 55%).
Na serwie się wklepuje:
# nc -l -s 192.168.1.166 -p 19000 | dd bs=2M of=/dev/sdb5
a na laptopie:
# dd bs=2M if=/dev/sda6 | pv -s 142G | nc 192.168.1.166 19000 9.53GiB 0:11:37 [13.5MiB/s] [> ] 6% ETA 2:41:28
Próbowałem to również skompresować dla celów testowych via:
# dd bs=2M if=/dev/sda6 | pv -s 142G | bzip2 -c | nc 192.168.1.166 19000 # nc -l -s 192.168.1.166 -p 19000 | bzip2 -d | dd bs=2M of=/dev/sdb5
Ale przy takim obciążeniu przesył spadł do 2M/s. xD
Póki co przez wifi przez ścianę leci około 14M/s także nie jest znowu aż tak źle. Mam nadzieję, że jak się to skończy to nie wipnie mi to całego dysku. xD
Trochę lipa, że całe 142G trzeba przesłać ale przynajmniej będę miał kompletny mirror partycji.
Offline
1798
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:14:47)
Offline
1799
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:14:49)
Offline
[quote=morfik]Czyli zostawić tak jak jest i tyle. Choć nie wiem czemu tylko 15M/s leci — powinno być trochę więcej.[/quote]
15 MB, to mniej więcej 54GB na godzinę, czyli puszczasz i idziesz spać.
Tylko jak się potem wysypie, to z dd może być jazda, bo tam nie ma za bardzo jak dokończyć sesji.
Ja bym jednak zatrudnił rsynca, tylko jakoś go inaczej oskrypcił, żeby np kilka procesów brało różne foldery, czy coś w tym rodzaju.
A poza tym trzeba było myśleć o backupie, jak na partycji było 2GB a nie 200GB. :D
Ostatnio edytowany przez Jacekalex (2015-03-27 21:09:12)
Offline
Tylko jak się potem wysypie, to z dd może być jazda, bo tam nie ma za bardzo jak dokończyć sesji.[/quote]
Jak nie ma? Załóżmy, że ci się wysypało po 102G, Ustawiasz odpowiednio bs, skip i seek i tak trochę przed dajesz, ja wiem, na 100G i jedziesz dalej. xD Ja już tak robiłem i działało bez problemu, z tym, że na odmontowanym voluminie. No i trzeba pamiętać by ustawić te same parametry w obu linijkach, bo ja raz przez przypadek ustawiłem w jednej bs 8M a w drugiej bs był domyślny czyli 512bajtów chyba, i jak dałem skip i seek w oparciu o różne bs, bo pod koniec kopiowania zadałem sobie pytanie "eee, to ten dysk ma więcej niż 300G?". I tak patrzę 301. 302, a po 320 stwierdziłem, że coś chyba jest nie tak i trochę lipa była bo wgrałem się w połowie dysku, a nie na początku odpowiedniej partycji. xD
Co do samych bs, to prześledziłem od 1 do 16 i w sumie nie widzę żadnej różnicy, zostawiłem 2M, bo nieco szybciej było niż w przypadku pozostałych.
A co do samego skrypcenia, to można by pomyśleć o sumach kontrolnych, czyli zrobić coś co będzie brało 10M wycinki z dysku docelowego i porównywało sumy kontrole z 10M wycinkami z dysku lokalnego, jeśli się będą różnić, to przesłać przez sieć ten wycinek i wgrać go w odpowiednim miejscu. Z tym, że nie mam pojęcia jak to zrobić. xD Gdzieś jakiś program do skanowania w poszukiwaniu badów miał podobny mechanizm ale już nie pamiętam co to było.Ostatnio edytowany przez morfik (2015-03-27 21:50:34)
Offline
1801
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:14:51)
Offline
1802
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:14:53)
Offline
Może faktycznie czasem przydaje się przestawić ten parametr na graniczną wartość odczytu dysku, czyli gdzieś 60-90M, bo wtedy spada ilość prób odczytu i przy tym nie trzeba pozycjonować głowicy 30-40 razy. I tu faktycznie może nieco transfer skoczyć ale czy ja wiem czy znowu aż tak znacznie. Jeśli dysk wykonuje jakieś dodatkowe operacje podczas synchronizowania danych, to ja bym to przestawił na te 100M. Ale jeśli popatrzysz na przykładzie sieci to masz tutaj transfer ledwo 15M i to jest niewiele w porównaniu do 95M (tyle ten dysk wyciąga), także buforowanie więcej danych niż 16M nie ma raczej większego sensu. Gdybym miał tutaj 50M/s, czy 80M/s to wtedy bym nawet i 150M starał się ustawić, bo wtedy dysk może nie nadążyć z odczytem i to faktycznie mogłoby spowolnić transfer i większy bufor by się jak najbardziej w takim przypadku przydał. Zresztą, nawet widać było przy bs= 1 2 4 8 i 16M, że to praktycznie na nic nie wpływało, dysk sam znowu nie był obciążony zatem nie miał problemów z dostępem do danych i transfer był w miarę liniowy i po zakończeniu wyszło w sumie:
dd bs=2M if=/dev/sda6 | pv -s 142G | nc 192.168.1.166 19000 141GiB 2:58:13 [13.6MiB/s] [============================> ] 99% 72644+0 records in 72644+0 records out 152345509888 bytes (152 GB) copied, 10693 s, 14.2 MB/s
I nawet wszsytko działa jak trza. xD
Offline
1803
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:14:54)
Offline
A co do samego skrypcenia, to można by pomyśleć o sumach kontrolnych, czyli zrobić coś co będzie brało 10M wycinki z dysku docelowego i porównywało sumy kontrole z 10M wycinkami z dysku lokalnego, jeśli się będą różnić, to przesłać przez sieć ten wycinek i wgrać go w odpowiednim miejscu. Z tym, że nie mam pojęcia jak to zrobić. xD Gdzieś jakiś program do skanowania w poszukiwaniu badów miał podobny mechanizm ale już nie pamiętam co to było.[/quote]
Przecież Rsync sprawdza sumy md5, między innymi dlatego jest wolniejszy od np dd/nc.Ostatnio edytowany przez Jacekalex (2015-03-28 17:10:40)
W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem para bellum ;) | Pozdrawiam :)
Offline
rdiff-backup
Offline
[quote=uzytkownikubunt]Szczerze mówiąc na początku rozumiałem to tak, jakby ta maksymalna przepustowość rzędu 14 MB/s mogła być spowodowana odczytywaniem i zapisywaniem danych z/na HDD. Jeśli jednak jesteś pewien, że to sieć jest wąskim gardłem to pewnie nie ma sensu grzebać.[/quote]
Ja mam dwie stare sieciówki podpięte i zbondowane w tym starym pc, w sumie powinny dać 200mbitów, czy tam trochę mniej. Z tym, że tutaj na laptopie słałem to przez wifi5g ale moja karta wifi niby jest na usb3 ale podpięta do portu usb2 i myślę, że więcej przez te porty na tym laptopie nie da się pociągnąć:
[img]http://i.imgur.com/dF9bvxK.png[/img]
Poza tym, to ten adapter wifi coś mi bardzo dużo pakietów w drop daje, być może sterownik nie jest jeszcze dopracowany, w końcu go muszę sam kompilować by w ogóle ta karta działała u mnie. xD
Jacekalex, z tym, że tam można wybrać sprawdzanie po sumach, datach i rozmiarze:
-c, --checksum skip based on checksum, not mod-time & size
Ja nie korzystałem z -c, jeśli bym spróbował, to by mi pierw przehashował całe 150G a potem przesłał połowę tego i lepiej już po datach i rozmiarach jechać. xD Sam dd ze sprawdzaniem sum by był szybszy pewnie.
Offline
Time (s) | Query |
---|---|
0.00010 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00092 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='13.59.134.65' WHERE u.id=1 |
0.00188 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '13.59.134.65', 1732702896) |
0.00073 | SELECT * FROM punbb_online WHERE logged<1732702596 |
0.00041 | SELECT topic_id FROM punbb_posts WHERE id=285153 |
0.00028 | SELECT id FROM punbb_posts WHERE topic_id=27220 ORDER BY posted |
0.00029 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=27220 AND t.moved_to IS NULL |
0.00027 | SELECT search_for, replace_with FROM punbb_censoring |
0.00109 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=27220 ORDER BY p.id LIMIT 0,25 |
0.00087 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=27220 |
Total query time: 0.00688 s |