Một máy chủ, Hai APC UPS trên các bộ nguồn dự phòng: Làm thế nào để kích hoạt tắt máy?


10

Tôi có một máy chủ được lắp đặt và nguồn cung cấp năng lượng dự phòng của nó được cắm vào hai APC Smart-UPS 3000 XLM. Mỗi UPS được kết nối với hai nguồn điện chính khác nhau.

Hai phiên bản apcupsd đang chạy, mỗi phiên bản được kết nối với UPS riêng. Cả hai đều có thể phát hiện khi một UPS sử dụng Pin và mỗi UPS sau đó có thể kích hoạt tắt máy chủ.

Câu hỏi là: Làm thế nào KHÔNG tắt máy nếu CHỈ MỘT UPS hết pin?

Lưu ý: Smart-UPS 3000 XLM có Chức năng "Power Sync" có thể kết nối với thiết bị ngang hàng và phát hiện trạng thái của nó. Nhưng khi tôi rút phích cắm ra khỏi một trong số chúng, lệnh Tắt máy vẫn được gửi đi. Tôi đang suy nghĩ về việc sửa đổi các tập lệnh tắt máy để kiểm tra với "apcaccess" nếu các phần mềm khác không hoạt động. Bất kỳ kinh nghiệm về điều này sẽ được đánh giá cao!

Câu trả lời:


13

Hiện tại khi một trong hai UPS chết, sự kiện doshutdown được kích hoạt và thực thi tập lệnh mặc định thông qua apccontrol . Tập lệnh doshutdown bỏ qua UPS thứ hai, vì chúng không được kết nối với sự kiện và tiến hành bình thường khi tắt máy.

Để các sự kiện doshutdown được kết nối phần nào, hai trường hợp của apcupsd cần một tệp cấu hình được tùy chỉnh cụ thể. Sự khác biệt sẽ nằm trong thư mục mà các kịch bản sự kiện phải được thực thi.

Thuộc tính chính của lần đầu tiên, trong /etc/apcupsd/apcupsd.ups0.conf

SCRIPTDIR /etc/apcupsd/ups0
UPSNAME ups0
DEVICE /dev/ups0
PWRFAILDIR /etc/apcupsd/ups0
NOLOGINDIR /etc/apcupsd/ups0
NISPORT 3551
EVENTSFILE /var/log/apcupsd.0.events

Và cho up1, trong /etc/apcupsd/apcupsd.ups1.conf

SCRIPTDIR /etc/apcupsd/ups1
UPSNAME ups1
DEVICE /dev/ups1
PWRFAILDIR /etc/apcupsd/ups1
NOLOGINDIR /etc/apcupsd/ups1
NISPORT 3552
EVENTSFILE /var/log/apcupsd.1.events

Mỗi scriptdir sẽ nhận được một bản sao của các tập lệnh mặc định.
Chúng tôi muốn tùy chỉnh tập lệnh doshutdown , sẽ không trực tiếp tắt máy, nhưng phải kiểm tra xem UPS khác có còn bật hay đang ở chế độ tắt máy.

Ở đầu tập lệnh doshutdown , chúng ta có thể thêm một cái gì đó như

cho up0

if [ ! -f /tmp/ups1.is.down ]
then
  touch /tmp/ups0.is.down
  exit 99
fi

cho up1

if [ ! -f /tmp/ups0.is.down ]
then
  touch /tmp/ups1.is.down
  exit 99
fi

trạng thái 99 có một ý nghĩa đặc biệt, nói với apccontrol dừng hành động đang diễn ra. Năm dòng kiểm tra xem tập tin UPS khác đã được tạo chưa; nếu không , tập tin xuống được tạo cho các lần tải xuống và thoát. Nếu , có nghĩa là UPS khác bị hỏng, thì cái này cũng bị hỏng, do đó tập lệnh sẽ tiếp tục và tắt máy.

Các tập tin /tmp/usp[01].is.downcho biết nếu hiện tại up [01] không hoạt động.

Quan trọng: tập lệnh init.d của apcupsd sẽ xóa các tệp này, nếu chúng đã được tạo trong phiên trước:

rm -f /tmp/usp[01].is.down

Cuối cùng, các thư mục được tạo ở trên, / etc / apcupsd / up [01] phải được cấp quyền truy cập cho người dùng apcupsd (hoặc bất kỳ người dùng nào có liên quan chạy các phiên bản).

chown -R apcupsd /etc/apcupsd/ups[01]

Xin vui lòng xem tài liệu chi tiết .

chỉnh sửa sửa /tmp/ups[01].is.downtên, .isđã mất tích.


1
và người dùng thông thường có thể dừng máy chủ của bạn bằng touch /tmp/ups1.is.down; touch /tmp/ups0.is.down: D Vì vậy, tốt hơn là sử dụng / var / run chẳng hạn. Btw. nếu ai đó cắt và dán giải pháp, rm -f /tmp/usp[01[.is.down là một lỗi đánh máy. Và nhân tiện, bạn nên xóa /tmp/ups[01[.is.down khỏi trường hợp vi phạm của apccontrol, khi điện trở lại.
Harka Gyozo

1
Tôi sẽ đề nghị chạm vào tệp is.down của riêng bạn TRƯỚC KHI kiểm tra cái khác - theo cách hiện tại, tôi nghĩ rằng có một cửa sổ điều kiện cuộc đua nhỏ nếu cả hai cùng xuất hiện cùng một lúc.
Michael Kohne

4

Nhìn vào NUT. Nó xử lý tốt điều này. Xác định số lượng nguồn cung cấp từ mỗi UPS và số lượng nguồn điện cần thiết. Tắt máy sẽ không được kích hoạt miễn là có đủ nguồn cung cấp điện không có trên UPS.

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.