Rozumiem, jak rsync działa na wysokim poziomie, ale są dwie strony. W przypadku S3 nie ma demona, o którym można mówić - no cóż, ale w zasadzie jest to tylko HTTP.
Istnieje kilka podejść.
s3rsync (ale to po prostu ściąga rsync do s3). Bezpośredni. Nie jestem pewien, czy chcę polegać na czymś zewnętrznym. Chciałbym, żeby s3 właśnie obsługiwał rsync.
Istnieje również kilka „klonów” rsync, takich jak duplikat, które twierdzą, że obsługują s3 bez wspomnianego bolt-on. Ale jak to zrobić? Czy przechowują plik indeksu lokalnie? Nie jestem pewien, jak to może być tak wydajne.
Oczywiście chcę używać s3, ponieważ jest tani i niezawodny, ale są rzeczy, do których rsync jest narzędziem, na przykład tworzenie kopii zapasowych ogromnego katalogu obrazów.
Jakie są tutaj opcje? Co stracę, używając duplikatu + s3 zamiast rsync + s3rsync + s3?
Odpowiedzi:
Ponieważ ta ostatnia kwestia została odpowiedział pojawiła się nowa linia poleceń narzędzie AWS
aws
.Może synchronizować , podobnie jak rsync, między pamięcią lokalną a s3. Przykładowe użycie:
Jeśli środowisko python w systemie jest poprawnie skonfigurowane, możesz zainstalować klienta AWS, używając
pip
:źródło
rsync
i zajęło mi to średnio 1 sekundę, a tylko zmiany zachodziły w trakcie mojego wolnego połączenia.aws s3 sync
z drugiej strony zajęło około 5 minut, ponownie przesyłając każdy plik.S3cmd narzędzie ma wielkie
sync
możliwości. Używam go do synchronizowania lokalnych kopii zapasowych, używając czegoś takiego:Te
--skip-existing
środki nie starają się suma kontrolna porównać istniejące pliki. Jeśli istnieje już plik o tej nazwie, po prostu szybko go pominie i przejdzie dalej. Istnieje również--delete-removed
opcja, która usunie pliki nieistniejące lokalnie, ale chcę zachować na S3 nawet te, które wyczyściłem lokalnie, więc nie używam tego.źródło
Nie chcesz nikomu mówić, co ma robić, ale czy mogę pomachać flagą w celu uzyskania informacji o duplikacie? lub inne rozwiązanie do tworzenia przyrostowych kopii zapasowych. Synchronizacja przebiega bardzo dobrze, ale jeśli wykonujesz kopię zapasową w nocy, co się stanie, jeśli nie zauważysz problemu przez dwa dni? Odpowiedź: Jest już za późno, twoje pliki lokalne i kopia zapasowa są dla siebie lustrzanym odbiciem i nie zawierają potrzebnych danych. Naprawdę powinieneś rozważyć przyrostowe kopie zapasowe lub migawki, abyś mógł odzyskać do określonego momentu w czasie i aby to zrobić skutecznie, potrzebujesz przyrostowych kopii zapasowych. A jeśli utrata danych jest scenariuszem końca świata, zachowaj kopie u różnych dostawców, o których nigdy nie wiesz, a potem możesz się zgubić, zhakować, kto wie.
Używam duplikatów i s3, jest w porządku, ale wymaga dużej mocy obliczeniowej. Ale robi przyrostowe kopie zapasowe. W sytuacji awaryjnej, gdy chcesz przywrócić katalog lub konkretny plik, jak to było w ostatnią środę lub w styczniu, bez przywracania innych plików na tej samej partycji, potrzebujesz przyrostowych kopii zapasowych i narzędzia, w którym możesz zażądać tylko tych plików, których potrzebujesz.
Mam crona, który wypełnia się co x miesięcy, w przeciwnym razie przyrostowy i usuwa starsze niż x miesięcy, aby utrzymać całkowite miejsce do przechowywania s3, w końcu robi status kolekcji, więc każdego ranka otrzymuję pocztę ze statusem. Musisz mieć to regularnie na oku, aby zauważyć, że kopia zapasowa nie działa.
Wymaga znacznej lokalnej przestrzeni tymczasowej, aby zachować lokalne podpisy, więc ostrożnie skonfiguruj katalog tymczasowy. To kopie zapasowe / mnt, z wyłączeniem różnych katalogów wewnątrz / mnt. Jest to dobre do tworzenia kopii zapasowych danych, do partycji systemowych używaj narzędzi do tworzenia obrazów Amazon lub migawek.
Skrypt PHP:
źródło
S3 to uniwersalny system przechowywania obiektów, który zapewnia wystarczającą elastyczność, abyś mógł zaprojektować sposób jego użycia.
Nie jestem pewien od twojego pytania problemów z rsync (innych niż indeksowanie) lub problemów z narzędziem „innej firmy”, na które natrafiłeś.
Jeśli masz duży zestaw plików o dobrej strukturze, możesz uruchomić wiele synchronizacji s3 w swoich podfolderach.
Mili ludzie z Amazon pozwalają również na import / eksport z przenośnego dysku twardego w celu przesłania dużego pliku do S3 lub EBS - http://aws.amazon.com/importexport/, którego można użyć do pierwszego przesłania.
Zobacz najlepsze praktyki Amazon s3 tutaj - http://aws.amazon.com/articles/1904
Jeśli chodzi o różne narzędzia, wypróbuj je i sprawdź, co będzie dla Ciebie najlepsze. Jeśli chodzi o ceny, istnieje obniżona cena za nadmiarowość, jeśli odpowiada ona Twoim potrzebom - http://aws.amazon.com/s3/pricing/
Ogólne zalecenia - mają szybki procesor wielordzeniowy i dobry potok sieciowy.
AKTUALIZACJA: Wzmianka o sumowaniu kontrolnym na S3
Odnośnie S3 przechowuje dane w parach kluczowych wartości i nie ma koncepcji katalogów. S3sync weryfikuje sumę kontrolną (S3 ma mechanizm wysyłania sumy kontrolnej jako nagłówka do weryfikacji - nagłówek Content-MD5). Najlepsze praktyki łączą część dotyczącą integralności danych, która zawiera ją szczegółowo. S3 pozwala wysyłać / weryfikować i pobierać sumy kontrolne. Jest wielu ludzi, którzy wykonują przyrostowe kopie zapasowe z podwójnością. Mimo że na S3 nie działa rsync, możesz robić sumy kontrolne, jak tu wspomniałem.
rsync to sprawdzone narzędzie, a większość nowoczesnych narzędzi używa tego samego algorytmu lub biblioteki rsync lub wywołuje zewnętrznie rsync.
źródło
Możesz także użyć klienta minio, znanego również jako mc. Użycie polecenia „mc mirror” wykona zadanie.
Możesz napisać prosty skrypt jako cronjob, który będzie synchronizował okresowo.
Mam nadzieję, że to pomoże.
źródło
-w
Teraz jest też flaga, która będzie używanafsnotify
do obserwowania zmian. Można go łatwo skonfigurować jako usługę systemową lub podobną.Nie jestem pewien, czy true rsync dobrze pasuje do Amazon.
Jak rozumiem, standardowy algorytm rsync oznacza, że klient oblicza skróty dla każdego bloku pliku, a serwer oblicza skróty dla swojej kopii i wysyła te skróty do klienta, co oznacza, że klient może określić, które bloki się zmieniły i wymagają przesłania.
To powoduje dwa problemy dla Amazon, ponieważ wiele skrótów musi zostać wysłanych przez Internet, a także wymaga mocy obliczeniowej do obliczenia wszystkich skrótów, które zwiększyłyby koszty Amazon - prawdopodobnie dlatego pozostawiają to zewnętrznym dostawcom, którzy mogą pobiera dodatkową opłatę za tę funkcję.
Jeśli chodzi o klony, to oczywiście przechowują gdzieś skróty, a gdzieś mogą się różnić w zależności od klonu. Mogłyby one przechowywać skróty jako osobny obiekt dla pliku w Amazon lub jako baza danych przechowywana w Amazon lub mogą przechowywać je lokalnie i zdalnie.
Są zalety i wady robienia tego w obu przypadkach. Jeśli skróty są przechowywane zdalnie w poszczególnych plikach, ciągłe ich pobieranie może być kosztowne. Jeśli skróty są przechowywane w bazie danych zdalnie, baza ta może stać się duża i ciągłe ich pobieranie i aktualizacja może być kosztowne. Jeśli skróty są przechowywane lokalnie, pomaga to zmniejszyć koszty, ale wprowadza inne komplikacje i problemy.
(Oczywiście Amazon ma inne usługi, więc możliwe byłoby prowadzenie bazy danych w Amazon DB)
Jako przykład wypróbowałem jeden wczesny klon rsync wiele lat temu. Nie zostało to napisane, aby wziąć pod uwagę strukturę cenową Amazon, i wydawało dużo http, aby odzyskać skrót każdego bloku, a ponieważ opłata Amazon za każde pobranie, oznaczało to, że podczas gdy część magazynu mojego rachunku spadła gwałtownie, część przeniesienia balonikowany.
Tracisz fakt, że dzięki rsync wiesz, że porównujesz pliki źródłowe z plikami kopii zapasowej. W przypadku duplikatów i innych klonów porównujesz pliki źródłowe z hashem, który został pobrany podczas tworzenia kopii zapasowej. Na przykład może być możliwy bezpośredni dostęp do S3 i zastąpienie jednego z jego plików bez ponownego obliczania skrótu lub aktualizacji bazy danych skrótu.
źródło
Po porównaniu wielu opcji wymienionych w tym wątku postanowiłem wybrać S3fs. Pozwala zamontować S3 jako lokalny system plików. Następnie możesz kontynuować i używać rsync w sposób, w jaki już go znasz.
To dobry tutorial na początek: Amazon S3 z Rsync
Autor wcześniej używał wspomnianego s3sync, ale następnie przeszedł na opcję S3F. Podoba mi się, ponieważ mam również inne foldery kopii zapasowych podłączone lokalnie przez SSHFS.
źródło