Bộ sưu tập tệp nhật ký OneFS với isi-gather-info

Bài viết trước phác thảo quá trình điều tra và khắc phục sự cố OneFS deadlock và hang-dump đã tạo ra một số câu hỏi về việc thu thập tệp nhật ký OneFS. Vì vậy, có vẻ như đây là một chủ đề phù hợp để khám phá trong một bài viết.

Tiện ích ‘isi_gather_info’ của OneFS từ lâu đã là một công cụ chính của cụm để thu thập và đối chiếu ngữ cảnh và cấu hình, chủ yếu hỗ trợ hỗ trợ trong việc xác định và giải quyết lỗi và sự cố. Do đó, có thể nói đây là công cụ hỗ trợ chính của OneFS và về mặt chức năng thực tế, nó thực hiện các vai trò sau:

  1. Thực hiện nhiều lệnh, tập lệnh và tiện ích trên cụm và lưu kết quả của chúng
  2. Thu thập tất cả các tập tin này thành một gói ‘gzipped’ duy nhất.
  3. Truyền gói dữ liệu thu thập được trở lại Dell bằng một số phương pháp vận chuyển tùy chọn.

Theo mặc định, tệp tarfile thu thập nhật ký được ghi vào thư mục /ifs/data/Isilon_Support/pkg/. Tệp này cũng có thể được tải lên Dell bằng các phương tiện sau:

Cơ chế vận chuyển Sự miêu tả Cổng TCP
ESRS Sử dụng Dell EMC Secure Remote Support (ESRS) để thu thập dữ liệu tải lên. 443/8443
FTP Sử dụng FTP để tải lên bản thu thập đã hoàn tất. 21
Giao thức HTTP Sử dụng HTTP để tải lên dữ liệu thu thập. 80/443

Cụ thể hơn, cú pháp lệnh CLI ‘isi_gather_info’ bao gồm các tùy chọn sau:

Lựa chọn Sự miêu tả
–tải lên <boolean> Cho phép thu thập và tải lên.
–esrs <boolean> Sử dụng ESRS để thu thập dữ liệu tải lên.
–gather-mode (tăng dần | đầy đủ) Kiểu thu thập: gia tăng hoặc đầy đủ.
–http-insecure-upload <boolean> Cho phép tải lên HTTP không an toàn khi thu thập xong.
–http-upload-host <chuỗi> Máy chủ HTTP dùng để tải lên HTTP.
–http-upload-path <chuỗi> Đường dẫn trên máy chủ HTTP để sử dụng cho việc tải lên HTTP.
–http-upload-proxy <chuỗi> Máy chủ proxy dùng để tải lên HTTP.
–http-upload-proxy-port <số nguyên> Cổng máy chủ proxy dùng để tải lên HTTP.
–clear-http-upload-proxy-port Xóa cổng máy chủ proxy để sử dụng cho việc tải lên HTTP.
–ftp-upload <boolean> Cho phép tải lên FTP khi hoàn tất thu thập.
–ftp-upload-host <chuỗi> Máy chủ FTP dùng để tải lên FTP.
–ftp-upload-path <chuỗi> Đường dẫn trên máy chủ FTP để sử dụng cho việc tải lên FTP.
–ftp-upload-proxy <chuỗi> Máy chủ proxy dùng để tải lên FTP.
–ftp-upload-proxy-port <số nguyên> Cổng máy chủ proxy dùng để tải lên FTP.
–xóa-cổng-proxy-tải-lên-ftp Xóa cổng máy chủ proxy để sử dụng cho việc tải lên FTP.
–ftp-upload-user <chuỗi> Người dùng FTP sử dụng để tải lên FTP.
–ftp-upload-ssl-cert <chuỗi> Chỉ định chứng chỉ SSL sử dụng trong kết nối FTPS.
–ftp-upload-insecure <boolean> Có nên thử tải lên FTP văn bản thuần túy không.
–ftp-upload-pass <chuỗi> Người dùng FTP sử dụng mật khẩu tải lên FTP.
–set-ftp-upload-pass Chỉ định mật khẩu tải lên FTP một cách tương tác.

Khi dữ liệu được chuyển đến Dell, quy trình hỗ trợ sẽ tự động giải nén dữ liệu và phân tích dữ liệu bằng công cụ ‘logviewer’.

Bên dưới mui xe, có hai thành phần chính chịu trách nhiệm vận hành một cuộc tụ họp. Đó là:

Thành phần Sự miêu tả
Chúa tể Quy trình quản lý, được kích hoạt bởi người dùng, giám sát tất cả các tác vụ isi_gather_info được thực thi trên một nút duy nhất.
Thương yêu Tiến trình công nhân chạy một loạt lệnh (do chủ thể chỉ định) trên một nút cụ thể.

Tiện ích ‘isi_gather_info’ chủ yếu được viết bằng Python, với cấu hình nằm trong phạm vi của MCP và các dịch vụ RPC do daemon isi_rpc_d cung cấp.

Ví dụ:

# isi_gather_info&
# ps -auxw | grep -i thu thập
root 91620 4.4 0.1 125024 79028 1 I+ 16:23 0:02.12 python /usr/bin/isi_gather_info (python3.8)
gốc 91629 3.2 0.0 91020 39728 - S 16:23 0:01.89 isi_rpc_d: isi.gather.minion.minion.GatherManager (isi_rpc_d)
root 93231 0.0 0.0 11148 2692 0 D+ 16:23 0:00.01 grep -i thu thập

Overlord sử dụng isi_rdo (trình nền thực thi lệnh từ xa OneFS) để khởi động các tiến trình minion và thông báo cho chúng về các lệnh sẽ được thực thi bởi tệp XML tạm thời, thường được lưu trữ tại /ifs/.ifsvar/run/<uuid>-gather_commands.xml. Sau đó, minion sẽ khởi chạy một trình thực thi và một lệnh cho mỗi mục trong tệp XML.

Trình thực thi quy trình song song (mặc định để sử dụng) hoạt động như một nhóm, kích hoạt các lệnh chạy song song cho đến khi một số lệnh được chỉ định chạy song song. Bản thân các lệnh đảm nhiệm việc chạy và xử lý kết quả, thường xuyên kiểm tra để đảm bảo ngưỡng thời gian chờ chưa bị vượt quá.

Executor cũng theo dõi những lệnh nào hiện đang chạy và có bao nhiêu lệnh đã hoàn tất, và ghi chúng vào một tệp để tiến trình overlord có thể hiển thị thông tin hữu ích. Khi hoàn tất, executor trả về thông tin thời gian chạy cho minion, minion này sẽ ghi lại tệp chuẩn. Executor cũng sẽ tự tắt an toàn nếu tệp khóa isi_gather_info biến mất, chẳng hạn như nếu tiến trình isi_gather_info bị giết.

Trong quá trình thu thập, minion không trả lại bất cứ thứ gì cho tiến trình overlord vì đầu ra công việc của nó được ghi vào đĩa.

Về mặt kiến ​​trúc, quy trình ‘thu thập’ bao gồm quy trình làm việc gồm tám giai đoạn:

Chi tiết của từng giai đoạn như sau:

Giai đoạn Sự miêu tả
1. Thiết lập Đọc từ các đối số được truyền vào và từ bất kỳ tệp cấu hình nào trên đĩa và thiết lập từ điển cấu hình, sẽ được sử dụng trong toàn bộ cơ sở mã còn lại. Hầu hết mã cho bước này nằm trong isilon/lib/python/gather/igi_config/configuration.py. Đây cũng là bước mà chương trình có nhiều khả năng thoát nhất, nếu một số đối số cấu hình cuối cùng không hợp lệ.
2. Chạy cục bộ Thực thi tất cả các lệnh cụm, được chạy trên cùng một nút đang bắt đầu thu thập. Tất cả các lệnh này chạy song song (lên đến giá trị song song hiện tại). Đây thường là giai đoạn chạy dài thứ hai.
3. Chạy các nút Thực thi các lệnh nút trên tất cả các nút của cụm. Lệnh này chạy trên mỗi nút và trong khi các lệnh này chạy song song (lên đến giá trị song song hiện tại), chúng không chạy song song với bước cục bộ.
4. Thu thập Đảm bảo rằng tất cả kết quả đều nằm trên nút chủ (nút bắt đầu thu thập). Nếu thu thập sử dụng /ifs, nó sẽ rất nhanh, nhưng nếu không, nó cần SCP tất cả kết quả nút đến một nút duy nhất.
5. Tạo các tập tin bổ sung Tạo nodes_info và package_info.xml. Hai tệp này có trong mọi lần thu thập và cho chúng ta biết một số siêu dữ liệu quan trọng về cụm.
6. Đóng gói Gói (tars và gzips) tất cả các kết quả. Đây thường là giai đoạn chạy dài nhất, thường theo cấp số nhân.
7. Tải lên Vận chuyển gói tarfile đến đích đã chỉ định. Tùy thuộc vào vị trí địa lý, giai đoạn này cũng có thể kéo dài.
8. Dọn dẹp Dọn dẹp mọi tệp trung gian được tạo trên cụm. Giai đoạn này sẽ chạy ngay cả khi quá trình thu thập không thành công hoặc bị gián đoạn.

Vì công cụ isi_gather_info chủ yếu dùng để khắc phục sự cố cụm có vấn đề nên nó chạy dưới dạng root (hoặc compadmin ở chế độ tuân thủ), vì nó cần có khả năng thực thi trong điều kiện xuống cấp (tức là không có GMP, trong quá trình nâng cấp và trong các cụm chia tách, v.v.). Với các yêu cầu không điển hình này, isi_gather_info được xây dựng như một tiện ích độc lập, thay vì sử dụng API nền tảng để thu thập dữ liệu.

Thời gian cần thiết để hoàn tất một lần thu thập thường được xác định bởi cấu hình cụm, chứ không phải kích thước. Ví dụ, một lần thu thập trên một cụm nhỏ với số lượng chia sẻ NFS lớn sẽ mất nhiều thời gian hơn đáng kể so với trên cụm lớn có cấu hình NFS tương tự. Không khuyến khích thu thập gia tăng, vì cơ sở cần kiểm tra trong kho lưu trữ nhật ký có thể bị xóa. Theo mặc định, các lần thu thập chỉ tồn tại trong hai tuần trong bộ xử lý nhật ký.

Khi hoàn tất việc thu thập, một logset được nén và tar được tạo ra và được đặt trong thư mục /ifs/data/IsilonSupport/pkg của cụm theo mặc định. Một tarfile thu thập chuẩn sẽ giải nén thành cấu trúc cấp cao nhất sau:

# du -sh *
536M IsilonLogs-powerscale-f900-cl1-20220816-172533-3983fba9-3fdc-446c-8d4b-21392d2c425d.tgz
Điểm chuẩn 320K
 24K celog_events.xml
 Dòng lệnh 24K
128K hoàn thành
449M địa phương
 24K địa phương.log
 24K nút_thông tin
 24K chúa tể.log
 83M powerscale-f900-cl1-1
 24K powerscale-f900-cl1-1.log
119M powerscale-f900-cl1-2
 24K powerscale-f900-cl1-2.log
134M powerscale-f900-cl1-3
 24K powerscale-f900-cl1-3.log

Trong trường hợp này, đối với cụm F900 ba nút, tệp tarfile nén có kích thước 536 MB. Phần lớn dữ liệu, chủ yếu là đầu ra lệnh CLI, nhật ký và đầu ra sysctl, được chứa trong các thư mục nút ‘cục bộ’ và riêng lẻ (powerscale-f900-cl1-*). Mỗi thư mục nút chứa một tệp tarfile, varlog.tar, chứa tất cả các tệp nhật ký có liên quan cho nút đó.

Thư mục gốc của tệp tarfile bao gồm những nội dung sau:

Mục Sự miêu tả
chuẩn mực § Thời gian chạy cho tất cả các lệnh được thực thi bởi gather.
celog_events.xml
  • Thông tin về khách hàng, bao gồm tên, số điện thoại, email, v.v.
  • Bao gồm các thông tin chi tiết quan trọng về cụm và các nút riêng lẻ, bao gồm:

§ Tên cụm/nút

§ Số sê-ri nút

§ ID cấu hình

§ Thông tin phiên bản OneFS

§ Sự kiện

hoàn thành § Danh sách các lệnh hoàn chỉnh chạy trên cụm và trên các nút riêng lẻ
địa phương
  • Xem bên dưới.
thông tin nút
  • Chứa thông tin chung về các nút, bao gồm ID nút, địa chỉ IP, tên nút và số nút logic
overlord.log § Thu thập nhật ký thực hiện và phát hành.
gói_thông_tin.xml § Chi tiết phiên bản cụm, GUID, S/N và thông tin khách hàng (tên, số điện thoại, email, v.v.).
dòng lệnh
  • Cú pháp của lệnh chạy thu thập.

Nội dung đáng chú ý của thư mục ‘local’ (tất cả các lệnh trên toàn cụm được thực thi trên nút chạy thu thập) bao gồm:

Mục Nội dung Địa phương Sự miêu tả
lịch sử cảnh báo isi

 

  • Tệp này có vẻ như chứa danh sách tất cả các cảnh báo đã từng xảy ra trên cụm
  • ID sự kiện, bao gồm số của nút khởi tạo và số sự kiện
  • Thời gian cảnh báo được đưa ra và được giải quyết
  • Mức độ nghiêm trọng
  • Số nút logic của nút(các nút) mà cảnh báo áp dụng
  • Tin nhắn có trong cảnh báo
danh sách việc làm
  • Chứa thông tin về quy trình công cụ tìm việc
  • Bao gồm tên công việc, trạng thái được kích hoạt, chính sách ưu tiên và mô tả
lịch trình công việc isi
  • Lịch trình thời gian các tiến trình công cụ công việc chạy
  • Bao gồm tên công việc, lịch trình cho một công việc và thời gian tiếp theo mà một lần chạy công việc sẽ diễn ra
isi_giấy_phép
  • Trạng thái giấy phép hiện tại của tất cả các mô-đun
giao diện mạng isi § Trạng thái và cấu hình của tất cả các giao diện mạng của cụm.
isi_nfs_xuất khẩu § Chi tiết cấu hình cho tất cả các xuất NFS của cụm.
dịch vụ isi § Liệt kê tất cả các dịch vụ OneFS và liệu chúng được bật hay tắt. Cấu hình chi tiết hơn cho từng dịch vụ được chứa trong các tệp riêng biệt. Ví dụ, đối với SnapshotIQ:

  • danh sách ảnh chụp nhanh
  • snapshot_lịch trình
  • cài đặt snapshot
  • snapshot_sử dụng
  • danh sách ảnh chụp nhanh có thể ghi
isi_smb § Thông tin cấu hình chi tiết cho tất cả các xuất NFS của cụm.
isi_stat § Trạng thái chung của cụm, bao gồm mạng, ổ đĩa, v.v.
isi_thống kê § Thống kê IO của CPU, giao thức và đĩa.

Nội dung của thư mục ‘node’ bao gồm:

Mục Nội dung Nút Sự miêu tả
df Đầu ra của lệnh df
du
  • Đầu ra của lệnh du
  • Thật không may, nó chạy ‘du -h’ báo cáo dung lượng theo dạng ‘con người có thể đọc được’, nhưng làm cho việc sắp xếp trở nên phức tạp hơn.
isi_alerts Chứa danh sách các cảnh báo nổi bật trên nút
ps và ps_full Danh sách tất cả các tiến trình đang chạy tại thời điểm isi_gather_info được thực thi.

Khi lệnh isi_gather_info chạy, trạng thái sẽ được cung cấp trong phiên CLI tương tác:

# isi_gather_info
Cấu hình
    HOÀN THÀNH
chạy lệnh cục bộ
    ĐANG TIẾN HÀNH \
Tiến trình của địa phương
[############################################################]
147/152 tập tin đã được ghi \
Một số lệnh đang hoạt động là: ifsvar_modules_jobengine_cp, isi_statistics_heat, ifsv
mô-đun ar

Khi quá trình thu thập hoàn tất, vị trí của tarfile trên cụm được báo cáo như sau:

# isi_gather_info
Cấu hình
    HOÀN THÀNH
chạy lệnh cục bộ
    HOÀN THÀNH
chạy lệnh nút
    HOÀN THÀNH
thu thập các tập tin
    HOÀN THÀNH
tạo package_info.xml
    HOÀN THÀNH
thu thập hắc ín
    HOÀN THÀNH
đang tải lên thu thập
    HOÀN THÀNH

Đường đi đến nơi thu gom nhựa đường là:

/ifs/data/Isilon_Support/pkg/IsilonLogs-h5001-20220830-122839-23af1154-779c-41e9-b0bd-d10a026c9214.tgz

Nếu dịch vụ thu thập dữ liệu tải lên không khả dụng, lỗi sẽ được hiển thị trên bảng điều khiển như hiển thị ở đây:


đang tải lên thu thập
    THẤT ​​BẠI
        ESRS không thành công - ESRS chưa được cung cấp
        FTP không thành công - lỗi pycurl: (28, 'Không kết nối được tới ftp.isilon.com cổng 21 sau 81630 ms: Hết thời gian hoạt động')

Tác giả : Nick Trimbee