This page is READ-ONLY. It is generated from the old site.
All timestamps are relative to 2013 (when this page is generated).
If you are looking for TeX support, please go to VietTUG.org

ganglia: nguyên lý hoạt động

goodbye Ganglia
Added by over 2 years ago

Theo định nghĩa ở trang chủ của Ganglia [1] thì

Ganglia is a scalable distributed monitoring system for high-performance computing systems such as clusters and Grids.

Vì chữ monitor đa nghĩa, mình mô tả lại cho dễ hiểu: Ganglia thu nhận các số đo mô tả trạng thái của các dịch vụ ở các máy khác nhau, gửi về một tiến trình chính để lưu trữ giá trị của số đo (cùng thời điểm đo) vào một kho dữ liệu chung; kho dữ liệu này sẽ phục vụ vào nhiều mục đích, nhưng chủ yếu là sẽ được diễn tả lại ở dạng đồ họa / đồ thị.

  dịch vụ A trên máy X -> {số đo M, số đo N,...} -> người vận chuyển -> kho lưu trữ  -> đồ họa
        service                  gmetric                  gmond         gmetad; rrd      gweb

Các thành phần cơ bản của Ganglia:

  1. gmetric: Một số đo mô tả trạng thái của dịch vụ trên máy khách. Ví dụ, thời gian máy khách hoạt động kể từ lần khởi động cuối cùng của nó (uptime), nhiệt độ trung bình của bo mạch chủ, tốc độ quay của quạt CPU,... Mỗi metric được mô tả bởi các yếu tố:
    1. Thời gian đo: mô tả thời điểm ứng với số đo (mỗi số đo phải ứng với một thời điểm duy nhất)
    2. Giá trị: Có thể là con số (thực, nguyên,...), hoặc chuỗi
    3. Tên: cho phép phân biện các số đo với nhau
  2. gmond: Tiến trình này chạy trên máy khách, có nhịp vụ tổng hợp thông tin về các số đo trên máy khách. Việc tổng hợp diễn ra một cách đều đặn (ví dụ, 15 giây một lần), và kết quả sẽ chuyển đến (một hoặc nhiều) tiến trình gmetad thông qua kết nối UDP. Để phân biệt, ta thường cấu hình để tiến trình gmond có tên trùng với tên của máy khách.
  3. gmetad: Đây là nhạc trưởng hay trái tim của hệ thống Ganglia. Tiến trình này lắng nghe một cách thường trực, mỗi khi nhận được thông tin từ bất kỳ tiến trình gmond nào, nó sẽ phân giải thông tin và lưu trữ vào kho dữ liệu chung (theo định dạng RRD - Round Robin Database).
  4. gweb: Cung cấp giao diện web, mô tả tất cả các số đo trong kho dữ liệu ở dạng đồ thị (trừ thông tin dạng chuỗi). Đây rõ ràng là một thành phần không bắt buộc, vì ta có thể xử lý thông tin trong kho lưu trữ theo những cách khác.

Ta nói rõ hơn về các dòng gạch chân ở trên

  1. Tiến trình gmond được cấu hình để gửi tin tới một hoặc nhiều tiến trình gmetad khác nhau (có thể nằm trên các máy khác nhau), điều này làm tăng khả năng chịu đựng của toàn bộ hệ thống Ganglia. (Fail-over)
  2. Tiến trình gmetad có thể nhận được tin từ nhiều nguồn khác nhau (thậm chí là từ một tiến trình gmetad khác), nhưng nó chỉ xử lý và lưu trữ nhưng nguồn được chỉ định trong cấu hình. Tính tới trường hợp có rất nhiều thông tin (ví dụ, khi có hơn 1000 tiến trình gmetad cùng gửi tin), Ganglia đưa ra khái niệm clustergrid: Một cluster là một nhóm các tiến trình gmond; thông tin của các thành viên của clútter được nhóm lại trong kho dữ liệu cũng như trong kết quả thể hiện của gweb. Cuối cùng, một grid là nhóm các cluster.

Về tường lửa của hệ thống, trong trường hợp đơn giản chỉ có một tiến trình gmetad, ta cấu hình để:

  máy khách đang có tiến trình gmond
    có thể gửi tin đến máy phục vụ đang có tiến trình gmetad
      thông qua cổng do ta chỉnh định (ví dụ 1620)
        với giao thức UDP

Ref.:

  1. Ganglia homepage: http://ganglia.info
  2. Ví dụ về ganglia: UC Berkeley Millennium Demo
  3. Ví dụ về cluster: Grids and Clusters Group Demo

Comments