وبلاگ نت‌آرامآموزش، تجربه و راهکارهای زیرساخت

چرا سرور فقط یک NVMe روی کارت PCIe را می‌شناسد؟ راهنمای bifurcation

تشخیص تفاوت آداپتور فعال و غیرفعال، بررسی lane و تنظیم bifurcation برای چند دیسک NVMe در سرور اختصاصی.

انتشار:
توسط تیم فنی نت‌آرام
۷ دقیقه زمان مطالعه
۰ دیدگاه
محتوای تخصصی، ساده و کاربردی
هماهنگ با هویت حرفه‌ای نت‌آرام
بازگشت به لیست مقالات
تصویر شاخص مقاله چرا سرور فقط یک NVMe روی کارت PCIe را می‌شناسد؟ راهنمای bifurcation در وبلاگ نت‌آرام
محتوای آموزشی وبلاگ نت‌آرام
دو یا چهار SSD از نوع NVMe را روی یک کارت PCIe نصب کرده‌اید، اما سرور فقط یکی از آن‌ها را می‌بیند. پیش از اینکه نتیجه بگیرید دیسک دوم خراب است، یک احتمال مهم را بررسی کنید: شاید سرور مسیرهای PCIe آن اسلات را به چند شاخه مستقل تقسیم نکرده باشد. این تقسیم را PCIe bifurcation می‌نامند.
این مشکل بیشتر در کارت‌هایی دیده می‌شود که چند NVMe را بدون سوئیچ PCIe داخلی به یک اسلات متصل می‌کنند. اما هر دیده‌نشدن دیسک از همین علت نیست؛ خود دیسک، نوع کارت، رایزر، سازگاری سرور، تنظیم VMD یا درایور نیز می‌توانند دخیل باشند. در این مقاله از بررسی بی‌خطر شروع می‌کنیم و به تغییر تنظیم مخصوص همان سخت‌افزار می‌رسیم.
راهنما بیشتر برای مدیر سرور اختصاصی ایران است که مدل دستگاه و دسترسی مدیریتی خارج از سیستم‌عامل دارد. در سرور مجازی ایران، دیسک معمولاً به‌صورت مجازی ارائه می‌شود و تغییر اسلات فیزیکی در اختیار کاربر نیست؛ در آن حالت موضوع را با ارائه‌دهنده زیرساخت بررسی کنید. پیش از هر تغییر BIOS یا جابه‌جایی قطعه، نسخه پشتیبان قابل بازیابی داشته باشید و بازه نگهداری هماهنگ کنید.

۱. اول مشخص کنید دیسک کجا دیده نمی‌شود

در ترمینال لینوکس، فهرست دیسک‌های شناسایی‌شده را ببینید:
کد / دستورlsblk -o NAME,SIZE,MODEL,SERIAL,TRAN
مدل، ظرفیت و در صورت نمایش شماره سریال را با برچسب دیسک‌ها مقایسه کنید. شماره‌های /dev/nvme0n1 و /dev/nvme1n1 پس از تغییر سخت‌افزار یا ریبوت ممکن است جابه‌جا شوند؛ آن‌ها را هویت دائمی دیسک فرض نکنید. اگر ابزار nvme-cli از قبل نصب است، فهرست کنترل‌کننده‌ها را نیز بگیرید:
کد / دستورsudo nvme list
اگر یک دیسک در خروجی هست ولی در برنامه ذخیره‌سازی نیست، مشکل لزوماً شناسایی PCIe نیست؛ ممکن است namespace، پارتیشن، فایل‌سیستم یا تنظیم برنامه مطرح باشد. برعکس، یک دیسک بدون پارتیشن نیز معمولاً باید به‌صورت دستگاه شناسایی‌شده دیده شود. برای ظاهرکردن آن دستور ساخت پارتیشن یا فرمت اجرا نکنید؛ این کار می‌تواند داده موجود را از بین ببرد.
کد / دستورlspci -nnk
در فهرست دنبال کنترل‌کننده‌های NVMe و درایور استفاده‌شده بگردید. lspci سخت‌افزار PCI را نشان می‌دهد، نه الزاماً فایل‌سیستم آماده استفاده. بعضی سیستم‌ها کنترل‌کننده‌ها را پشت VMD یا کنترلر دیگری نشان می‌دهند؛ نام و مسیر واقعی را با مدل سرور و مستند سازنده تطبیق دهید. برای دیدن پیام‌های همین بوت:
کد / دستورsudo journalctl -k -b --no-pager | grep -Ei 'nvme|pcie|aer|vmd'
خطاهای تکراری اتصال PCIe، timeout یا reset را همراه زمان و آدرس دستگاه یادداشت کنید. اگر دستگاه در BIOS و لینوکس هر دو غایب است، احتمال مسیر سخت‌افزاری بیشتر می‌شود؛ ولی بعضی مدل‌ها دیسک NVMe را در صفحه خاصی از BIOS نشان نمی‌دهند. راهنمای Intel نیز برای برخی خانواده‌ها این تفاوت نمایش را ذکر می‌کند. ندیدن نام دیسک در فهرست Boot هم به‌تنهایی به معنی ندیدن سخت‌افزار نیست؛ شاید دیسک بوت‌پذیر نباشد.

۲. کارت و اسلات دقیق را بشناسید

مدل سرور، مادربرد، نسخه BIOS، شماره اسلات، مدل رایزر و مدل آداپتور را از پنل مدیریت سخت‌افزار یا برچسب قطعه یادداشت کنید. طول ظاهری سوکت همیشه تعداد مسیرهای برقی فعال را ثابت نمی‌کند: یک سوکت بلند ممکن است فقط بخشی از laneها را داشته باشد یا در شرایطی با وسیله دیگری مشترک باشد. در سرور دوپردازنده‌ای بعضی اسلات‌ها ممکن است به پردازنده دوم وابسته باشند؛ این موضوع را فقط با دفترچه همان مدل مشخص کنید.
درخت شناسایی PCIe را ببینید:
کد / دستورlspci -tv
این خروجی شاخه‌ها و پل‌ها را نشان می‌دهد، اما بدون تطبیق با دفترچه دستگاه همیشه شماره فیزیکی اسلات را ثابت نمی‌کند. اگر آدرس PCI دستگاه قابل مشاهده را پیدا کردید، برای همان آدرس نمونه مانند 03:00.0 جزئیات را بخوانید:
کد / دستورsudo lspci -s 03:00.0 -vv
در صورت وجود، LnkCap قابلیت اتصال و LnkSta وضعیت مذاکره‌شده سرعت و عرض مسیر را نشان می‌دهد. خروجی هر دستگاه ممکن است مربوط به اتصال پایین‌دست یا یک سوئیچ باشد، نه مستقیماً تمام laneهای اسلات. آن را با نمودار سخت‌افزار مقایسه کنید؛ کم‌بودن عرض اتصال یک سرنخ است، نه دستور خودکار برای تغییر تنظیم.
همچنین مطمئن شوید SSDها واقعاً NVMe و سازگار با آداپتورند. ظاهر یا شکل اتصال M.2 به‌تنهایی تضمین نمی‌کند کارت از SSD نوع SATA هم پشتیبانی کند. فهرست سازگاری کارت، اندازه فیزیکی و روش تغذیه آن را بررسی کنید.

۳. bifurcation چه کاری انجام می‌دهد؟

یک کارت غیرفعال دو دیسکی ممکن است به اتصال x8 نیاز داشته باشد که میزبان آن را به دو شاخه x4 و x4 تقسیم کند. کارت چهار دیسکی مشابه ممکن است به x16 با چهار شاخه x4 نیاز داشته باشد. اگر اسلات روی حالت یک مسیر x8 مانده باشد، در بعضی ترکیب‌ها فقط SSD اول دیده می‌شود. این رفتار برای یک مدل مشخص کارت در پاسخ Supermicro شرح داده شده است.
همه کارت‌ها مثل هم نیستند. بعضی آداپتورها سوئیچ PCIe داخلی دارند و روش اتصالشان به تقسیم lane میزبان وابسته نیست؛ همچنان باید سازگاری و ظرفیت همان کارت را چک کنید. همچنین برخی اسلات‌ها فقط تقسیم‌های خاصی مثل x8+x8 را پشتیبانی می‌کنند و این الزاماً برای چهار شاخه مستقل x4 کافی نیست. از روی تعداد جایگاه SSD روی کارت، پشتیبانی BIOS را فرض نکنید.

۴. تنظیم را فقط برای مدل و اسلات درست تغییر دهید

قبل از تغییر، مطمئن شوید بکاپ سالم است، کنسول مدیریتی خارج از سیستم‌عامل در دسترس است و زمان قطع سرویس با کاربران هماهنگ شده است. تنظیم فعلی BIOS، ترتیب بوت و شماره اسلات را ثبت کنید. تغییر bifurcation معمولاً به راه‌اندازی مجدد نیاز دارد و ممکن است دستگاه‌های دیگر متصل به همان مسیر را نیز تحت تأثیر قرار دهد.
به BIOS/UEFI همان سرور بروید، بخش تنظیمات PCIe یا I/O را از دفترچه مدل پیدا کنید و فقط تنظیم اسلات مورد نظر را ببینید. نام منو و گزینه‌ها میان نسل‌ها متفاوت است. برای نمونه، Supermicro در یک پاسخ مربوط به SYS-6018U-TR4t+ و کارت AOC-SLG3-2M2 برای یک اسلات x8 تغییر از Auto به x4x4 را توضیح می‌دهد. این مثال نسخه آماده برای همه سرورها نیست.
اگر مدل و سازگاری سخت‌افزار شما نیز همان تقسیم را تأیید می‌کند، گزینه صحیح همان اسلات را انتخاب و پس از ثبت مقدار قبلی ذخیره کنید. بعد از بالا آمدن سیستم، تعداد و سریال دیسک‌ها را دوباره با lspci، lsblk و در صورت نصب nvme list مقایسه کنید. اگر بوت یا دستگاه دیگری دچار مشکل شد، از کنسول مدیریتی به تنظیم ثبت‌شده برگردید و با پشتیبانی سخت‌افزار بررسی کنید.

۵. اگر هنوز فقط یک دیسک دیده می‌شود

این مسیرها را به‌ترتیب دنبال کنید و هر بار فقط یک عامل را تغییر دهید:
  1. دفترچه را دوباره برای تعداد lane واقعی، نوع رایزر، نیاز به پردازنده دوم و حالت پشتیبانی‌شده همان اسلات بخوانید. اگر تقسیم مناسب موجود نیست، ممکن است اسلات سازگار دیگری یا آداپتور دارای سوئیچ لازم باشد.
  2. وضعیت هر SSD و خود آداپتور را با روش مورد تأیید سازنده و در بازه خاموشی بررسی کنید. اگر آزمایش تکی لازم است، اول هویت، کابل‌ها و جایگاه‌ها را ثبت کنید و اثر آن بر RAID و بوت را بشناسید. جابه‌جایی کورکورانه دیسک‌های یک آرایه عملیاتی مناسب نیست.
  3. اگر PCI دستگاه را می‌بیند اما دستگاه بلوکی در دسترس نیست، درایور، گزارش هسته، namespace و سازگاری سیستم‌عامل را بررسی کنید. lspci -nnk و journalctl برای همین تمایز مفیدند.
  4. اگر VMD یا RAID فعال است، قبل از هر تغییر وابستگی دیسک بوت و درایور را با مستند سازنده بررسی کنید. خاموش‌کردن بی‌برنامه VMD یا تغییر حالت RAID ممکن است سیستم را از بوت بیندازد یا آرایه را از دسترس خارج کند.
برای بررسی وضعیت بوت پس از شناسایی سخت‌افزار، راهنمای بوت‌نشدن دیسک و ورود به PXE را ببینید. شناسایی دستگاه و قابلیت بوت دو مسئله مرتبط اما جدا هستند.

۶. تأیید نهایی بدون آسیب به داده

تعداد دیسک‌ها، سریال هرکدام و وضعیت کنترلر را با فهرست پیش از تغییر مقایسه کنید. سرویس ذخیره‌سازی و برنامه وابسته را با روش معمول خود بررسی کنید و از صحت نسخه پشتیبان مطمئن شوید. اگر همه دستگاه‌ها دیده می‌شوند ولی عملکرد ناپایدار است، خطاهای جدید PCIe و سلامت دیسک را در طول کار زیر نظر بگیرید؛ دیده‌شدن در یک لحظه پایان تشخیص نیست. هیچ دیسک ناشناخته‌ای را صرفاً برای آزمون فرمت یا initialize نکنید.
اشتراک‌گذاری:
لینکدینتلگرامایکس
مقاله قبلی
مقاله قبلی وجود ندارد.

دیدگاه‌ها (۰)

دیدگاه‌های تاییدشده و پاسخ‌های تیم نت‌آرام