การจัดการพลังงาน - เซิร์ฟเวอร์ Sleep / Wake up เมื่อเข้าถึง


9

ฉันมี Microserver HP Proliant Microserver ที่ไม่มีหัวขาดติดตั้ง Ubuntu เครื่องนี้ใช้แซมบ้าร่วมกันบนสื่อที่ให้บริการและฉันมักจะ rdp หรือ ssh ลงไป ตอนนี้ปัญหาของฉันคือฉันต้องการให้เครื่องเข้าสู่โหมดสลีป (ดังนั้นสถานะจะถูกบันทึกจาก ram ไปยังฮาร์ดไดรฟ์) และมันจะดูเหมือนว่ามันถูกปิดหลังจากไม่ทำงานเป็นเวลาหนึ่งชั่วโมง

หากมีความพยายามที่จะเข้าถึง samba share ผ่าน LAN ฉันต้องการให้มันปลุก ตอนนี้มาเธอร์บอร์ดรองรับฟังก์ชั่นนี้ทุกคนสามารถชี้นำฉันไปในทิศทางที่ถูกต้องเพื่อให้บรรลุเป้าหมายนี้ได้อย่างง่ายดาย

ขอบคุณ

คำตอบ:


3

การเรียนการสอนที่ดีที่สุดที่ฉันได้พบบนเว็บเป็นวิกิพีเดีย XBMC สำหรับ WOL ในระยะสั้น (ข้อมูลเพิ่มเติมในลิงค์):

  1. คุณต้องเปิดใช้งาน WOL บนเมนบอร์ดของคุณ
  2. ติดตั้ง ethtool: sudo apt-get install ethtool;
  3. ตั้ง Wake-On-LAN ตัวเลือก: sudo ethtool -s eth0 wol g;
  4. เปิดใช้งานเมื่อเริ่มต้นระบบด้วยสคริปต์เริ่มต้น มีสคริปต์เริ่มต้นในลิงค์วิกิ

ยังไม่ทดลอง; ข้อมูลจากลิงค์ wiki


2

นอกเหนือจากโหมดสลีปสิ่งที่คุณกำลังมองหาอยู่นั้นจำศีลในขณะที่คุณต้องการบันทึกสถานะของคุณในฮาร์ดดิสก์ของคุณและปิดเซิร์ฟเวอร์อย่างสมบูรณ์

ดังนั้นเท่าที่มีคนชี้ให้เห็นคำตอบคือ WOL (Wake On Lan) มีบทเรียนมากมายเกี่ยวกับเรื่องนี้ แต่ส่วนใหญ่คุณต้องตั้งค่าต่อไปนี้:

  • เราเตอร์ของคุณต้องข้ามแพ็คเก็ตเวทย์มนตร์ (ตามที่เรียกว่าแพ็คเก็ต WOL) ไปยังเซิร์ฟเวอร์ของคุณดังนั้นคุณต้องทำการส่งต่อพอร์ต โดยปกติจะอยู่ในส่วน LAN พอร์ตเริ่มต้นคือ 7 และ 9
  • เมนบอร์ดของคุณจะต้องฟังพอร์ต LAN เมื่อปิดเครื่อง MB ที่ทันสมัยส่วนใหญ่ให้คุณสมบัตินี้ แต่ถูกปิดใช้งานโดยค่าเริ่มต้น ตรวจสอบ! ในกรณีของฉันเรียกว่า "Power on by Ring on Lan"

เซิร์ฟเวอร์ไม่ต้องการการตั้งค่าเพิ่มเติมนอกเหนือจากการกำหนดค่าการจัดการพลังงานที่เหมาะสมเพื่อให้ระบบหยุดทำงานหลังจากไม่ได้ใช้งานเป็นเวลาหนึ่งชั่วโมง (สามารถทำได้จากระบบ> การดูแลระบบ> การจัดการพลังงาน)

เห็นได้ชัดว่าคุณต้องรอสักครู่หลังจากที่คุณส่งแพ็คเก็ต WOL เนื่องจากระบบของคุณจำเป็นต้องยกเลิกการจำศีลและอาจใช้เวลาสักครู่

โชคดี


2

ฉันตัดสินใจว่าฉันต้องการทางออกเพื่อปลุกเซิร์ฟเวอร์สื่อของฉันโดยอัตโนมัติเมื่อเข้าถึงซึ่งไม่ได้ขึ้นอยู่กับ dd-wrt

ฉันมีราสเบอร์รี่ปี่ดังนั้นฉันจึงใช้มันเพราะมันใช้พลังงานต่ำและฉันก็ไม่รังเกียจที่จะเก็บมันไว้ตลอดเวลาแน่นอนว่ามันสามารถทำงานได้จากเครื่องลินุกซ์

ทางออกสุดท้ายที่ฉันพบสำหรับตัวเองคือการเขียนสคริปต์ทุบตีเล็ก ๆ น้อย ๆ ราสเบอร์รี่ - pi พึ่งพา etherwake และ tcpdump ทั้งสองไม่ได้ติดตั้งโดยค่าเริ่มต้นใน rasbian นอกจากนี้บนเซิร์ฟเวอร์ Wake On Lan จะต้องเปิดใช้งานตามที่ระบุไว้ในโพสต์อื่น ๆ

sudo apt-get install etherwake
sudo apt-get install tcpdump

สคริปต์การปลุกมีดังต่อไปนี้:

nano ~/wol.sh

แล้ว:

#!/bin/bash

pingInterval=60 #time interval, in seconds, between checks that the server is still awake.
target=192.168.x.x  #WOL target ip address
targetMAC=00:11:22:33:44:55  #WOL target MAC

wake () {
    tcpdump -i eth0 -c 1 -p host $target
    etherwake $targetMAC
    #echo WOL sent to $target at $targetMAC
return
}

while sleep $pingInterval; do
varPing=`ping -s 1 -c 2 $target > /dev/null; echo $?`
    if [ $varPing -eq 0 ]; then
        #echo ping success
    else
        #echo ping fail
        wake
    fi
done

แนวคิดหลักก็คือมันรันจาก raspberry-pi ของฉันซึ่งจะปลุกเซิร์ฟเวอร์ถ้าสังเกตเห็น arp ร้องขอเพียงครั้งเดียวสำหรับเซิร์ฟเวอร์ ถ้าเซิร์ฟเวอร์ตื่นแล้วจะไม่ฟังคำขอ arp แต่ส่ง Ping ไม่กี่ครั้งในตอนนี้เพื่อให้แน่ใจว่ามันยังคงทำงานอยู่

ฉันตั้งชื่อไฟล์ wol.sh และทำให้สามารถเรียกใช้งานได้ จากนั้นวางไว้ใน sudo crontab เพื่อเปิด @reboot เป็นรูท นี่สำหรับ tcpdump ซึ่งต้องการการเข้าถึงระดับสูงเพื่อฟัง eth0 และ etherwake

sudo chmod +x /home/pi/wol.sh
sudo crontab -e

เพิ่มลงในด้านล่าง

@reboot sh /home/pi/wol.sh > /dev/null

0

ด้วยการเปิดใช้งาน WoL บนเซิร์ฟเวอร์ของคุณเพื่อปลุกให้ตื่นขึ้นกับทราฟฟิกโปรโตคอลที่เฉพาะเจาะจงคุณจะต้องมีสคริปต์ที่ทำงานบนเราเตอร์ของคุณที่มีกฎแพ็คเก็ตและสามารถส่งแพ็กเก็ตเวทมนต์ WoL เมื่อได้รับการร้องขอ

ตัวอย่างการปลุกเว็บเซิร์ฟเวอร์


0

Wake On Lan เป็นกุญแจสำคัญการ์ดเกือบทุกวันนี้รองรับโหมดทั้งหมด (แต่ไม่ใช่ใน linux :()

ทางออกที่ง่ายที่สุดคือการ์ดที่มีไดรเวอร์ Linux ที่ใช้งานได้ซึ่งรองรับโหมด Wake On Lan: pumbgในethtoolคุณต้องการบางอย่างเช่นโหมด unicast ดังนั้นคอมพิวเตอร์ของคุณจะเริ่มทำงานทันทีที่คุณเข้าถึงที่อยู่เครือข่าย แต่มันก็ยิ่งยากที่จะได้รับรายการการ์ดที่ Linux รองรับซึ่งฉันได้พบคือ Intel Gigabit Netzwerkadapter Pro / 1000 GT PCI

วิธีแก้ปัญหาคือถ้าคุณมีการ์ดที่ไม่รองรับโหมดทั้งหมด: ไดรเวอร์ linux เกือบทั้งหมดรองรับ g โหมด => แพ็คเก็ตเวทย์ ดังนั้นคุณต้องเปิดเซิร์ฟเวอร์ก่อนที่จะใช้งาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.