اگه یک ماشین مجازی لینوکس روی vmware مدیریت کرده باشید احتمالا هنگام اضافه کردن یک دیسک scsi جدید به ماشین متوجه شدید که، لینوکس به صورت خودکار scsi controller را اسکن نمیکنه در نتیجه اضافه شدن دیسک جدید را متوجه نمیشه و نیاز به راه اندازی مجدد سیستم هست.
خب حالا برای حل این مشکل بدون ریست کردن سرور لینوکس چی کار میشه کرد؟ راه حل بسیار ساده است؛ برای مثال من این سیستم را دارم، یه ماشین لینوکس دبیان Debian 8.0 Jessie روی محیط مجازی esxi 5.5 که چهار دیسک و سه scsi controller داره. این هم یه تصویر از وضعیت فعلی block device های من با دستور lsblk هست:
خب حالا وارد محیط vmware client میشم و یک دیسک جدید به scsi controller شماره یک و node شماره دو ماشین مجازی ام اضافه می کنم. شماره node و تعداد scsi controller را اینجا به خاطر بسپارید بعدا به درد میخوره. به این صورت:
حالا یک fdisk –l میگیرم و خب معلومه دیگه، هیچی به هیچی! ای هیچ برای هیچ بر هیچ مپیچ 🙂
از مسیری که فایلهای مدیریت scsi controller در لینوکس وجود دارد یک ls می گیریم:
یه چیزهایی آشنا به نظر میاد اینطور نیست؟ شبیه ترتیب همون scsi controller و node ها در محیط مجازی هست.
خب حالا من دستور زیر را اجرا می کنم و به جای شماره host عدد سه را می زنم که به نظر باید درست باشه
echo “- – -” > /sys/class/scsi_host/host#/scan
اون سه تا علامت – چیکار می کنه؟ کاراکتر – به جای wild character برای مقادیر channel, scsi target id, LUN به کار میره و به معنی اسکن کردن همه چیز هست.
دستور را اجرا می کنیم و مثل حرفه ای ها! لاگ های سیستم را کنترل می کنیم:
watch –n1 tail /var/log/messages/
خب مثل اینکه یه چیزهای ظاهر شد، بله درسته دیسک scsi با مشخصاتی که می بینید با موفقیت اسکن و اضافه شد:
یک fdisk –l هم می گیریم و بله همه چیز درسته!