Phát hiện khi máy chủ đang chạy bằng pin UPS


24

Tôi có một máy chủ gia đình (HP Proliant ML 310 G4) mà tôi đã mua từ chủ nhân của mình cách đây một tháng. Máy chủ chạy Debian Linux và tôi sử dụng nó cho mọi thứ. Tôi có thể thoát khỏi việc này vì nhu cầu của tôi không đòi hỏi cao nên máy chủ hiếm khi bị tải nặng tại bất kỳ thời điểm nào. Máy chủ này có mảng RAID1 2 TB (với một phụ tùng nóng) được quản lý bởi mdadm mà tôi sử dụng để chia sẻ tệp qua mạng của mình qua Samba. Tôi đang chạy HĐH một ổ cứng nhỏ hơn không phải là một phần của mảng.

Tôi có máy chủ được cấp nguồn thông qua một UPS nhỏ 255 watt vì tôi cần nó để chịu được các dao động điện nhỏ mà không bị hỏng. Điều này rất quan trọng vì việc tắt ô uế đột ngột (do mất điện hoặc mất điện) có thể làm hỏng mảng RAID, điều đã xảy ra trong một lần.

Trong trường hợp mất điện, tôi ước tính UPS chỉ có 10 - 15 phút trong đó. Có thể có nhiều hơn nhưng tôi không muốn tự động cho rằng có. Điều này là đủ để vượt qua mất điện kéo dài một vài phút hoặc ít hơn. Tuy nhiên, nếu mất điện trong vài giờ, tôi cần máy chủ tự động tắt tự động trước khi mất điện. Điều này hy vọng sẽ giữ cho tính toàn vẹn của RAID không bị ảnh hưởng trong những tình huống đó.

Loại điều này rất dễ dàng trên máy tính xách tay vì nó có các cảm biến tích hợp để xác định khi nào nó chạy bằng pin, nhưng máy chủ này thì không (theo như tôi biết). Tôi có một thiết lập mạng bất thường trong đó modem DSL của tôi tách biệt với bộ định tuyến của tôi. Bộ định tuyến cũng có trên UPS, cho phép tôi SSH qua máy tính xách tay của mình và tắt máy chủ trong trường hợp mất điện. Thật không may, điều này chỉ hoạt động nếu tôi có mặt tại đó để làm điều đó. Tôi cần một giải pháp luôn hoạt động cho dù tôi có ở đó để can thiệp hay không.

Vì modem DSL của tôi không có trên UPS, nên nó sẽ bị hỏng với mọi thứ khác nếu mất điện. Tôi cố tình thiết lập nó như vậy bởi vì tôi có ý tưởng về cách giải quyết vấn đề này: Tôi đã nghĩ đến việc viết một kịch bản sẽ ping google.com hoặc một số trang web có lưu lượng truy cập cao / có tính sẵn sàng cao khác. Nếu ping hoàn thành thành công, máy chủ sẽ tiếp tục chạy. Nếu ping không thành công (vì modem bị tắt), tập lệnh sẽ nghĩ tắt nguồn và sẽ báo cho máy chủ tắt. Tôi sẽ thêm tập lệnh vào Cron và để nó chạy cứ sau 5 phút. Điều đó hy vọng sẽ cung cấp cho máy chủ đủ thời gian để tắt trước khi UPS hết điện.

Trước khi tôi gặp rắc rối khi viết kịch bản, tôi muốn biết liệu có cách nào tốt hơn để làm những gì tôi cần không. Cảm ơn trước sự giúp đỡ nào.


15
Bạn không nên ping một trang web bên ngoài, nhưng ping IP của modem DSL của bạn.
LawrenceC

1
@ultrasawblade ... nghe giống như một câu trả lời, có mùi giống như một câu trả lời ... đó là một câu trả lời!
Pureferret

1
Như @ultrasawblade đề cập, KHÔNG BAO GIỜ dựa vào các nguồn bên ngoài để thiết lập nội bộ. Ví dụ: nếu internet của bạn đột nhiên bị lỗi, bạn sẽ mất kết nối và máy chủ của bạn bị sập. Nếu Google.com quyết định thay đổi tên của họ vì bất kỳ lý do gì, máy chủ của bạn sẽ ngừng hoạt động. Nếu bạn ping chúng bằng IP và cụm máy chủ cụ thể đó bị hỏng, máy chủ của bạn cũng sẽ bị hỏng. đây là trường hợp với bất kỳ nguồn bên ngoài. Trừ khi bạn chắc chắn 100% rằng máy chủ của bạn PHẢI CHỈ bật khi máy chủ khác có sẵn, bạn không muốn dựa vào máy chủ khác vì bất kỳ lý do gì.
Nzall

Không có câu trả lời nào trong số này làm việc cho bạn?
Dave

Câu trả lời:


34

Có một cách cũ nhưng đã được chứng minh: Sử dụng modem analog cũ. Đây là cách

  • Kết nối modem với máy chủ qua cổng nối tiếp (ví dụ: ttyS0)
  • Cắm nguồn điện của modem không vào UPS mà trực tiếp vào nguồn điện
  • KHÔNG cắm bất cứ thứ gì vào đường dây điện thoại của modem

Bây giờ hãy thăm dò modem cứ sau vài giây gửi ATZ[Enter]và mong đợiOK[Enter] - nếu modem không trả lời, bạn có thể cho rằng nó không có nguồn, nghĩa là UPS đang hết pin.

Chỉnh sửa

Điểm chính là, nếu kết nối Internet của bạn bị rớt vì một số lý do khác, máy chủ sẽ không tắt, như vậy.

Chỉnh sửa 2

Từ các ý kiến:

  • Tất nhiên, bạn nên giữ một số trạng thái từ kiểm tra này sang kiểm tra tiếp theo, chỉ tắt sau khi kiểm tra N thất bại. Tôi đã không đề cập đến điều này, vì nó đúng với tất cả các kiểm tra có thể, không chỉ modem
  • Sự khác biệt giữa việc sử dụng modem và sử dụng bất cứ điều gì liên quan đến mạng là, việc mất kết nối mạng tạm thời sẽ xảy ra: Bạn không muốn bị làm phiền với "Đăng nhập bị vô hiệu hóa, máy chủ trên USV", nếu bạn khởi động lại một công tắc hoặc cấu hình lại một Vlan. Theo kinh nghiệm của tôi, dòng nối tiếp là mạnh mẽ như nó được.

1
Câu trả lời tốt, nhưng tôi khuyên bạn nên thêm một sự an toàn khi nó kiểm tra một vài lần trước khi nó thực sự tắt. (vì vậy bạn sẽ không phải tắt máy trong khoảng thời gian 5 phút màu nâu) Và tôi nghĩ rằng việc vung một chiếc swich cũng sẽ đủ (chỉ là không có gì ngoài mạng của bạn).
HTDutchy

@HTDutchy Xem chỉnh sửa của tôi!
Eugen Rieck

Tôi biết, nhưng vì anh ta có thể không có kết nối nối tiếp hoặc một modem cũ treo xung quanh phần cứng trong nhà sẽ là điều tốt nhất tiếp theo. và nếu công tắc sẽ ngừng hoạt động thì máy chủ vẫn xuất hiện.
HTDutchy

22

Một up thường đi kèm với một đầu nối USB hoặc COM1. Khi bạn kết nối thiết bị này với máy chủ của mình, bạn có thể bắt đầu theo dõi UPS.

Trong môi trường windows, không cần cài đặt phần mềm, các tin nhắn đã được đăng ký và nó sẽ tắt máy chủ cho bạn. Tôi không biết làm thế nào điều này hoạt động trên linux, nhưng tôi cá là có một số gói phần mềm có sẵn để giao tiếp với UPS của bạn.


Tôi vừa kiểm tra UPS của mình và thật không may là nó không có thứ gì như vậy. Nó chỉ có 8 phích cắm điện (4 pin và 4 không có) và giắc cắm đầu vào và đầu ra cho dây điện thoại.
Will Kraft

27
Sau đó nhận được một UPS có thể giao tiếp với máy tính.
Ramhound

@Ramhound Đó có thể không phải là một lựa chọn, UPS có thể khá đắt và có nhiều cách rẻ hơn.
Vality

Tôi không đồng ý có nhiều cách khác để phát hiện bạn đang chạy bằng pin mà bạn thậm chí không thể phát hiện ở mức
Ramhound

1

Nếu bạn đang sử dụng Debian, hãy thử xem xét bằng NUT (công cụ UPS mạng). Tôi sử dụng NUT để thực hiện chính xác những gì bạn mô tả trên NAS Synology của mình (chạy busybox) và trên máy chủ web gia đình chạy Ubuntu 12.04 LTS. Tôi đã cắm NAS qua USB vào UPS vì lý do tương tự như bạn, có khả năng mất tất cả các tệp của tôi.

Tôi tin rằng daemon nut truy vấn UPS mỗi giây để xác định trạng thái. Khi UPS ở chế độ ắc quy, nó có thể được cấu hình để tắt máy một cách duyên dáng hoặc đợi X phút trước, v.v. Bạn cũng có thể có nhiều máy khách được thiết lập để kết nối với daemon nut mà bạn chạy trên máy chủ của mình. Vì vậy, máy chủ của bạn có thể yêu cầu nhiều PC trên mạng của bạn cũng tắt máy một cách duyên dáng. Để thực hiện tắt máy, bạn có thể cung cấp tập lệnh của riêng mình cho các dịch vụ tắt theo một cách cụ thể hoặc bạn có thể sử dụng tập lệnh tích hợp chỉ gọi tắt máy -h, nếu tôi nhớ lại chính xác.

Trang web của NUT

Có những trang tốt hơn để tìm thông tin, nhưng tôi không thể nhớ chúng ngay bây giờ. Cấu hình có thể là một nỗi đau, nhưng nếu bạn đang nói về khả năng mất RAID, hãy kiểm tra nó! Tùy thuộc vào nhu cầu của bạn, bạn có thể không cần toàn bộ bộ NUT, bạn có thể có được chỉ bằng phần UPSMON. Tôi nghĩ bạn có thể có được điều này trong gói "nut-client" của Ubuntu.

Ngoài ra còn có một ứng dụng khách NUT cho Windows, nhưng trên Windows, bạn có thể sử dụng một cái gì đó như PowerChute hoặc một cái gì đó tương tự.


Như đã nói trước đây, có vẻ như UPS của OP không có cách nào để giao tiếp với máy tính, không có USB cũng như mạ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.