SG_REM_REST_ELEM(8) SG3_UTILS SG_REM_REST_ELEM(8)

sg_rem_rest_elem - ارسال دستور حذف یا بازیابی المان SCSI

sg_rem_rest_elem [--capacity=RC] [--element=EID] [--help] [--modify] [--quick] [--remove] [--restore] [--timeout=SE] [--verbose] [--version] DEVICE

دستورات SCSI REMOVE ELEMENT AND TRUNCATE [REAT]، SCSI REMOVE ELEMENT AND MODIFY ZONES [REAMZ] یا RESTORE ELEMENTS AND REBUILD [RESAR] را به DEVICE ارسال می‌کند. از آنجا که این دستورات می‌توانند تأثیر بسیار زیادی بر روی DEVICE بگذارند (مشابه دستور FORMAT UNIT: تخریب داده‌ها و زمان طولانی برای تکمیل کامل)، پیش از انجام عملیات به کاربر فرصت بازنگری می‌دهند (۳ بار ظرف ۱۵ ثانیه).

برخلاف دستور FORMAT UNIT، به نظر می‌رسد این دستورات برای اجرا در پس‌زمینه طراحی شده‌اند. بنابراین به‌سرعت بازمی‌گردند (اگرچه در sbc5r01.pdf این موضوع تصریح نشده است) و دیسک در وضعیتی با کارایی کاهش‌یافته قرار می‌گیرد که در آن تا زمان تکمیل عملیات، تنها تعداد مشخصی از دستورات اجرا خواهند شد (مانند INQUIRY و REPORT LUNS). سایر دستورات داده‌های حسگری (sense data) با کلید حسگر NOT READY و کد حسگر اضافی «Depopulation in progress» (برای REAT و REAMZ) یا «Depopulation restoration in progress» (برای RESAR) دریافت خواهند کرد. برای اطلاعات بیشتر، بخش نکات (NOTES) را در ادامه ببینید.

دستورات REMOVE ELEMENT AND TRUNCATE [REAT] و RESTORE ELEMENTS AND REBUILD [RESAR] در استانداردهای SBC-4 و بالاتر (یعنی استاندارد SCSI Block Commands) تعریف شده‌اند، در حالی که REMOVE ELEMENT AND MODIFY ZONES [REAMZ] در ZBC-2 و بالاتر (یعنی استاندارد Zoned Block Commands) تعریف شده است. توجه داشته باشید که دستور REAMZ می‌تواند توسط این ابزار (با گزینه --modify) یا ابزار sg_zone (با گزینه --remove) صادر شود؛ نتیجه هر دو باید یکسان باشد.
تفاوت میان REAT و REAMZ در این است که دستور نخست «ارتباط میان LBAها و بلوک‌های فیزیکی را تغییر می‌دهد» در حالی که دستور دوم این ارتباط را تغییر نمی‌دهد. ناحیه‌های تحت تأثیر دستور REAMZ در وضعیت ناحیه‌ای «آفلاین» (Offline) قرار می‌گیرند.

آرگومان‌های گزینه‌های طولانی برای گزینه‌های کوتاه نیز الزامی هستند.

عبارت RC مخفف Requested Capacity (ظرفیت درخواستی) و بیانگر تعداد بلوک‌های منطقی است که DEVICE باید پس از حذف المان توسط دستور REAT داشته باشد. مقدار پیش‌فرض 0 است که به DEVICE اجازه می‌دهد خودش در مورد میزان ظرفیت کاهش‌یافته پس از حذف المان تصمیم بگیرد. دستور RESAR این مقدار را نادیده می‌گیرد.
که در آن EID شناسه المان است که یک عدد صحیح ۳۲ بیتی بدون علامت بوده و از یک شروع می‌شود. این فیلد توسط دستور REAT استفاده شده و در غیر این صورت نادیده گرفته می‌شود. مقدار پیش‌فرض صفر است (که نامعتبر است). بنابراین هنگام استفاده از گزینه --remove کاربر باید یک شناسه المان معتبر ارائه دهد.
نمایش پیام راهنمای نحوه استفاده و سپس خروج.
باعث ارسال دستور REMOVE ELEMENT AND MODIFY ZONES [REAMZ] به DEVICE می‌شود. در عمل، ارائه گزینه --element=EID نیز الزامی است.
رفتار پیش‌فرض (یعنی زمانی که این گزینه مشخص نشده باشد) این است که به کاربر ۱۵ ثانیه مهلت داده می‌شود تا در انجام عملیات حذف یا بازیابی المان روی DEVICE تجدیدنظر کند. با مشخص کردن این گزینه، این مرحله (یعنی دوره هشدار ۱۵ ثانیه‌ای) نادیده گرفته می‌شود.
باعث ارسال دستور REMOVE ELEMENT AND TRUNCATE به DEVICE می‌شود. در عمل، ارائه گزینه --element=EID نیز الزامی است.
باعث ارسال دستور RESTORE ELEMENTS AND REBUILD به DEVICE می‌شود.
که در آن SE مدت زمان انتظار برای اجرای دستور (تایم‌اوت) بر حسب ثانیه است. مقدار پیش‌فرض ۶۰ ثانیه است و در صورت وارد کردن 0، روی ۶۰ تنظیم می‌شود. شکل بلند جایگزین این گزینه --tmo=SE است.
افزایش سطح جزئیات خروجی (یعنی خروجی اشکال‌زدایی).
چاپ نسخه برنامه و سپس خروج.

هنگامی که یک المان با موفقیت حذف شود، اصطلاحاً «کاهش‌یافته» یا تخلیه‌شده (depopulated) نامیده می‌شود. المان‌های کاهش‌یافته‌ای که بیت «اجازه بازیابی» (RALWD) در آن‌ها فعال باشد (به sg_get_elem_status مراجعه کنید)، کاندیدای بازیابی در آینده هستند.

یک المان (ذخیره‌سازی) در یک دیسک سخت چرخان، یک سمت از یک پلاتر است که معمولاً به یک هد اختصاص دارد. چنین دیسک‌های سختی معمولاً دارای چندین پلاتر با دو هد به ازای هر پلاتر هستند (یعنی یک هد در هر سمت پلاتر).

در هر زمان تنها یک المان می‌تواند کاهش داده شود. به نظر می‌رسد داده‌های کاربر در میان پلاترهای مختلف به صورت نواری (striped) توزیع شده‌اند (تولیدکنندگان عمداً نحوه انجام این کار را توضیح نمی‌دهند)، بنابراین فرآیند کاهش بدون توجه به اینکه کدام المان (برای نمونه آخرین المان) حذف می‌شود، ممکن است زمان بسیار زیادی طول بکشد. فیلد DEPOPULATION TIME در صفحه VPD ویژگی‌های دستگاه بلوکی (Block Device Characteristics) نشان می‌دهد که فرآیند کاهش یک المان چقدر طول خواهد کشید. واحد این فیلد ثانیه است و برای مقایسه، هر شبانه‌روز ۸۶٬۴۰۰ ثانیه است. پس از بازگشت موفقیت‌آمیز دستورات مبتنی بر --remove یا --restore، دیسک وارد وضعیتی می‌شود که می‌توان آن را حالت «کاهش» (depopulation mode) نامید. در حالی که دیسک در حالت «کاهش» قرار دارد، تمام دستورات دسترسی به رسانه (و برخی دستورات دیگر) با کد حسگر NOT READY و کد حسگر اضافی 0x4,0x24 یا 0x4,0x25 رد می‌شوند (کد دوم برای «در حال بازیابی المان کاهش‌یافته» [depopulation restoration in progress] است).

اگرچه این امکانات با ارجاع به دیسک‌های سخت چرخان شرح داده شده‌اند، اما دستورات به صورت کلی تعریف شده‌اند تا بتوان آن‌ها را برای دیسک‌های حالت جامد (SSD) که از چندین مدار مجتمع (dieها) تشکیل شده‌اند نیز به کار برد. در صورتی که یکی از این مدارهای مجتمع دچار نقص شود، فرآیند کاهش المان می‌تواند سودمند باشد.

در زمان نگارش این مستند، پشتیبانی سیستم‌عامل و HBA از کاهش المان دیسک‌های سخت ناقص است. به عنوان مثال، لینوکس تا نسخه هسته 6.5.7 وضعیت دیسک سخت در حالت «کاهش» را به درستی مدیریت نمی‌کند. همچنین دست‌کم یک HBA از نوع SAS-4 هنگامی که یکی از دیسک‌های سخت متصل به آن در حالت «کاهش» باشد، در راه‌اندازی سیستم دچار مشکل می‌شود. پیشنهاد: حذف المان هد روی دیسک سخت (یا بازیابی آن) باید روی یک سیستم غیرعملیاتی (non-production) انجام شود که در طول فرآیند کاهش برای هیچ هدف دیگری استفاده نمی‌شود.

هنگامی که دیسک سخت در حالت «کاهش» قرار دارد، می‌توان دستور REQUEST SENSE را برای دریافت اطلاعات «پیشرفت» ارسال کرد. این کار را می‌توان با ابزار sg_requests یا sg_requests --progress انجام داد.

به طور خلاصه، کاهش «هد» در دیسک سخت را می‌توان نوعی عملیات فرمت در نظر گرفت که یک دیسک خراب یا در حال خرابی را که خطاهای رسانه‌ای آن همگی در یک سمت پلاتر متمرکز شده است دریافت کرده و یک دیسک با عملکرد درست و با ظرفیت (کمی) کاهش‌یافته تحویل می‌دهد. در نهایت، مشخصات T10 بیان نمی‌کند که کاهش المان در دیسک منجر به از دست رفتن همه داده‌ها خواهد شد، اما فرض ایمن این است که همه داده‌ها واقعاً از بین خواهند رفت. بنابراین هشدارهای معمول در مورد تهیه نسخه پشتیبان پیش از اقدام به کاهش المان پابرجا هستند.

وضعیت خروج sg_rem_rest_elem در صورت موفقیت 0 است. در غیر این صورت به صفحه راهنمای sg3_utils(8) مراجعه کنید.

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

گزارش باگ‌ها به <dgilbert at interlog dot com>.

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

sg_get_elem_status,sg_requests,sg_zone(sg3_utils)

2026-07-01 sg3_utils-1.49