روشن کردن سرور با یک کلیک: همه چیز درباره Wake on LAN
روشن کردن سرور با یک کلیک: همه چیز درباره Wake on LAN برای محققین و توسعه دهنده های مدلهای عمیق که همیشه در حال ترین کردن مدل هستند!
اگر شما هم از اون دسته از افرادی هستید که در شرکت یا منزل یک سیستم حرفه ای برای آموزش مدلهای دیپلرنینگ دارید، احتمالاً این سناریو براتون آشناست: میخواید به سرور وصل بشید، ولی خاموشه! روشن گذاشتن دائم هم حتی با توجه به ارزان بودن پول برق در ایران اصلاً بهصرفه نیست. البته نه تنها مصرف برق با این کار بالا مییورد، بلکه استهلاک سیستم هم اگر در نظر بگیریم اوضاع بدتر میشه! خب حالا چاره چیه؟ Wake on LAN (WoL) دقیقاً همون قابلیتیه که میتونه شما رو از دردسر نجات بده! میدونستید کارت شبکه LAN قبل Power قرار گرفته و میشه با ارسال یه پکت خاص سیستمو روشن کرد!
Wake on LAN چیست و چرا برای متخصصین دیپلرنینگ مفیده؟
Wake on LAN (یا به اختصار WoL) یک قابلیت شبکهایه که به شما اجازه میده سرورتون یا کامپیوتر قوی که یه جایی قرار دادید که مدلهاتونو آموزش بدید و از راه دور مثلا با anydesk یا SSH میخواهید بهش وصل شید، اما الان خاموشه رو از راه دور روشن کنید، بقاعدتا بدون اینکه نیاز باشه فیزیکی پشت دستگاه برید. این یعنی اگه سرور یا ورکاستیشن پرقدرتی برای ترین کردن مدلهای پیچیده دارید، میتونید بدون روشن گذاشتن دائمی، هر زمان که نیاز داشتید، فقط با یک سیگنال، اون رو راهاندازی کنید و کارتون رو ادامه بدید، یا حتی بگید اگر Sleep شده سیستم از حالت Sleep بیرون بیاد!
این قابلیت چه زمانی مفیده؟
فرض کنید نیمه شب از راه دور، درحالیکه روی لپتاپ شخصی کار میکنید، ناگهان به فکرتون میرسه که یه مدل جدید رو توی سرور ترین کنید. اما مشکل اینجاست که سرور خاموشه. با Wake on LAN، میتونید از روی همون لپتاپ یا حتی از طریق موبایل، سرور رو روشن کنید و بلافاصله بهش متصل بشید.
WoL چطور کار میکنه؟
Wake on LAN بر اساس ارسال یک “پکت جادویی” (Magic Packet) عمل میکنه. این پکت یک سری اطلاعات شبکهایه که به کارت شبکه سرور ارسال میشه. کارت شبکه، حتی زمانی که سرور خاموشه، در حالت آمادهباش باقی میمونه و به محض دریافت این سیگنال، سیستم رو روشن میکنه. با توجه به اینکه قبل power هم قرار داره میتونه این دستورو دریافت و سیستم خاموشو روشن کنه!
چرا Wake on LAN برای دیپلرنینگبازها ضروریه؟
- صرفهجویی در هزینهها و انرژی: نیاز نیست همیشه سرور روشن باشه. فقط زمانی که بهش نیاز دارید، اونو روشن میکنید.
- انعطافپذیری بالا: میتونید از هر جای دنیا، چه توی خونه باشید، چه توی مسافرت، سرور رو کنترل کنید و به راحتی ترین رو شروع کنید.
- کاهش استهلاک: روشن و خاموش کردن سرور از طریق WoL فشار کمتری به سیستم وارد میکنه و عمر قطعات رو افزایش میده.
چطور WoL رو راهاندازی کنیم؟
- پیکربندی BIOS: ابتدا باید این قابلیت رو از طریق BIOS سیستم فعال کنید. وارد تنظیمات BIOS بشید و گزینهای مثل “Wake on LAN” یا “Power On by PCI-E” رو فعال کنید.
- تنظیمات کارت شبکه: بعد از بالا آمدن سیستم، وارد Device Manager بشید و تنظیمات کارت شبکه رو باز کنید. در بخش Power Management مطمئن بشید که گزینه “Allow this device to wake the computer” فعال باشه.
- تنظیمات روتر: باید مطمئن بشید که روتر اجازه عبور پکتهای WoL رو میده. معمولاً این کار با تنظیم Port Forwarding برای پورتهای UDP مثل 7 یا 9 انجام میشه.
چطور از WoL استفاده کنیم؟
بعد از تنظیمات، کافیه یک اپلیکیشن WoL روی گوشی یا لپتاپ نصب کنید. مثلاً WakeMeOnLan (برای ویندوز) یا Mocha WOL (برای موبایل) گزینههای خوبی هستند. حالا با وارد کردن MAC آدرس سرور و IP، میتونید سرور رو روشن کنید.
WoL برای دیپلرنینگبازها:
اگر از سرورهای لینوکسی استفاده میکنید، که با توجه به این که نسخه های جدید تنسورفلو، خصوصا 2.10 به بعد رابطهی خوبی با ویندوز ندارند، میتونید Wake on LAN رو با ابزارهایی مثل ethtool
هم پیکربندی کنید. البته این نکته هم در نظر بگیرید که اگر میخواید سیگنال Wake on LAN رو از اینترنت ارسال کنید، باید حتماً IP ثابت (Static IP) یا استفاده از سرویسهای Dynamic DNS رو در نظر بگیرید. اگرم سرور تو شرکت و شبکه Local تونه که میتونید از همون IP داخلی استفاده کنید.
راه اندازی در سرور لینوکسی:
بررسی پشتیبانی کارت شبکه از WoL
ابتدا مطمئن بشید که کارت شبکه (Ethernet) شما از قابلیت Wake on LAN پشتیبانی میکنه. برای این کار ترمینال رو باز کنید و دستور زیر رو اجرا کنید:
sudo ethtool <نام-کارت-شبکه>
برای مثال، اگر اسم کارت شبکه شما enp3s0
باشه، دستور به این صورت میشه:
sudo ethtool enp3s0
بعد از اجرای این دستور، دنبال خطی بگردید که نوشته شده:
Supports Wake-on: g
اگر حرف g
در این قسمت وجود داره، یعنی کارت شبکه شما پشتیبانی میکنه. در غیر این صورت، ممکنه مجبور بشید BIOS یا درایور کارت شبکه رو بهروز کنید.
گام دوم: فعال کردن WoL برای کارت شبکه
حالا وقتشه که WoL رو فعال کنیم. دستور زیر رو اجرا کنید:
sudo ethtool -s <نام-کارت-شبکه> wol g
مثال:
sudo ethtool -s enp3s0 wol g
این دستور به کارت شبکه میگه که منتظر دریافت پکتهای WoL باشه و در صورت دریافت، سیستم رو روشن کنه.
گام سوم: اطمینان از پایداری تنظیمات پس از ریاستارت
تنظیماتی که تا اینجا انجام دادیم، بعد از ریاستارت سیستم از بین میرن. برای اینکه مطمئن بشیم WoL همیشه فعاله، باید یک فایل پیکربندی جدید ایجاد کنیم.
۱. با استفاده از یک ویرایشگر متنی (مثلاً nano
)، فایل زیر رو باز کنید:
sudo nano /etc/network/interfaces.d/wol
۲. محتوای زیر رو به این فایل اضافه کنید (اسم کارت شبکهتون رو جایگزین enp3s0
کنید):
auto enp3s0 iface enp3s0 inet dhcp etherwake g
۳. فایل رو ذخیره کنید (در nano با Ctrl + X
، سپس Y
و Enter
).
گام چهارم: روشن کردن WoL از طریق BIOS
بعضی وقتها باید از طریق BIOS هم WoL رو فعال کنید. وارد تنظیمات BIOS سیستمتون بشید و دنبال گزینهای مثل Wake on LAN, Power On by PCI-E, یا Remote Wakeup بگردید. اونو فعال کنید و تغییرات رو ذخیره کنید.
گام پنجم: روشن کردن سرور از راه دور
حالا سیستمتون آمادهی استفاده از WoL هست! برای روشن کردن سرور از راه دور، باید MAC Address
کارت شبکهتون رو بدونید. این رو با دستور زیر پیدا کنید:
ifconfig enp3s0 | grep ether
حالا میتونید از ابزارهایی مثل wakeonlan
استفاده کنید:
wakeonlan <MAC-Address>
این دستور رو میتونید از هر دستگاهی که به شبکه سرور متصل هست (مثل لپتاپ یا حتی گوشی موبایل) اجرا کنید.
اگر میخواید از طریق اینترنت سرور رو روشن کنید، باید Port Forwarding رو برای پورتهای UDP مثل 7 یا 9 روی روتر فعال کنید و مطمئن بشید IP استاتیک یا Dynamic DNS دارید.
حالا هر وقت که نیاز داشتید، میتونید به راحتی سرور لینوکسیتون رو روشن کنید و روی آن بدون هیچ دردسری آموزش مدلتونو شروع کنید!
دیدگاهتان را بنویسید