2012-03-25 45 views
6

Tôi muốn biết giải pháp tốt nhất để lưu trữ số lượng lớn hình ảnh trên nhiều máy chủ như google, facebook là gì.Lưu trữ số lượng lớn hình ảnh trên nhiều máy chủ

Dường như việc lưu trữ trong hệ thống tập tin tốt hơn thì bên trong cơ sở dữ liệu nhưng điều gì về việc sử dụng một DB noSQL như cassandra.

Google/Facebooke có lưu trữ cùng một hình ảnh trong nhiều máy chủ để cân bằng tải không. Làm thế nào nó hoạt động? giải pháp tốt nhất là gì?

Thx rất nhiều

+0

Cassandra sẽ hoạt động. Bạn cũng có thể muốn xem xét các giải pháp lưu trữ tệp phân tán như MogileFS, HDFS, v.v. – DougW

Trả lời

4

Không có gì sai với cách tiếp cận bạn đang thực hiện. Như đã đề cập, có những lưu ý, tuy nhiên, khả năng tồn tại, và rất nhiều người và công ty đang lưu trữ thành công các tệp trong Apache Cassandra.

  • zjffdu/cassandra-fs là giải pháp đầu tiên tôi xem xét. Bây giờ, điều này được phát triển lần cuối cách đây 2 năm, vì vậy tôi sẽ thận trọng khi làm việc lần đầu tiên, ra khỏi hộp. Apache Cassandra hiện đang ở phiên bản 1.0.x, với 1.1.x trên đường. 2 năm trước, đó là phiên bản 0.6.x có thể? Rất nhiều đã thay đổi & được cải thiện trong 24 tháng.
  • semantico/cassandra-fs một ngã ba ... cuối cùng chạm 7 months ago
  • favoritas37/cassandra-fs ngã ba khác ... chạm vào cuối 3 tháng trước và chỉ ra khả năng tương thích với 1.0.5 chi nhánh của Cassandra

Hiệu trưởng đằng sau này là để lấy một tệp, chia nhỏ nó thành một tập hợp các khối và lưu trữ các khối đó thành các cột trong một hàng. Khi truy xuất, kéo từng cột, tập hợp lại tập tin và thì đấy.

Cassandra FAQ: large file and blog storage

... file khoảng 64MB và nhỏ có thể dễ dàng lưu trữ trong cơ sở dữ liệu mà không cần tách chúng thành những phần nhỏ hơn ...

Lucene indexes in Cassandra

. ..its tập tin được chia thành các khối (có kích thước được giới hạn), trong đó mỗi khối (xem FileBlock) được lưu trữ như là giá trị của một cột trong hàng tương ứng. ..

Bạn sẽ nhận được phản hồi tích cực hơn về danh sách gửi thư Cassandra và trên kênh IRC.

Cuối cùng, đây là từ năm 2009 và được viết bởi những người ở Facebook, bạn nên tìm cách trả lời thêm các câu hỏi cơ bản mà bạn có: Cassandra - A Decentralized Structured Storage System.

+0

Thx cho người trợ giúp – Naster

-1

Nếu bạn muốn lưu trữ trong một "đám mây" môi trường bạn đang tốt nhất đi với một giải pháp điện toán đám mây có các nguồn tài nguyên như Google App Engine hoặc Amazon Web Services. Bạn sẽ không thể tự thiết lập nếu đó là câu hỏi. Nó sẽ tốn hàng triệu đô la và các nguồn lực để quản lý chúng. Và có, Google và Facebook sử dụng hàng nghìn máy chủ để phân phối dữ liệu của họ trong "đám mây".

+0

Tôi không muốn lưu trữ vào CLOUD, tôi muốn bắt đầu với 1 máy chủ sau đó 2 ...... Sẽ không tốn hàng triệu đô la. Tôi cũng muốn cân bằng tải. – Naster

+0

Bạn nói rằng bạn muốn lưu trữ cùng một hình ảnh trong nhiều máy chủ phải không? Đó là lưu trữ dữ liệu trong "đám mây". Về mặt kỹ thuật, nó không phải là một kiến ​​trúc của bên thứ ba. Bạn có thể cuộn đám mây của riêng bạn nhưng không đánh giá thấp chi phí làm ngay cả 2 máy chủ. Làm thế nào bạn sẽ có thể đảm bảo tính nhất quán của 2 máy chủ đó? Điều đó sẽ vô cùng khó khăn để cuộn của riêng bạn. Bạn có thể thử hoặc mua phần mềm được thiết kế đặc biệt cho nó không hề rẻ. Sau đó, khi bạn bắt đầu mở rộng quy mô từ 2 máy chủ, nơi mọi thứ trở nên thực sự thú vị. Bạn đang tìm kiếm phần mềm của riêng bạn hoặc mua cho nó? – DavidB

+0

Không có giải pháp nguồn mở nào? Cassandra có vẻ là một loại ... – Naster

1

Lưu ý, tôi biết đây là một câu hỏi cũ, tôi chỉ muốn cân bằng một số quan niệm sai lầm về chi phí khi tôi đang làm điều này ngay bây giờ như là một thử nghiệm.Không giống như những gì DavidB nghĩ, nó không tốn hàng triệu - ngay cả khi bạn chạy phần cứng lưu trữ chuyên dụng, bạn có thể dễ dàng dưới một vài nghìn/tháng (BTDT, một trong những khách hàng của tôi đang chạy một cụm 8 nút cho khoảng 800 đô la/tháng). Điều đó nói rằng, đó là một nhức đầu bảo trì bạn muốn tránh, và Cassandra trên EC2 là dễ dàng hơn để đối phó với.

Bạn có thể dễ dàng chạy một đám mây sản xuất đáng kể trên EC2 với giá dưới $ 1000/tháng và bạn có thể làm R & D đám mây với giá dưới $ 100/tháng (tôi chi khoảng $ 52 vào tháng trước cho một cụm thử nghiệm 10 máy). Tôi khuyên bạn nên sử dụng TurnKey Linux để quản lý việc cung cấp & trang trại R & D của bạn, vì công cụ của họ sẽ cho phép bạn di chuyển các phiên bản từ máy tính để bàn sang bất kỳ nền tảng lưu trữ ảo nào trong vài phút (và ngược lại). Thêm vào đó họ có tích hợp thực sự trơn tru với EC2.

Đối với mức độ thực sự nghiêm trọng của giao thông, Pintrest một lần nói rằng họ chi tiêu $ 15 đến $ 50/giờ tùy thuộc vào tải máy chủ, tự động mở rộng quy mô để đáp ứng nhu cầu giao thông, xem http://www.theregister.co.uk/2012/04/30/inside_pinterest_virtual_data_center/ để biết chi tiết

Chi phí thực sự là trong thiết lập và quản lý của cá thể Cassandra được phân phối của bạn. May mắn thay, NetFlix vừa phát hành một tấn công cụ quản lý chỉ cho việc này. Bạn có thể tìm thấy chúng ở đây: https://github.com/netflix - cũng có rất nhiều video thú vị về việc sử dụng AWS của NetFlix, đặc biệt là di chuyển nội dung từ Cassandra sang S3 - xem blog của họ tại đây http://techblog.netflix.com/2012/12/videos-of-netflix-talks-at-aws-reinvent.html

Các vấn đề liên quan