Korzystanie z RSYNC z Amazon S3 [zamknięte]

39

Jestem zainteresowany wykorzystaniem Amazon S3 do tworzenia kopii zapasowych obrazów naszego serwera ~ 100 GB (utworzonych za pomocą narzędzi do tworzenia kopii zapasowych Acronis)

Oczywiście przesyłanie do S3 każdej nocy byłoby kosztowne, zarówno pod względem przepustowości, jak i kosztów. Zastanawiam się nad użyciem rsync z S3 i natknąłem się na s3rsync. Zastanawiałem się tylko, czy ktoś miał jakieś doświadczenie w korzystaniu z tego lub innego narzędzia?

alex
źródło
1
Jedną z rzeczy, które zauważyłem w s3rsync, jest to, że obecnie masz ograniczoną pojemność do 10 GB (zobacz FAQ). Możesz mieć wiele segmentów, ale musisz podzielić dane na 10 GB fragmentów.
dana

Odpowiedzi:

35

Niedawno natknąłem się na ten wątek w Google i wygląda na to, że krajobraz nieco się zmienił od czasu zadania pytania. Większość zaproponowanych tutaj rozwiązań nie jest już obsługiwana lub stała się komercyjna.

Po frustracjach związanych z FUSE i innymi dostępnymi rozwiązaniami, zdecydowałem się napisać własny wiersz rsync „klon” dla S3 i Google Storage przy użyciu Pythona.

Możesz sprawdzić projekt na GitHub: http://github.com/seedifferently/boto_rsync

Innym projektem, o którym niedawno dowiedziałem się, jest „dwulicowość”. Wygląda nieco bardziej rozbudowany i można go znaleźć tutaj: http://duplicity.nongnu.org/

Mam nadzieję że to pomoże.

AKTUALIZACJA

Zespół Python z AWS ciężko pracuje nad opartym na boto projektem CLI dla swoich usług w chmurze. Wśród dołączonych narzędzi jest interfejs dla S3, który powiela (i pod wieloma względami zastępuje) większość funkcji udostępnianych przez boto-rsync:

https://github.com/aws/aws-cli

W szczególności syncpolecenie można skonfigurować tak, aby działało prawie dokładnie tak jak rsync:

http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html

Seth
źródło
świetny wkład! dzięki, a wkrótce dam ci kod. Czy masz jakieś niezbędne informacje do nauki python / django? Na zdrowie
iainlbc,
Jakie zalety / różnice ma twój program w porównaniu do S3cmd i S3sync?
James McMahon
@JamesMcMahon s3cmd / s3sync to bardziej w pełni funkcjonalne interfejsy CLI dla S3 (zarządzanie segmentami, zawartością listy itp.), Podczas gdy boto-rsync jest jedynie próbą naśladowania rsync.
Seth
Istnieje bezpiecznik s3fs: github.com/s3fs-fuse/s3fs-fuse, który działa całkiem dobrze i można go połączyć z rsync, jednak nie jestem pewien, jak skutecznie.
Stanislav
Byłoby świetnie, gdybyś mógł wyjaśnić, w jaki sposób „polecenie synchronizacji można skonfigurować tak, aby działało prawie dokładnie tak jak rsync”.
trusktr
10

Miałem też szczęście z S3cmd i S3sync , które są darmowe.

Terrell
źródło
+1 dla S3cmd -.-
fnkr
S3cmd ma problem z dużymi numerami plików (> 300 tys. Plików). Zjada około 1 gram na 100 tys. Plików pamięci roboczej, więc warto pamiętać o tym ograniczeniu.
Tuxie,
7

W zależności od tego, jak tworzone są obrazy Acronis, nie jestem pewien, czy jakikolwiek program rsync zaoszczędziłby przepustowość. Obrazy Acronis są pojedynczymi plikami, więc rsync nie byłby w stanie odczytać w nich tylko kopii zapasowej zmian. Nie jestem również pewien, jakie obrazy serwera tworzysz, ale skoro powiedziałeś, że 100 GB, założę, że jest pełny? Obraz przyrostowy znacznie zmniejszyłby nocny rozmiar obrazu, oszczędzając w ten sposób przepustowość. Możesz również rozważyć zapisanie obrazów w alternatywnej lokalizacji niż S3, na przykład na taśmie, i przechowywać je poza witryną.

churnd
źródło
4
Nie, rsync tak nie działa. Działa z każdym typem pliku i nie wymaga żadnej wiedzy na temat wewnętrznych elementów jego synchronizacji. Zamiast tego porównuje skróty fragmentów pliku i przesyła tylko te fragmenty, które się różnią. en.wikipedia.org/wiki/Rsync
Alan Donnelly
2
i żaden uchwyt nie będzie pasował, ponieważ jakakolwiek niewielka zmiana w plikach obrazu spowoduje zmianę całego pliku z powodu kompresji. Nawet przy wyłączonej kompresji nie jestem pewien, czy synchronizowałby dobrze, ponieważ pliki w obrazie mogą zmieniać kolejność i są dopasowywane w sposób ciągły, zamiast po prostu znaleźć taki sam fragment.
JamesRyan
4

Nigdy nie próbowałem S3rsync.

Używam duplikatów do tworzenia kopii zapasowych poza witryną. Obsługuje przyrostowe kopie zapasowe na S3, chociaż tak naprawdę nie oszczędza przepustowości ze względu na protokół pamięci Amazon S3, w którym jakakolwiek modyfikacja pliku zmusza do ponownego przesłania całego nowego pliku. W każdym razie duplikat przesyła tylko różnice od ostatniej przyrostowej kopii zapasowej.

Dzięki Duplicity nie będziesz musiał przechodzić przez inny serwer, jak S3sync, jednak jeśli zaszyfrujesz swoje dane, warto spróbować S3sync.

Lessfoe
źródło
1

S3 ma również dodatkową usługę o nazwie AWS Import / Export, która pozwala wysłać dysk USB z początkowym zestawem danych 100 Gb i załaduje go do chmury S3 za pomocą narzędzi zaplecza w ich centrach danych. Gdy już znajdziesz 100 Gb, możesz każdej nocy wykonywać kopie zapasowe różnicowe, aby wykonać kopię zapasową wszystkiego, co się zmieniło.

Strona jest http://aws.amazon.com/importexport/

Jeśli większość twoich danych jest dość statyczna, byłaby to dobra opcja, jeśli całe 100 Gb danych zmienia się codziennie, to ci to nie pomoże.

monkeymagic
źródło
3
Jak twoim zdaniem „ładują” dysk flash 128 GB? Wyobrażam sobie największy na świecie hub usb, panel połączeniowy USB od podłogi do sufitu, 3/4 dysków flash dostarczonych przez klientów, wszystkie z tyłu jednego serwera typu blade.
Paul
Co za obraz !! W rzeczywistości prawdopodobnie jakiś biedak w ciemnym kącie centrum danych z największym na świecie hubem USB podłączonym do swojego komputera :)
monkeymagic
0

Możesz wypróbować klienta minio, znanego również jako „mc”. mc zapewnia minimalne narzędzia do pracy z systemami pamięci masowej i systemami plików zgodnymi z Amazon S3.

mc implementuje następujące polecenia

  ls        List files and folders.
  mb        Make a bucket or folder.
  cat       Display contents of a file.
  pipe      Write contents of stdin to one or more targets. When no target is specified, it writes to stdout.
  share     Generate URL for sharing.
  cp        Copy one or more objects to a target.
  mirror    Mirror folders recursively from a single source to many destinations.
  diff      Compute differences between two folders.
  rm        Remove file or bucket [WARNING: Use with care].
  access    Manage bucket access permissions.
  session   Manage saved sessions of cp and mirror operations.
  config    Manage configuration file.
  update    Check for a new software update.
  version   Print version.

Możesz użyć polecenia mirror, aby wykonać operację. „localdir” to katalog lokalny i S3 [alias dla Amazon S3] oraz „remoteDir” nazwa twojego segmentu na S3.

$ mc mirror localdir/ S3/remoteDir

Możesz również napisać cronjob dla tego samego. Również w przypadku oburzenia sieci możesz użyć „$ mc session”, aby ponownie rozpocząć przesyłanie od tego określonego czasu.

PS: Wnoszę wkład w projekt minio i chciałbym uzyskać Twoją opinię i wkład. Mam nadzieję, że to pomoże.

koolhead17
źródło
-1

Nowa wersja Jungle Disk Server Edition (beta) może Ci się przydać. Ma funkcję usuwania duplikatów na poziomie bloków, więc jeśli obrazy Acronis mają ze sobą coś wspólnego, znacznie zmniejszy to ilość kopii zapasowej. Funkcje są idealne do tworzenia kopii zapasowych serwerów. Sprawdź informacje o wersji.

Testuję wersję beta od dwóch tygodni i oprócz kilku drobnych problemów z GUI, które z pewnością zostaną naprawione w finale, jestem podekscytowany produktem.

Martijn Heemels
źródło