Quản lý năng lượng - Máy chủ ngủ / thức dậy khi được truy cập


9

Tôi có một Máy chủ Kính hiển vi HP không đầu có cài đặt Ubuntu. Cỗ máy này có cổ phần samba trên nó phục vụ phương tiện truyền thông và tôi thường truy cập hoặc ssh vào nó. Bây giờ vấn đề của tôi là tôi muốn máy chuyển sang chế độ ngủ (vì vậy trạng thái được lưu từ ram vào ổ cứng) và có vẻ như nó sẽ bị tắt sau một giờ không hoạt động.

Nếu có bất kỳ nỗ lực nào để truy cập vào chia sẻ samba qua mạng LAN, tôi muốn nó thức dậy. Bây giờ bo mạch chủ của tôi hỗ trợ chức năng này, bất cứ ai cũng có thể chỉ cho tôi đi đúng hướng để đạt được điều này một cách dễ dàng?

Cảm ơn

Câu trả lời:


3

Hướng dẫn tốt nhất tôi đã tìm thấy trên web là wiki XBMC cho WOL . Tóm lại (thêm thông tin trong liên kết):

  1. Bạn cần kích hoạt WOL trên bo mạch chủ của bạn;
  2. Cài đặt ethtool : sudo apt-get install ethtool;
  3. Đặt tùy chọn Wake-on-LAN : sudo ethtool -s eth0 wol g;
  4. Làm cho nó được kích hoạt khi khởi động hệ thống với một tập lệnh init. Có một tập lệnh init trong liên kết wiki.

Chưa được kiểm tra; thông tin từ liên kết wiki


2

Ngoài chế độ ngủ, những gì bạn đang tìm kiếm là ngủ đông, vì bạn muốn lưu trạng thái trong ổ cứng và tắt hoàn toàn máy chủ.

Vì vậy, như nhiều người đã chỉ ra, câu trả lời là WOL (Wake On Lan). Có rất nhiều hướng dẫn về nó, nhưng chủ yếu bạn cần thiết lập như sau:

  • Bộ định tuyến của bạn phải bỏ qua gói ma thuật (như gói WOL được gọi) đến máy chủ của bạn, vì vậy bạn cần thực hiện chuyển tiếp cổng. Nó thường nằm trong phần LAN. Các cổng mặc định là 7 và 9.
  • Bo mạch chủ của bạn cần được nghe trên cổng LAN khi tắt nguồn. Hầu hết các MB hiện đại cung cấp tính năng này, nhưng bị tắt theo mặc định. Kiểm tra nó! Trong trường hợp của tôi, nó được gọi là "Power on by Ring on Lan".

Máy chủ không cần nhiều cài đặt hơn cấu hình quản lý nguồn phù hợp để tắt hệ thống sau một giờ không hoạt động (có thể được thực hiện từ Hệ thống> Quản trị> Quản lý nguồn).

Rõ ràng, bạn phải đợi một lúc sau khi bạn gửi gói WOL, vì hệ thống của bạn cần khử ngủ đông và có thể mất vài phút.

Chúc may mắn


2

Tôi quyết định tôi muốn một giải pháp đánh thức máy chủ phương tiện của mình một cách tự động khi truy cập không phụ thuộc vào dd-wrt.

Tôi có một raspberry pi vì vậy tôi đã sử dụng nó vì nó có công suất thấp và tôi không ngại giữ nó mọi lúc, tất nhiên nó có thể chạy từ bất kỳ máy linux nào.

Giải pháp cuối cùng tôi tìm thấy cho bản thân mình là viết một kịch bản bash nhỏ. Các phụ thuộc raspberry-pi là etherwake và tcpdump. Cả hai đều không được cài đặt theo mặc định trên rasbian. Ngoài ra trên máy chủ Wake On Lan cần phải được kích hoạt như được đề cập trong các bài viết khác.

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

Kịch bản đánh thức như sau:

nano ~/wol.sh

Sau đó:

#!/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

Ý tưởng chính là nó được chạy từ raspberry-pi của tôi, nó sẽ đánh thức máy chủ nếu nó nhận thấy một yêu cầu arp duy nhất cho máy chủ. Nếu máy chủ còn thức thì nó sẽ không nghe yêu cầu arp mà chỉ gửi một vài ping mỗi lần để đảm bảo nó vẫn còn thức.

Tôi đặt tên cho tệp wol.sh và làm cho nó có thể thực thi được. Sau đó đặt nó vào sudo crontab để khởi chạy @reboot với quyền root. Điều này là cho tcpdump cần truy cập nâng cao để nghe eth0 và etherwake.

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

thêm cái này vào dưới cùng

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

0

Với WoL được kích hoạt trên máy chủ của bạn để đánh thức lưu lượng giao thức cụ thể, bạn sẽ cần một cái gì đó giống như một tập lệnh chạy trên bộ định tuyến có quy tắc gói và có thể gửi gói ma thuật WoL khi nhận được yêu cầu.

Ví dụ đánh thức máy chủ web


0

Wake On Lan là chìa khóa, gần như tất cả các thẻ ngày nay đều hỗ trợ tất cả các chế độ (nhưng không phải trong linux :().

Giải pháp dễ nhất là một thẻ có trình điều khiển Linux hoạt động hỗ trợ các chế độ Wake On Lan: pumbgtrong ethtool, bạn muốn một cái gì đó giống như chế độ unicast. Vì vậy, máy tính của bạn bắt đầu ngay khi bạn truy cập địa chỉ mạng của nó. Nhưng thậm chí còn khó hơn để có được một danh sách các thẻ được Linux hỗ trợ, một cái tôi đã tìm thấy là Intel Gigabit Netzwerkad CHƯƠNG Pro / 1000 GT PCI.

Một cách giải quyết là, nếu bạn có một thẻ không hỗ trợ tất cả các chế độ: Gần như tất cả trình điều khiển linux đều hỗ trợ chế độ g => gói ma thuật. Vì vậy, bạn phải bật máy chủ của mình trước khi sử dụng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.