SG_RESET(8) SG3_UTILS SG_RESET(8)

sg_reset - بازنشانی دستگاه، هدف، گذرگاه یا میزبان SCSI را ارسال می‌کند؛ یا وضعیت بازنشانی را بررسی می‌نماید

sg_reset [--bus] [--device] [--help] [--host] [--no-esc] [--target] [--verbose] [--version] DEVICE

ابزار sg_reset در صورتی که بدون هیچ گزینه‌ای (تنها با یک DEVICE) اجرا شود، وضعیت بازنشانی (برای نمونه، اگر یک عملیات بازنشانی در جریان باشد) را برای DEVICE گزارش می‌دهد. در صورت مشخص شدن گزینه‌های --device، --target، --bus یا --host، به ترتیب درخواست بازنشانی دستگاه، هدف (Target)، گذرگاه (Bus) یا میزبان (Host) را ارسال می‌کند.

بازنشانی دستگاه بر روی واحد منطقی (Logical Unit یا LU) متناظر با DEVICE اعمال می‌شود. این عملیات در لینوکس معمولاً توسط درایور سطح پایین (LLD) در قالب تابع مدیریت وظیفه LOGICAL UNIT RESET پیاده‌سازی می‌شود.

قابلیت بازنشانی یک هدف (Target) در SCSI در هسته لینوکس نسخه 2.6.27 اضافه شد. یک LLD می‌تواند تابع مدیریت وظیفه I_T NEXUS RESET را ارسال کند. روش جایگزین این است که از مکانیزم لایه انتقال (Transport) برای انجام کاری مشابه استفاده شود (مانند یک بازنشانی سخت‌افزاری بر روی پیوندی که حاوی یک هدف SAS است).

در سری‌های ۲.۶ و ۳ هسته لینوکس، در صورت داشتن مجوزهای دسترسی مناسب، این ابزار می‌تواند روی گره‌های دستگاهی sd، sr (cd/dvd)، st یا sg فراخوانی شود.

کاربران این ابزار می‌توانند پیش از تلاش برای ارسال یک بازنشانی جدید، بررسی کنند که آیا یک بازیابی ناشی از بازنشانی در حال انجام است یا خیر. اجرای این ابزار بدون هیچ گزینه‌ای و تنها با مشخص کردن DEVICE، چنین بررسی‌ای را انجام می‌دهد.

تلاش برای بازنشانی گذرگاه (Bus) در SCSI. بازنشانی گذرگاه مفهومی در رابط موازی SCSI (یا SPI) است که در لایه‌های انتقال امروزی یافت نمی‌شود. یک LLD مدرن ممکن است آن را به‌صورت یک رشته بازنشانی روی هدف‌هایی که همزاد هدف موجود در مسیر DEVICE محسوب می‌شوند، پیاده‌سازی کند.
تلاش برای بازنشانی دستگاه SCSI. این عمل معمولاً شامل ارسال تابع مدیریت وظیفه LOGICAL UNIT RESET به DEVICE است.
چاپ پیام راهنمای نحوه استفاده و خروج از برنامه.
تلاش برای بازنشانی میزبان (Host). میزبان در این زمینه معمولاً آداپتور گذرگاه میزبان (HBA) نامیده می‌شود و شامل یک یا چند آغازگر (Initiator) در SCSI است.
بدون این گزینه، چنانچه بازنشانی دستگاه (--device) شکست بخورد، عملیات به بازنشانی هدف تشدید (Escalate) می‌یابد. و اگر بازنشانی هدف (--target) شکست بخورد، به بازنشانی گذرگاه تشدید می‌شود. و اگر بازنشانی گذرگاه (--bus) شکست بخورد، به بازنشانی میزبان تشدید خواهد شد. با فعال بودن این گزینه، تنها نوع بازنشانی درخواست‌شده اجرا می‌شود. نام جایگزین --no-escalate نیز برای این گزینه پذیرفته می‌شود.
همانند -N, --no-esc عمل می‌کند.
تلاش برای بازنشانی هدف (Target) در SCSI. یک هدف SCSI شامل یک یا چند LU است. این عمل معمولاً شامل ارسال تابع مدیریت وظیفه I_T NEXUS RESET به DEVICE است. ممکن است یک عمل معادل در لایه انتقال وجود داشته باشد (مانند یک بازنشانی سخت در SAS روی پیوندی که شامل هدف است).
افزایش میزان جزئیات گزارش‌ها و پیام‌های اشکال‌زدایی.
نمایش اطلاعات نسخه و خروج.

کد بازیابی از خطا درون هسته لینوکس (لایه میانی SCSI)، هنگامی که با اتمام مهلت زمانی (Timeout) یک دستور SCSI و عدم دریافت پاسخ از دستگاه (LU) مواجه می‌شود، مراحل زیر را طی می‌کند: ابتدا بازنشانی دستگاه را امتحان می‌کند و اگر ناموفق بود، بازنشانی هدف را می‌آزماید. اگر آن هم ناموفق بود، بازنشانی گذرگاه را اجرا می‌کند، و در صورت عدم موفقیت، بازنشانی میزبان را امتحان می‌کند. ترتیب «دستگاه، هدف، گذرگاه، میزبان» همان تشدید بازنشانی است که گزینه --no-esc سعی در متوقف کردن آن دارد. در پیکربندی‌های ذخیره‌سازی بزرگ، این تشدید بازنشانی ممکن است (بسیار) نامطلوب باشد.

این ابزار فراخوانی سیستم ioctl با نام SG_SCSI_RESET را اجرا می‌کند و تا هسته لینوکس 3.10.7 گزینه --no-esc پشتیبانی نمی‌شد. وصله‌هایی برای پیاده‌سازی این قابلیت ممکن است در هسته‌های 3.18 یا 3.19 پذیرفته شوند.

استانداردهای SAM-4 و SAM-5 سه نوع بازنشانی سخت‌افزاری (Hard Reset)، بازنشانی واحد منطقی (LOGICAL UNIT RESET) و بازنشانی پیوند I_T (با عنوان I_T NEXUS RESET) را تعریف می‌کنند. بازنشانی سخت به‌صورت شرایط روشن شدن، تغییر میکروکد یا رویداد بازنشانی لایه انتقال تعریف شده است. بازنشانی‌های LOGICAL UNIT RESET و I_T NEXUS RESET را می‌توان از طریق توابع مدیریت وظیفه درخواست کرد (پشتیبانی از LOGICAL UNIT RESET اجباری است). در لینوکس، زیرسیستم SCSI تعیین دقیق نوع بازنشانی انجام‌شده (در صورت انجام) را به عهده درایورهای LLD می‌گذارد. «بازنشانی گذرگاه» مفهومی در رابط موازی SCSI (یا SPI) است که ممکن است به خوبی بر روی لایه‌های انتقال جدید SCSI نگاشت نشود، بنابراین ممکن است یک عملیات صوری (Dummy) باشد. یک «بازنشانی میزبان» تلاش می‌کند HBA را که درخواست در مسیر رسیدن به DEVICE از آن عبور می‌کند، دوباره مقداردهی اولیه کند. توجه داشته باشید که «بازنشانی میزبان» و «بازنشانی گذرگاه» ممکن است آسیب‌های جانبی ناخواسته به همراه داشته باشند.

این ابزار اجازه لغو (Abort) دستورات منفرد SCSI را نمی‌دهد. استاندارد SAM-4 برای این منظور توابع مدیریت وظیفه ABORT TASK و ABORT TASK SET را تعریف کرده است.

پیش از استاندارد SAM-3 تابع مدیریت وظیفه TARGET RESET وجود داشت. در SAM-4 مفهوم I_T NEXUS RESET پدیدار شد که به نظر بسیار مرتبط است؛ عبارت "I_T" مخفف Initiator-Target (آغازگر-هدف) است.

لایه‌های انتقال ممکن است انواع بازنشانی‌های مخصوص به خود را داشته باشند که توسط این ابزار پشتیبانی نمی‌شوند. برای نمونه SAS دارای بازنشانی پیوند (Link Reset) است که در آن هر دو سر یک پیوند فیزیکی (مثلاً بین یک گسترش‌دهنده SAS و یک درایو نوار SAS) اتصال خود را مجدداً مذاکره می‌کنند.

پیش از نسخه 0.57 این ابزار، خط فرمان تنها گزینه‌های کوتاه را می‌پذیرفت (برای نمونه -d اما نه --device). همچنین -h یک بازنشانی میزبان را فراخوانی می‌کرد، در حالی که در نسخه فعلی -h معادل --help است و هر دوی -H و --host بازنشانی میزبان را اجرا می‌کنند. برای سازگاری با گذشته، متغیر محیطی SG3_UTILS_OLD_OPTS یا SG_RESET_OLD_OPTS را تعریف کنید. در این حالت -h بازنشانی میزبان را فراخوانی کرده و خروجی با جزئیات کامل خواهد بود (همانند استفاده از گزینه --verbose در حال حاضر). برای نمونه:

    SG_RESET_OLD_OPTS=1 sg_reset -h /dev/sg1
sg_reset: starting host reset
sg_reset: completed host reset

از نسخه 1.23 ابزارهای sg3_utils متغیرهای محیطی SG3_UTILS_OLD_OPTS یا SG_RESET_OLD_OPTS می‌توانند مقداردهی شوند. در صورت وجود هر یک از آن‌ها، این ابزار گزینه‌های قدیمی‌تر خط فرمان را طبق آنچه در بخش «نکات» شرح داده شد انتظار خواهد داشت.

نوشته شده توسط Douglas Gilbert.

کپی‌رایت © 1999-2022 Douglas Gilbert
این نرم‌افزار تحت مجوز GPL نسخه ۲ توزیع شده است. هیچ تضمینی وجود ندارد؛ حتی برای قابلیت فروش یا تناسب با یک هدف خاص.

March 2022 sg3_utils-1.48