2012-03-25 11 views
6

Chciałbym wiedzieć, jakie jest najlepsze rozwiązanie do przechowywania dużej ilości zdjęć na wielu serwerach, takich jak Google czy Facebook.Przechowuj dużą liczbę zdjęć na wielu serwerach.

Wygląda na to, że przechowywanie w systemie plików jest lepsze niż w bazie danych, ale co z użyciem bazy danych noSQL DB, takiej jak cassandra.

Czy Google/Facebooke przechowuje ten sam obraz na wielu serwerach do równoważenia obciążenia. Jak to działa? Jakie jest najlepsze rozwiązanie?

Thx dużo

+0

Cassandra będzie działać. Możesz również przyjrzeć się rozwiązaniom do przechowywania plików rozproszonych, takim jak MogileFS, HDFS, itp. – DougW

Odpowiedz

4

Nie ma nic złego w podejściu, które stosujesz. Jak już wspomniano, istnieją zastrzeżenia, jednak istnieją możliwości, a wiele osób i firm z powodzeniem zapisuje pliki w Apache Cassandra.

  • zjffdu/cassandra-fs to pierwsze rozwiązanie, na które mogę się przyjrzeć. To ostatnie zostało opracowane dwa lata temu, więc byłbym ostrożny, pracując po raz pierwszy, po wyjęciu z pudełka. Apache Cassandra jest teraz w wersji 1.0.x, z 1.1.x na drodze. 2 lata temu, to była wersja 0.6.x może? Wiele zmieniło się & ulepszone w ciągu 24 miesięcy.
  • semantico/cassandra-fs widły ... ostatni dotknął 7 miesięcy temu
  • favoritas37/cassandra-fs inny widelec ... ostatni dotknął 3 miesiące temu i wskazuje na zgodność z 1.0.5 gałęzi Cassandry

The principal za to aby pobrać plik, podzielić go na zestaw porcji i przechowywać te porcje jako kolumny z rzędu. Podczas pobierania pociągnij każdą kolumnę, ponownie zmontuj plik i uruchom voila.

Cassandra FAQ: large file and blog storage

... akta około 64Mb i mniejsze mogą być przechowywane w bazie danych bez dzielenia ich na mniejsze kawałki ...

Lucene indexes in Cassandra

. ... pliki są podzielone na bloki (których rozmiary są ograniczone), gdzie każdy blok (patrz FileBlock) jest przechowywany jako wartość kolumny w odpowiednim wierszu. ..

Otrzymasz więcej pozytywnych opinii na temat listy mailingowej Cassandra i na kanale IRC.

Wreszcie, to jest z 2009 r. I napisane przez ludzi na Facebooku, które powinny w jakiś sposób pomóc odpowiedzieć na więcej podstawowych pytań, które masz: Cassandra - A Decentralized Structured Storage System.

+0

Thx za pomoc człowieka – Naster

-1

Jeśli chcesz przechowywać w „chmurze” środowisku jesteś najlepszy będzie roztworem chmurze, który ma zasoby, takie jak Google App Engine i Amazon Web Services. Nie będziesz w stanie ustawić własnego, jeśli to jest pytanie. Będzie to kosztować miliony dolarów i zasobów, aby nimi zarządzać. I tak, Google i Facebook wykorzystują tysiące serwerów do dystrybucji swoich danych w "chmurach".

+0

Nie chcę przechowywać w CHMURZE, chcę zacząć od 1 serwera, a następnie 2 ...... To nie będzie kosztować milionów. Też chcę równoważenia obciążenia. – Naster

+0

Powiedziałeś, że chcesz przechowywać ten sam obraz w wielu serwerach, prawda? To jest przechowywanie danych w "chmurze". Technicznie nie musi to być architektura zewnętrzna. Możesz toczyć własną chmurę, ale nie lekceważ kosztu nawet 2 serwerów. W jaki sposób zamierzasz zagwarantować spójność tych dwóch serwerów? To byłoby bardzo trudne do samodzielnego rzucenia. Możesz wypróbować lub kupić oprogramowanie specjalnie dla niego zaprojektowane, które nie jest tanie. Następnie, gdy zaczniesz skalować od 2 serwerów, gdzie rzeczy naprawdę się bawią. Czy szukasz własnego oprogramowania lub kupujesz dla niego oprogramowanie? – DavidB

+0

Brak rozwiązania open source? Cassandra wydaje się być kimś w rodzaju ... – Naster

1

Uwaga, wiem, że to stare pytanie, chcę tylko zrównoważyć niektóre błędne wyobrażenia na temat kosztów, ponieważ robię to teraz jako test.

W przeciwieństwie do tego, co myśli DavidB, nie kosztuje milionów - nawet jeśli miałbyś uruchomić dedykowany sprzęt, łatwo byłoby Ci być kilka tysięcy miesięcznie (BTDT, jeden z moich klientów uruchamia klaster z 8 węzłami dla około 800 USD/miesiąc). Powiedział, że to bóle głowy, których chcesz uniknąć, a Cassandra na EC2 jest znacznie łatwiejsza w obsłudze.

Można łatwo uruchomić znaczną chmurę produkcyjne do EC2 za mniej niż $ 1000/miesiąc i można zrobić R & D chmury za mniej niż 100 $/miesiąc (I wydać około $ 52 w zeszłym miesiącu na klastrze testowym 10 maszyny). Gorąco polecam używanie systemu TurnKey Linux do zarządzania farmą R & D, ponieważ ich narzędzia pozwolą na migrację instancji z komputera do prawie każdej zwirtualizowanej platformy hostingowej w ciągu kilku minut (i na odwrót). Dodatkowo mają naprawdę zgrabną integrację z EC2.

Dla naprawdę poważnych poziomów ruchu Pintrest stwierdził kiedyś spędzają $ 15 do $ 50/godz w zależności od obciążenia serwera, automatyczne skalowanie, aby sprostać wymaganiom ruchu, patrz http://www.theregister.co.uk/2012/04/30/inside_pinterest_virtual_data_center/ szczegóły

Rzeczywisty koszt jest w konfiguracji i zarządzania twojej rozproszonej instancji Cassandry. Na szczęście NetFlix właśnie wypuścił mnóstwo narzędzi do zarządzania właśnie w tym celu. Możesz je znaleźć tutaj: https://github.com/netflix - jest też mnóstwo ciekawych filmów na temat korzystania z AWS przez NetFlix, w szczególności przenoszenia rzeczy od Cassandry do S3 - zobacz ich blog tutaj http://techblog.netflix.com/2012/12/videos-of-netflix-talks-at-aws-reinvent.html

Powiązane problemy