Có phải là một ý tưởng tốt để lưu trữ khối lượng Docker trong glusterfs?


24

Tôi hiện đang suy nghĩ về việc di chuyển một số máy chủ và ứng dụng của chúng tôi sang môi trường coreOS . Một trong những vấn đề tôi thấy ở đây là việc quản lý dữ liệu liên tục vì coreOS không xử lý khối lượng Docker khi di chuyển một container sang một máy mới. Sau một số nghiên cứu, tôi thấy glusterFS tự nhận là một hệ thống tệp cụm có thể giải quyết tất cả các vấn đề của tôi.

Ý tưởng hiện tại của tôi là thế này: Tôi có một thùng chứa glusterFS chạy như một thùng chứa đặc quyền trên mỗi máy coreOS của tôi và để lộ một bộ lưu trữ, /mnt/glusterchẳng hạn. Trong tôi Dockerfiletôi xác định rằng tất cả các tập của tôi nên được gắn trên đường dẫn này.

Điều tiếp theo tôi xem xét là những container nào sẽ có được khối lượng riêng của chúng và những container nào sẽ được chia sẻ một. Ví dụ, mỗi mysqlcontainer sẽ có khối lượng riêng vì nó có thể tự xử lý sao chép. Tôi không muốn làm hỏng điều đó. Máy chủ web phục vụ cùng một trang web sẽ sử dụng đúng cùng một âm lượng cho những thứ như "hình ảnh người dùng đã tải lên", v.v. vì họ không thể sao chép những dữ liệu đó.

Có ai đã thử một cái gì đó như thế này hoặc có bất cứ điều gì tôi đã bỏ lỡ?


1
Tôi đã thực hiện một bằng chứng về khái niệm này và có thể cho bạn biết rằng nó hoạt động, nhưng trước khi bạn nhảy vào Gluster, hãy chắc chắn rằng bạn hiểu hồ sơ điều chỉnh của nó. Do cách Gluster nhạy cảm với độ trễ của đĩa (tương tự như etcd), nó có thể làm cho các ứng dụng chậm hơn một cách giả tạo trong tên của việc đảm bảo sao chép các tệp.
Brian Redbeard

2
Chúng tôi đang làm việc trên một công cụ quản lý các khối lượng được gắn vào các container docker. Nó được gọi là "flocker" và bạn có thể thấy repo github tại đây: github.com/clusterhq/flocker Chúng tôi hiện có một phụ trợ lưu trữ cho ZFS, sử dụng tính năng chụp nhanh để di chuyển dữ liệu dễ dàng hơn nhưng chúng tôi cũng có kế hoạch cho các phụ trợ lưu trữ khác (chẳng hạn như phụ trợ thiết bị khối chung) Tôi không thể nói liệu có nên gắn khối lượng docker bằng GlusterFS hay không nhưng tôi có thể bảo đảm cho mẫu thiết kế tổng thể - tức là tính toán cho trạng thái được tạo bởi một container docker bằng "cái gì đó"
Bino Carlos

1
Cảm ơn câu trả lời của bạn. Tôi đã nhìn thấy đàn và nó có vẻ rất hứa hẹn. Bạn có một ngày sơ bộ để hỗ trợ coreos hoặc phiên bản sẵn sàng sản xuất 1.0?
Martin

Tôi đã sử dụng glusterfs cho các tập với OpenStack trước đó có thiết lập tương tự như những gì bạn đang làm và nó đã làm rất tốt.
Ethode

@Martin Chúng tôi (tôi làm việc tại ClusterHQ) có Flocker làm việc trên CoreOS sử dụng Amazon EBS. coreos.com/blog/Flocker-on-CoreOS-Linux
Stephen Nguyễn

Câu trả lời:


9

Chúng tôi đã triển khai một thiết lập tương tự với Atomic ( http://www.projectatomic.io/ ) thay vì CoreOS cho hệ thống lưu trữ GlusterFS không phân phối được sao chép với ba bộ sao chép-2. Điều này hoạt động rất tốt.

Tuy nhiên, bạn cần ghi nhớ một vài đặc điểm đặc biệt của GlusterFS. Giống như Brian đã đề cập, Gluster đặt sự nhất quán và độ tin cậy lên trên tất cả. Càng nhiều thay đổi xảy ra, nhân rộng càng nhiều. Điều này đặt ra rất nhiều, và ý tôi là rất nhiều, áp lực lên hệ thống của bạn.

Hãy cẩn thận rằng hệ thống con IO của bạn nhanh (duh, nó lưu trữ), kết nối các nút Gluster của bạn với các kết nối mạng nhanh nhất hiện có. Nếu bạn chỉ có GBit, tổng hợp! Cuối cùng nhưng không kém phần quan trọng, hệ thống lưu trữ phải thể hiện sức mạnh tính toán nghiêm túc, Gluster thực hiện rất nhiều tính toán để kiểm tra trạng thái của nó. Điều đó đang được nói, ngay cả dưới tải trọng cao, Gluster cung cấp.

Xem xét lại chiến lược MySQL của bạn. Gluster thực hiện sao chép cho bạn và cũng cung cấp loại cân bằng tải trong phân phối. Nó thực sự có thể nhanh hơn để sử dụng Gluster.


5

Việc sử dụng glusterfs sẽ phụ thuộc vào phụ trợ lưu trữ mà bạn đang sử dụng. Là một hệ thống tệp cụm, nó được dự định phân cụm lưu trữ vật lý để nó xuất hiện dưới dạng một khối lượng lớn liên tục. Đây hướng dẫn bắt đầu nhanh chính thức có một lời giải thích tốt của quá trình.

Trong trường hợp thiết lập của bạn sử dụng hai hoặc nhiều máy chủ lưu trữ phụ trợ riêng biệt hoặc một cái gì đó tương tự để lưu trữ tất cả các khối lượng docker, sau đó sử dụng glusterfs hoặc một số hệ thống tệp song song tương tự khác có thể mang lại lợi thế hiệu suất đáng kể. Nếu đây là trường hợp bạn cũng có thể xem xét sử dụng Luster , được sử dụng rộng rãi như một hệ thống tệp song song trong cộng đồng HPC.

Như đã nói, điều chỉnh, gỡ lỗi và cấu hình các hệ thống tệp song song / cụm có thể là một công việc tốn thời gian đòi hỏi nhiều chuyên môn, sự kiên nhẫn và đôi khi sẵn sàng khởi động lại từ đầu. Sẽ là khôn ngoan để đảm bảo rằng hiệu suất mang lại lợi ích cho một hệ thống tệp song song đáng giá với số lượng nỗ lực cần thiết để thiết lập và duy trì nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.