مقاله

SCSI ID چیست و چگونه تنظیم می‌شود؟ راهنمای رفع تداخل دستگاه‌های SCSI

تنظیم SCSI ID در دستگاه‌های SCSI

SCSI ID آدرس هر دستگاه روی یک باس Parallel SCSI است. اگر دو دستگاه روی همان باس ID یکسان داشته باشند، کنترلر نمی‌تواند آنها را به‌درستی از هم تفکیک کند و نتیجه می‌تواند شناسایی‌نشدن یکی از دستگاه‌ها، خطاهای ارتباطی یا رفتار غیرقابل‌پیش‌بینی باشد. به همین دلیل، هنگام اضافه‌کردن هارد، Tape Drive، اسکنر یا هر تجهیز SCSI قدیمی، بررسی ID یکی از اولین مراحل عیب‌یابی است.

این راهنما روی کار عملی تمرکز دارد: SCSI ID چیست، چه شماره‌ای باید انتخاب شود، ID چگونه با Jumper یا Backplane تنظیم می‌شود و تداخل ID را چطور پیدا کنیم. اگر ابتدا می‌خواهید معماری و پروتکل را بشناسید، مقاله SCSI چیست؟ مرجع مناسب‌تری برای مفاهیم پایه است.

نکته: منظور از ID در این مقاله همان آدرس‌دهی کلاسیک روی Parallel SCSI است. در SAS، iSCSI و بسیاری از معماری‌های جدید، شناسایی دستگاه‌ها به شکل دیگری انجام می‌شود و قرار نیست مانند یک هارد 50 یا 68 پین، چند Jumper را برای انتخاب ID صفر تا 15 تنظیم کنید.

نقشه Jumper تنظیم SCSI ID روی هارد SCSI

SCSI ID چیست و چرا باید یکتا باشد؟

در یک زنجیره Parallel SCSI، Host Adapter و هر Target روی همان Bus با یک شناسه عددی از یکدیگر متمایز می‌شوند. این شناسه همان SCSI ID است. کابل و کانکتور مشخص می‌کنند دستگاه‌ها چگونه به باس وصل شده‌اند، اما ID مشخص می‌کند کنترلر هنگام ارتباط، کدام دستگاه را خطاب قرار داده است.

قاعده اصلی ساده است: هر دستگاه روی یک SCSI Bus باید ID یکتای خودش را داشته باشد. دو دستگاه می‌توانند روی دو Bus جداگانه ID یکسان داشته باشند، اما روی یک Bus مشترک نباید یک ID را به اشتراک بگذارند. Host Adapter نیز خودش یکی از IDها را مصرف می‌کند و در بسیاری از کنترلرهای کلاسیک روی ID 7 قرار دارد.

SCSI ID را با LUN اشتباه نکنید. ID در Parallel SCSI آدرس Target روی Bus است، در حالی که LUN یک Logical Unit را درون همان Target مشخص می‌کند. در تجهیزات ساده قدیمی ممکن است فقط یک LUN وجود داشته باشد، اما این دو مفهوم از نظر معماری یکی نیستند.

محدوده SCSI ID در Narrow و Wide SCSI

تعداد IDهای در دسترس به عرض باس بستگی دارد. در Narrow SCSI هشت شناسه و در Wide SCSI شانزده شناسه وجود دارد. چون یکی از این شناسه‌ها معمولاً توسط Host Adapter استفاده می‌شود، تعداد دستگاه‌هایی که عملاً می‌توان روی باس قرار داد کمتر از تعداد کل IDها است.

نوع باسIDهای قابل استفاده روی باستنظیم رایج Host Adapterنکته عملی
Narrow SCSI (8-bit)0 تا 7اغلب 7اگر کنترلر روی 7 باشد، معمولاً 0 تا 6 برای دستگاه‌ها باقی می‌ماند.
Wide SCSI (16-bit)0 تا 15اغلب 7اگر کنترلر روی 7 باشد، دستگاه‌ها می‌توانند از 0 تا 6 و 8 تا 15 استفاده کنند.

ID 7 در استاندارد به این معنی نیست که در همه سیستم‌ها «ممنوع» است؛ اما در بسیاری از Host Adapterها به‌صورت پیش‌فرض برای خود کنترلر انتخاب شده و تغییر بی‌دلیل آن توصیه نمی‌شود. ID 0 نیز در بسیاری از سیستم‌های قدیمی برای دیسک بوت استفاده شده است، ولی آن هم یک قانون جهانی و اجباری نیست. قبل از تغییر، تنظیمات خود کنترلر و مستندات دستگاه را بررسی کنید.

آیا شماره SCSI ID روی سرعت دستگاه اثر دارد؟

خود شماره ID سرعت انتقال داده هارد را تعیین نمی‌کند. تفاوت مهم در Parallel SCSI کلاسیک، اولویت Arbitration است؛ یعنی وقتی چند دستگاه هم‌زمان می‌خواهند Bus را در اختیار بگیرند، IDها اولویت یکسان ندارند. در باس Wide، ترتیب کلاسیک اولویت از 7 به 0 و سپس از 15 به 8 است؛ به همین دلیل ID 7 برای Host Adapter انتخاب رایجی بوده است.

این اولویت را با Boot Order، سرعت چرخش دیسک یا نرخ انتقال SCSI اشتباه نکنید. تغییر یک هارد از ID 2 به ID 5 به‌خودی‌خود آن را سریع‌تر نمی‌کند. اگر هدف شما تعیین دیسک بوت است، علاوه بر ID باید تنظیمات BIOS یا SCSI BIOS کنترلر نیز بررسی شود.

SCSI ID چگونه تنظیم می‌شود؟

روش تنظیم ID به نوع دستگاه و نحوه اتصال آن بستگی دارد. در هاردهای داخلی 50 و 68 پین معمولاً مجموعه‌ای از Jumperها روی برد یا کنار کانکتور دیده می‌شود. تجهیزات External ممکن است Rotary Switch، Thumbwheel یا DIP Switch داشته باشند. در بسیاری از هاردهای 80 پین SCA نیز ID توسط Backplane و Slot تعیین می‌شود و کاربر روی خود هارد Jumper مستقلی برای ID نمی‌بیند.

تنظیم ID با Jumper در هاردهای داخلی

روی بسیاری از درایوها پایه‌هایی با نام‌هایی مانند ID0، ID1، ID2 و در مدل‌های Wide گاهی ID3 وجود دارد. این نام‌ها بیت‌های عدد ID هستند و ارزش منطقی آنها به‌ترتیب 1، 2، 4 و 8 است. برای مثال، از نظر منطقی ID شماره 5 از ترکیب 4+1 ساخته می‌شود.

اما محل فیزیکی Jumperها را از روی یک تصویر عمومی اینترنت حدس نزنید. ترتیب پایه‌ها، نام‌گذاری و گزینه‌های مجاور مانند Motor Start، Termination Power یا Delay Spin ممکن است بین دو مدل کاملاً متفاوت باشد. Part Number دقیق هارد را پیدا کنید و جدول Jumper همان مدل را مبنا قرار دهید. اشتباه در این بخش فقط ID را عوض نمی‌کند و ممکن است تنظیم دیگری از درایو را تغییر دهد.

تنظیم ID روی دستگاه‌های External

در بعضی Tape Driveها، Enclosureها و تجهیزات خارجی، انتخاب ID با کلید چرخشی یا کلیدهای + و – انجام می‌شود. در این حالت هم باید ID انتخابی روی همان Bus آزاد باشد. وجود کلید بیرونی به این معنی نیست که دستگاه از محدودیت Narrow/Wide یا ID کنترلر مستثنا است.

ID در هاردهای 80 پین SCA

هاردهای SCA برای اتصال مستقیم به Backplane طراحی شده‌اند. در بسیاری از سرورها و Storageهای قدیمی، خود Backplane براساس Slot، ID را به هارد تحمیل می‌کند. اگر یک هارد 80 پین را با تبدیل SCA به 68 پین بیرون از Backplane استفاده کنید، معمولاً خود Adapter باید امکان انتخاب ID و تأمین برق مناسب را فراهم کند. برای تفاوت دقیق این رابط‌ها، راهنمای تفاوت SCSI 50، 68 و 80 پین را ببینید.

روش مرحله‌به‌مرحله تنظیم SCSI ID

اگر در حال اضافه‌کردن یا جایگزینی یک دستگاه هستید، بهترین روش این است که قبل از جابه‌جایی Jumperها، نقشه Bus را مشخص کنید. این کار جلوی تغییرات تصادفی و عیب‌یابی طولانی را می‌گیرد.

  1. سیستم را ایمن خاموش کنید. در تجهیزات کابلی Legacy، تغییر Jumper یا جداکردن دستگاه را در حالت خاموش انجام دهید؛ مگر اینکه دستگاه و Backplane مشخصاً برای Hot-Swap طراحی شده باشند و دستورالعمل سازنده روش دیگری گفته باشد.
  2. ID خود Host Adapter را پیدا کنید. در بسیاری از کنترلرها 7 است، اما مقدار واقعی را از SCSI BIOS، تنظیمات کنترلر یا Manual همان مدل بخوانید.
  3. ID تمام دستگاه‌های روی همان Bus را فهرست کنید. فقط هاردها را نبینید؛ Tape Drive، CD/DVD SCSI، Scanner، Enclosure خارجی و هر Target دیگری هم باید در فهرست باشد.
  4. یک ID آزاد انتخاب کنید. در Narrow از محدوده 0 تا 7 و در Wide از 0 تا 15 استفاده کنید و ID کنترلر یا هر دستگاه دیگر را تکرار نکنید.
  5. تنظیم را براساس Manual همان دستگاه اعمال کنید. برای هاردهای Jumper-based جدول دقیق مدل، و برای SCA تنظیم Slot یا Backplane را بررسی کنید.
  6. Termination را جداگانه کنترل کنید. حل ID Conflict، Termination اشتباه را اصلاح نمی‌کند. فقط دو انتهای فیزیکی Bus باید طبق نوع باس به‌درستی Terminate شوند.
  7. سیستم را روشن و Bus Scan را بررسی کنید. در SCSI BIOS یا صفحه POST ببینید هر دستگاه با ID مورد انتظار و بدون تکرار دیده می‌شود؛ سپس شناسایی در سیستم‌عامل را کنترل کنید.

اگر پس از تنظیم ID دستگاه هنوز دیده نمی‌شود، بلافاصله نتیجه نگیرید که هارد خراب است. کابل، کانکتور، برق، Termination، نوع SE/LVD/HVD، تنظیمات کنترلر و Firmware نیز می‌توانند علائمی شبیه مشکل ID ایجاد کنند.

دیاگرام تنظیم SCSI ID و انتخاب شناسه دستگاه‌های SCSI

تداخل SCSI ID چیست و چه علائمی دارد؟

SCSI ID Conflict زمانی رخ می‌دهد که دو Target روی یک Bus مشترک یک شناسه یکسان داشته باشند. در این حالت Initiator آدرس یکتایی برای تمایز آن دو ندارد. بسته به کنترلر و دستگاه، ممکن است فقط یکی از آنها دیده شود، هر دو ناپایدار باشند یا هنگام Scan رفتار غیرقابل‌پیش‌بینی دیده شود.

  • بعد از نصب دستگاه دوم، یکی از دستگاه‌ها دیگر در SCSI BIOS یا سیستم‌عامل دیده نمی‌شود.
  • Bus Scan روی یک ID خاص متوقف می‌شود یا نتیجه شناسایی بین بوت‌های مختلف ثابت نیست.
  • کنترلر Reset یا Timeout گزارش می‌کند؛ البته این علامت می‌تواند از کابل یا Termination هم باشد.
  • پس از جداکردن یکی از دو دستگاه، دستگاه دیگر بدون تغییر خاصی دوباره شناسایی می‌شود.
  • در یک Enclosure خارجی، کلید ID دستگاه جدید روی همان شماره یکی از دستگاه‌های داخلی یا خارجی دیگر قرار گرفته است.

وجود خطای Timeout به‌تنهایی اثبات‌کننده ID Conflict نیست. در Parallel SCSI، Termination نامناسب یا کابل مشکل‌دار هم می‌تواند Timeout، Reset و شناسایی ناقص ایجاد کند. برای همین عیب‌یابی باید ID و سلامت Bus را به‌صورت دو مسیر جداگانه بررسی کند.

چگونه تداخل SCSI ID را پیدا و رفع کنیم؟

در سیستم‌های قدیمی بهترین روش، عیب‌یابی ترتیبی است. قبل از تغییر چند چیز به‌صورت هم‌زمان، وضعیت فعلی را یادداشت کنید تا اگر مشکل از ID نبود بتوانید به تنظیم قبلی برگردید.

  1. شماره ID کنترلر را ثبت کنید؛ در بسیاری از سیستم‌ها 7 است.
  2. ID هر دستگاه را از روی Jumper، Selector، Backplane یا صفحه SCSI BIOS استخراج کنید.
  3. هر ID تکراری را روی همان Bus پیدا کنید. اگر سیستم چند Channel دارد، دستگاه‌های Channelهای جدا را با هم قاطی نکنید.
  4. برای دستگاه جدید یک ID آزاد انتخاب کنید و فقط همان یک تغییر را انجام دهید.
  5. دوباره SCSI Scan را اجرا کنید. اگر هر دو دستگاه با ID متفاوت دیده شدند، Conflict برطرف شده است.
  6. اگر مشکل ادامه داشت، Termination و موقعیت فیزیکی دو انتهای Bus، کابل، برق و Signaling را بررسی کنید.
  7. در صورت لزوم دستگاه‌ها را یکی‌یکی به Bus برگردانید تا مشخص شود مشکل با اضافه‌شدن کدام قطعه یا کدام بخش کابل ظاهر می‌شود.

در تجهیزات Mission-Critical یا دستگاه‌های صنعتی و پزشکی قدیمی، قبل از تغییر ID دیسک سیستم، از تنظیم فعلی عکس بگیرید و Part Number و موقعیت Jumperها را ثبت کنید. بعضی نرم‌افزارها یا Firmwareهای قدیمی ممکن است انتظار داشته باشند دیسک یا Tape روی ID مشخصی قرار گرفته باشد؛ بنابراین «آزاد بودن ID» همیشه به معنی «مناسب بودن آن برای نرم‌افزار دستگاه» نیست.

ID 7 و ID 0؛ کدام شماره را انتخاب کنیم؟

دو عدد در SCSI زیاد دیده می‌شوند: 7 برای Host Adapter و 0 برای اولین یا Boot Disk. این الگو در بسیاری از PC Serverها و کنترلرهای قدیمی رایج بوده و هنوز نقطه شروع خوبی برای تشخیص تنظیمات است، اما نباید آن را بدون بررسی به همه دستگاه‌ها تعمیم داد.

اگر کنترلر اکنون روی ID 7 کار می‌کند و سیستم پایدار است، معمولاً دلیلی برای تغییر آن وجود ندارد. برای یک دیسک جدید نیز کافی است یکی از IDهای آزاد را انتخاب کنید؛ لازم نیست برای «سرعت بیشتر» به دنبال شماره بالاتر بروید. اگر کنترلر یا Firmware ترتیب Boot را مستقل تنظیم می‌کند، Boot Device را از همان منو تعیین کنید.

تفاوت مشکل SCSI ID با Termination

ID و Termination هر دو برای کارکرد صحیح Parallel SCSI ضروری‌اند، اما نقش متفاوتی دارند. ID مسئله آدرس‌دهی است؛ هر Target باید آدرس یکتا داشته باشد. Termination مسئله الکتریکی Bus است؛ دو انتهای فیزیکی Bus باید به شکل صحیح خاتمه داده شوند تا بازتاب سیگنال ایجاد نشود.

نشانهبیشتر به ID Conflict نزدیک استبیشتر به Termination / Bus نزدیک است
دو دستگاه روی یک شماره تنظیم شده‌اندبله؛ علت مستقیم استخیر
با جداکردن یکی از دو دستگاه هم-ID مشکل رفع می‌شودبلهممکن است، ولی باید توپولوژی هم بررسی شود
خطا با کابل بلند یا اضافه‌کردن دستگاه انتهای زنجیره بیشتر می‌شودکمتر محتملبیشتر محتمل
خطاهای Parity، Reset یا ناپایداری زیر بارممکن استکابل، Signaling و Termination نیز بسیار مهم‌اند
فقط آخرین دستگاه Bus دیده نمی‌شودممکن استTermination و کابل باید جدی بررسی شوند

برای جزئیات بیشتر درباره محل و نوع Terminator، مقاله ترمیناتور SCSI چیست؟ را ببینید. تغییر ID نباید به‌عنوان جایگزین اصلاح Termination استفاده شود.

SCSI ID در هاردهای 50، 68 و 80 پین

نوع کانکتور به‌تنهایی ID را تعیین نمی‌کند، اما روش تنظیم معمولاً با معماری اتصال ارتباط دارد. در هاردهای 50 پین و 68 پین کابلی، تنظیم Jumper روی خود درایو بسیار رایج است. در 80 پین SCA، Backplane معمولاً نقش پررنگ‌تری در اختصاص ID دارد.

نوع رایجروش معمول تنظیم IDمحدوده متداولنکته
50 پین NarrowJumper روی هارد یا Selector دستگاه0 تا 7اگر HBA روی 7 باشد، معمولاً 0 تا 6 برای Targetها می‌ماند.
68 پین WideJumper یا Selector0 تا 15کنترلر اغلب 7 است؛ IDهای بالاتر از 7 فقط در Wide معنی دارند.
80 پین SCABackplane / Slot؛ یا Jumper روی Adapter هنگام تبدیل0 تا 15روی خود هارد ممکن است Jumper انتخاب ID وجود نداشته باشد.

اگر فقط با دیدن تعداد پین درباره ID یا سازگاری تصمیم بگیرید، احتمال خطا بالاست. نوع Signaling، عرض Bus، نسل کنترلر، Termination و محدودیت Firmware در کنار ID باید بررسی شوند.

SCSI ID با دستور scsi_id در لینوکس یکی نیست

یک نکته نام‌گذاری می‌تواند باعث سردرگمی شود: ابزار scsi_id در لینوکس برای گرفتن شناسه پایدار و یکتای یک دستگاه از اطلاعات SCSI/VPD استفاده می‌شود. این ابزار با Target ID کلاسیک روی Parallel SCSI Bus یکی نیست. همچنین نام‌هایی مانند Host:Channel:Target:LUN در لینوکس چند جزء آدرس را کنار هم نشان می‌دهند و نباید همه آنها را «SCSI ID» به معنای Jumper روی هارد دانست.

اگر مسئله شما یک سرور لینوکسی مدرن با SAS یا SAN است، قبل از دستکاری سخت‌افزار مشخص کنید دقیقاً با Target ID، LUN، WWN/WWID یا خروجی ابزار scsi_id سروکار دارید. این مقاله برای تنظیم ID فیزیکی تجهیزات Parallel SCSI نوشته شده است.

چک‌لیست سریع وقتی دستگاه SCSI شناسایی نمی‌شود

  • ID: هیچ دو دستگاهی روی همان Bus ID یکسان نداشته باشند.
  • Host Adapter: ID و Channel صحیح کنترلر مشخص باشد؛ ID 7 را فقط به دلیل عادت تغییر ندهید.
  • Termination: فقط دو انتهای فیزیکی Bus به‌درستی Terminate شده باشند.
  • Cable: کانکتورها لق یا آسیب‌دیده نباشند و کابل با نوع/سرعت Bus سازگار باشد.
  • Signaling: SE، LVD و HVD را بدون بررسی با هم ترکیب نکنید.
  • Power: هارد یا Tape به‌درستی روشن شود و Spin-Up انجام شود.
  • Backplane: در SCA، Slot و Backplane را هم به‌عنوان منبع ID و خطا بررسی کنید.
  • Controller BIOS / Driver: دستگاه در SCSI BIOS دیده شود و تنظیمات Scan یا Boot محدودکننده نباشند.

اگر قصد جایگزینی خود دیسک را دارید، راهنمای هارد اسکازی (SCSI) را هم بررسی کنید؛ چون یک ID درست نمی‌تواند ناسازگاری ظرفیت، Sector Size، Firmware یا Signaling را جبران کند.

سوالات متداول درباره SCSI ID

آیا دو دستگاه SCSI می‌توانند ID یکسان داشته باشند؟

روی یک Parallel SCSI Bus مشترک خیر. هر Target باید ID یکتا داشته باشد. اگر دستگاه‌ها روی Bus یا Channelهای کاملاً جدا باشند، تکرار عدد ID بین آن Busهای مستقل مسئله‌ای ایجاد نمی‌کند.

آیا SCSI ID شماره 7 همیشه برای کنترلر رزرو است؟

نه به‌عنوان یک قانون مطلق برای همه تجهیزات؛ اما ID 7 در بسیاری از Host Adapterهای کلاسیک مقدار پیش‌فرض یا توصیه‌شده است و بالاترین اولویت Arbitration را در گروه 0 تا 7 دارد. قبل از استفاده از 7 برای دستگاه دیگر، تنظیم واقعی کنترلر را بررسی کنید.

آیا هارد بوت باید SCSI ID صفر داشته باشد؟

ID 0 برای دیسک اول یا Boot Disk در بسیاری از سیستم‌های قدیمی یک قرارداد رایج بوده، اما اجباری نیست. Boot Order می‌تواند در SCSI BIOS یا Firmware کنترلر جداگانه تعیین شود.

SCSI ID هارد 80 پین SCA چگونه تنظیم می‌شود؟

در بسیاری از سیستم‌ها Backplane براساس Slot، ID را تعیین می‌کند. اگر هارد SCA با Adapter به رابط کابلی تبدیل شود، معمولاً Adapter باید امکان انتخاب ID را فراهم کند.

آیا تغییر SCSI ID اطلاعات هارد را پاک می‌کند؟

خیر. تغییر ID به‌خودی‌خود داده‌ها یا فرمت دیسک را تغییر نمی‌دهد؛ فقط آدرس دستگاه روی Bus عوض می‌شود. با این حال در تجهیزات اختصاصی قدیمی ممکن است نرم‌افزار انتظار یک ID مشخص را داشته باشد و پس از تغییر، دیسک را در مسیر قبلی پیدا نکند.

آیا ID Conflict همان مشکل Termination است؟

خیر. ID Conflict مشکل آدرس‌دهی دو دستگاه با شناسه یکسان است؛ Termination به پایان‌دهی الکتریکی Bus مربوط می‌شود. علائم می‌توانند شبیه باشند، بنابراین هر دو باید مستقل بررسی شوند.

بعد از تغییر Jumper باید سیستم را خاموش و روشن کرد؟

در تجهیزات داخلی Legacy بهتر است تغییر Jumper در حالت خاموش انجام شود و سپس Bus دوباره Scan شود. در سامانه‌های Hot-Swap یا Backplane-based فقط طبق مستندات همان سرور یا Storage عمل کنید.

منابع فنی و نکته پایانی

برای تنظیم دقیق Jumper یا محدودیت‌های یک مدل خاص، همیشه Manual همان هارد، Tape Drive، Host Adapter یا Enclosure را مقدم بدانید. راهنماهای عمومی برای فهم منطق ID مفیدند، اما جای نقشه Jumper دستگاه شما را نمی‌گیرند.

اگر بعد از اضافه‌کردن یک دستگاه SCSI سیستم دچار مشکل شد، ابتدا سه چیز را بدون حدس‌زدن ثبت کنید: ID کنترلر، ID تمام Targetها و محل دو انتهای فیزیکی Bus. همین سه مورد معمولاً مسیر عیب‌یابی را بسیار کوتاه‌تر می‌کنند و مشخص می‌کنند باید دنبال Conflict باشید یا مشکل کابل و Termination.