Thực hiện công việc OneFS và loại trừ nút

Cho đến OneFS 9.2, một job engine job là một thực thể tất cả hoặc không có gì. Bất cứ khi nào một job chạy, nó liên quan đến toàn bộ cụm – bất kể loại node, tải hoặc điều kiện riêng lẻ. Do đó, bất kỳ node nào bị quá tải hoặc ở trạng thái xuống cấp vẫn có thể ảnh hưởng đến khả năng thực thi của job nói chung.

Để giải quyết vấn đề này, OneFS 9.3 cung cấp khả năng loại trừ một hoặc nhiều nút khỏi việc tham gia chạy một công việc. Điều này cho phép loại bỏ tạm thời bất kỳ nút nào có tải cao hoặc các vấn đề khác khỏi nhóm thực thi công việc để các công việc không bị kẹt.

Phần lớn các công việc của công cụ công việc OneFS không có lịch trình mặc định và thường được quản trị viên cụm hoặc quy trình khởi động thủ công. Các công việc khác như FSAnalyze, MediaScan, ShadowStoreDelete và SmartPools thường được khởi động thông qua một lịch trình. Công cụ công việc cũng có thể tự khởi tạo một số công việc nhất định. Ví dụ, nếu quy trình SnapshotIQ phát hiện ra rằng một ảnh chụp nhanh đã được đánh dấu để xóa, nó sẽ tự động xếp hàng một công việc SnapshotDelete.

Job Engine cũng sẽ thực hiện các công việc để phản hồi lại một số kích hoạt sự kiện hệ thống. Trong trường hợp thay đổi nhóm cụm, ví dụ như thêm hoặc bớt một nút hoặc ổ đĩa, OneFS sẽ tự động thông báo cho job engine, job engine sẽ phản hồi bằng cách bắt đầu một công việc FlexProtect. Bộ điều phối nhận thấy rằng thay đổi nhóm bao gồm một thiết bị mới thông minh bị lỗi và sau đó khởi tạo một công việc FlexProtect để phản hồi.

Quản lý và thực thi công việc có thể được kiểm soát thông qua WebUI, CLI hoặc API nền tảng. Một công việc có thể được bắt đầu, dừng, tạm dừng và tiếp tục, và điều này được quản lý thông qua hệ thống kiểm tra điểm của công cụ công việc. Đối với mỗi phương pháp kiểm soát này, có thể cấu hình bảo mật quản trị bổ sung bằng cách sử dụng kiểm soát truy cập dựa trên vai trò (RBAC).

Cơ chế kiểm soát tác động và điều tiết công việc của công cụ công việc có thể giới hạn tốc độ chạy của từng công việc. Điều tiết được sử dụng ở cấp quy trình cho mỗi người quản lý, do đó, tác động của công việc có thể được quản lý vừa chi tiết vừa nhẹ nhàng.

Cứ mỗi hai mươi giây, tiến trình điều phối thu thập dữ liệu tải I/O đĩa và CPU cụm từ tất cả các nút trên cụm. Bộ điều phối sử dụng thông tin này, kết hợp với cấu hình tác động công việc, để quyết định có bao nhiêu luồng có thể chạy trên mỗi nút cụm để phục vụ cho mỗi công việc đang chạy. Đây có thể là một số thập phân và số lượng luồng thập phân đạt được bằng cách để luồng ngủ trong một tỷ lệ phần trăm nhất định của mỗi giây.

Sử dụng dữ liệu tải I/O của CPU và đĩa này, cứ mỗi sáu mươi giây, bộ điều phối sẽ đánh giá mức độ bận rộn của các nút khác nhau và đưa ra quyết định điều tiết công việc, hướng dẫn các quy trình công cụ công việc khác nhau về hành động mà chúng cần thực hiện. Điều này cho phép điều tiết nhạy cảm với khối lượng công việc trong đó số liệu tải I/O của CPU và đĩa mang lại kết quả khác nhau. Ngoài ra còn có các ngưỡng tải riêng biệt được điều chỉnh theo các loại ổ đĩa khác nhau được sử dụng trong các cụm được OneFS cung cấp năng lượng, từ đĩa SATA được tối ưu hóa dung lượng đến SSD dựa trên flash.

Cấu hình được thực hiện thông qua OneFS CLI và gconfig và là toàn cục, theo đó nó áp dụng cho tất cả các tác vụ khi khởi động. Tuy nhiên, cấu hình loại trừ không phải là động và sau khi một tác vụ được bắt đầu với tập hợp nút cuối cùng, thì không được phép cấu hình lại thêm nữa. Vì vậy, nếu một nút tham gia bị loại trừ, nó sẽ vẫn bị loại trừ cho đến khi tác vụ hoàn tất. Tương tự như vậy, nếu một người tham gia cần bị loại trừ, tác vụ hiện tại sẽ phải bị hủy và một tác vụ mới sẽ được bắt đầu. Bất kỳ nút nào cũng có thể bị loại trừ, bao gồm cả nút đang chạy quy trình điều phối của công cụ tác vụ. Điều phối viên vẫn sẽ theo dõi tác vụ, chỉ là nó sẽ không tạo ra trình quản lý cho tác vụ.

Danh sách các nút tham gia cho một công việc được tính toán theo ba giai đoạn:

  1. Truy vấn nhóm GMP của cụm.
  2. Gọi tới job.get_participating_nodes để lấy tập hợp con từ nhóm gmp.
  3. Xóa các nút được liệt kê trong core.excluded_participants khỏi tập hợp con.

Cú pháp CLI để cấu hình danh sách các nút bị loại trừ trên cụm như sau (trong ví dụ này, loại trừ các nút từ một đến ba):

# isi_gconfig –t job-config core.excluded_participants="{1,2,3}"

‘excluded_participants’ được nhập dưới dạng danh sách giá trị devid được phân tách bằng dấu phẩy không có khoảng trắng, được chỉ định trong dấu ngoặc đơn và dấu ngoặc kép. Tất cả các nút bị loại trừ phải được chỉ định đầy đủ, vì không có tổng hợp. Lưu ý rằng, trong khi cấu hình người tham gia bị loại trừ sẽ được hiển thị qua gconfig, thì nó không được báo cáo là một phần của đầu ra ‘sysctl efs.gmp.group’.

Cấu hình loại trừ nút công cụ công việc có thể dễ dàng được thiết lập lại để tránh loại trừ bất kỳ nút nào bằng cách gán giá trị “{}”.

# isi_gconfig –t job-config core.excluded_participants="{}"
Tham số 'core.excluded_participant_percent_warn' xác định phần trăm tối đa các nút bị xóa.
# isi_gconfig -t job-config core.excluded_participant_percent_warn
core.excluded_participant_percent_warn (uint) = 10

Tham số này mặc định là 10%, nếu vượt quá mức này, cảnh báo sự kiện CELOG sẽ được tạo.

Có thể xóa bao nhiêu nút tùy ý khỏi nhóm công việc. Sự kiện thông tin CELOG sẽ thông báo về các nút đã xóa. Nếu quá nhiều nút đã bị xóa (tham số gconfig đặt quá nhiều ngưỡng nút), CELOG sẽ kích hoạt sự kiện cảnh báo. Nếu một số nút bị xóa nhưng chúng không phải là một phần của nhóm GMP, một sự kiện cảnh báo khác sẽ kích hoạt.

Nếu tất cả các nút bị xóa, lỗi CLI/pAPI sẽ được trả về, tác vụ sẽ không thành công và cảnh báo CELOG sẽ kích hoạt. Ví dụ:

# isi việc làm việc làm bắt đầu LinCount

Hoạt động công việc không thành công: Công việc không còn người tham gia nào. Kiểm tra cài đặt core.excluded_participants và đảm bảo có ít nhất một nút để chạy công việc: Đối số không hợp lệ

# tình trạng công việc isi

10 LinCount Thất bại 2021-10-24T:20:45:23

-------------------------------------------------- ----------------

Tổng cộng: 9

Tuy nhiên, lưu ý rằng các công việc bảo trì hệ thống cốt lõi sau đây sẽ tiếp tục chạy trên tất cả các nút trong cụm ngay cả khi đã cấu hình loại trừ nút:

  • Tự động cân bằng
  • Sưu tầm
  • FlexProtect
  • Quét phương tiện truyền thông
  • Quét đa năng

Tác giả : Nick Trimbee