Skip to content

Thích Thủ Thuật

  • Sample Page

Thích Thủ Thuật

  • Home » 
  • Thủ Thuật Máy Tính » 
  • Bảo Vệ Dữ Liệu Máy Chủ Home Lab: Hướng Dẫn Chi Tiết Cài Đặt NUT Trên Proxmox VE

Bảo Vệ Dữ Liệu Máy Chủ Home Lab: Hướng Dẫn Chi Tiết Cài Đặt NUT Trên Proxmox VE

By Administrator Tháng 8 18, 2025 0
Giao diện Home Assistant hiển thị tích hợp và giám sát bộ lưu điện APC qua máy chủ NUT
Table of Contents

Một trong những rủi ro thường trực đối với các hệ thống máy chủ cá nhân (home lab) là làm thế nào để tắt máy an toàn khi xảy ra sự cố mất điện đột ngột. Mặc dù việc trang bị Bộ lưu điện (UPS) là giải pháp hiệu quả để đảm bảo dữ liệu không bị mất mát khi nguồn điện chính bị ngắt, hầu hết các mẫu UPS chỉ có một cổng kết nối USB để gửi tín hiệu tắt máy. Điều này gây khó khăn lớn khi bạn có nhiều thiết bị được cấp nguồn bởi cùng một UPS trong home lab.

Đặc biệt, nếu bạn đang sử dụng Proxmox VE hoặc các nền tảng ảo hóa khác, bạn có thể cần tắt đồng thời nhiều máy ảo (VM) cùng lúc để tránh hỏng hóc dữ liệu. Đây là vấn đề mà gần như mọi người dùng home lab đều phải đối mặt, và may mắn thay, nó đã được giải quyết từ lâu bằng cách sử dụng một công cụ giám sát tín hiệu tắt máy từ UPS và phát đi tín hiệu đó đến các máy khách được cấp nguồn. Một trong những công cụ mạnh mẽ và đáng tin cậy nhất cho mục đích này là NUT, viết tắt của Network UPS Tools. Đối với hệ thống home lab dựa trên Proxmox của tôi, NUT chính là “vị cứu tinh”.

NUT là gì và tại sao bạn nên sử dụng nó?

Đảm bảo các thiết bị của bạn được tắt an toàn

Môi trường home lab không có được nguồn điện phụ trợ và dự phòng như các trung tâm dữ liệu chuyên nghiệp. Do đó, việc sở hữu một UPS chạy bằng pin là điều cần thiết để tránh mất dữ liệu khi nguồn điện gia đình gặp sự cố. Nếu bạn chỉ có một máy chủ hoặc một máy chủ ảo hóa, một cổng USB duy nhất mà hầu hết các mẫu UPS sử dụng để báo hiệu là đủ. Tuy nhiên, nếu bạn có nhiều máy chủ ảo hóa hoặc các thiết bị khác, bạn cần một phương pháp để gửi tín hiệu tắt máy đến tất cả các máy chủ đó.

Đó chính là lúc Network UPS Tools (NUT) phát huy tác dụng. NUT hoạt động theo mô hình máy chủ-máy khách (server-client). Máy chủ NUT được cài đặt trên máy tính kết nối trực tiếp với UPS qua cổng USB. Trong khi đó, các máy khách được cài đặt trên tất cả các thiết bị khác được cấp nguồn bởi UPS (bao gồm cả máy chủ đang chạy NUT). Điều này có nghĩa là khi điện áp giảm và UPS bắt đầu hoạt động, đến khi pin của UPS gần cạn, nó sẽ gửi lệnh tắt máy qua USB. Máy chủ NUT sẽ nhận lệnh đó và truyền tín hiệu đến các máy khách, đảm bảo tất cả các thiết bị đều được tắt an toàn trước khi UPS hết pin, từ đó bảo vệ dữ liệu của bạn.

Mặc dù việc thiết lập NUT có thể không phải là điều dễ dàng nhất, nhưng quá trình này sẽ giúp bạn làm quen với việc chỉnh sửa các tệp cấu hình, và kết quả cuối cùng chắc chắn sẽ làm bạn hài lòng. Ngoài ra, NUT còn có tiện ích bổ trợ cho Home Assistant để giám sát, đây là một điểm cộng lớn cho bất kỳ công cụ nào trong môi trường nhà thông minh.

Bắt đầu thiết lập NUT trên máy chủ Proxmox của bạn

Các sự cố mất điện sẽ không còn khiến tôi lo lắng về dữ liệu

Do quyết định cài đặt máy chủ NUT trên Proxmox Host, trước tiên chúng ta cần xác định cổng USB mà UPS đang kết nối. Để làm điều này, chúng ta sẽ truy cập vào nút PVE (Proxmox Virtual Environment) và chuyển đến tab Shell, nơi chúng ta có thể sử dụng giao diện dòng lệnh (CLI) để chạy lệnh lsusb. Sau khi xác định được chi tiết [bus]:[device] của UPS (ví dụ: đối với tôi là 3:2), chúng ta sẽ chạy lệnh lsusb -v -s 3:2 để tìm hiểu thông tin chi tiết về UPS.

Bây giờ, tiến hành cài đặt NUT bằng lệnh sau:

apt install nut -y

Sau khi quá trình cài đặt hoàn tất, chúng ta cần chạy trình quét NUT để lấy các thông tin cần thiết cho các tệp cấu hình sắp tới:

nut-scanner -U

Thời gian để cấu hình các tệp tin

Chúng ta sẽ cần chỉnh sửa bảy tệp để mọi thứ hoạt động trơn tru, cùng với một vài lệnh cuối cùng để thay đổi phần trăm pin kích hoạt quá trình tắt máy.

  1. /etc/nut/nut.conf:
    Đầu tiên, hãy tạo một bản sao dự phòng:

    cp /etc/nut/nut.conf /etc/nut/nut.example.conf

    Sau đó, mở tệp bằng bất kỳ trình soạn thảo văn bản nào bạn thích:

    nano /etc/nut/nut.conf

    Bạn sẽ thấy dòng MODE=none là dòng duy nhất không bị chú thích. Hãy thay đổi thành MODE=netserver, sau đó lưu và thoát.

  2. /etc/nut/ups.conf:
    Tương tự, tạo một bản sao lưu phòng trường hợp có lỗi:

    cp /etc/nut/ups.conf /etc/nut/ups.example.conf

    Mở tệp để chỉnh sửa:

    nano /etc/nut/ups.conf

    Xóa mọi thứ trong tệp và thêm nội dung sau:

    pollinterval = 15
    maxretry = 3
    offdelay = 120
    ondelay = 240

    Và thêm kết quả từ lệnh nut-scanner của bạn (ví dụ dưới đây là của UPS APC):

    [apc]
    # APC Back-UPS BGM1500
    driver = usbhid-ups
    port = auto
    desc = "APC Back-UPS BGM1500"
    vendorid = 051D
    productid = 0002
    serial = xxxxxxxxxxxx

    Lưu tệp, sau đó kiểm tra để đảm bảo không có lỗi và nó hiển thị một subdriver:

    upsdrvctl start
  3. /etc/nut/upsd.conf:
    Hãy sao lưu tệp trước khi chỉnh sửa:

    cp /etc/nut/upsd.conf /etc/nut/upsd.example.conf

    Sau đó, chỉnh sửa:

    nano /etc/nut/upsd.conf

    Xóa nội dung và thay thế bằng:

    LISTEN 0.0.0.0 3493
    LISTEN :: 3493

    Điều này sẽ khiến máy chủ NUT lắng nghe trên tất cả các mạng.

  4. /etc/nut/upsd.users:
    Sao lưu tệp cấu hình như trước:

    cp /etc/nut/upsd.users /etc/nut/upsd.example.users

    Mở bằng trình soạn thảo yêu thích của bạn:

    nano /etc/nut/upsd.users

    Chỉnh sửa và đặt mật khẩu riêng của bạn:

    [upsadmin]
    # Người dùng quản trị
    password = ********
    # Cho phép thay đổi giá trị của một số biến trong UPS.
    actions = SET
    # Cho phép đặt cờ "Tắt máy cưỡng bức" trong UPS.
    actions = FSD
    # Cho phép tất cả các lệnh tức thì
    instcmds = ALL
    upsmon master
    
    [upsuser]
    # Người dùng thông thường
    password = ********
    upsmon slave
  5. /etc/nut/upsmon.conf:
    Sao lưu tệp:

    cp /etc/nut/upsmon.conf /etc/nut/upsmon.example.conf

    Sau đó chỉnh sửa bằng bất kỳ trình soạn thảo nào và thay thế nội dung (bao gồm mật khẩu quản trị của bạn):

    RUN_AS_USER root
    MONITOR apc@localhost 1 upsadmin ******* master
    
    MINSUPPLIES 1
    SHUTDOWNCMD "/sbin/shutdown -h"
    NOTIFYCMD /usr/sbin/upssched
    POLLFREQ 4
    POLLFREQALERT 2
    HOSTSYNC 15
    DEADTIME 24
    MAXAGE 24
    POWERDOWNFLAG /etc/killpower
    
    NOTIFYMSG ONLINE "UPS %s on line power"
    NOTIFYMSG ONBATT "UPS %s on battery"
    NOTIFYMSG LOWBATT "UPS %s battery is low"
    NOTIFYMSG FSD "UPS %s: forced shutdown in progress"
    NOTIFYMSG COMMOK "Communications with UPS %s established"
    NOTIFYMSG COMMBAD "Communications with UPS %s lost"
    NOTIFYMSG SHUTDOWN "Auto logout and shutdown proceeding"
    NOTIFYMSG REPLBATT "UPS %s battery needs to be replaced"
    NOTIFYMSG NOCOMM "UPS %s is unavailable"
    NOTIFYMSG NOPARENT "upsmon parent process died - shutdown impossible"
    
    NOTIFYFLAG ONLINE SYSLOG+WALL+EXEC
    NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
    NOTIFYFLAG LOWBATT SYSLOG+WALL+EXEC
    NOTIFYFLAG FSD SYSLOG+WALL+EXEC
    NOTIFYFLAG COMMOK SYSLOG+WALL+EXEC
    NOTIFYFLAG COMMBAD SYSLOG+WALL+EXEC
    NOTIFYFLAG SHUTDOWN SYSLOG+WALL+EXEC
    NOTIFYFLAG REPLBATT SYSLOG+WALL
    NOTIFYFLAG NOCOMM SYSLOG+WALL+EXEC
    NOTIFYFLAG NOPARENT SYSLOG+WALL
    
    RBWARNTIME 43200
    NOCOMMWARNTIME 600
    
    FINALDELAY 5
  6. /etc/nut/upssched.conf:
    Chúng ta đang gần hoàn tất. Tạo một bản sao lưu của upssched.conf:

    cp /etc/nut/upssched.conf /etc/nut/upssched.example.conf

    Mở tệp và thay thế nội dung bằng:

    CMDSCRIPT /etc/nut/upssched-cmd
    PIPEFN /etc/nut/upssched.pipe
    LOCKFN /etc/nut/upssched.lock
    
    AT ONBATT * START-TIMER onbatt 30
    AT ONLINE * CANCEL-TIMER onbatt online
    AT LOWBATT * EXECUTE onbatt
    AT COMMBAD * START-TIMER commbad 30
    AT COMMOK * CANCEL-TIMER commbad commok
    AT NOCOMM * EXECUTE commbad
    AT SHUTDOWN * EXECUTE powerdown
    AT SHUTDOWN * EXECUTE powerdown
  7. /etc/nut/upssched-cmd:
    Tệp này không phải lúc nào cũng tồn tại, vì vậy bạn có thể tạo mới ngay lập tức:

    nano /etc/nut/upssched-cmd

    Và viết một tệp mới với nội dung sau:

    #!/bin/sh
    case $1 in
    onbatt)
        logger -t upssched-cmd "UPS running on battery"
        ;;
    shutdowncritical)
        logger -t upssched-cmd "UPS on battery critical, forced shutdown"
        /usr/sbin/upsmon -c fsd
        ;;
    upsgone)
        logger -t upssched-cmd "UPS has been gone too long, can't reach"
        ;;
    *)
        logger -t upssched-cmd "Unrecognized command: $1"
        ;;
    esac

    Lưu tệp, sau đó cấp quyền thực thi:

    chmod +x /etc/nut/upssched-cmd

Đó là kết thúc các giai đoạn cấu hình. Bây giờ, chúng ta có thể khởi động lại Proxmox Host hoặc sử dụng CLI để khởi động lại các dịch vụ sau khi chúng có các tệp cấu hình chính xác:

service nut-server restart
service nut-client restart
systemctl restart nut-monitor
upsdrvctl stop
upsdrvctl start

Bạn có thể kiểm tra mọi thứ bằng lệnh sau. Lệnh này sẽ hiển thị danh sách các mục đang được giám sát nếu mọi thứ đã được thiết lập đúng cách:

upsc apc@localhost

Một điều cuối cùng

Các cài đặt mặc định cho các mẫu UPS của APC thường quá thấp so với mức độ thoải mái của tôi. Vì vậy, chúng ta sẽ điều chỉnh để các lệnh tắt máy xảy ra sớm hơn nhiều. Sử dụng hai lệnh tiếp theo trong Proxmox VE Shell, và sử dụng upsadmin cùng với password mà chúng ta đã chỉ định trước đó trong /etc/nut/upsd.users:

upsrw -s battery.runtime.low=600 apc@localhost
upsrw -s battery.charge.low=50 apc@localhost

Thời gian để giám sát NUT của chúng ta

Giao diện Home Assistant hiển thị tích hợp và giám sát bộ lưu điện APC qua máy chủ NUTGiao diện Home Assistant hiển thị tích hợp và giám sát bộ lưu điện APC qua máy chủ NUT

Home Assistant có một tích hợp NUT mà bạn có thể thêm từ Settings > Devices & Services > Add Integration. Để kết nối để giám sát, bạn sẽ cần thêm địa chỉ IP của máy chủ NUT, cùng với tên người dùng và mật khẩu người dùng thông thường mà bạn đã thiết lập trước đó. Điều này sẽ tự động kéo dữ liệu về bảng điều khiển chính của bạn, hiển thị chính xác những gì máy chủ UPS của bạn đang làm.

Tóm lại: Việc triển khai NUT đã giúp tôi an tâm hơn về dữ liệu Home Lab

Với việc NUT đã giám sát các máy chủ Proxmox của tôi, tôi có thể giảm bớt lo lắng về việc mất dữ liệu khi có sự cố mất điện. Nếu tôi thêm nhiều máy chủ hơn hoặc cần các thiết bị khác giám sát máy chủ NUT để tắt máy an toàn, tôi có thể thêm chúng như các thiết bị máy khách để chúng cũng theo dõi tín hiệu tắt máy và tắt trước khi pin UPS cạn kiệt. Và vâng, tôi biết rằng các mẫu UPS đắt tiền hơn có thể gửi tín hiệu tắt máy đến nhiều máy khách, nhưng phương pháp này không tốn kém một chút nào và mang lại hiệu quả vượt trội.

Hãy chia sẻ ý kiến của bạn về giải pháp NUT cho home lab hoặc bất kỳ phương pháp bảo vệ dữ liệu nào khác mà bạn đang sử dụng!

Tài liệu tham khảo

  • You don’t need TrueNAS or Proxmox to make a home server: Ubuntu
  • Best UPS for your home lab, gaming PC, and more
  • I’m addicted to installing Proxmox on old devices, and you should be too
  • Home Assistant NUT integration documentation
  • NUT Client Configuration Example
Share
facebookShare on FacebooktwitterShare on TwitterpinterestShare on Pinterest
linkedinShare on LinkedinvkShare on VkredditShare on ReddittumblrShare on TumblrviadeoShare on ViadeobufferShare on BufferpocketShare on PocketwhatsappShare on WhatsappviberShare on ViberemailShare on EmailskypeShare on SkypediggShare on DiggmyspaceShare on MyspacebloggerShare on Blogger YahooMailShare on Yahoo mailtelegramShare on TelegramMessengerShare on Facebook Messenger gmailShare on GmailamazonShare on AmazonSMSShare on SMS
Post navigation
Previous post

Tự Động Hóa Dọn Dẹp Hộp Thư Đến Gmail Bằng n8n: Hướng Dẫn Chi Tiết Để Inbox Luôn Sạch Bong

Next post

10 Mod Skyrim Hay Nhất Nâng Tầm Trải Nghiệm Thợ Săn Rồng Của Bạn

Administrator

Related Posts

Categories Thủ Thuật Máy Tính Bảo Vệ Dữ Liệu Máy Chủ Home Lab: Hướng Dẫn Chi Tiết Cài Đặt NUT Trên Proxmox VE

Ảo Hóa Lồng Nhau (Nested Virtualization): Giải Pháp Đột Phá Cho Home Lab và DevOps

Categories Thủ Thuật Máy Tính Bảo Vệ Dữ Liệu Máy Chủ Home Lab: Hướng Dẫn Chi Tiết Cài Đặt NUT Trên Proxmox VE

Tối Ưu Hóa Proxmox VE: Khám Phá Sức Mạnh Của Các Script Hỗ Trợ Từ Cộng Đồng

Categories Thủ Thuật Máy Tính Bảo Vệ Dữ Liệu Máy Chủ Home Lab: Hướng Dẫn Chi Tiết Cài Đặt NUT Trên Proxmox VE

Đừng Lãng Phí Tiền: 5 Tính Năng Bo Mạch Chủ Cao Cấp Bạn Không Nên Mua

Leave a Comment Hủy

Recent Posts

  • Ảo Hóa Lồng Nhau (Nested Virtualization): Giải Pháp Đột Phá Cho Home Lab và DevOps
  • Nintendo Switch 2: Hé Lộ Thông Tin Hạn Chế Lưu Dữ Liệu Đám Mây và Cập Nhật Giá Bán
  • Tối Ưu Hóa Proxmox VE: Khám Phá Sức Mạnh Của Các Script Hỗ Trợ Từ Cộng Đồng
  • Keychron M3 Mini 4K Metal Edition: Chuột Gaming Không Dây Đáng Giá Từng Xu!
  • Đừng Lãng Phí Tiền: 5 Tính Năng Bo Mạch Chủ Cao Cấp Bạn Không Nên Mua

Recent Comments

Không có bình luận nào để hiển thị.
Copyright © 2025 Thích Thủ Thuật - Powered by Nevothemes.
Offcanvas
Offcanvas

  • Lost your password ?