تحلیل Command و Lock با svc_mgmt_operations در Dell PowerStore؛ قسمت نهم

این مقاله قسمت نهم از مجموعه راهنمای Service Scripts در Dell PowerStore است. در قسمت هشتم، System Journal، وضعیت License، ابزار Manufacturing و تنظیمات SecurID MFA بررسی شد؛ در این قسمت تمرکز روی svc_mgmt_operations است، سرویسی که برای Query کردن اطلاعات عملیات مدیریتی، Commandها و Lockهای Cluster استفاده می‌شود.

با این ابزار می‌توان اطلاعات موجود در Command Table و job_request را بررسی کرد، Top-level Commandهای موفق یا ناموفق را از یکدیگر جدا کرد، Commandها را بر اساس State و Response فیلتر کرد و ساختار Hierarchy یا Command Tree را مشاهده کرد. بخش بعدی مجموعه به مهاجرت vCenter و مدیریت Autodownload اختصاص دارد.

خلاصه مقاله

svc_mgmt_operations یک Service Script عیب‌یابی با دامنه Cluster است که در حالت Normal و Service قابل استفاده است. این ابزار از مجموعه‌ای از Subcommandها برای Query کردن Command Table، Lock Request Table، Command Detail، Command Hierarchy و Command Tree استفاده می‌کند و طبق مشخصات این بخش، اجرای آن باعث عدم دسترس‌پذیری یا از دست رفتن داده نمی‌شود.

مسیر مطالعه این راهنما

جایگاه قسمت نهم در مجموعه Service Scripts

مطالعه قسمت هشتم برای حفظ توالی آموزشی مجموعه پیشنهاد می‌شود. 
قسمت فعلی روی داده‌های عملیاتی Command و Lock متمرکز است و قسمت بعدی وارد فرآیندهای مهاجرت vCenter و Autodownload می‌شود.

svc_mgmt_operations چیست و چه اطلاعاتی ارائه می‌دهد؟

Service Script با نام svc_mgmt_operations برای دریافت اطلاعات سیستم از طریق Service Tool طراحی شده است. Service Tool اطلاعات موردنیاز را از Command Table و جدول job_request دریافت می‌کند.

کارکرد این Script عیب‌یابی است و در هر دو حالت Normal و Service قابل استفاده است. دامنه آن Cluster است و برای استفاده از آن پیش‌نیاز جداگانه‌ای تعریف نشده است.

مشخصات اجرایی و دامنه svc_mgmt_operations

مشخصات اجرایی svc_mgmt_operations
ویژگیمقدار
کارکردعیب‌یابی
حالتNormal یا Service
کاربرداستفاده عمومی
نیاز به گذرواژه کاربر Serviceخیر
نیاز به دسترسی rootخیر
احتمال عدم دسترس‌پذیری دادهخیر
احتمال از دست رفتن دادهخیر
دامنهCluster
پیش‌نیازهیچ‌کدام
فرمت دستور
svc_mgmt_operations [-h] {all_locks,all_top_level_commands,command_tree,commands_by_type,pending_locks,granted_locks_with_pending_locks,command_type_summary,failed_top_level_commands,command_by_id,locks_by_command_id,locks_by_resource_id,command_hierarchy_for_cleanup,command_detail}

گزینه -h, --help پیام راهنما را نمایش می‌دهد و از Script خارج می‌شود.

عملیات اصلی برای Query کردن Command و Lock

Subcommandهای اصلی svc_mgmt_operations
عملیاتکاربرد
all_locksLock Request Table را برای همه Lockها Query می‌کند.
all_top_level_commandsCommand Table را برای همه Top-level Commandهای موفق Query می‌کند.
command_treeCommand Tree را Query می‌کند.
commands_by_typeCommand Table را بر اساس Command Type Query می‌کند.
command_type_summaryCommand Table را بر اساس Type Summary Query می‌کند.
failed_top_level_commandsCommand Table را برای Top-level Commandهای ناموفق Query می‌کند.
command_by_idCommand Table را بر اساس Command ID Query می‌کند.
locks_by_command_idLock Request Table را بر اساس Command ID Query می‌کند.
locks_by_resource_idLock Request Table را بر اساس Resource ID Query می‌کند.
pending_locksهمه Pending Lockها را Query می‌کند.
granted_locks_with_pending_locksهمه Granted Lockهای دارای Pending Lock را Query می‌کند.
command_hierarchy_for_cleanupHierarchy و همه Recordهای مرتبط با Commandهای مشخص را نمایش می‌دهد.
command_detailجزئیات Command را Query می‌کند.

این تفکیک اجازه می‌دهد Query بسته به نوع اطلاعات موردنیاز روی Command Table یا Lock Request Table متمرکز شود. برخی عملیات بر ID یا Resource تمرکز دارند و برخی دیگر وضعیت عمومی Commandها یا Lockها را گزارش می‌کنند.

بررسی Top-level Commandهای موفق

all_top_level_commands برای دریافت اطلاعات Top-level Commandهای موفق از Command Table تعریف شده است. در توضیح این عملیات آمده است که Service Tool اطلاعات را در نقش کاربر root دریافت می‌کند.

این عبارت با نیاز کاربر به Login مستقیم root یکسان نیست؛ زیرا مشخصات کلی svc_mgmt_operations نیاز به دسترسی root را «خیر» اعلام می‌کند.

عملکرد all_top_level_commands

فرمت دستور
svc_mgmt_operations all_top_level_commands [-h] [--sort_processing_time]

گزینه -h, --help راهنمای دستور را نمایش می‌دهد. گزینه --sort_processing_time نیز Processing Time را مرتب می‌کند.

مرتب‌سازی بر اساس Processing Time

وجود گزینه sort_processing_time امکان مرتب‌سازی خروجی Top-level Commandهای موفق بر اساس Processing Time را فراهم می‌کند. برای Top-level Commandهای ناموفق، عملیات جداگانه failed_top_level_commands در فهرست اصلی ابزار وجود دارد.

فیلتر و مشاهده جزئیات Command

command_detail برای Query کردن Commandها با استفاده از Filterهای مختلف و مشاهده جزئیات هر Command طراحی شده است. این عملیات در حالت Normal یا Service، با دامنه Cluster و بدون پیش‌نیاز اضافی قابل استفاده است.

فیلترهای command_detail

فرمت دستور
svc_mgmt_operations command_detail [-h] [--command_id <value>]
[--command_type [command_type value]]
[--command_state [{INITIAL,QUEUED,RUNNING,COMPLETED}]]
[--start_after <value>] [--end_after <value>]
[--processing_longer_than <value>]
[--processing_shorter_than <value>]
[--top_level_commands]
[--response_status [{OK,VALIDATION_ERROR,NOT_FOUND_ERROR,ERROR,INTERNAL_ERROR,
UNKNOWN,RUNNING,CANCELLED,UNRECOVERABLE_ERROR,BUSY} ...]]
[--response_state {CREATED,ACKNOWLEDGED}]
فیلترهای اصلی command_detail
پارامترکاربرد
--command_idنمایش Command بر اساس ID
--command_typeفیلتر براساس Command Type
--command_stateفیلتر INITIAL، QUEUED، RUNNING یا COMPLETED
--start_beforeCommandهایی که پیش از زمان مشخص آغاز شده‌اند
--end_beforeCommandهایی که پیش از زمان مشخص پایان یافته‌اند
--start_afterCommandهایی که پس از زمان مشخص آغاز شده‌اند
--end_afterCommandهایی که پس از زمان مشخص پایان یافته‌اند
--processing_longer_thanProcessing Time طولانی‌تر از Interval مشخص
--processing_shorter_thanProcessing Time کوتاه‌تر از Interval مشخص
--top_level_commandsفیلترکردن Commandهای غیر Top-level
--response_statusفیلتر بر اساس Response Status
--response_stateفیلتر CREATED یا ACKNOWLEDGED

Response Statusهای قابل استفاده شامل OK، VALIDATION_ERROR، NOT_FOUND_ERROR، ERROR، INTERNAL_ERROR، UNKNOWN، RUNNING، CANCELLED، UNRECOVERABLE_ERROR و BUSY هستند.

بررسی Responseهای دارای وضعیت ERROR

مثال ارائه‌شده، Commandهایی را جست‌وجو می‌کند که Response Status آن‌ها ERROR است و پیش از بازه زمانی تعیین‌شده پایان یافته‌اند.

نمونه دستور
svc_mgmt_operations command_detail --response_status ERROR --end_before "1 day ago"

Command : com.emc.cyclone.contexts.elicense.domain.commands.LicenseRetrieveCommand
id : 9a1cee95-6854-4e1b-84c1-d87d8ece660c
work unit status : FAILED
processing time : 0:00:39.854691
status response : ERROR

خروجی تفصیلی نمونه علاوه بر نام و ID، Command Type، وضعیت Work Unit، درصد تکمیل، Processing Time، Start Time، End Time، Response Class، Messageها و JSON Response را نیز شامل می‌شود.

نمایش Command Hierarchy برای Cleanup

command_hierarchy_for_cleanup تمام Recordهای مرتبط با Commandها را نمایش می‌دهد و امکان محدودکردن آن‌ها براساس نوع Command و Stateهای مختلف را فراهم می‌کند.

این Subcommand نیز عیب‌یابی، Cluster-level و قابل اجرا در حالت Normal یا Service است و برای آن گذرواژه Service، دسترسی root یا پیش‌نیاز دیگری اعلام نشده است.

فیلتر براساس Command State و Response

فرمت دستور
svc_mgmt_operations command_hierarchy_for_cleanup [-h]
[--command_id <value>]
[--command_type [command_type value]]
[--command_state [{INITIAL,QUEUED,RUNNING,COMPLETED}]]
[--start_after <value>] [--end_after <value>]
[--processing_longer_than <value>]
[--processing_shorter_than <value>]
[--top_level_commands]
[--response_status [{OK,VALIDATION_ERROR,NOT_FOUND_ERROR,ERROR,INTERNAL_ERROR,
UNKNOWN,RUNNING,CANCELLED,UNRECOVERABLE_ERROR,BUSY} ...]]
[--response_state {CREATED,ACKNOWLEDGED}]

این عملیات Command Stateهای INITIAL، QUEUED، RUNNING و COMPLETED و Response Stateهای CREATED و ACKNOWLEDGED را پشتیبانی می‌کند. Response Status نیز با همان مجموعه وضعیت‌های تعریف‌شده برای command_detail قابل فیلتر است.

در بخش Positional Arguments نیز command_id برای نمایش Hierarchy مربوط به Commandها معرفی شده و ذکر شده است که UUIDهای متعدد با کاما از یکدیگر جدا می‌شوند.

مشاهده Commandهای INITIAL و RUNNING

نمونه دستور
svc_mgmt_operations command_hierarchy_for_cleanup --command_state INITIAL RUNNING

+ command: 99d81ed0-0989-46b8-b033-ba3d6a87bdc4 - DoPingCommand RUNNING
* work_unit: 7f1a1776-d832-4373-a139-1a6c7758e9fa - [internal] IN_PROGRESS
Progress: 0%

در این نمونه، یک DoPingCommand با State برابر RUNNING و Work Unit مرتبط با وضعیت IN_PROGRESS نمایش داده می‌شود.

تحلیل Command Tree در Dell PowerStore

command_tree بسته به Option واردشده، Command Tree یک یا چند Command را نمایش می‌دهد. این نمایش برای مشاهده رابطه Command اصلی و Commandهای زیرمجموعه آن به کار می‌رود.

تفاوت all_commands و failed_commands

گزینه --all_commands Top-level Commandهایی با Response Status برابر OK را نمایش می‌دهد. گزینه --failed_commands نیز Top-level Commandهایی را نمایش می‌دهد که Response Status آن‌ها ERROR است.

فرمت دستور
svc_mgmt_operations command_tree [-h]
[--all_commands] [--failed_commands]
[--command_id <value>]
[--command_type [command_type value]]
[--command_state [{INITIAL,QUEUED,RUNNING,COMPLETED}]]
[--start_after <value>] [--end_after <value>]
[--processing_longer_than <value>]
[--processing_shorter_than <value>]
[--top_level_commands]
[--response_status [{OK,VALIDATION_ERROR,NOT_FOUND_ERROR,ERROR,INTERNAL_ERROR,
UNKNOWN,RUNNING,CANCELLED,UNRECOVERABLE_ERROR,BUSY} ...]]
[--response_state {CREATED,ACKNOWLEDGED}]

بررسی Command Tree براساس Response Status

مثال زیر Command Tree مربوط به Responseهای دارای وضعیت ERROR را برای Commandهایی که پیش از بازه زمانی مشخص پایان یافته‌اند نمایش می‌دهد.

نمونه دستور
svc_mgmt_operations command_tree --response_status ERROR --end_before "1 day ago"

+ LicenseRetrieveCommand: 9a1cee95-6854-4e1b-84c1-d87d8ece660c
+ SupportMetricsCaptureCommand: 2ba04890-33a2-460a-9486-95f35851bea0
    +---FiremanCommand: 57d9a1ba-005c-4d1b-aaee-7e4b96d985e9
+ EventsAlertsAgingCommand: bc14dfdf-5d06-499d-a0e1-9808e82d1d03

وجود FiremanCommand زیر SupportMetricsCaptureCommand نمونه‌ای از رابطه Parent و Child در Command Tree است.

نکات فنی و محدودیت‌های مهم svc_mgmt_operations

نکته درباره دسترسی root

مشخصات کلی svc_mgmt_operations نیاز به دسترسی root برای کاربر را «خیر» اعلام می‌کند. در توضیح all_top_level_commands، Service Tool به‌عنوان ابزاری توصیف شده که اطلاعات را در نقش root دریافت می‌کند.

نکته درباره Filterهای زمانی

در خطوط Syntax بعضی Subcommandها، start_after و end_after دیده می‌شوند؛ در جدول آرگومان‌ها، start_before و end_before نیز تعریف شده‌اند و مثال‌های عملی از end_before استفاده می‌کنند. این تفاوت نمایش بدون تغییر در تعریف فنی حفظ شده است.

نکته درباره command_id

در command_hierarchy_for_cleanup، Syntax گزینه command_id را به‌صورت Option نشان می‌دهد، در حالی که بخش Positional Arguments نیز command_id را برای UUIDهای جداشده با کاما توصیف می‌کند.

خلاصه:

عملیات تفصیلی بررسی‌شده در این قسمت Cluster-level هستند، در حالت Normal یا Service اجرا می‌شوند و در مشخصات آن‌ها احتمال عدم دسترس‌پذیری و از دست رفتن داده «خیر» اعلام شده است.

محصول مرتبط

برای بررسی خانواده تجهیزات ذخیره‌سازی Dell می‌توان به محصولات Dell Data Storage مراجعه کرد.

خدمت مرتبط

برای آموزش راهبری و انتقال دانش فنی مرتبط با مدیریت زیرساخت می‌توان خدمات آموزش و انتقال دانش آکو را بررسی کرد.

جمع‌بندی تحلیل عملیات مدیریتی PowerStore

svc_mgmt_operations مجموعه‌ای از Queryهای عیب‌یابی را برای مشاهده Commandها، Lockها و روابط میان عملیات مدیریتی PowerStore در سطح Cluster فراهم می‌کند. Subcommandهای آن امکان بررسی Top-level Commandهای موفق یا ناموفق، Query براساس Command ID یا Resource ID، مشاهده Pending Lockها، تحلیل جزئیات Command و نمایش Command Tree را فراهم می‌کنند.

command_detail، command_hierarchy_for_cleanup و command_tree بیشترین قابلیت فیلتر را دارند و می‌توانند نتایج را بر اساس State، زمان، Processing Time، Response Status و Response State محدود کنند. در قسمت بعدی مجموعه، موضوع از تحلیل Commandها به مهاجرت vCenter و مدیریت Autodownload منتقل می‌شود.

سوالات متداول

svc_mgmt_operations در Dell PowerStore چه اطلاعاتی را بررسی می‌کند؟

این Service Script اطلاعات عملیاتی را از Command Table و job_request دریافت می‌کند و امکان Query کردن Commandها، Lockها، جزئیات عملیات و Command Tree را فراهم می‌سازد.

آیا اجرای svc_mgmt_operations به دسترسی root نیاز دارد؟

در مشخصات کلی این Service Script، دسترسی root برای کاربر لازم نیست. در توضیح all_top_level_commands فقط ذکر شده است که Service Tool اطلاعات را در نقش root دریافت می‌کند.

چه Stateهایی برای Command قابل فیلتر هستند؟

Stateهای تعریف‌شده شامل INITIAL، QUEUED، RUNNING و COMPLETED هستند.

تفاوت command_detail با command_tree چیست؟

command_detail جزئیات Commandهای منطبق با Filterها را نمایش می‌دهد، اما command_tree ساختار والد و فرزند Commandها را در قالب یک Tree نشان می‌دهد.

آیا می‌توان فقط Commandهای دارای خطا را مشاهده کرد؟

بله. Response Status را می‌توان روی ERROR فیلتر کرد و command_tree نیز گزینه failed_commands را برای Top-level Commandهای دارای Response Status برابر ERROR دارد.

چه اطلاعاتی درباره Lockها قابل Query است؟

امکان Query همه Lockها، Pending Lockها، Granted Lockهای دارای Pending Lock و Lockهای مرتبط با Command ID یا Resource ID در فهرست عملیات وجود دارد.

Response Stateهای قابل فیلتر کدام‌اند؟

دو Response State تعریف‌شده برای این Filter عبارت‌اند از CREATED و ACKNOWLEDGED.

ادامه مسیر Service Scripts و بررسی زیرساخت PowerStore

در قسمت دهم این مجموعه، مهاجرت vCenter و مدیریت Autodownload در PowerStore بررسی می‌شود. برای بررسی فنی، طراحی، نگهداری یا عیب‌یابی زیرساخت PowerStore می‌توان از خدمات تخصصی ذخیره‌سازی آکو استفاده کرد.

خدمات ذخیره‌سازی سازمانی آکو