2015-02-06 16 views
33

Gần đây tôi đã phát hiện ra một thứ như một Apache Mesos.Lưu trữ liên tục cho Apache Mesos

Tất cả đều trông đáng kinh ngạc trong tất cả các bản trình diễn và ví dụ đó. Tôi có thể dễ dàng tưởng tượng cách người ta sẽ chạy cho các công việc phi trạng thái - điều đó phù hợp với toàn bộ ý tưởng một cách tự nhiên.

Làm thế nào để đối phó với các công việc lâu dài đang có trạng thái?

Giả sử, tôi có một cụm bao gồm các máy N (và được lên lịch qua Marathon). Và tôi muốn chạy một máy chủ postgresql ở đó.

Đó là nó - lúc đầu tôi thậm chí không muốn nó có sẵn cao, nhưng chỉ đơn giản là một công việc duy nhất (thực sự Dockerized) mà chủ một máy chủ postgresql.

1- Làm cách nào để tổ chức? Ràng buộc một máy chủ đến một nút cụm cụ thể? Sử dụng một số FS phân phối?

2- DRBD, MooseFS, GlusterFS, NFS, CephFS, một trong những người chơi tốt với Mesos và các dịch vụ như postgres? (Tôi đang suy nghĩ ở đây về khả năng Mesos/marathon có thể di chuyển dịch vụ nếu đi xuống)

3- Hãy cho biết cách tiếp cận của tôi sai về mặt triết lý (DFS cho máy chủ dữ liệu và một số loại chuyển đổi cho máy chủ như postgres trên đỉnh Mesos)

Câu hỏi chủ yếu sao chép từ Persistent storage for Apache Mesos, hỏi bởi zerkms trên Programmers Stack Exchange.

Trả lời

43

Câu hỏi hay. Dưới đây là một vài tính năng sắp tới trong Mesos để cải thiện hỗ trợ cho các dịch vụ stateful và cách giải quyết hiện tại tương ứng.

  1. Persistent volumes (0.23): Khi khởi chạy tác vụ, bạn có thể tạo âm lượng bên ngoài hộp cát của tác vụ và sẽ vẫn tồn tại trên nút ngay cả sau khi tác vụ chết/hoàn tất. Khi nhiệm vụ thoát ra, tài nguyên của nó - bao gồm cả khối lượng liên tục - có thể được cung cấp trở lại khung làm việc, để khung công tác có thể khởi chạy lại cùng một nhiệm vụ, khởi chạy tác vụ khôi phục hoặc khởi chạy tác vụ mới. như đầu vào của nó.
    • Giải pháp hiện tại: Kéo dài trạng thái của bạn ở một số vị trí đã biết bên ngoài hộp cát và yêu cầu khôi phục thủ công của bạn theo cách thủ công. Có thể tồn tại nó trong một hệ thống tập tin/cơ sở dữ liệu phân tán, để nó có thể được truy cập từ bất kỳ nút nào.
  2. DiskIsolation (0.22): Thực thi giới hạn hạn ngạch đĩa trên hộp cát cũng như khối lượng liên tục. Điều này đảm bảo rằng khung lưu trữ nặng của bạn sẽ không thể làm hỏng đĩa và ngăn các tác vụ khác chạy.
    • Giải pháp thay thế hiện tại: Theo dõi mức sử dụng đĩa ngoài băng và chạy các công việc dọn dẹp định kỳ.
  3. Dynamic Reservations (0,23): Sau khi tung ra một nhiệm vụ, bạn có thể dự trữ tài nguyên sử dụng nhiệm vụ của bạn (bao gồm cả khối lượng dai dẳng) để đảm bảo rằng họ được cung cấp lại cho bạn khi xuất cảnh công việc, thay vì đi đến khuôn khổ nào là xa nhất dưới chia sẻ công bằng của nó.
    • Cách giải quyết hiện tại: Sử dụng cờ của nô lệ --resources để đặt trước tài nguyên tĩnh cho khung của bạn khi khởi động nô lệ.

Đối với trường hợp sử dụng cụ thể của bạn và các câu hỏi:

1a) Làm thế nào người ta sẽ tổ chức nó? Bạn có thể làm điều này với Marathon, có thể tạo một trường hợp Marathon riêng cho các dịch vụ nhà nước của bạn, để bạn có thể tạo đặt chỗ tĩnh cho vai trò 'nhà nước', như vậy chỉ Marathon nhà nước mới được đảm bảo các tài nguyên đó.

1b) Ràng buộc máy chủ với một nút cụm cụ thể? Bạn có thể thực hiện điều này dễ dàng trong Marathon, hạn chế ứng dụng đối với tên máy chủ cụ thể hoặc bất kỳ nút nào có giá trị thuộc tính cụ thể (ví dụ: NFS_Access = true). Xem Marathon Constraints. Nếu bạn chỉ muốn chạy các tác vụ của mình trên một tập hợp các nút cụ thể, bạn sẽ chỉ cần tạo các đặt chỗ tĩnh trên các nút đó. Và nếu bạn cần khám phá các nút đó, bạn nên kiểm tra Mesos-DNS và/hoặc Marathon's HAProxy integration.

1c) Sử dụng một số FS được phân phối? Việc sao chép dữ liệu được cung cấp bởi nhiều hệ thống tệp được phân phối sẽ đảm bảo rằng dữ liệu của bạn có thể tồn tại do lỗi của bất kỳ nút nào. Sự kiên trì đối với DFS cũng sẽ cung cấp sự linh hoạt hơn trong đó bạn có thể lên lịch các nhiệm vụ của mình, mặc dù với chi phí chênh lệch về độ trễ giữa mạng và ổ đĩa cục bộ. Mesos đã tích hợp hỗ trợ tìm nạp các tập tin nhị phân từ HDFS uris, và nhiều khách hàng sử dụng HDFS để truyền các tập tin thực thi, các tập tin cấu hình và dữ liệu đầu vào cho các nô lệ nơi các nhiệm vụ của họ sẽ chạy.

2) DRBD, MooseFS, GlusterFS, NFS, CephFS? Tôi đã nghe nói về khách hàng sử dụng CephFS, HDFS và MapRFS với Mesos. NFS có vẻ dễ dàng. Nó thực sự không quan trọng với Mesos những gì bạn sử dụng miễn là nhiệm vụ của bạn biết làm thế nào để truy cập nó từ bất cứ nút nào mà nó được đặt.

Hy vọng điều đó sẽ hữu ích!

+2

Cập nhật: Khối lượng liên tục không hạ cánh xuống 0,22 (toàn bộ), vì vậy bạn sẽ phải đợi 0,23 để bắt đầu sử dụng Số lượng cố định hoặc đặt chỗ động. – Adam

+0

Đặt chỗ động được đẩy tới 0,24 ngay bây giờ – Sergey

+0

Cả Khối lượng liên tục và Đặt trước động sẽ có sẵn ở trạng thái alpha/thử nghiệm trong Mesos 0.23. Mong đợi chúng được sản xuất sẵn sàng trong 0,24. – Adam

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