Cân bằng tải trong Openstack

Trong các hệ thống đám mây lớn, vấn đề tự động cân bằng hoặc cân bằng tải trên tài nguyên máy tính đặc biệt nghiêm trọng. Tionix (nhà phát triển và điều hành dịch vụ đám mây, thuộc tập đoàn Rostelecom) cũng đã giải quyết vấn đề này.

Và, vì nền tảng phát triển chính của chúng tôi là Openstack và chúng tôi, giống như tất cả mọi người, đều lười biếng, nên chúng tôi đã quyết định chọn một số mô-đun làm sẵn đã được đưa vào nền tảng. Sự lựa chọn của chúng tôi thuộc về Watcher, chúng tôi quyết định sử dụng nó cho nhu cầu của mình.
Cân bằng tải trong Openstack
Đầu tiên, chúng ta hãy xem xét các thuật ngữ và định nghĩa.

Điều khoản và Định nghĩa

mục tiêu là kết quả cuối cùng mà con người có thể đọc được, quan sát được và đo lường được. Có một hoặc nhiều chiến lược để đạt được từng mục tiêu. Chiến lược là việc thực hiện một thuật toán có khả năng tìm ra giải pháp cho một mục tiêu nhất định.

Hoạt động là một tác vụ cơ bản làm thay đổi trạng thái hiện tại của tài nguyên được quản lý mục tiêu của cụm OpenStack, chẳng hạn như: di chuyển máy ảo (di chuyển), thay đổi trạng thái nguồn của nút (change_node_power_state), thay đổi trạng thái của dịch vụ nova (change_nova_service_state ), thay đổi hương vị (thay đổi kích thước), đăng ký thông báo NOP (nop), thiếu hành động trong một khoảng thời gian nhất định - tạm dừng (ngủ), chuyển đĩa (volume_migrate).

Kế hoạch hành động - một luồng hành động cụ thể được thực hiện theo một thứ tự nhất định để đạt được Mục tiêu cụ thể. Kế hoạch hành động cũng bao gồm hiệu suất toàn cầu được đo lường với một bộ chỉ số hiệu suất. Một kế hoạch hành động được Watcher tạo ra sau khi kiểm tra thành công, nhờ đó chiến lược được sử dụng sẽ tìm ra giải pháp để đạt được mục tiêu. Một kế hoạch hành động bao gồm một danh sách các hành động tuần tự.

Kiểm toán là một yêu cầu để tối ưu hóa cụm. Tối ưu hóa được thực hiện để đạt được một Mục tiêu trong một cụm nhất định. Đối với mỗi lần kiểm tra thành công, Watcher sẽ tạo Kế hoạch hành động.

Phạm vi kiểm toán là một tập hợp các tài nguyên trong đó việc kiểm tra được thực hiện ((các) vùng sẵn sàng, bộ tổng hợp nút, nút điện toán riêng lẻ hoặc nút lưu trữ, v.v.). Phạm vi kiểm tra được xác định trong mỗi mẫu. Nếu phạm vi kiểm tra không được chỉ định, toàn bộ cụm sẽ được kiểm tra.

Mẫu kiểm tra — một bộ cài đặt đã lưu để khởi chạy quá trình kiểm tra. Cần có mẫu để chạy kiểm tra nhiều lần với cùng cài đặt. Mẫu nhất thiết phải chứa mục đích kiểm toán; nếu các chiến lược không được chỉ định thì các chiến lược hiện có phù hợp nhất sẽ được chọn.

Cụm là một tập hợp các máy vật lý cung cấp tài nguyên tính toán, lưu trữ và kết nối mạng và được quản lý bởi cùng một nút quản lý OpenStack.

Mô hình dữ liệu cụm (CDM) là sự biểu diễn logic về trạng thái hiện tại và cấu trúc liên kết của các tài nguyên do cụm quản lý.

Chỉ số hiệu quả - một chỉ báo cho biết cách thực hiện giải pháp được tạo bằng chiến lược này. Các chỉ số hiệu suất dành riêng cho một mục tiêu cụ thể và thường được sử dụng để tính toán hiệu quả tổng thể của kế hoạch hành động đạt được.

Đặc điểm hiệu quả là một tập hợp các tính năng cụ thể được liên kết với từng Mục tiêu nhằm xác định các chỉ số hiệu suất khác nhau mà chiến lược để đạt được Mục tiêu tương ứng phải đạt được trong giải pháp của nó. Thật vậy, mỗi giải pháp mà chiến lược đề xuất sẽ được kiểm tra dựa trên đặc điểm kỹ thuật trước khi tính toán hiệu quả toàn cầu của nó.

Công cụ chấm điểm là một tệp thực thi có đầu vào được xác định rõ, đầu ra được xác định rõ và thực hiện một nhiệm vụ toán học thuần túy. Bằng cách này, phép tính không phụ thuộc vào môi trường mà nó được thực hiện—nó sẽ cho kết quả tương tự ở bất kỳ đâu.

Người lập kế hoạch theo dõi - một phần của công cụ ra quyết định của Watcher. Mô-đun này thực hiện một tập hợp các hành động do chiến lược tạo ra và tạo một kế hoạch quy trình công việc chỉ định cách lên lịch các hành động khác nhau này theo thời gian và cho mỗi hành động, các điều kiện tiên quyết là gì.

Mục tiêu và chiến lược của người theo dõi

mục tiêu
chiến lược

Mục tiêu giả
Chiến lược giả 

Chiến lược giả sử dụng Công cụ chấm điểm mẫu

Chiến lược giả với thay đổi kích thước

Tiết kiệm năng lượng
Chiến lược tiết kiệm năng lượng

Hợp nhất máy chủ
Hợp nhất máy chủ ngoại tuyến cơ bản

Chiến lược hợp nhất khối lượng công việc VM

Cân bằng khối lượng công việc
Chiến lược di chuyển cân bằng khối lượng công việc

Chiến lược cân bằng dung lượng lưu trữ

Ổn định khối lượng công việc

Hàng xóm ồn ào
Hàng xóm ồn ào

Tối ưu hóa nhiệt
Chiến lược dựa trên nhiệt độ đầu ra

Tối ưu hóa luồng không khí
Chiến lược di chuyển luồng không khí thống nhất

Bảo trì phần cứng
Di chuyển vùng

Không được phân loại
Người xúi giục

Mục tiêu giả - mục tiêu dành riêng được sử dụng cho mục đích thử nghiệm.

Các chiến lược liên quan: Chiến lược giả, Chiến lược giả sử dụng Công cụ tính điểm mẫu và chiến lược giả với thay đổi kích thước. Chiến lược giả là chiến lược giả được sử dụng để thử nghiệm tích hợp thông qua Tempest. Chiến lược này không cung cấp bất kỳ tối ưu hóa hữu ích nào, mục đích duy nhất của nó là sử dụng các bài kiểm tra Tempest.

Chiến lược giả sử dụng Công cụ chấm điểm mẫu - chiến lược này tương tự như chiến lược trước, điểm khác biệt duy nhất là việc sử dụng một “công cụ chấm điểm” mẫu tiến hành tính toán bằng phương pháp học máy.

Chiến lược giả với thay đổi kích thước - chiến lược tương tự như chiến lược trước, điểm khác biệt duy nhất là việc sử dụng thay đổi hương vị (di chuyển và thay đổi kích thước).

Không được sử dụng trong sản xuất.

Tiết kiệm năng lượng - giảm thiểu tiêu thụ năng lượng. Chiến lược tiết kiệm năng lượng của mục tiêu này, cùng với Chiến lược hợp nhất khối lượng công việc VM (Hợp nhất máy chủ), có khả năng thực hiện các tính năng quản lý năng lượng động (DPM) giúp tiết kiệm năng lượng bằng cách hợp nhất động khối lượng công việc ngay cả trong thời gian sử dụng tài nguyên thấp: máy ảo được di chuyển đến ít nút hơn và các nút không cần thiết sẽ bị vô hiệu hóa. Sau khi hợp nhất, chiến lược đưa ra quyết định bật/tắt các nút theo các tham số đã chỉ định: “min_free_hosts_num” - số lượng nút được kích hoạt miễn phí đang chờ tải và “free_used_percent” - tỷ lệ phần trăm máy chủ được kích hoạt miễn phí cho số nút bị máy chiếm giữ. Để chiến lược có hiệu quả phải có đã bật và định cấu hình Ironic để xử lý việc luân chuyển nguồn trên các nút.

Thông số chiến lược

tham số
Loại
theo mặc định
описание

free_used_percent
Con số
10.0
tỷ lệ số lượng nút tính toán miễn phí với số lượng nút tính toán có máy ảo

min_free_hosts_num
Int
1
số lượng nút tính toán miễn phí tối thiểu

Đám mây phải có ít nhất hai nút. Phương pháp được sử dụng là thay đổi trạng thái nguồn của nút (change_node_power_state). Chiến lược này không yêu cầu thu thập số liệu.

Hợp nhất máy chủ - giảm thiểu số lượng nút tính toán (hợp nhất). Nó có hai chiến lược: Hợp nhất máy chủ ngoại tuyến cơ bản và Chiến lược hợp nhất khối lượng công việc VM.

Chiến lược Hợp nhất Máy chủ Ngoại tuyến Cơ bản giúp giảm thiểu tổng số máy chủ được sử dụng và cũng giảm thiểu số lần di chuyển.

Chiến lược cơ bản yêu cầu các số liệu sau:

số liệu
Dịch vụ
bổ sung
chú thích

tính toán.node.cpu.percent
trần kế
không ai
 

cpu_util
trần kế
không ai
 

Tham số chiến lược: Migration_attempts - số lượng kết hợp để tìm kiếm các ứng cử viên tiềm năng cho việc tắt máy (mặc định, 0, không hạn chế), khoảng thời gian - khoảng thời gian tính bằng giây để có được tổng hợp tĩnh từ nguồn dữ liệu số liệu (mặc định, 700).

Các phương pháp được sử dụng: di chuyển, thay đổi trạng thái dịch vụ nova (change_nova_service_state).

Chiến lược hợp nhất khối lượng công việc VM dựa trên phương pháp phỏng đoán phù hợp đầu tiên, tập trung vào tải CPU được đo và cố gắng giảm thiểu các nút có tải quá nhiều hoặc quá ít do hạn chế về dung lượng tài nguyên. Chiến lược này cung cấp giải pháp giúp sử dụng tài nguyên cụm hiệu quả hơn bằng bốn bước sau:

  1. Giai đoạn dỡ bỏ - xử lý các tài nguyên bị sử dụng quá mức;
  2. Giai đoạn hợp nhất - xử lý các nguồn lực chưa được sử dụng đúng mức;
  3. Tối ưu hóa giải pháp - giảm số lần di chuyển;
  4. Vô hiệu hóa các nút tính toán không sử dụng.

Chiến lược này yêu cầu các số liệu sau:

số liệu
Dịch vụ
bổ sung
chú thích

trí nhớ
trần kế
không ai
 

đĩa.root.size
trần kế
không ai
 

Các số liệu sau là tùy chọn nhưng sẽ cải thiện độ chính xác của chiến lược nếu có:

số liệu
Dịch vụ
bổ sung
chú thích

bộ nhớ.resident
trần kế
không ai
 

cpu_util
trần kế
không ai
 

Tham số chiến lược: khoảng thời gian - khoảng thời gian tính bằng giây để thu được tổng hợp tĩnh từ nguồn dữ liệu số liệu (mặc định, 3600).

Sử dụng các phương pháp tương tự như chiến lược trước đó. Thêm chi tiết đây.

Cân bằng khối lượng công việc - cân bằng khối lượng công việc giữa các nút tính toán. Mục tiêu có ba chiến lược: Chiến lược di chuyển cân bằng khối lượng công việc, Ổn định khối lượng công việc, Chiến lược cân bằng dung lượng lưu trữ.

Chiến lược di chuyển cân bằng khối lượng công việc thực hiện di chuyển máy ảo dựa trên khối lượng công việc của máy ảo chủ. Quyết định di chuyển được đưa ra bất cứ khi nào mức sử dụng % CPU hoặc RAM của một nút vượt quá ngưỡng được chỉ định. Trong trường hợp này, máy ảo được di chuyển sẽ đưa nút đến gần hơn với khối lượng công việc trung bình của tất cả các nút.

Yêu cầu

  • Sử dụng bộ xử lý vật lý;
  • Ít nhất hai nút tính toán vật lý;
  • Đã cài đặt và định cấu hình thành phần Ceilometer - ceilometer-agent-compute, chạy trên từng nút điện toán và API Ceilometer, cũng như thu thập các số liệu sau:

số liệu
Dịch vụ
bổ sung
chú thích

cpu_util
trần kế
không ai
 

bộ nhớ.resident
trần kế
không ai
 

Các thông số chiến lược:

tham số
Loại
theo mặc định
описание

số liệu
Chuỗi
'cpu_util'
Các số liệu cơ bản là: 'cpu_util', 'memory.resident'.

ngưỡng
Con số
25.0
Ngưỡng khối lượng công việc để di chuyển.

thời gian
Con số
300
Khoảng thời gian tích lũy Máy đo độ cao.

Phương pháp được sử dụng là di chuyển.

Ổn định khối lượng công việc là một chiến lược nhằm ổn định khối lượng công việc bằng cách sử dụng di chuyển trực tiếp. Chiến lược này dựa trên thuật toán độ lệch chuẩn và xác định xem có tắc nghẽn trong cụm hay không và phản hồi bằng cách kích hoạt di chuyển máy để ổn định cụm.

Yêu cầu

  • Sử dụng bộ xử lý vật lý;
  • Ít nhất hai nút tính toán vật lý;
  • Đã cài đặt và định cấu hình thành phần Ceilometer - ceilometer-agent-compute, chạy trên từng nút điện toán và API Ceilometer, cũng như thu thập các số liệu sau:

số liệu
Dịch vụ
bổ sung
chú thích

cpu_util
trần kế
không ai
 

bộ nhớ.resident
trần kế
không ai
 

Chiến lược cân bằng dung lượng lưu trữ (chiến lược được triển khai bắt đầu với Queens) - chiến lược chuyển các đĩa tùy thuộc vào tải của nhóm Cinder. Quyết định chuyển giao được đưa ra bất cứ khi nào tỷ lệ sử dụng nhóm vượt quá ngưỡng được chỉ định. Đĩa được di chuyển sẽ đưa nhóm đến gần mức tải trung bình của tất cả các nhóm Cinder.

Yêu cầu và hạn chế

  • Tối thiểu hai bể Cinder;
  • Khả năng di chuyển đĩa.
  • Mô hình dữ liệu cụm - Trình thu thập mô hình dữ liệu cụm Cinder.

Các thông số chiến lược:

tham số
Loại
theo mặc định
описание

âm lượng_ngưỡng
Con số
80.0
Giá trị ngưỡng của đĩa để cân bằng âm lượng.

Phương pháp được sử dụng là di chuyển đĩa (volume_migrate).

Hàng xóm ồn ào - Xác định và di chuyển “hàng xóm ồn ào” - một máy ảo có mức độ ưu tiên thấp đang tác động tiêu cực đến hiệu suất của máy ảo có mức độ ưu tiên cao về mặt IPC bằng cách sử dụng quá mức Bộ đệm ẩn cấp độ cuối cùng. Chiến lược riêng: Hàng xóm ồn ào (tham số chiến lược được sử dụng là cache_threshold (giá trị mặc định là 35), khi hiệu suất giảm xuống giá trị được chỉ định, quá trình di chuyển sẽ bắt đầu. Để chiến lược hoạt động, hãy bật Số liệu LLC (Bộ đệm cấp độ cuối cùng), máy chủ Intel mới nhất có hỗ trợ CMT, cũng như thu thập các số liệu sau:

số liệu
Dịch vụ
bổ sung
chú thích

cpu_l3_cache
trần kế
không ai
Yêu cầu Intel CMT.

Mô hình dữ liệu cụm (mặc định): Trình thu thập mô hình dữ liệu cụm Nova. Phương pháp được sử dụng là di chuyển.

Việc thực hiện mục tiêu này thông qua Bảng điều khiển chưa được triển khai đầy đủ ở Queens.

Tối ưu hóa nhiệt - tối ưu hóa chế độ nhiệt độ. Nhiệt độ đầu ra (khí thải) là một trong những hệ thống đo nhiệt từ xa quan trọng để đo trạng thái nhiệt/khối lượng công việc của máy chủ. Mục tiêu có một chiến lược, chiến lược dựa trên nhiệt độ đầu ra, quyết định di chuyển khối lượng công việc đến các máy chủ có nhiệt độ thuận lợi (nhiệt độ đầu ra thấp nhất) khi nhiệt độ đầu ra của máy chủ nguồn đạt đến ngưỡng có thể định cấu hình.

Để chiến lược hoạt động, bạn cần có máy chủ được cài đặt và định cấu hình Intel Power Node Manager 3.0 trở lên, cũng như thu thập các số liệu sau:

số liệu
Dịch vụ
bổ sung
chú thích

phần cứng.ipmi.node.outlet_ Nhiệt độ
trần kế
IPMI
 

Các thông số chiến lược:

tham số
Loại
theo mặc định
описание

ngưỡng
Con số
35.0
Ngưỡng nhiệt độ di chuyển.

thời gian
Con số
30
Khoảng thời gian, tính bằng giây, để thu được tổng hợp thống kê từ nguồn dữ liệu chỉ số.

Phương pháp được sử dụng là di chuyển.

Tối ưu hóa luồng không khí - tối ưu hóa chế độ thông gió. Chiến lược riêng - Luồng khí thống nhất sử dụng di chuyển trực tiếp. Chiến lược này sẽ kích hoạt di chuyển máy ảo bất cứ khi nào luồng khí từ quạt máy chủ vượt quá ngưỡng được chỉ định.

Để chiến lược hoạt động, bạn cần:

  • Phần cứng: các nút tính toán < hỗ trợ NodeManager 3.0;
  • Ít nhất hai nút tính toán;
  • Thành phần API ceilometer-agent-compute và Ceilometer được cài đặt và định cấu hình trên mỗi nút tính toán, có thể báo cáo thành công các số liệu như lưu lượng không khí, công suất hệ thống, nhiệt độ đầu vào:

số liệu
Dịch vụ
bổ sung
chú thích

phần cứng.ipmi.node.airflow
trần kế
IPMI
 

phần cứng.ipmi.node.nhiệt độ
trần kế
IPMI
 

phần cứng.ipmi.node.power
trần kế
IPMI
 

Để chiến lược hoạt động, bạn cần có máy chủ được cài đặt và định cấu hình Intel Power Node Manager 3.0 trở lên.

Hạn chế: Khái niệm này không dành cho sản xuất.

Người ta đề xuất sử dụng thuật toán này với các cuộc kiểm tra liên tục, vì chỉ có một máy ảo được lên kế hoạch di chuyển trong mỗi lần lặp.

Di cư trực tiếp là có thể.

Các thông số chiến lược:

tham số
Loại
theo mặc định
описание

ngưỡng_luồng khí
Con số
400.0
Ngưỡng luồng không khí cho Đơn vị di chuyển là 0.1CFM

ngưỡng_inlet_t
Con số
28.0
Ngưỡng nhiệt độ đầu vào để quyết định di chuyển

Ngưỡng công suất
Con số
350.0
Ngưỡng sức mạnh hệ thống cho quyết định di chuyển

thời gian
Con số
30
Khoảng thời gian, tính bằng giây, để thu được tổng hợp thống kê từ nguồn dữ liệu chỉ số.

Phương pháp được sử dụng là di chuyển.

Bảo trì phần cứng - bảo trì phần cứng. Chiến lược liên quan đến mục tiêu này là di chuyển theo vùng. Chiến lược này là một công cụ để di chuyển tự động và tối thiểu các máy ảo và đĩa ảo trong trường hợp cần bảo trì phần cứng. Chiến lược xây dựng một kế hoạch hành động phù hợp với trọng số: một tập hợp các hành động có trọng lượng hơn sẽ được lên kế hoạch trước những hành động khác. Có hai tùy chọn cấu hình: action_weights và song song hóa.

Hạn chế: trọng số hành động và tính năng song song hóa cần phải được cấu hình.

Các thông số chiến lược:

tham số
Loại
theo mặc định
описание

tính_node
mảng
Không áp dụng
Tính toán các nút để di chuyển.

kho_pool
mảng
Không áp dụng
Các nút lưu trữ để di chuyển.

song song_total
số nguyên
6
Tổng số hoạt động phải được thực hiện song song.

song song_per_node
số nguyên
2
Số lượng hành động được thực hiện song song cho mỗi nút điện toán.

song song_per_pool
số nguyên
2
Số lượng hành động được thực hiện song song cho mỗi nhóm lưu trữ.

ưu tiên
vật
Không áp dụng
Danh sách ưu tiên cho máy ảo và đĩa.

với_đính kèm_volume
boolean
Sai
Sai—máy ảo sẽ được di chuyển sau khi tất cả các ổ đĩa đã được di chuyển. Đúng—máy ảo sẽ được di chuyển sau khi tất cả các ổ đĩa được kết nối đã được di chuyển.

Các thành phần của mảng nút tính toán:

tham số
Loại
theo mặc định
описание

src_node
chuỗi
Không áp dụng
Nút điện toán mà các máy ảo đang được di chuyển từ đó (bắt buộc).

dst_node
chuỗi
Không áp dụng
Tính toán nút mà máy ảo đang di chuyển tới.

Các phần tử mảng nút lưu trữ:

tham số
Loại
theo mặc định
описание

src_pool
chuỗi
Không áp dụng
Nhóm lưu trữ nơi các đĩa đang được di chuyển (bắt buộc).

dst_pool
chuỗi
Không áp dụng
Nhóm lưu trữ mà các đĩa được di chuyển tới.

src_type
chuỗi
Không áp dụng
Loại đĩa gốc (bắt buộc).

dst_type
chuỗi
Không áp dụng
Loại đĩa kết quả (bắt buộc).

Các yếu tố ưu tiên đối tượng:

tham số
Loại
theo mặc định
описание

dự án
mảng
Không áp dụng
Tên dự án.

nút tính toán
mảng
Không áp dụng
Tính toán tên nút.

kho_pool
mảng
Không áp dụng
Tên nhóm lưu trữ.

tính
liệt kê
Không áp dụng
Thông số máy ảo [“vcpu_num”, “mem_size”, “disk_size”, “created_at”].

là gắn
liệt kê
Không áp dụng
Thông số đĩa [“size”, “created_at”].

Các phương pháp được sử dụng là di chuyển máy ảo, di chuyển đĩa.

Không được phân loại - một mục tiêu phụ trợ được sử dụng để tạo điều kiện thuận lợi cho quá trình phát triển chiến lược. Không chứa thông số kỹ thuật và có thể được sử dụng bất cứ khi nào chiến lược chưa được liên kết với mục tiêu hiện có. Mục tiêu này cũng có thể được sử dụng như một điểm chuyển tiếp. Một chiến lược liên quan đến mục tiêu này là Thiết bị truyền động.   

Tạo mục tiêu mới

Công cụ quyết định của người theo dõi có giao diện plugin “mục tiêu bên ngoài” cho phép tích hợp mục tiêu bên ngoài có thể đạt được bằng cách sử dụng chiến lược.

Trước khi tạo mục tiêu mới, bạn nên đảm bảo rằng không có mục tiêu hiện tại nào đáp ứng được nhu cầu của bạn.

Tạo một plugin mới

Để tạo mục tiêu mới, bạn phải: mở rộng lớp mục tiêu, triển khai phương thức lớp get_name() để trả về ID duy nhất của mục tiêu mới mà bạn muốn tạo. Mã định danh duy nhất này phải khớp với tên điểm vào mà bạn khai báo sau này.

Tiếp theo bạn cần triển khai phương thức lớp get_display_name() để trả về tên hiển thị đã dịch của mục tiêu bạn muốn tạo (không sử dụng biến để trả về chuỗi đã dịch để công cụ dịch thuật có thể tự động thu thập nó.).

Thực hiện một phương thức lớp get_translatable_display_name()để trả về khóa dịch (thực ra là tên hiển thị bằng tiếng Anh) của mục tiêu mới của bạn. Giá trị trả về phải khớp với chuỗi được dịch sang get_display_name().

Thực hiện phương pháp của mình get_efficacy_specification()để trả về thông số kỹ thuật hiệu quả cho mục tiêu của bạn. Phương thức get_efficacy_specuation() trả về phiên bản Unclassified() do Watcher cung cấp. Đặc tả hiệu suất này rất hữu ích trong quá trình phát triển mục tiêu của bạn vì nó tương ứng với đặc tả trống.

Đọc thêm tại đây

Kiến trúc Watcher (chi tiết hơn) đây).

Cân bằng tải trong Openstack

Thành phần

Cân bằng tải trong Openstack

API người theo dõi - một thành phần triển khai API REST do Watcher cung cấp. Cơ chế tương tác: CLI, Horizon plugin, Python SDK.

Cơ sở dữ liệu theo dõi - Cơ sở dữ liệu người theo dõi.

Ứng dụng Watcher — một thành phần thực hiện việc thực hiện kế hoạch hành động được tạo bởi thành phần Công cụ quyết định của Watcher.

Công cụ quyết định của người theo dõi - Thành phần chịu trách nhiệm tính toán một tập hợp các hành động tối ưu hóa tiềm năng để đạt được mục tiêu kiểm toán. Nếu một chiến lược không được chỉ định, thành phần sẽ độc lập chọn chiến lược phù hợp nhất.

Nhà xuất bản số liệu của Watcher - Thành phần thu thập và tính toán một số số liệu hoặc sự kiện và xuất bản chúng đến điểm cuối CEP. Chức năng của thành phần này cũng có thể được cung cấp bởi nhà xuất bản Ceilometer.

Công cụ xử lý sự kiện phức tạp (CEP) - công cụ xử lý sự kiện phức tạp. Vì lý do hiệu suất, có thể có nhiều phiên bản CEP Engine chạy đồng thời, mỗi phiên bản xử lý một loại chỉ số/sự kiện cụ thể. Trong hệ thống Watcher, CEP kích hoạt hai loại hành động: - ghi lại các sự kiện/số liệu tương ứng trong cơ sở dữ liệu chuỗi thời gian; - gửi các sự kiện thích hợp tới Công cụ quyết định của người theo dõi khi sự kiện này có thể ảnh hưởng đến kết quả của chiến lược tối ưu hóa hiện tại vì cụm Openstack không phải là một hệ thống tĩnh.

Các thành phần tương tác bằng giao thức AMQP.

Định cấu hình Trình theo dõi

Sơ đồ tương tác với Watcher

Cân bằng tải trong Openstack

Kết quả kiểm tra người theo dõi

  1. Trên trang Tối ưu hóa - Kế hoạch hành động 500 (cả trên Queens thuần túy và trên giá đỡ có mô-đun Tionix), nó chỉ xuất hiện sau khi quá trình kiểm tra được khởi chạy và kế hoạch hành động được tạo; trang trống sẽ mở ra bình thường.
  2. Có lỗi trên tab Chi tiết hành động, không thể đạt được mục tiêu và chiến lược kiểm tra (cả trên Queens thuần túy và trên giá đỡ với mô-đun Tionix).
  3. Các cuộc kiểm tra với mục đích Giả (thử nghiệm) được tạo và khởi chạy bình thường, các kế hoạch hành động được tạo ra.
  4. Kiểm tra cho mục tiêu Chưa được phân loại không được tạo vì mục tiêu không hoạt động và dành cho cấu hình trung gian khi tạo chiến lược mới.
  5. Các cuộc kiểm tra nhằm mục đích Cân bằng khối lượng công việc (chiến lược cân bằng Dung lượng lưu trữ) được tạo thành công nhưng kế hoạch hành động không được tạo. Không cần tối ưu hóa nhóm lưu trữ.
  6. Kiểm tra cho mục tiêu Cân bằng khối lượng công việc (Chiến lược di chuyển cân bằng khối lượng công việc) được tạo thành công nhưng kế hoạch hành động không được tạo.
  7. Kiểm tra cân bằng khối lượng công việc (Chiến lược ổn định khối lượng công việc) không thành công.
  8. Quá trình kiểm tra cho mục tiêu Hàng xóm ồn ào được tạo thành công nhưng kế hoạch hành động không được tạo.
  9. Các cuộc kiểm tra nhằm mục đích bảo trì Phần cứng được tạo thành công, kế hoạch hành động không được tạo đầy đủ (các chỉ số hiệu suất được tạo nhưng bản thân danh sách các hành động không được tạo).
  10. Các chỉnh sửa trong cấu hình nova.conf (trong phần mặc định Calculate_monitors = cpu.virt_driver) trên các nút điện toán và điều khiển không sửa được lỗi.
  11. Kiểm tra nhắm mục tiêu Hợp nhất Máy chủ (Chiến lược cơ bản) cũng không thành công.
  12. Kiểm tra nhằm mục đích hợp nhất máy chủ (chiến lược hợp nhất khối lượng công việc VM) không thành công do có lỗi. Trong nhật ký có lỗi khi lấy dữ liệu nguồn. Thảo luận về lỗi, đặc biệt đây.
    Chúng tôi đã cố gắng chỉ định Watcher trong tệp cấu hình (điều này không giúp ích gì - do lỗi trên tất cả các trang Tối ưu hóa, việc quay lại nội dung ban đầu của tệp cấu hình không khắc phục được tình trạng):

    Nguồn dữ liệu [watcher_strategies.basic] = ceilometer, gnocchi
  13. Kiểm toán tiết kiệm năng lượng thất bại Đánh giá theo nhật ký, vấn đề vẫn là sự vắng mặt của Ironic; nó sẽ không hoạt động nếu không có dịch vụ baremetal.
  14. Kiểm tra Tối ưu hóa Nhiệt không thành công. Truy nguyên giống như đối với Hợp nhất máy chủ (chiến lược hợp nhất khối lượng công việc VM) (lỗi dữ liệu nguồn)
  15. Kiểm tra nhằm mục đích Tối ưu hóa luồng không khí không thành công và có lỗi.

Các lỗi hoàn thành kiểm toán sau đây cũng gặp phải. Truy nguyên trong nhật ký quyết định-engine.log (trạng thái cụm không được xác định).

→ Thảo luận về lỗi đây

Kết luận

Kết quả của nghiên cứu kéo dài hai tháng của chúng tôi là kết luận rõ ràng rằng để có được một hệ thống cân bằng tải hoạt động hoàn chỉnh, trong phần này, chúng tôi sẽ phải hợp tác chặt chẽ để tinh chỉnh các công cụ cho nền tảng Openstack.

Watcher đã được chứng minh là một sản phẩm nghiêm túc và đang phát triển nhanh chóng với tiềm năng to lớn, việc sử dụng đầy đủ sản phẩm này sẽ đòi hỏi rất nhiều công sức nghiêm túc.

Nhưng nhiều hơn về điều này trong các bài viết tiếp theo của loạt bài.

Nguồn: www.habr.com

Thêm một lời nhận xét