مقدمه
در واقعASR قابلیتی است که به صورت دائم یک سیستم را از جنبههای مختلف مورد ارزیابی قرار میدهد تا در صورت بروز مشکل و خطا، جهت تشخیص و رفع آن به صورت خودکار اقدام نماید.این ویژگی توسط شرکت hp، در سرورهای تولید خود به کار گرفته شده است تا در صورت بروز مشکل در عملکرد سختافزار و سیستم عامل، سیستم را به یک وضعیت مناسب برگرداند.
2 معرفی ASR
تکنولوژی ASR یا Automatic System Recovery این امکان را به سیستم می دهد تا در صورت بروز مشکلات حاد در سیستم عامل نظیر (Blue Screen of death ، ABEND (abnormal end و یاKernel panic سیستم را restart نماید، عمل repair خودکار memory را انجام دهد و یا در صورت fail شدن یک process سیستم را recover کند. در هنگام load شدن سیستم عامل، درایور خاصی تحت عنوان System Management Driver یا همان Health Driver همراه با آن load می شود. هنگامی که سیستم عامل بدون مشکل در حال کار کردن است timer خاصی به نام ASR timer ، که زمان پیش فرض آن10 دقیقه است، به طور مداوم توسط این driverدر فاصله زمانی مشخصی restart می شود. در صورتی که سیستم عامل به درستی عمل نکند و یا به شکلی قفل نماید، این timer پس از اتمام دوره چک کردن، expire شده و سیستم restart می شود. همزمان با restart شدن سیستم یک پیغام log در قسمت login نرم افزار Insight Manager در ویندوز و همچنین در IML در لینوکس درج خواهد شد. به طور پیشفرض قابلیتASR در سرور های hp فعال است و می توان آنرا از طریق نرم افزار Insight Manager در ویندوز و یا(RBSU (ROM-Based Setup Utility در BIOS غیر فعال نمود و زمان پیشفرض مربوط به Timer را تغییر داد.
3 تنظیم ASR در منوی RBSU(Rom-Based Setup Utility)
تنظیم ASR علاوه بر نرمافزارInsight Manager از طریق BIOS سیستم نیز قابل انجام می باشد.برای این کار بایستی در زمان بوت شدن سرور از طریق کلید F9 وارد BIOS سرور شویم.تنظیمات ASR درگزینه Server Availability در منویRBSU در دسترس است.
در واقعASR قابلیتی است که به صورت دائم یک سیستم را از جنبههای مختلف مورد ارزیابی قرار میدهد تا در صورت بروز مشکل و خطا، جهت تشخیص و رفع آن به صورت خودکار اقدام نماید.این ویژگی توسط شرکت hp، در سرورهای تولید خود به کار گرفته شده است تا در صورت بروز مشکل در عملکرد سختافزار و سیستم عامل، سیستم را به یک وضعیت مناسب برگرداند.
2 معرفی ASR
تکنولوژی ASR یا Automatic System Recovery این امکان را به سیستم می دهد تا در صورت بروز مشکلات حاد در سیستم عامل نظیر (Blue Screen of death ، ABEND (abnormal end و یاKernel panic سیستم را restart نماید، عمل repair خودکار memory را انجام دهد و یا در صورت fail شدن یک process سیستم را recover کند. در هنگام load شدن سیستم عامل، درایور خاصی تحت عنوان System Management Driver یا همان Health Driver همراه با آن load می شود. هنگامی که سیستم عامل بدون مشکل در حال کار کردن است timer خاصی به نام ASR timer ، که زمان پیش فرض آن10 دقیقه است، به طور مداوم توسط این driverدر فاصله زمانی مشخصی restart می شود. در صورتی که سیستم عامل به درستی عمل نکند و یا به شکلی قفل نماید، این timer پس از اتمام دوره چک کردن، expire شده و سیستم restart می شود. همزمان با restart شدن سیستم یک پیغام log در قسمت login نرم افزار Insight Manager در ویندوز و همچنین در IML در لینوکس درج خواهد شد. به طور پیشفرض قابلیتASR در سرور های hp فعال است و می توان آنرا از طریق نرم افزار Insight Manager در ویندوز و یا(RBSU (ROM-Based Setup Utility در BIOS غیر فعال نمود و زمان پیشفرض مربوط به Timer را تغییر داد.
3 تنظیم ASR در منوی RBSU(Rom-Based Setup Utility)
تنظیم ASR علاوه بر نرمافزارInsight Manager از طریق BIOS سیستم نیز قابل انجام می باشد.برای این کار بایستی در زمان بوت شدن سرور از طریق کلید F9 وارد BIOS سرور شویم.تنظیمات ASR درگزینه Server Availability در منویRBSU در دسترس است.
در واقعServer Avalability شامل دو گزینه برای تنظیم ASR می باشد:
در واقع ASR Status :جهت فعال و غیر فعال کردن ویژگیASR.
در واقع ASR Timeout: تنظیم زمان تایمر ASR که به صورت پیشفرض 10 دقیقه می باشد.
زمانی که سیستم عامل در وضعیت مناسبی قرار داشته باشد،Health Driver به صورت پیوسته تایمر ASR را ریست میکند تا از صفر شدن تایمر جلوگیری کند. در صورتی که سیستم عامل نتواند جواب دهد و به دلایلی که بعداً ذکر می شود سیستم عامل قفل کرده باشد این تایمر بعد از گذشت زمان تعیین شده صفر شده و Health Driver فرض را بر قفل کردن سیستم عامل گرفته و سرور را reboot خواهد نمود.در اغلب مواردی که ASR عمل می کند یک Log به IML سیستم نیز ارسال می شود.
4 دلایل قفل شدن سیستم عامل
خطای یکی از اجزای سخت افزاری سیستم
نرم افزار سطح بالا یا Process ای که تمام منابعCPU سیستم را اشغال کرده و اجازه نمیدهد تا CPU به Health Driver تخصیص داده شود تا بتواند تایمر ASR را ریست نماید.
نرمافزار یا Process ای که تمام منابع Swape,RAM سیستم را اشغال کرده واجازه تخصیص Memory به Health Driver را نمی دهد.
خرابی یکی از اجرای سیستم عامل، مانند خرابی فایل سیستم یا درایور یکی از اجزا
و هر اتفاقی که باعث ایجاد وقفه در عملکرد سیستم عامل شود.
5 عیب یابی جهت رفع و تشخیص نوع خطا
همانطور که در قسمت قبل هم توضیح داده شد ASR ممکن است به دلایل نرم افزاری و یا سخت افزاری اتفاق بیافتد.
مراحل عیب یابی جهت رفع و تشخیص نوع خطای اتفاق افتاده(سختافزار – نرمافزار).
به موارد زیردر مواقع اتفاق افتادن ASR توجه نماید:
آیاASR بعد از اضافه کردن یک سختافزار جدید اتفاق افتاده هست؟
آیاASR بعد از نصب Patch جدید سیستم عامل،درایور یا Firmware جدید اتفاق افتاده است؟
در صورت امکان سختافزار جدید نصب شده،درایور جدید و یا Patch جدید سیستم عامل را حذف کنید.
در صورت امکان iLO , Firmware , BIOS سرور را بروزرسانی نمایید.
در واقع ( SPP (Support Pack for Proliant ) ,PSP (Proliant Support Pack را بسته به مدل سرور بروزرسانی نمایید.
در واقع NVRAM سرور را از طریق BRSU (همان BIOS سرور) پاک نمایید.
عیب یابی و Log ها:
اجرا کردن نرمافزار Insight Diagnostics از CD همراه سرور برای سرورهای G7 و پایین تر.
در سرورهای G8 , G9 از iLO سرور استفاده نمایید یا Health System را از iLO فعال نمایید.
در واقع IML ،Integrated Management Log را از طریق رابط کاربری iLO یا Insight Diagnostics چک نمایید.
برای سرورهای ویندوزی میتوان از نرمافزار HPS Report جهت گزارش گیری از تمام قسمتهای سیستم استفاده نمود.
برای سرورهای لینوکسی از ابزار Cfg2html برای گزارش گیری کامل استفاده می شود.
در واقع ASR Status :جهت فعال و غیر فعال کردن ویژگیASR.
در واقع ASR Timeout: تنظیم زمان تایمر ASR که به صورت پیشفرض 10 دقیقه می باشد.
زمانی که سیستم عامل در وضعیت مناسبی قرار داشته باشد،Health Driver به صورت پیوسته تایمر ASR را ریست میکند تا از صفر شدن تایمر جلوگیری کند. در صورتی که سیستم عامل نتواند جواب دهد و به دلایلی که بعداً ذکر می شود سیستم عامل قفل کرده باشد این تایمر بعد از گذشت زمان تعیین شده صفر شده و Health Driver فرض را بر قفل کردن سیستم عامل گرفته و سرور را reboot خواهد نمود.در اغلب مواردی که ASR عمل می کند یک Log به IML سیستم نیز ارسال می شود.
4 دلایل قفل شدن سیستم عامل
خطای یکی از اجزای سخت افزاری سیستم
نرم افزار سطح بالا یا Process ای که تمام منابعCPU سیستم را اشغال کرده و اجازه نمیدهد تا CPU به Health Driver تخصیص داده شود تا بتواند تایمر ASR را ریست نماید.
نرمافزار یا Process ای که تمام منابع Swape,RAM سیستم را اشغال کرده واجازه تخصیص Memory به Health Driver را نمی دهد.
خرابی یکی از اجرای سیستم عامل، مانند خرابی فایل سیستم یا درایور یکی از اجزا
و هر اتفاقی که باعث ایجاد وقفه در عملکرد سیستم عامل شود.
5 عیب یابی جهت رفع و تشخیص نوع خطا
همانطور که در قسمت قبل هم توضیح داده شد ASR ممکن است به دلایل نرم افزاری و یا سخت افزاری اتفاق بیافتد.
مراحل عیب یابی جهت رفع و تشخیص نوع خطای اتفاق افتاده(سختافزار – نرمافزار).
به موارد زیردر مواقع اتفاق افتادن ASR توجه نماید:
آیاASR بعد از اضافه کردن یک سختافزار جدید اتفاق افتاده هست؟
آیاASR بعد از نصب Patch جدید سیستم عامل،درایور یا Firmware جدید اتفاق افتاده است؟
در صورت امکان سختافزار جدید نصب شده،درایور جدید و یا Patch جدید سیستم عامل را حذف کنید.
در صورت امکان iLO , Firmware , BIOS سرور را بروزرسانی نمایید.
در واقع ( SPP (Support Pack for Proliant ) ,PSP (Proliant Support Pack را بسته به مدل سرور بروزرسانی نمایید.
در واقع NVRAM سرور را از طریق BRSU (همان BIOS سرور) پاک نمایید.
عیب یابی و Log ها:
اجرا کردن نرمافزار Insight Diagnostics از CD همراه سرور برای سرورهای G7 و پایین تر.
در سرورهای G8 , G9 از iLO سرور استفاده نمایید یا Health System را از iLO فعال نمایید.
در واقع IML ،Integrated Management Log را از طریق رابط کاربری iLO یا Insight Diagnostics چک نمایید.
برای سرورهای ویندوزی میتوان از نرمافزار HPS Report جهت گزارش گیری از تمام قسمتهای سیستم استفاده نمود.
برای سرورهای لینوکسی از ابزار Cfg2html برای گزارش گیری کامل استفاده می شود.
تا حالا شده بخواین ترمینال خودتون را شیر کنید در واقع anydesk یا teamviewer نسخه cli داشته باشین ?!!!!
با برنامه teleconsole میتونید
کافیه دستور زیر را اجرا کنید تا برنامه نصب بشه
curl https://www.teleconsole.com/get.sh | sh
سپس با اجرای برنامه teleconsole شما یک سیشن میده ، حتی میتونید تحت وب هم در لینکی که میده وصل بشیم
$ teleconsole
Requesting a disposable SSH proxy for you...
Checking status of the SSH tunnel...
Your Teleconsole ID: 4bc2b5138360d343379b9043083c48eb7084c3b8
WebUI for this session: https://teleconsole.com/s/4bc2b5138360d343379b9043083c48eb7084c3b8
برای خروج هم کافی هست exit را اجرا کنید
سورس برنامه هم بصورت آزاد موجود است
https://github.com/gravitational/teleconsole
#terminal #ssh #cli #teleconsole @unixmens
با برنامه teleconsole میتونید
کافیه دستور زیر را اجرا کنید تا برنامه نصب بشه
curl https://www.teleconsole.com/get.sh | sh
سپس با اجرای برنامه teleconsole شما یک سیشن میده ، حتی میتونید تحت وب هم در لینکی که میده وصل بشیم
$ teleconsole
Requesting a disposable SSH proxy for you...
Checking status of the SSH tunnel...
Your Teleconsole ID: 4bc2b5138360d343379b9043083c48eb7084c3b8
WebUI for this session: https://teleconsole.com/s/4bc2b5138360d343379b9043083c48eb7084c3b8
برای خروج هم کافی هست exit را اجرا کنید
سورس برنامه هم بصورت آزاد موجود است
https://github.com/gravitational/teleconsole
#terminal #ssh #cli #teleconsole @unixmens
GitHub
GitHub - gravitational/teleconsole: Command line tool to share your UNIX terminal and forward local TCP ports to people you trust.
Command line tool to share your UNIX terminal and forward local TCP ports to people you trust. - gravitational/teleconsole
Using Visual Studio Code on Fedora https://fedoramagazine.org/?p=19105
Fedora Magazine
Using Visual Studio Code on Fedora - Fedora Magazine
A text editor is one of the most important tools for any programmer. Visual Studio Code is an open source text editor specifically designed for editing source code. Visual Studio Code was released by Microsoft in April 2015 and later became a... Continue…
شاخه dev/ در فایل سیستم لینوکس
در فایل سیستم لینوکس، شاخهای به نام dev/ وجود دارد که در آن تمامی ابزارهای سخت افزاری سیستم لیست شدهاند. برای مثال پارتیشنهای دیسک سخت یا درایوهای CD-ROM با نشانی dev/hdX/ در این شاخه وجود دارند. حتما هنگام استفاده از دستوری مانند mount از گرههای موجود در این شاخه برای اتصال ابزارها به فایل سیستم استفاده کردهاید.
udev
در واقع udev مسئول ایجاد گره ها و فایلهای ابزارهای سخت افزاری در شاخه /dev می باشد که این عملکرد بصورت پویا انجام می شود. ساختار udev بسیار جمع و جور و کوچک میباشد. udev تنها گرههای ابزارهایی را که بر روی سیستم حاضر هستند و ماژول آنها در حافظه بارگذاری شده است را نمایش میدهد. این ویژگی باعث میشود تا یک ساختار تمیز و مرتب در dev/ داشته باشیم.
در واقع udev قابلیتهای فراوانی نسبت به ابزارهای مشابه قدیمی خود دارد.از جمله این قابلیت ها ایجاد نام های سفارشی برای ابزارهای خاص در شاخه /dev می باشد. برای مثال ممکن است شما یک درایو usb و یک دوربین دیجیتال داشته باشید که از dev/sda1/ استفاده میکنند، میتوانید کاری کنید که هرگاه دوربین به سیستم متصل میشود با نام Camera و وقتی درایو usb به سیستم متصل میشود به نام usbdrive شناخته شود. برای این کار لازم است تا تعدادی قانون (rule) به سیستم udev خود اضافه کنید. محل تعریف این قوانین در مسیر etc/udev/udev.rules/ میباشد.
میتوانید نام ابزاری را که به درگاه usb متصل کردهاید با استفاده از دستور زیر بدست آورده:
# udevinfo -a -p $(udevinfo -q path -n /dev/sda1)
...
looking at the device chain at '/sys/devices/pci0000:00/0000:00:07.2/usb1/1-2':
BUS="usb"
ID="1-2"
DRIVER="usb"
SYSFS{bConfigurationValue}="1"
SYSFS{bDeviceClass}="00"
SYSFS{bDeviceProtocol}="00"
SYSFS{bDeviceSubClass}="00"
SYSFS{bMaxPower}="100mA"
SYSFS{bNumConfigurations}="1"
SYSFS{bNumInterfaces}=" 1"
SYSFS{bcdDevice}="0100"
SYSFS{bmAttributes}="c0"
SYSFS{detach_state}="0"
SYSFS{devnum}="2"
SYSFS{idProduct}="0102"
SYSFS{idVendor}="07b4"
SYSFS{manufacturer}="OLYMPUS"
SYSFS{maxchild}="0"
SYSFS{product}="C160,D395"
SYSFS{serial}="SW01103804 "
SYSFS{speed}="12"
SYSFS{version}=" 1.10"
...
یا
# udevinfo -a -p /sys/block/sda
در فایل سیستم لینوکس، شاخهای به نام dev/ وجود دارد که در آن تمامی ابزارهای سخت افزاری سیستم لیست شدهاند. برای مثال پارتیشنهای دیسک سخت یا درایوهای CD-ROM با نشانی dev/hdX/ در این شاخه وجود دارند. حتما هنگام استفاده از دستوری مانند mount از گرههای موجود در این شاخه برای اتصال ابزارها به فایل سیستم استفاده کردهاید.
udev
در واقع udev مسئول ایجاد گره ها و فایلهای ابزارهای سخت افزاری در شاخه /dev می باشد که این عملکرد بصورت پویا انجام می شود. ساختار udev بسیار جمع و جور و کوچک میباشد. udev تنها گرههای ابزارهایی را که بر روی سیستم حاضر هستند و ماژول آنها در حافظه بارگذاری شده است را نمایش میدهد. این ویژگی باعث میشود تا یک ساختار تمیز و مرتب در dev/ داشته باشیم.
در واقع udev قابلیتهای فراوانی نسبت به ابزارهای مشابه قدیمی خود دارد.از جمله این قابلیت ها ایجاد نام های سفارشی برای ابزارهای خاص در شاخه /dev می باشد. برای مثال ممکن است شما یک درایو usb و یک دوربین دیجیتال داشته باشید که از dev/sda1/ استفاده میکنند، میتوانید کاری کنید که هرگاه دوربین به سیستم متصل میشود با نام Camera و وقتی درایو usb به سیستم متصل میشود به نام usbdrive شناخته شود. برای این کار لازم است تا تعدادی قانون (rule) به سیستم udev خود اضافه کنید. محل تعریف این قوانین در مسیر etc/udev/udev.rules/ میباشد.
میتوانید نام ابزاری را که به درگاه usb متصل کردهاید با استفاده از دستور زیر بدست آورده:
# udevinfo -a -p $(udevinfo -q path -n /dev/sda1)
...
looking at the device chain at '/sys/devices/pci0000:00/0000:00:07.2/usb1/1-2':
BUS="usb"
ID="1-2"
DRIVER="usb"
SYSFS{bConfigurationValue}="1"
SYSFS{bDeviceClass}="00"
SYSFS{bDeviceProtocol}="00"
SYSFS{bDeviceSubClass}="00"
SYSFS{bMaxPower}="100mA"
SYSFS{bNumConfigurations}="1"
SYSFS{bNumInterfaces}=" 1"
SYSFS{bcdDevice}="0100"
SYSFS{bmAttributes}="c0"
SYSFS{detach_state}="0"
SYSFS{devnum}="2"
SYSFS{idProduct}="0102"
SYSFS{idVendor}="07b4"
SYSFS{manufacturer}="OLYMPUS"
SYSFS{maxchild}="0"
SYSFS{product}="C160,D395"
SYSFS{serial}="SW01103804 "
SYSFS{speed}="12"
SYSFS{version}=" 1.10"
...
یا
# udevinfo -a -p /sys/block/sda
و سپس با ویرایش فایل etc/udev/udev.rules/ خطی مانند زیر را به آن اضافه کنید:
BUS="usb", SYSFS{product}="C160,D395", KERNEL="sd?1", NAME="%k", SYMLINK="camera"
BUS="usb", SYSFS{product}="C160,D395", KERNEL="sd?1", NAME="%k", SYMLINK="camera"
از این پس دوربین شما پس از اتصال به سیستم در dev/camera/ قابل دسترسی خواهد بود. برای ابزارهای ذخیره سازی داده usb که به درایوهای usb یا usb mass storage نیز موسوم هستند، خط فایل etc/udev/udev.rules/ مانند زیر خواهد بود:
BUS="usb", KERNEL="sd*", SYSFS{product}="USB 2.0 Storage Device", NAME="%k", SYMLINK="usbhd%n"
BUS="usb", KERNEL="sd*", SYSFS{product}="USB 2.0 Storage Device", NAME="%k", SYMLINK="usbhd%n"
این خط ابزارهایی مانند dev/usbhd/، /dev/usbhd1 و dev/usbhd2/ را ایجاد خواهد کرد که usbhd1 و usbhd2 قابل اتصال (mount) بوده و usbhd را نیز میتوان در ابزارهای پارتیشنبندی مانند cfdisk بکار گرفت.
از جمله قابلیت های دیگر udev، اجرای فرآیند و یا اسکریپت خاص هنگام اتصال یک سخت افزار یا قطع آن می باشد. بعنوان مثال قصد دارید یک اسکریپت خاص را هنگام اتصال حافظه usb flash اجرا نمایید. با استفاده از قوانینی که در مسیر etc/udev/udev.rules/ تعریف مینمایید به راحتی می توانید از این قابلیت استفاده نمایید.
با ایجاد یک فایل در مسیر /etc/udev/udev.rules/ و وارد نمودن خط زیر، به سیستم عامل اعلام می نمایید که هنگام اتصال یک دیوایس usb که vendorId=238b و productId=0a12 دارد، اسکریپتusr/local/test.sh را فراخوانی نماید.
<span class="pln">ACTION</span><span class="pun">==</span><span class="str">"add"</span><span class="pun">,</span><span class="pln"> ATTRS</span><span class="pun">{</span><span class="pln">idVendor</span><span class="pun">}==</span><span class="str">"238b"</span><span class="pun">,</span><span class="pln"> ATTRS</span><span class="pun">{</span><span class="pln">idProduct</span><span class="pun">}==</span><span class="str">"0a12"</span><span class="pun">,</span><span class="pln"> RUN</span><span class="pun">+=</span><span class="str">"/usr/local/test.sh"</span>
از جمله قابلیت های دیگر udev، اجرای فرآیند و یا اسکریپت خاص هنگام اتصال یک سخت افزار یا قطع آن می باشد. بعنوان مثال قصد دارید یک اسکریپت خاص را هنگام اتصال حافظه usb flash اجرا نمایید. با استفاده از قوانینی که در مسیر etc/udev/udev.rules/ تعریف مینمایید به راحتی می توانید از این قابلیت استفاده نمایید.
با ایجاد یک فایل در مسیر /etc/udev/udev.rules/ و وارد نمودن خط زیر، به سیستم عامل اعلام می نمایید که هنگام اتصال یک دیوایس usb که vendorId=238b و productId=0a12 دارد، اسکریپتusr/local/test.sh را فراخوانی نماید.
<span class="pln">ACTION</span><span class="pun">==</span><span class="str">"add"</span><span class="pun">,</span><span class="pln"> ATTRS</span><span class="pun">{</span><span class="pln">idVendor</span><span class="pun">}==</span><span class="str">"238b"</span><span class="pun">,</span><span class="pln"> ATTRS</span><span class="pun">{</span><span class="pln">idProduct</span><span class="pun">}==</span><span class="str">"0a12"</span><span class="pun">,</span><span class="pln"> RUN</span><span class="pun">+=</span><span class="str">"/usr/local/test.sh"</span>
iproute2 is a collection of userspace utilities for controlling and monitoring various aspects of networking in the Linux kernel, including routing, network interfaces, tunnels, traffic control, and network-related device drivers.
iproute2 is an open-source project released under the terms of version 2 of the GNU GPL license. Its development is closely tied to the development of networking components of the Linux kernel. As of December 2013, iproute2 is maintained by Stephen Hemminger. The original author, Alexey Kuznetsov, was responsible for the Quality of Service (QoS) implementation in the Linux kernel
iproute2 is an open-source project released under the terms of version 2 of the GNU GPL license. Its development is closely tied to the development of networking components of the Linux kernel. As of December 2013, iproute2 is maintained by Stephen Hemminger. The original author, Alexey Kuznetsov, was responsible for the Quality of Service (QoS) implementation in the Linux kernel
در واقع cgroups (محفف control groups به معنی گروههای کنترلی) یک قابلیت هستهٔ لینوکس است که منابع مجموعهای از فرایندها را مدیریت و مجزاسازی میکند. که در مجازی سازی بیشترین کاربرد را دارد ، که میتوانید روی منابع سخت افزاری مانند ، شبکه ، رم ، سی پی یو و ... مدیریت کنید و نسبت به نیاز اختصاص دهید