6


Từ chối trách nhiệm nhanh chóng, tôi không tuyên bố là một chuyên gia Mesos. Bài đăng này là một đỉnh cao của nghiên cứu chúng tôi đã thực hiện cùng với kinh nghiệm sử dụng và phát triển các giải pháp với các công nghệ này trong hệ sinh thái và cộng đồng hiện tại. Chúng tôi hoan nghênh bổ sung và sửa chữa. Hãy thêm một bình luận ở cuối bài!

Mesos Apache là gì?

Apache Mesos trừu tượng hóa CPU, bộ nhớ, lưu trữ và các tài nguyên tính toán khác ra khỏi máy (vật lý hoặc ảo), cho phép các hệ thống phân tán chịu lỗi và đàn hồi dễ dàng được xây dựng và chạy hiệu quả.

Apache Mesos chạy các tác vụ bằng cách cho phép các khung công tác chạy trên các Mesos nhận được các đề nghị về CPU, bộ nhớ, mạng và lưu trữ mà nó có thể lên lịch tác vụ. Nếu muốn tìm hiểu thêm về cách thức hoạt động của Apache Mesos, hãy bắt đầu bằng cách xem sơ đồ kiến ​​trúctrong tài liệu của họ. Thông tin quan trọng cho bài đăng này là các tác vụ có thể được lên lịch để chạy trong các thùng chứa và các tác vụ này đôi khi cần lưu trữ liên tục. Các tác vụ cần lưu trữ liên tục là các cơ sở dữ liệu như MySQL hoặc MongoDB, bộ đệm web như bộ đệm Nginx, thư mục ghi nhật ký hoặc thư mục dữ liệu mà phần mềm blog sử dụng để lưu trữ dữ liệu. Trong mọi trường hợp, khung dựa vào Mesos để cung cấp tài nguyên vật lý hoặc ảo mà nó cần để chạy. Trong bài đăng này, chúng tôi sẽ tập trung chủ yếu vào các tùy chọn khác nhau có sẵn để lưu trữ trong Mesos và cách Flocker có thể được sử dụng để giúp dễ dàng tự động hóa các tác vụ liên tục.

Sử dụng lưu trữ liên tục

Apache Mesos thực hiện công việc quản lý và cung cấp tài nguyên cho các nhiệm vụ. Thông thường, các tác vụ này được tách rời khỏi các nút để cải thiện khả năng chuyển đổi dự phòng, tính linh hoạt và khả năng mở rộng. Tuy nhiên, khi chạy các dịch vụ yêu cầu lưu trữ liên tục, nó có thể bắt đầu gặp khó khăn vì bạn có thể đưa ra sự phụ thuộc vào tác vụ cho nút mà dịch vụ chạy nếu sử dụng bộ nhớ cục bộ của nút thay vì giải pháp linh hoạt hơn. Các ứng dụng phụ thuộc vào bộ nhớ có thể truy cập bên ngoài vùng chứa có thể bao gồm cơ sở dữ liệu (NoQuery / SQL), bộ đệm web, nhật ký ứng dụng, lưu trữ bí mật và hơn thế nữa. Chúng tôi sẽ đại diện cho một nhiệm vụ và dữ liệu của nó với sơ đồ sau.

Có một số giải pháp và kiến ​​trúc khác nhau mà bạn có thể sử dụng để giúp duy trì tính khả dụng, bảo mật và tính nhất quán của dữ liệu cho một nhiệm vụ. Chúng tôi sẽ giới thiệu một số cách đã biết để xử lý việc lưu trữ ngày hôm nay trong Apache Mesos và thảo luận về những gì họ giúp với hoặc có thể những cạm bẫy mà họ có thể có nếu sử dụng.

Hệ thống tập tin cục bộ

Hệ thống tập tin cục bộ đơn giản

Cách tiếp cận này là dễ thực hiện nhất nhưng nó có nhiều nhược điểm nhất. Trong trường hợp này, tác vụ tham chiếu hệ thống tệp cục bộ trên nút máy chủ và dữ liệu được lưu trữ trên đĩa của nút đang chạy tác vụ. Do đó, nhiệm vụ hoàn toàn không có tính linh hoạt bao gồm không có khả năng chuyển đổi dự phòng hoặc di chuyển xung quanh cụm. Với phương thức này, Mesos có thể cố gắng sắp xếp lại thành nút này và chỉ pin pin nhiệm vụ cho nút này nơi nó biết dữ liệu của nó. Có nhiều cách để quản lý các kịch bản chuyển đổi dự phòng với các bản sao lưu định kỳ sang bộ lưu trữ khác nhưng việc cấu hình có thể quá phức tạp và cồng kềnh, điều này đánh bại một số ưu điểm chính của việc sử dụng Mesos ngay từ đầu.

Sử dụng bản sao hoặc hệ thống tập tin phân tán

Một cách để khắc phục nhược điểm này là sử dụng hệ thống tệp được chia sẻ hoặc phân tán như NFS và GlusterFS. Cả hai tùy chọn đều cung cấp cho các nút quyền truy cập theo lưu trữ dựa trên POSIX và có thể được quản lý tập trung hoặc trên mỗi nút. Biểu đồ dưới đây cho thấy các kịch bản cấp cao của cả hai tùy chọn.

Một số cạm bẫy của việc thực hiện này có thể là chi phí quản lý không đáng, hoặc sự phụ thuộc vào mạng có thể gây ra tham nhũng hoặc mất điện; hoặc không phải tất cả các tác vụ đều hoạt động như bộ thực hiện trên bộ lưu trữ tệp dựa trên POSIX bên ngoài và sẽ hoạt động tốt hơn trên các hệ thống dựa trên cục bộ, iSCSI hoặc Kênh sợi quang.

Ưu điểm là các tác vụ có thể được lên lịch lại trên các nút Mesos khác cũng như thực tế là NFS thường dễ cài đặt và cấu hình so với các hệ thống khác như hệ thống tệp dựa trên phân tán.

Khối lượng liên tục

Các khối liên tục trong Mesos đặc biệt đề cập đến cơ chế trong đó tài nguyên đĩa (lưu trữ) được tạo cho các tác vụ thông qua Mesos.

Từ quan điểm của Mesos, các đĩa này được tạo từ các tài nguyên lưu trữ đã tồn tại trên nút nô lệ Mesos và sẽ vẫn còn trên nút sau khi tác vụ chết. Khi tác vụ thoát, tài nguyên lưu trữ có thể được cung cấp trở lại phần còn lại của hệ thống để các tác vụ khác có thể tiêu thụ bất kỳ dữ liệu nào được duy trì ở đó trước đó có nghĩa là dữ liệu sẽ không được thu thập rác cho các tác vụ này. Mesos đảm bảo rằng tài nguyên đĩa dành riêng của bạn có sẵn trước khi tác vụ được lên lịch.

Phương pháp sử dụng khối lượng liên tục này trong Mesos giống như cách tiếp cận hệ thống tệp cục bộ ngoại trừ đây là quan điểm cụ thể của Mesos về cách tạo tài nguyên lưu trữ như vậy cho các tác vụ. Với một lời cảnh báo. Nếu một nhà điều hành tạo một đĩa Path hoặc Mount từ SSD cục bộ, lưu trữ đính kèm hoặc lưu trữ phân tán sẽ có lợi ích. Ngoại trừ việc quản lý các hệ thống này không tự động và các đĩa phải được đính kèm, một hệ thống tệp được tạo trên chúng và sau đó được gắn trước khi chúng có thể được cung cấp cho Mesos. Cũng lưu ý rằng các đĩa Path được chia sẻ theo nghĩa là nhiều đĩa được tạo từ một đường dẫn gốc của đĩa sao lưu và các đĩa Mount có toàn bộ đĩa dành riêng cho một tác vụ.

Đặt phòng động

Đặt chỗ động là một bước ở trên và vượt ra ngoài các đặt chỗ tĩnh, giúp các khung có thể dự trữ tài nguyên lưu trữ sau khi quy trình nô lệ Mesos đã bắt đầu.

Điều này làm cho Mesos có khả năng dự trữ số lượng tài nguyên cụ thể cho một khung và sau đó cung cấp nó trở lại cùng một khung. Một cái gì đó như thế này có thể được sử dụng với các tính năng như giới hạn khung để sử dụng các nút cụ thể trong cụm có thể có quyền truy cập vào kho lưu trữ dữ liệu bạn muốn sử dụng cho các dịch vụ liên tục. Ví dụ, một khung được thiết kế để triển khai MySQL có thể đảm bảo sử dụng các tài nguyên lưu trữ được bảo lưu động và giữ các ưu đãi lưu trữ chỉ cho các dịch vụ lưu trữ lâu bền của MySQL.

Cách tiếp cận này một lần nữa không có tác động lớn đến tính linh hoạt của tài nguyên lưu trữ thô và là một tính năng cụ thể của Mesos. Trong trường hợp này, cách tiếp cận này vẫn có hầu hết các ưu và nhược điểm được nói đến trong phần hệ thống tệp cục bộphần khối lượng liên tục ngoài việc nó được dành riêng cho các vai trò khung.

Docker Containerizer và Docker Volume Plugins

Một cách để có được sự linh hoạt cho các dịch vụ liên tục là sử dụng các plugin âm lượng Docker , cho phép không chỉ các trường hợp sử dụng giống như hệ thống tệp cục bộ mà còn chia sẻ tích hợp lưu trữ trong đó các thiết bị khối được gắn và gắn trên nô lệ Mesos trước khi bắt đầu tác vụ.

Sử dụng phương pháp này, bạn có thể nhận được hỗ trợ riêng cho trình điều khiển thông qua Docker trong khi có thể tận dụng các hệ thống hiện có như nền tảng SAN hoặc Lưu trữ được xác định phần mềm (SDS).

Một số nền tảng SDS có thể được triển khai theo kiểu siêu hội tụ, nơi lưu trữ được gộp trên cùng các nút với các tác vụ và được sao chép trên giải pháp SDS để dự phòng. Điều này cho phép lưu trữ phát sinh mạng truyền tải ít hơn so với SAN tập trung truyền thống. Vẫn có sự đánh đổi cho từng phương pháp và điều này phụ thuộc vào các trường hợp sử dụng đang được xem xét.

Hình ảnh bên dưới hiển thị một lớp SDS như là một phần của nhiều nút trong đó các khối có vẻ như cục bộ cục bộ và được sao chép trên các nô lệ Mesos tham gia bằng cách sử dụng mạng. Điều này cũng cho thấy một cách tiếp cận dựa trên SAN, nơi các khối được kết nối từ hộp SAN bên ngoài đến nô lệ Mesos qua mạng.

Một số mặt tích cực bao gồm tính dễ linh hoạt vì các khối được tạo, gắn và có sẵn với một hệ thống tệp khi một tác vụ được khởi động một cách linh hoạt và không thành công và HA được cung cấp với các kiến ​​trúc như vậy. Một số tiêu cực có thể bao gồm chi phí mạng và một số phức tạp trong cấu hình.

Các plugin Docker bao gồm:

  • Đàn
  • Hộ tống
  • Cầu khối
  • REX-Ray
  • Mở lưu trữ
  • GlusterFS
  • … và hơn thế nữa.

Khung, mô-đun và bộ cách ly

Giống như các trường hợp sử dụng SAN và SDS đã đề cập trước đó, có các mô-đun Mesos, khung và bộ cách ly cho phép bạn làm việc với các plugin âm lượng mà không cần sử dụng bộ chứa Docker. Điều này mang lại cho các tác vụ tất cả các lợi ích bổ sung ở trên, bao gồm lưu trữ khối được nối mạng trong khi sử dụng Mesos gốc mà không cần Docker.

Có một vài mô-đun và bộ cách ly được nhắm mục tiêu vào lưu trữ được chia sẻ.

Khung Flocker

Dự án Mesos Flocker bổ sung lưu trữ đám mây cho Mesos. Nó cho phép bạn bắt đầu các ứng dụng trạng thái của mình với sự tự tin khi sử dụng kho lưu trữ dữ liệu dư thừa.

Khung xử lý một cách minh bạch việc liên lạc với nhà cung cấp đám mây bằng Flocker. Mesos-Flocker sẽ đảm bảo rằng dữ liệu của bạn luôn có sẵn cho container của bạn, ngay cả khi không thành công.

Mô-đun Mesos DVDI

Mô-đun Mesos DVDI là một công cụ có chứa Mô-đun cách ly trình điều khiển âm lượng Docker cho Mesos. Mục đích của nó là tạo ra một mô-đun sống trên các nô lệ Mesos cho phép tạo / gắn kết / lưu trữ bên ngoài với mỗi tác vụ được gán cho một nô lệ.

Điều độc đáo ở chỗ nó cho phép bạn nhắm mục tiêu các nền tảng lưu trữ khác nhau được cung cấp bởi trình điều khiển âm lượng Docker trong khi cho phép người dùng định cấu hình nó với các tùy chọn âm lượng cho các tác vụ.

Khung lưu trữ dữ liệu

Có một số khung lưu trữ dữ liệu nhằm mục đích quản lý các dịch vụ hoặc nền tảng có thể cung cấp lưu trữ dữ liệu cho các ứng dụng trong Mesos. Điều này khác với một số ví dụ ở trên thực sự cung cấp tài nguyên lưu trữ thô cho các ứng dụng cần chúng nhưng đáng để đề cập đến chúng trong lĩnh vực lưu trữ.

Liên kết trên bao gồm các khung cho các dịch vụ dữ liệu cụ thể như:

Danh sách này không bao gồm Apache Cotton , trước đây được gọi là Mysos và nhằm mục đích chạy các phiên bản MySQL dưới dạng khung trên Mesos nhưng có vẻ như nó đã bị loại bỏ theo trang web ươm tạo .

Phần kết luận

Nói chung, Mesos có rất nhiều thứ để cung cấp và đó là một điều tốt. Điều này được dự kiến ​​sẽ đưa ra các khung và kiến ​​trúc mới hơn đang thay đổi mỗi ngày, vì vậy khi xem xét giải pháp phù hợp với bạn, hãy nhớ điều này thường phụ thuộc nhiều vào nhu cầu của ứng dụng và trường hợp sử dụng của bạn.

|