Nâng cao hoạt động của bạn: Làm chủ các cuộc gọi API nâng cao của PowerMax để đạt hiệu quả cao nhất

Nâng cao hoạt động của bạn: Làm chủ các cuộc gọi API nâng cao của PowerMax để đạt hiệu quả cao nhất  

Trong bối cảnh kỹ thuật số phát triển nhanh như hiện nay, các doanh nghiệp phụ thuộc rất nhiều vào API (Giao diện lập trình ứng dụng) để quản lý và cung cấp môi trường CNTT của họ, bao gồm cả lưu trữ. Mặc dù API là công cụ mạnh mẽ, nhưng việc sử dụng không hiệu quả có thể dẫn đến tăng tải máy chủ trên các thiết bị quản lý và trải nghiệm người dùng không thỏa đáng. 

Với các lệnh gọi API nâng cao mới của PowerMax API, các nhà phát triển có thể: tối ưu hóa quy trình làm việc, giảm tải máy chủ và tăng hiệu quả bằng cách giảm lượng mã cần thiết để duy trì và thu thập thông tin về hệ thống lưu trữ. 

Bài viết này khám phá các lệnh gọi API nâng cao mới có sẵn trong Unisphere cho PowerMax 10.1 và các biện pháp tốt nhất để làm việc với các lệnh gọi này nhằm tạo ra: các ứng dụng liền mạch, phản hồi nhanh và hiệu quả bằng cách sử dụng API REST của PowerMax.

Trong bài đăng trước của tôi  về những điểm mới trong PowerMax API phiên bản 10.1 , tôi tóm tắt những cải tiến này ở mức độ cao. Trong bài đăng này, tôi sẽ đi sâu hơn vào cách sử dụng các lệnh gọi này một cách hiệu quả và cung cấp nguồn cảm hứng để chúng có thể thay thế các lệnh gọi API truyền thống, giúp giảm lượng mã cần bảo trì và tận dụng tối đa các lệnh gọi API của bạn.

Những thách thức chung thúc đẩy nhu cầu về các cuộc gọi API nâng cao

Một thách thức là thu thập dữ liệu chi tiết trên một tập hợp lớn các đối tượng mảng với API hiện có. Nó thường yêu cầu nhiều lệnh gọi API. Mảng PowerMax hỗ trợ hàng chục nghìn thiết bị và hàng nghìn đối tượng khác như nhóm lưu trữ và ảnh chụp nhanh. Một thách thức khác là khai thác dữ liệu lớn thường thúc đẩy số lượng lớn các lệnh gọi API và với nhiều Mảng được quản lý bởi một máy chủ duy nhất, số lượng lệnh gọi sẽ tăng thêm nữa. Việc chế ngự vấn đề về quy mô này luôn là một thách thức và điều này tạo ra nhu cầu về việc xử lý theo lô và tìm một cách khác để lấy các bộ sưu tập dữ liệu từ API.

Với các lệnh gọi API được cải tiến mới, các nhà phát triển có thể truy cập vào dữ liệu ở cấp độ sâu hơn theo khối lượng lớn và chọn các tập hợp con hoặc siêu tập hợp thông tin được lọc theo đúng yêu cầu của họ.

Với bản phát hành này, chúng tôi đã giới thiệu các lệnh gọi API nâng cao cho Hiệu suất và Thu thập dữ liệu cho Nhóm lưu trữ và Khối lượng. Những cải tiến này được thiết kế để tăng hiệu suất tổng thể của API khi sử dụng với các lệnh gọi mới và đơn giản hóa trải nghiệm của nhà phát triển.

Quản lý phiên bản trên các lệnh gọi API nâng cao.

Các điểm cuối được cải tiến sử dụng một URL mới. URL cơ sở cho các điểm cuối API PowerMax truyền thống là: 

https://unipowermax_ip:port/univmax/restapi/{phiên bản}

Các điểm cuối nâng cao mới sử dụng: 

https://unipowermax_ip:port/univmax/rest/v1

Sự khác biệt chính ở đây là tinh tế nhưng mạnh mẽ từ góc nhìn của nhà phát triển. Các cuộc gọi được phiên bản hóa theo các thuộc tính có thể truy cập. Khi các API mới khả dụng hoặc các thuộc tính mới trên các cuộc gọi API hiện có, nhà phát triển cần có thể chỉ cần chọn chúng thông qua đường dẫn truy vấn trên URL khi máy chủ quản lý ở phiên bản hỗ trợ chúng. Thêm thông tin về điều này sau.`

Xác thực vẫn như cũ, các lệnh gọi API sử dụng xác thực cơ bản, do đó cần có tên người dùng và mật khẩu.

Cùng với đó, có 4 lệnh gọi API mới theo định dạng mới.

NHẬN /hệ thống/{id}/thể loại-hiệu suất

NHẬN /hệ thống/{id}/thể loại-hiệu suất/{id}

NHẬN /hệ thống/{id}/khối lượng

NHẬN /hệ thống/{id}/nhóm-lưu-trữ

Các cuộc gọi API hiệu suất nâng cao và cách sử dụng

Các lệnh gọi liên quan đến hiệu suất là các lệnh gọi GET trái ngược với các lệnh gọi POST trên các lệnh gọi hiệu suất cũ và đòi hỏi ít sự tham gia của nhà phát triển.

Lưu ý: các lệnh gọi này hoạt động với tất cả các mảng được Unipshere hỗ trợ, không chỉ mảng mới nhất và tuyệt vời nhất, mà bạn còn cần Unisphere tối thiểu 10.1 để tận dụng lợi thế này.

https://ipaddress:8443/univmax/rest/v1/systems/{id}/performance-categories (LẤY) 

Trả về các Danh mục hiệu suất được hỗ trợ và các số liệu hợp lệ dựa trên mô hình mảng của id/số sê-ri được cung cấp.

https://ipaddress:8443/univmax/rest/v1/systems/{id}/performance-categories/{category} (LẤY)

Trả về dữ liệu chẩn đoán mới nhất có sẵn cho danh mục hiệu suất được chỉ định cho tất cả các Chỉ số hiệu suất chính (KPI) 

Với các lệnh gọi hiệu suất nâng cao này, không cần thêm lệnh gọi tra cứu nào để tìm ra thành phần nào cần truy vấn, không cần nhập khóa và không cần tạo dấu thời gian. Những lệnh gọi này làm giảm số lượng lệnh gọi đến hệ thống, giảm tải tổng thể cho máy chủ quản lý và cung cấp thông tin với nỗ lực tối thiểu cho các nhà phát triển. 

Dưới đây là một ví dụ yêu cầu số liệu cho Cổng giao diện, lưu ý cuộc gọi trả về số liệu cho từng ID cổng trên hệ thống mà không cần phải xây dựng bất kỳ tải trọng nào.

Các lệnh gọi hiệu suất nâng cao mới lý tưởng cho khách hàng xây dựng bảng thông tin hoặc xuất sang cơ sở dữ liệu chuỗi thời gian (để sử dụng với các công cụ như Grafana hoặc Splunk cũng như mục đích sử dụng chung).  

Nhóm lưu trữ và khối lượng Các cuộc gọi nâng cao

Đối với khách hàng muốn thu thập thông tin cấu hình, có 2 lệnh gọi nâng cao mới để hỗ trợ việc này. Theo mặc định, chỉ có id của các đối tượng được truy vấn được trả về cho tất cả các đối tượng trên hệ thống, tuy nhiên, bằng cách sử dụng các tùy chọn select và filter, các phản hồi có thể được tùy chỉnh để trả về chính xác thông tin mà chúng cần trong một lệnh gọi API duy nhất. Với một lệnh gọi duy nhất, bạn có thể lấy thông tin về tất cả các nhóm lưu trữ hoặc ổ đĩa trên mảng cùng với các thuộc tính được chỉ định đã chọn và tùy chọn được lọc theo tiêu chí lựa chọn của bạn.

https://địa chỉ IP:8443/univmax/rest/v1/systems/{id}/storage-groups (LẤY)

https://ipaddress:8443/univmax/rest/v1/systems/{id}/volumes (LẤY)

Trong phần sau, tôi sẽ đi sâu vào các tùy chọn để lựa chọn và lọc nhằm đạt được những điều tuyệt vời với nỗ lực tối thiểu.

Tối ưu hóa việc lọc và lựa chọn dữ liệu cho các nhóm lưu trữ và khối lượng

Để truy xuất lượng lớn dữ liệu trên tất cả các đối tượng được quản lý trên một mảng với các lệnh gọi API truyền thống, cần nhiều lệnh gọi API cho mỗi đối tượng để có được mức thông tin chi tiết. Khi chạy trên nhiều mảng, số lượng lệnh gọi tăng lên theo số lượng đối tượng được quản lý đang được truy vấn. Với các lệnh gọi API mới, các thao tác select và filter cho phép các nhà phát triển có được cùng mức thông tin hoặc cao hơn chỉ với một vài lệnh gọi API.

Theo mặc định, chạy lệnh gọi GET cho storage-groups sẽ chỉ trả về ID của mọi nhóm lưu trữ trên mảng, điều này nhằm giảm thiểu chi phí phát sinh do lệnh gọi tạo ra. ID là tên đối tượng nhận dạng cho mọi thuộc tính trong các lệnh gọi API mới này. Bản thân Đối tượng có nhiều thuộc tính tùy chọn hơn có thể lựa chọn và lọc được để tùy chỉnh kết quả trả về. Các thuộc tính tùy chọn để lọc và lựa chọn được ghi lại trong tài liệu dành cho nhà phát triển tại đây . Tài liệu cũng có sẵn dưới dạng OpenApi.json để dễ dàng xem xét và lập trình hơn.

Hình ảnh bên dưới hiển thị một đoạn trích danh sách các tham số trả về tiềm năng cho lệnh gọi storage-groups get như được thấy từ JSON đã nhập trong PostMan. Danh sách đầy đủ các thuộc tính quá lớn để có thể vừa với ảnh chụp màn hình.

Hãy lấy một ví dụ gọi để xây dựng một tải trọng trả về

  • thu thập dữ liệu về tất cả các nhóm lưu trữ trên một mảng PowerMax
  • Chọn chi tiết về dung lượng nhóm lưu trữ, ID khối lượng có trong nhóm lưu trữ cùng với effective_wwn của chúng
  • Hạn chế lệnh gọi chỉ trả về dữ liệu trên các nhóm lưu trữ có nhiều hơn một ảnh chụp nhanh
  • Cung cấp thông tin chi tiết về từng ảnh chụp nhanh bao gồm dữ liệu hết hạn, trạng thái liên kết và liệu đó có phải là ảnh chụp nhanh an toàn hay không.

Để thực hiện điều này, chỉ cần nhập: thêm ?select=   vào cuối URL cho lệnh gọi API theo sau là danh sách các thuộc tính được phân tách bằng dấu phẩy.

Từ ví dụ, trả về trong POSTMAN chúng ta có thể xác định các tham số sau sẽ cung cấp thông tin

num_of_volumes, cap_gb, num_of_masking_views, masking_views.id, volumes.id, volumes.effective_wwn, volumes.resource_type, snapshots.id, snapshots.name, snapshots.timestamp_ms, snapshots.linked, snapshots.secured, snapshots.expired

Lưu ý: một số thuộc tính được ghi chú bằng dấu chấm, điều này là cần thiết để chọn các thuộc tính lồng nhau nên bạn cần chú ý đến điều này.

Tôi thường khuyên bạn nên xem lại đầu ra JSON trong các ví dụ, với tôi, nó dễ giải mã hơn là đọc tài liệu dạng bảng trực tuyến vì thụt lề giúp xác định các thuộc tính phụ cho ký hiệu dấu chấm dễ hơn.  

Nếu tôi muốn hạn chế truy vấn chỉ đối với các nhóm lưu trữ có ít nhất một snapshot, tôi chỉ lọc các nhóm lưu trữ có snapshot. Để tránh dữ liệu trả về không cần thiết, tôi có thể thêm bộ lọc vào URL cho lệnh gọi GET &filter=num_of_snapshots gt 0. 

Bạn cũng có thể kết hợp nhiều bộ lọc, thêm nhiều bộ lọc tùy theo nhu cầu của bạn vào URL cho bất kỳ thuộc tính hoặc thuộc tính phụ nào được phân tách bằng dấu phẩy. Khi chỉ định nhiều bộ lọc, chúng được áp dụng theo kiểu AND.

Chi tiết đầy đủ về tất cả các toán tử cho bộ lọc đều có trong tài liệu tại đây .

Sau khi áp dụng tiêu chí lựa chọn thuộc tính và bộ lọc của lệnh gọi API, URL sẽ trông như sau:

https://ipaddress:8443/univmax/rest/v1/systems/000220200226/storage-groups?select=num_of_volumes,cap_gb,num_of_masking_views,masking_views.id,volumes.id,volumes.effective_wwn,volumes.resource_type,snapshots.id,snapshots.name,snapshots.timestamp_ms,snapshots.linked,snapshots.secured,snapshots.expired&filter=num_of_snapshots gt 0

Khi lệnh gọi được thực thi, nó trả về một phản hồi duy nhất với dữ liệu được yêu cầu cho tất cả các nhóm lưu trữ khớp với tiêu chí lọc. Nó hiển thị tất cả các thuộc tính và thuộc tính phụ đã chọn. Kết quả trả về JSON được hiển thị bên dưới.

PyU4V Python SDK của chúng tôi cho PowerMax API có hỗ trợ cho các lệnh gọi API nâng cao mới với phiên bản 10.1 có sẵn từ PyPi và được ghi chép đầy đủ trên ReadTheDocs . Các thư viện hàm mới volumes, storage_groups và performance_enhanced đã được thêm vào. Chức năng đã được thêm vào các mô-đun volumes và storage_groups để trả về các thuộc tính có sẵn để lựa chọn ở định dạng JSON để siêu dữ liệu dễ truy cập hơn. Truy vấn tương tự được thực hiện bởi tập lệnh python được hiển thị bên dưới.

Tập lệnh Python ngắn dễ đọc, thực hiện một lệnh gọi API duy nhất để lấy tất cả thông tin này cho tất cả các khối lượng khớp với tiêu chí. Có hàng trăm thuộc tính có sẵn để bạn lựa chọn và lọc. Bạn nên dành một chút thời gian trước để xác định các báo cáo bạn cần và tạo các hàm để nắm bắt thông tin theo cách có thể lặp lại.   

Hãy nhớ rằng nếu bạn không cần thông tin, đừng yêu cầu thông tin đó vì nó sẽ tạo ra ít tải hơn cho máy chủ quản lý và ứng dụng máy khách. API được nêu rõ theo cách này. Theo mặc định, các hàm PyU4V cho nhóm lưu trữ và ổ đĩa sẽ chọn quay lại các thuộc tính cấp cao nhất cho cả nhóm lưu trữ và ổ đĩa, ngoại trừ rdf_infos và snapshot. 

Tóm lại, các lệnh gọi API nâng cao mới cung cấp quyền truy cập vào giao diện giống SQL để lựa chọn, lọc và sắp xếp dữ liệu trên các đối tượng lưu trữ của bạn thông qua API, nghĩa là bạn có thể tự thiết kế các lệnh gọi API một cách hiệu quả để cung cấp dữ liệu bạn muốn và cần. 

Hy vọng bài viết này hữu ích và truyền cảm hứng cho bạn về cách giảm số lượng lệnh gọi API cần thiết để lấy các tập dữ liệu lớn trên các nhóm lưu trữ và ổ đĩa cho mảng PowerMax và VMAX của bạn.

Hãy xem không gian này để biết thêm về PowerMax API.