Hướng dẫn phần cứng cho người mới bắt đầu với Home Lab
(linuxblog.io)- Home Lab là môi trường sandbox để thử nghiệm an toàn các cấu hình mạng và máy chủ tại nhà, cho phép xử lý từ sao lưu từ xa, giám sát đến kiểm thử thiết bị mà không tạo gánh nặng lên môi trường production
- Trước khi lắp đặt, nên kiểm tra trước các điều kiện vật lý như nhiệt độ, thông gió, nguồn điện, tiếng ồn, bụi, đường đi cáp, rồi vẽ sơ đồ mạng phù hợp với cấu trúc ngôi nhà
- Việc chọn rack và tủ phụ thuộc vào độ sâu thiết bị và lượng nhiệt tỏa ra; nếu chọn thiết bị mạng nông và thiết bị máy chủ sâu theo cùng một tiêu chí, khả năng làm mát và tiếp cận có thể bị ảnh hưởng
- Không cần mua cùng lúc modem ISP, router/switch, UPS, patch panel, cáp và máy chủ; thực tế hơn là bắt đầu từ cấu hình nhỏ rồi điều chỉnh theo điện năng và dư địa mở rộng
- Cấu hình bắt đầu từ rack 12U năm 2020 đã mở rộng lên uplink 10G và LAN 2.5G sau 6 năm, nhưng cốt lõi nằm ở cách bố trí có thể vận hành và quản lý điện năng, hơn là thiết bị đắt tiền
Mục đích và phạm vi vận hành của Home Lab
- Home Lab là môi trường thử nghiệm tại nhà, giúp giảm rủi ro khi áp dụng cấu hình mới trực tiếp lên thiết bị production
- Ví dụ vận hành gồm:
- Sao lưu từ xa
- Giám sát mạng và cảnh báo cho máy chủ từ xa
- UAP AP có dây
- Thử nghiệm nhiều thiết bị và dịch vụ khác nhau
- Cấu hình này được công bố lần đầu vào năm 2020 và tiếp tục được cập nhật, bao gồm các thay đổi cấu hình tính đến tháng 3 năm 2026 và dòng thời gian 6 năm
Tiêu chí chọn vị trí lắp đặt
- Vị trí Home Lab cần xem xét đồng thời nhiệt độ và thông gió, đi dây cáp, khả năng tiếp cận, nguồn điện, tiếng ồn, bụi và lưu lượng đi lại
- Ưu nhược điểm theo từng vị trí ứng viên khá rõ ràng:
- Phòng làm việc tại nhà: bàn làm việc và thiết bị gần nhau nên cáp ngắn, nhưng có thể không có phòng làm việc riêng hoặc đó đã là không gian bạn ở lâu
- Phòng khách: thường mát và có không gian, nhưng có nhiều người qua lại và nguy cơ hư hỏng
- Tủ quần áo: dễ tiếp cận và dễ che giấu, nhưng thiếu thông gió và không gian
- Tầng hầm: thường mát, nhưng có thể gặp vấn đề ngập nước hoặc khó tiếp cận
- Gác mái: ít tiếng ồn và có thể dễ đi dây cáp, nhưng tùy khu vực có thể gặp vấn đề nhiệt độ cao, rò rỉ nước, độ ẩm
- Nhà để xe: giảm tiếng ồn trong nhà và ít gây chú ý, nhưng có nguy cơ côn trùng, nhiệt, bụi, cáp dài và hư hại do xe cộ
- Cấu hình thực tế được đặt trong phòng làm việc tại nhà; laptop, desktop, máy chủ và thiết bị khác ở cùng một không gian nên có thể giữ đường cáp ngắn
- Trước khi lắp đặt, nên vẽ sơ đồ mạng gia đình hoặc dùng công cụ thiết kế mạng để kiểm tra trước đường đi dây và cấu trúc ngôi nhà
Rack, tủ và cách chứa thiết bị
- Tủ/rack mạng và tủ/rack máy chủ dễ bị nhầm lẫn, nhưng router, switch và patch panel thường nông hơn máy chủ và cũng tỏa ít nhiệt hơn
- Nếu có kế hoạch đặt thiết bị máy chủ, độ sâu và thông gió của tủ mạng có thể không đủ; sản phẩm có cửa kính có thể bất lợi cho việc xử lý nhiệt
- Khi chọn tủ và rack, cần xem xét môi trường lắp đặt trước:
- Nếu lắp máy chủ lớn và nặng, độ ổn định của tủ hoặc rack 4 trụ là quan trọng
- Nếu thường xuyên cần tiếp cận cạnh bên/mặt sau thiết bị, rack mở hoặc tủ tháo được mặt bên sẽ có lợi
- Với thiết bị cần làm mát bổ sung, thiết kế thông gió càng quan trọng hơn trong tủ kín
- Phòng nhiều bụi thì tủ có lợi hơn trong việc bảo vệ thiết bị
- Không gian có khách ra vào như phòng khách có thể trông gọn gàng hơn với tủ có khóa
- Nếu cần hạn chế tiếp cận hoặc bảo mật, tủ có khóa là phù hợp
Phần cứng được khuyến nghị và tiêu chí lựa chọn
- Giá sản phẩm dựa trên giá hiện tại của Amazon nên có thể thay đổi, và một số liên kết Amazon là liên kết có hoa hồng
-
Modem cáp ISP
- Người mới có thể bắt đầu thử nghiệm mạng gia đình chỉ bằng cách thay modem do ISP cung cấp, trước khi dựng toàn bộ rack
- Nhiều ISP tại Mỹ thu phí thuê modem hằng tháng, nên tự mua có thể có ý nghĩa về chi phí
- Bộ modem/router do ISP cung cấp có thể chất lượng thấp hoặc là hàng cũ, thiếu tính năng, và khi xuất hiện lỗ hổng mới, bạn có thể phải phụ thuộc vào ISP để cập nhật firmware
- Nếu đang dùng ISP tốt và thiết bị đủ tốt thì có thể giữ nguyên; lý do thay thế là để có thêm tính năng mạng và môi trường thử nghiệm Home Lab
- Ví dụ cho Internet cáp là Motorola MB7621 32×8, Motorola MB8611 chuẩn DOCSIS 3.1
- Với Internet cáp quang, tùy nhà cung cấp có thể tự thay ONT, nhưng trong nhiều cấu hình ONT do ISP quản lý và người dùng bắt đầu kiểm soát từ router
- Modem cáp tỏa nhiều nhiệt, nên đặt ở phần trên của rack hoặc đảm bảo có không gian cho luồng khí trên dưới
-
Rack
- Đơn vị rack U hoặc RU là 1 3⁄4 inch, 44,45 mm, dùng để biểu thị chiều cao thiết bị và khung rack 19 inch/23 inch
- Rack full-size phổ biến cao 42U
- Thiết bị ví dụ:
- StarTech 12U Wall Mount Rack: sâu 13,5 inch, rộng 19 inch, tải trọng 125 lbs, là rack treo tường 12U được sử dụng từ năm 2020
- Samson SRK-12 Universal Equipment Rack Stand: rack thiết bị âm thanh tương thích với thiết bị nông, có bánh xe nên không cần cố định vào tường hoặc sàn
- NavePoint 9U Basic IT Wall Mount Network Rack Locking Glass Door: tủ mạng có ngoại hình đẹp, nhưng tủ kín không phù hợp với môi trường chỉ dùng điều hòa vào mùa hè
- Khi đo thiết bị rack, cần so sánh chiều rộng kệ rack với chiều rộng thiết bị, không phải chiều rộng bên trong rack
-
UPS
- Vì môi trường có máy phát điện dự phòng propane và mất khoảng 1 phút để chuyển đổi, nên cần UPS chịu được tải 100W~200W trong vài phút
- CyberPower OR500LCDRM1U UPS là sản phẩm rackmount 1U, 500VA/300W, 6 ổ cắm, AVR, nặng khoảng 20 lbs
- UPS này khi dùng khoảng 50% pin cho thời gian chạy hơn 30 phút một chút, bao gồm 2 PoE AP và màn hình 27 inch
- Nếu nhắm đến thời gian chạy dài, chi phí UPS sẽ tăng cao; cấu hình thực tế là đảm bảo đủ thời gian để thiết bị thiết yếu, tiêu thụ điện thấp tắt an toàn
- Mỗi PoE AP tối đa khoảng 9W, giúp duy trì tải UPS ở mức 20~30%
-
Kệ và nguồn điện
- Nếu UPS 1U không có rackmount, có thể đặt lên trên thiết bị, nhưng kệ 1U thông gió phù hợp hơn để giữ pin mát và giảm tích tụ nhiệt
- AC Infinity Vented Cantilever 1U Universal Rack Shelf có độ sâu từ 6 inch đến 16 inch, với lỗ thông gió và khe giúp làm mát và sắp xếp cáp
- CyberPower UPS có 6 ổ cắm, trong đó 4 ổ có pin dự phòng và chống sét lan truyền, 2 ổ chỉ chống sét lan truyền
- ADJ Products AC POWER STRIP PC-100A có thể kết nối trực tiếp với UPS CyberPower 1U để dễ bật/tắt nguồn theo từng thiết bị
- Đầu nối tiết kiệm ổ cắm và tấm bịt 1U được dùng để tận dụng nguồn điện và cải thiện luồng khí trong rack
Làm mát, mạng, cáp và cấu hình máy chủ
-
Làm mát
- Duy trì nhiệt độ phù hợp cho thiết bị rack là quan trọng để tránh quá nhiệt, đảm bảo hiệu năng ổn định và kéo dài tuổi thọ
- AC Infinity CLOUDPLATE T7-N 2U Intake đã được dùng khoảng 4 năm và làm mát rack tốt ngay cả ở tốc độ quạt thấp
- Do tích tụ bụi, quạt bắt đầu hỏng sau khoảng 2 năm, và đến năm thứ 3 thì 3 trong 4 quạt đã hỏng
- Việc thay quạt khó khăn vì đầu nối bên trong là đầu nối wafer 3 chân được cố định vào bo mạch bằng keo nóng
- Tháng 4 năm 2025, thiết bị này được tháo bỏ và chuyển sang làm mát thụ động bằng tấm thông gió 1U; sau đó hoạt động không gặp vấn đề
- Trong môi trường có điều hòa và ít bụi, có thể không cần quạt làm mát chủ động; nếu cần, nên vệ sinh bằng khí nén vài tháng một lần để có kỳ vọng tuổi thọ 2~3 năm tốt hơn
-
Router và switch
- Nhu cầu routing và switching được cho là hầu hết có thể đáp ứng bằng thiết bị Cisco, Ubiquiti, TP-Link
- Cấu hình này gần với thiết bị cho doanh nghiệp nhỏ hơn là văn phòng tại nhà, đồng thời tính đến khả năng mở rộng tính năng trong tương lai
- Ví dụ router:
- Peplink B-One Gigabit Dual WAN WiFi Router: cân bằng tải Multi-WAN, throughput 1Gbps, 2 WAN, 4 LAN, Wi-Fi dual-band 2x2 MIMO
- Ubiquiti Dream Machine UDM Pro: 10G, multi-gigabit, PoE, router và security gateway all-in-one
- TP-Link ER8411 10G VPN Router: tối đa 10 cổng WAN, tường lửa SPI, Omada SDN, cân bằng tải, chống sét
- MikroTik RB4011 cũng được nêu như một ví dụ thiết bị nhỏ nhưng hiệu năng cao
- Ví dụ switch:
- Ubiquiti USW-Pro-Max-16-PoE: switch Layer 3 Etherlighting 16 cổng, 2.5GbE, đầu ra PoE++
- TP-Link SG2210XMP-M2: 8 cổng 2.5GBASE-T, 2 cổng 10GE SFP+, 8 cổng PoE+
- Cũng có các lựa chọn khác như Netgear, pfSense, OPNsense, IPFire; không phải mọi thiết bị được khuyến nghị đều phù hợp với yêu cầu của từng người, nên cần tự nghiên cứu thêm
-
Patch panel và cáp
- Đã chọn patch panel 16 cổng, nhưng nhìn lại thì lẽ ra nên chọn patch panel 24 cổng
- Dù vậy, sau 6 năm, 16 cổng vẫn vừa đủ ở mức chật chội
- Gói nhanh nhất của ISP là tải xuống 160Mbps, tải lên 30Mbps, nên Home Lab không cần CAT8 hay CAT7
- Vì giới hạn 1000Mbps là chấp nhận được, đã mua cuộn CAT6 dài 250 feet và nhiều cáp CAT6 với các độ dài khác nhau
- Nếu cần lưu lượng mạng mượt hơn, có thể cân nhắc CAT6a trở lên, nhưng nếu đầu RJ45 và patch panel không hỗ trợ thì cáp CAT7 hoặc CAT6a là lãng phí
- Khi lắp đặt ban đầu, cáp đồng trục thiếu khoảng 3 feet, vì vậy nên dự trù ngân sách cho cáp dài hơn chiều dài cần thiết
-
Máy chủ
- Yêu cầu máy chủ khác nhau rất nhiều tùy theo đối tượng host như NAS, VM, web server, backup server, mail server, chặn quảng cáo, nên không khuyến nghị mẫu cụ thể
- Cấu hình thực tế dùng ThinkCentre M73 và ThinkCentre M715q mua cũ trên eBay
- Hai thiết bị này hoạt động yên tĩnh, mát mẻ và chạy Ubuntu Server cùng Windows 10
- Với máy chủ chính thức, Dell, HP, Cisco, Lenovo là các lựa chọn; trong Home Lab, nhiều người mua đồ cũ trên Craigslist hoặc eBay
Ví dụ cấu hình VPN toàn nhà đơn giản
- VPN toàn nhà được cấu hình cho một người bạn dùng dưới 40W trên UPS 700VA, cho thấy Home Lab không nhất thiết phải phức tạp hoặc tiêu thụ nhiều điện
- Thành phần gồm:
- StarTech.com 6U Wall Mount Network Equipment Rack
- AC Infinity Vented Cantilever 1U Universal Rack Shelf
- C2G 12-Port Patch Panel
- VCE CAT6 RJ45 Keystone Jack Inline Couplers
- Chạy Unifi Controller trên Raspberry Pi 4 2GB Basic Kit
- Chạy Edge Gateway và WireGuard VPN trên Brume GL-MV1000
- Edgeswitch 10xp
- StarTech.com 8 Outlet Horizontal 1U Rack Mount PDU Power Strip
- CyberPower SL700U Standby UPS System, 700VA/370W
Thay đổi trong 6 năm và kết luận
- Home Lab bắt đầu vào năm 2020 với rack treo tường 12U, modem cáp và EdgeRouter
- Sau 6 năm, hệ thống đã được nâng cấp lên uplink 10G, firewall pfSense, LAN 2.5G, và phần giám sát được thay từ Zabbix sang Checkmk RAW
- Các thay đổi chính:
- Tháng 3 năm 2020: hoàn tất bản build đầu tiên
- Tháng 4 năm 2020: thêm failover 4G, VLAN, tấm bịt và giám sát Zabbix
- Tháng 5 năm 2020: thêm Raspberry Pi và màn hình dashboard Zabbix
- Tháng 6 năm 2020: thêm bàn phím, thay nắp lưới bằng plexiglass nhuộm màu
- 2022~2023: chuyển sang nhà mới, thay EdgeRouter bằng Peplink Balance 20x, nâng cấp UPS
- Sau năm 2025: nâng cấp lên uplink 10G và LAN 2.5G, firewall pfSense, thay Zabbix bằng Checkmk RAW, chuyển sang làm mát thụ động
- Nguyên tắc vận hành quan trọng nhất là bắt đầu nhỏ và chuẩn bị cho tăng trưởng
- Không cần có rack, tủ, patch panel và mọi thiết bị ngay từ ngày đầu; có thể bắt đầu bằng việc thay modem ISP và thêm router phù hợp
- Khi chọn thiết bị, cần cân nhắc mức tiêu thụ điện ngay từ đầu để tránh hóa đơn điện tăng quá mức
1 bình luận
Các ý kiến trên Hacker News
Bài viết hay, nhưng quy mô và phạm vi lớn nên dễ khiến người mới thấy choáng. Home lab hoàn toàn có thể bắt đầu chỉ với một chiếc NUC đặt trên bàn, và với 64GB RAM thì có thể chạy được thật sự rất nhiều thứ
NUC có hiệu suất tốt khi chạy 24/7, nhưng sẽ trở nên ồn nếu tải CPU kéo dài. Khi đó, bạn có thể mở rộng bằng OptiPlex hoặc Precision Tower SFF trên eBay, nếu được thì chọn mẫu hỗ trợ ECC. Dell SFF tuy nhỏ nhưng là desktop/server đúng nghĩa với quạt êm, gắn được cả card 10G Mellanox 3 giá 40 đô trên eBay, và cũng tiện để xếp ngang chồng lên nhau. Với OptiPlex đời trước CPU thế hệ 12, điện năng và không gian có thể trở thành hạn chế nên tốt hơn là nên tránh; i5-12500 hàng cũ hiện đã khá rẻ. Nếu là LGA1700 thì khi cần cũng có thể lắp i9-14900 non-K
Cá nhân tôi xếp 4 thùng máy ở góc phòng, rồi bắt bu lông hai tấm hông rack phía sau bàn làm việc thành một rack giả để vít cố định linh kiện vào đó. NAS trên kệ và vài chiếc Raspberry Pi cũng được nối vào, tôi thích mớ hỗn độn này và đã học được rất nhiều. Hãy bắt đầu với thứ mình có rồi mở rộng khi cần. Rack chỉ thật sự thú vị khi bạn đã lún sâu vào thú vui này và bắt đầu quan tâm đến điểm phong cách
Khi nối vào ổ cắm thông minh chạy tasmota, tôi thấy trạng thái nhàn rỗi vào khoảng 6W. Tôi luôn tinh chỉnh tiết kiệm điện bằng thiết lập BIOS và profile tuned, nhưng nhìn chung NUC hiếm khi vượt quá 30W. Chỉ bằng khoảng một nửa một bóng đèn dây tóc tungsten ngày xưa
Laptop cũ đã qua sử dụng, đặc biệt là loại vỡ màn hình, có thể mua gần như miễn phí; nếu bạn đã có sẵn hoặc được người quen cho thì đúng là miễn phí thật. Nếu mục tiêu chỉ cỡ Plex thì chạy tốt, và mức tiêu thụ điện của laptop, nhất là khi nhàn rỗi, cũng không cao hơn NUC là bao. Giờ tôi dùng server rackmount đúng nghĩa vì trông ngầu, nhưng tôi nghĩ với đa số người thì một chiếc laptop cũ là đủ
Tuy vậy, về sau khi chuyển sang rackmount và nâng cấp một phần phần cứng, hướng dẫn “nhập môn” này thật sự hữu ích
[0] https://blog.janissary.xyz/posts/homelab-0
Một mini PC Lenovo đặt sau TV vừa đóng vai trò node Syncthing vừa làm HTPC. Đây không phải cấu hình tinh vi nhất thế giới, nhưng hoạt động tốt, rất rẻ và phù hợp với căn hộ
Hơi lạc đề một chút, nhưng với máy chủ tại nhà thì tôi thật sự muốn khen Proxmox. Suốt 25 năm qua tôi đã chạy máy chủ Linux ở nhà dưới hình thức này hay hình thức khác, và lúc nào cũng tự quản lý thủ công một hệ thống đơn lẻ như Ubuntu, việc đó cực kỳ phiền
Proxmox giúp dễ dàng chạy nhiều container và máy ảo trên cùng một phần cứng. Ban đầu tôi bắt đầu bằng cách ảo hóa một hệ thống Ubuntu lớn, nhưng chỉ vậy thôi cũng đã có các lợi ích như sao lưu và tính sẵn sàng cao. Giờ tôi bắt đầu tách từng dịch vụ ra thành container riêng, và mọi thứ gọn gàng hơn nhiều
Bản thân máy ảo cũng hữu ích, nhưng khả năng di chuyển giữa các máy và công cụ sao lưu/khôi phục tập trung mà Proxmox cung cấp thật sự đem lại cảm giác được giải phóng. Gần đây tôi còn gắn PCIe GPU passthrough cho một VM Windows, rồi dùng Moonlight/Sunshine để stream game tới các máy yếu trong nhà; nó chạy tốt đến mức chiếc PC chơi game thật đang nằm một góc phủ bụi. Phàn nàn duy nhất là tôi ước có giấy phép trả phí rẻ hơn. Tôi muốn đáp lại giá trị nhận được, nhưng hơn 100 USD mỗi CPU mỗi năm thì quá đắt cho mục đích sở thích. Tôi biết ơn vì tầng miễn phí không hề gây phiền toái, nhưng sẽ tốt hơn nếu có một mức trung gian
Tuy nhiên, mảng lưu trữ nói chung không dễ. Khó hiểu đúng hệ quả của nhiều lựa chọn khác nhau, và nếu không khá quen với zfs, lvm, lvm-thin, phân vùng lại, v.v. thì rất khó thiết lập nền tảng NAS cho đúng
Tôi nghe nói có người mount trực tiếp mảng dữ liệu[1] vào Proxmox và chỉ ảo hóa những thứ nằm trên tầng lưu trữ như Plex, trong khi người khác thì PCI passthrough HBA[2] vào một VM NAS. Ưu điểm của cách đầu có lẽ là có thể bind mount trực tiếp vào LXC container thay vì dùng SMB/NFS/9p loopback. Cũng có người dùng TrueNAS hoặc Unraid làm nền tảng bare-metal và giao luôn cả lưu trữ lẫn hypervisor cho chúng, điều này cũng hợp lý. Phiên bản Linux của TrueNAS giờ cũng đã có thời gian trưởng thành, nên có lẽ nên thử. Tôi cũng dùng chuyển mã phần cứng bằng Quicksync tích hợp trong bộ xử lý Intel, và tò mò liệu có vấn đề gì khi dùng nó xuyên qua VM không. Có lẽ sẽ phải từ bỏ TTY cục bộ của Proxmox
[1] Ý là mảng có các file thật, không phải VHD. Ngay từ đầu tôi đã có xu hướng tách riêng như vậy, và điều đó cũng cần thiết vì tôi không đủ khả năng để đặt toàn bộ dữ liệu lên SSD, cũng không chịu nổi việc đặt root OS trên HDD. Hoặc có lẽ một mảng ZFS master duy nhất với dataset cho file và zvol hoặc NFS cho root VM sẽ là lý tưởng
[2] Tôi nghe nói cách này đáng tin cậy hơn passthrough từng SATA riêng lẻ, nhưng nhược điểm là bị gom lại thô hơn. Tức là VM độc quyền kiểm soát tất cả cổng, nên không thể gắn vào đó những đĩa không thuộc mảng
Tính linh hoạt sẽ cao hơn vì có thể trộn cả distro khác hoặc hệ không thuộc Linux. Ví dụ tôi chạy router OPNsense. Tôi dùng xcp-ng thay vì Proxmox
Tôi biết chuyện này sẽ trở thành meme “I use Arch btw” mới, nhưng nếu đi theo hướng này thì tôi rất khuyên dùng Nix làm bản phân phối. Lý tưởng là sau khi làm cho nó chạy được một lần thì cứ để nó bật mãi, và với Nix, toàn bộ trạng thái hệ thống được ghi lại trong git
Không còn cảnh “6 tháng trước mình đã sửa cái này thế nào nhỉ?” hay phải lắp ráp lại hệ thống thủ công sau khi nâng cấp bản phân phối Ubuntu bị vỡ. Mọi thứ đã thay đổi, các gói đã cài, các giá trị đã cấu hình đều nằm trong git log. Tôi cũng thường xem repo git như tài liệu để kiểm tra những gì đã cài và cấu hình hệ thống
Việc đồng bộ nhanh và dễ các thiết lập hệ thống/người dùng/ứng dụng trên nhiều thiết bị thật đáng kinh ngạc. Nhờ cách tiếp cận khai báo, công sức vất vả để làm cho nó hoạt động được đền đáp; một khi đã tìm ra cách, bạn không phải lặp lại cùng việc đó nữa. Vì là khai báo, bạn có các ví dụ cấu hình hoạt động đã được ghi thành tài liệu và có thể mở rộng từ đó. Hiện tôi đang học môi trường phát triển Nix bằng cách build “Linux from Scratch” với Nix; chậm nhưng mỗi lần thành công thì nó được đóng lại thành trạng thái có thể tái lập. LLM chắc chắn giúp tóm tắt đống tài liệu rời rạc và nghèo nàn, nhưng vẫn cần khá nhiều kiên trì. Nhìn chung tôi rất thích Nix và muốn dùng nó nhiều hơn trong homelab
Tôi hiểu khái niệm, nhưng khi muốn thử một gói hay ứng dụng mới, dùng docker-compose và VM thường đưa tôi tới đích nhanh hơn là vật lộn suy nghĩ theo kiểu Nix
cidatavà bộ cài, rồi bật nguồn là đượcKhông biết Nix có dễ hơn không, nhưng cloud-init chỉ cho chạy các script mà những người làm việc kiểu này có lẽ đã biết dùng, nên không cần DSL riêng. Sẽ có người nói “tôi ghét YAML”, nhưng ai quan tâm đến homelab nhiều khả năng cũng quản lý nhiều server ở chỗ làm, và không thể tránh cloud-init, Ansible, Kubernetes hoặc thứ gì đó dùng YAML mà không có lựa chọn. Nếu mục đích của homelab là luyện tập những việc làm ở công ty mà không có nguy cơ phá đồ của người khác, thì tốt hơn là làm quen với các công cụ đằng nào cũng phải dùng và đừng khiến môi trường ở nhà quá khác với môi trường công ty. Tất nhiên, nhiều người trên Hacker News, khác tôi, dùng “homelab” để chỉ việc tự host media server, chat, chia sẻ ảnh, v.v. cho gia đình và bạn bè, chứ không phải một mini data center để luyện tập data center thật
Nếu quan tâm thì tutorial ở đây[0]. Vấn đề duy nhất là phần triển khai cấu hình Nix từ xa. Công cụ 1st-party duy nhất là nixops về cơ bản đã bị bỏ mặc và không còn được hỗ trợ. Các công cụ cộng đồng như morph hay deploy-rs trông có triển vọng, nhưng mức hỗ trợ Flakes cũng như độ hoạt động/tính bền vững dài hạn thì không đồng đều
[0] https://blog.janissary.xyz/posts/nixos-install-custom-image
Ubuntu đơn giản là không hay lắm. Trước đây tôi đã dùng Ubuntu vài năm và từng rất vui vì cuối cùng cũng có thể giới thiệu một bản phân phối Linux ổn định, dễ dùng cho người không chuyên. Nhưng sau hai ba lần liên tiếp nâng cấp tại chỗ làm hỏng hệ thống, đến mức chỉ có quy trình cài đặt được tài liệu hóa tốt của Gentoo cùng kiến thức quản trị hệ thống tích lũy qua nhiều năm mày mò mới sửa được, tôi đã dứt hẳn. Đừng để bạn bè dùng Ubuntu
Trong vài năm, tôi đã để thiết bị của mình bên trong sofa IKEA FRIHETEN. Ưu điểm là dễ tiếp cận, ngoài 1 dây nguồn + 1 đường WAN quang + 1 dây LAN Ethernet thì hoàn toàn không thấy gì, và về kết cấu thì rất dễ đưa cáp ra ngoài, bố trí/đi dây bên trong cũng tiện
Giảm ồn cũng miễn phí, và mùa đông thì còn sưởi đến mức mông ngồi lên không bao giờ lạnh. Vợ/chồng tôi thích vì không thấy bất kỳ đèn nhấp nháy nào, và cũng không nhận ra tôi đã mua UPS cùng khay đĩa. Nhược điểm là làm việc bên trong hơi bất tiện, có rung khi ngồi hoặc mở/đóng nên ổ cứng quay có thể không thích, còn nhiệt thì bất ngờ là ổn, không tệ hơn tủ quần áo. Có nguy cơ làm đổ chất lỏng, nhưng theo thiết kế thì nó thường chảy quanh mép hơn là chảy vào trong; tệ nhất thì đặt một khay/đế dưới phần cứng là được. Cần chừa độ dài dây dư vì vợ/chồng có thể kéo dây khi dọn dẹp và di chuyển đồ nội thất
† https://www.ikea.com/us/en/images/products/friheten-sleeper-...
†† Đi dây qua góc phía sau rồi giấu trong tường tới ổ cắm gần nhất, nên thực tế là không nhìn thấy
Một trong những lý do cuối cùng tôi không làm là vì không muốn có nhiên liệu sofa ngay phía trên và xung quanh thiết bị trong trường hợp cháy. Tôi hơi lo về UPS hơn là bản thân server. Nếu ốp khu vực đó bằng tôn, và nếu loại pin UPS có thể sinh khí thì thông gió tốt, có lẽ sẽ yên tâm hơn một chút, nhưng như vậy thành việc quá lớn. Vì thế cuối cùng thiết bị được đặt trên rack/kệ, tránh xa vật liệu vải, và có thể quan sát bằng mắt
Tôi nghĩ mình sẽ khá lo về thông gió, nhiệt và nguy cơ cháy. Làm tôi nhớ đến lack rack
https://archive.is/Uf2k3
Toàn bộ thế giới homelab thật tuyệt vời. Mỗi người có những mục tiêu riêng như điện năng thấp, bộ xử lý thú vị, quyền sở hữu dữ liệu, tính sẵn sàng cao, UPS/UPS cho cả nhà, và điều thú vị là điểm chung nơi các mối quan tâm chồng lấn này gặp phần mềm lại chính là ngôi nhà
Phạm vi những người bị thu hút cũng rất thú vị, từ các chuyên gia trong ngành chơi như một sở thích cho đến cả những người ngoài ngành. Tôi cũng đã thật sự bị cuốn vào, và ít nhất với tôi, nó làm sống lại cảm giác kỳ diệu của Internet thời kỳ đầu
Nhìn từ một góc khác, homelab của tôi là như thế này. Vị trí là trên kệ trong văn phòng tầng hầm, thông gió ổn, WiFi dùng được nhưng không quá tốt
Phần cứng là một chiếc PC cũ nhặt được ở chợ trao đổi địa phương, tôi gắn thêm RAM lấy từ một chiếc PC cũ khác, rồi mua ổ cứng và card WiFi. Phần mềm là Debian stable và podman/podman-compose. Mọi dịch vụ hữu ích đều là một thư mục chứa file compose, và tôi dùng podman-compose để chuyển chúng thành systemd unit. Nếu bạn thích cấu hình được nêu trong bài thì tuyệt, cứ thoải mái làm. Nhưng không nhất thiết phải như vậy, đặc biệt là tuyệt đối không cần như vậy ngay từ đầu. Trên chiếc PC cũ và gần như miễn phí này, tôi chạy nhiều dịch vụ mà gia đình dùng hằng ngày, nhưng chưa dùng đến một nửa 16GB RAM và mức dùng CPU cũng không vượt quá 5%
Tôi khoét một lỗ đi dây ở phía sau, và vì nhiệt tỏa ra đủ thấp nên luồng không khí chưa bao giờ là vấn đề. Tôi dùng nó để host website cá nhân và webcam bể cá, nối với chuông cửa, rồi dùng cho cả XMPP và kho lưu trữ tài liệu. Cần server cho thứ gì thì tôi cứ cho vào đó. Sau khi chuyển nhà, tôi dùng một chiếc Mac Mini cũ làm NAS, rồi về sau không còn nhiều thời gian để vọc nữa
Tôi cũng đã thiết lập tailscale để truy cập từ xa
Theo thời gian tôi đã dày công xây dựng một homelab khá lớn, nó chạy tốt nên tôi rất thích. Nhưng vấn đề thật sự là khôi phục sau thảm họa. Nếu phải tái tạo toàn bộ thì có cảm giác sẽ mất mãi mãi, và tôi cũng không chắc mình có nhớ hết được không
Ban đầu tôi có vẽ sơ đồ mạng, gồm cấu hình router, cấu hình switch, NAS, các container Docker rải rác trên nhiều VLAN, v.v., nhưng theo thời gian đã không giữ nó ở trạng thái cập nhật. Tôi tự hỏi liệu có công cụ tốt nào để vẽ sơ đồ hạ tầng, tài liệu hóa và giữ cho nó luôn cập nhật không. Sao lưu và nâng cấp cũng luôn là vấn đề. Nhiều khi tạo một container xong, 6 tháng sau nhìn lại thì hoàn toàn không biết mình đã làm gì. Có hàng chục container rải rác trên nhiều máy như NUC, NAS, desktop, server, và với mỗi dịch vụ thì vị trí bind mount, user chạy, quy ước quyền hạn đều có vẻ khác nhau. Không thể giữ hết trong đầu, nhất là sau một thời gian. Giá mà có thể chỉ cần bấm sao lưu, khôi phục, nâng cấp từ một giao diện trung tâm. Tôi nhớ thời còn vận hành như cattle bằng VM clone/snapshot ngày xưa. Trên máy Proxmox vẫn còn vài VM nên cũng hơi giống vậy, nhưng toàn bộ homelab thì không có cơ chế như thế. Về lý thuyết, tôi muốn đạt tới điểm mà dù nhà cháy rụi vẫn có thể khôi phục hoàn toàn toàn bộ cấu hình. Chắc chắn phải có cách đơn giản hơn việc kéo Kubernetes vào quản lý cấu hình tại nhà, và tôi tò mò mọi người đang dùng gì
Một hai người mà mở rộng theo chiều ngang thì quá khó, nhưng nếu đào sâu vào một stack thì sẽ hiểu rõ hơn; và nếu mọi thứ đều theo đúng cùng một cách, trạng thái sẽ gần như là hoặc tất cả chạy, hoặc tất cả không chạy. Rốt cuộc nó trở thành một kiến trúc trong đó mọi thứ đều phải hoạt động tốt
80% chỉ là tạo VM, sao chép file bằng rclone, và nếu cần thì cài/khởi động service; với lệnh tùy chỉnh thì đại khái khoảng 3 dòng. Nếu VM đang bật, việc triển khai mất khoảng 100ms. Đôi khi script phức tạp hơn, nhưng ý tưởng cơ bản là dù bên trong dùng hệ thống nào, chỉ cần chạy
deploy.ps1thì nó phải hoạt động không cần Internet, không cần dependency, cho tới tận cái chết nhiệt của vũ trụ. Sau khi mất tất cả, tôi chạy lại deploy và gộp thành danh sách để khôi phục toàn bộ. Tôi đồng ý rằng việc tài liệu hóa cấu hình định tuyến chưa đạt 100%. Cấu hình router/switch của tôi nói thật cũng quá phức tạp, có lẽ cần phải cắt giảmSuper Micro Computer có thể đã làm được rồi, nhưng đối tượng là data center. Chỉ có thể mơ thôi
Proxmox tiêu thụ khoảng 12W khi idle, OpenWRT khoảng 4,5W, và có thể chạy MeshCommander trên OpenWRT bằng NodeJS để quản lý từ xa. Vì dùng mã hóa native của ZFS, tôi sao lưu toàn bộ ra ổ ngoài như sau
# create backup pool on external drivezpool create -f rpoolbak /dev/sdb# create snapshot on proxmox NVMezfs snapshot -r "rpool@backup-2024-01-19"# recursively send the snapshot to the external drive (initial backup)# pv only is there to monitor the transfer speedzfs send -R --raw rpool@backup-2024-01-19 | pv | zfs recv -Fdu rpoolbakVới sao lưu tăng dần, chỉ cần dùng tùy chọn
-Ivà đưa vào hai snapshot biểu thị điểm bắt đầu/kết thúc# create new snapshotzfs snapshot -r "rpool@backup-2024-01-20"# only send everything between 2024-01-19 and 2024-01-20zfs send -RI --raw rpool@backup-2024-01-19 rpool@backup-2024-01-20 | pv | zfs recv -Fdu rpoolbakDễ, nhanh và khá đáng tin cậy. Dùng
zfs-auto-snapshotthì có thể đưa filesystem quay lại theo mốc 15 phút. Nó cũng khá hữu ích để rollback máy ảo[1]. Gần đây NVMe, Samsung 980 Pro, của tôi bị chết; tôi chạy lệnh shell để khôi phục bản sao lưu zfs theo chiều ngược lại, từ rpoolbak về rpool, mất khoảng 2 giờ cho 700GB và server đã online trở lại. Tôi biết trong một số trường hợp ZFS được xem là “thử nghiệm”, đặc biệt ở phần mã hóa, nhưng khá hài lòng với kết quả1: https://pilabor.com/series/proxmox/restore-virtual-machine-v...
Vì vậy tôi dành nhiều thời gian cho tài liệu hóa, và cố gắng xây dựng theo cách đơn giản, gần với mặc định và có cộng đồng hỗ trợ nhất có thể. Kết quả là hiện giờ tôi vẫn chưa có homelab, cũng chưa có thứ mà ai đó ở đây gọi là “homeprod”. Tôi cũng tìm được một người bạn có cùng nhận thức vấn đề để thuyết phục, và đang nghĩ có nên mirror tài liệu cùng quy trình homelab của nhau để bus factor không còn là 1 hay không
Từ năm ngoái tôi đã thiết lập và duy trì một homelab, và thật sự rất đáng kinh ngạc. Tôi đã học được cực kỳ nhiều về container, máy ảo và networking
Một số ứng dụng self-hosted như paperless-ngx [1] và immich [2] vượt xa các giải pháp cloud độc quyền về mặt tính năng. Thêm một dịch vụ VPN như tailscale [3] nữa là giờ tôi có thể truy cập homelab của mình từ bất cứ đâu trên thế giới. Thứ còn thiếu chỉ là sắm một máy tiêu thụ điện thấp như NUC hoặc mini PC để chuyển các dịch vụ cần chạy 24/7 sang đó và giảm tiền điện. Nếu bạn có thể duy trì được và có năng lượng để kiểm tra, nâng cấp định kỳ vào cuối tuần, tôi 100% khuyên nên tự dựng homelab
[1] https://docs.paperless-ngx.com/
[2] https://immich.app/
[3] https://tailscale.com/
Nếu thiết bị homelab nằm trong không gian sống của một nerd không chuyên kỹ thuật, cũng cần nghĩ đến tiếng ồn, đèn/màn hình hiển thị và việc không quá lộ liễu. Tôi sống trong căn hộ và từng để nó trong tủ quần áo khá lâu; sau khi chuyển ra phòng khách thì đã dùng vài cách xử lý
Để nó không nổi bật, tôi dùng tủ IKEA CORRAS hợp với các món nội thất khác. Trước đây tôi có lắp trụ rackmount vào, nhưng nó nhô ra nên đã tháo bỏ. Về tiếng ồn, tôi chọn thiết bị không quạt hoặc thiết bị có thể làm mát bằng một số ít quạt Noctua; thay quạt PSU 1U bằng Noctua cũng được nhưng cần hàn một chút và chửi thề kha khá. Cuối cùng, trong môi trường không phải datacenter, tôi thường dùng các server Atom có thể chạy fanless ngoại trừ PSU. Server GPU 3090 duy nhất hiện không yên lặng thì tôi đặt để chỉ bật khi cần. Tôi chạy lệnh Wake-on-LAN từ laptop, nhưng cũng có thể dùng IPMI, PDU hoặc mẹo ổ cắm IoT, dừng 3090 và quạt bằng phần mềm, tự động hóa Kubernetes, v.v. LED báo trạng thái quá sáng thì dán băng nhãn trắng của máy in nhãn lên che rất hiệu quả và nhìn còn đẹp hơn tưởng tượng. Những đèn không cần nhìn thì dùng băng nhãn đen. Với console, tôi đặc biệt thích kiểu rack console kéo trượt kín đáo, như IBM cổ có bàn phím TrackPoint. Nếu đặt màn hình monitoring trong phòng khách, ít nhất tôi sẽ cho bàn phím vào một ngăn kéo trượt. Tôi cũng thanh lý các thiết bị không cần thiết. Nếu không, bạn sẽ cần hơn gấp đôi không gian rack hiện tại, và cũng khó mà ngụy trang nó trong phòng khách như thiết bị audiophile. Nếu ở căn hộ và hiện không muốn động đến router, chỉ muốn server, thì cũng đáng cân nhắc một router OpenWRT vỏ nhựa. Nó có thể thay thế vài rack unit gồm router, switch, patch panel, và có khi cũng không cần AP WiFi ngoài cùng dây nhợ nữa
Với “yêu cầu” của tôi, tôi băn khoăn nên đặt mức ngân sách tối thiểu hay chi tiêu khoảng bao nhiêu. Hoặc liệu các site như vast.ai có là đủ không
Có lẽ vì đã hơn 30 tuổi nên tôi chỉ gọi nó là mạng gia đình và tình trạng có hơn một máy tính. Lý do có mạng gia đình là vì, giống nhiều người ở đây, tôi phát triển các ứng dụng mạng
Tôi không phải kỹ sư mạng, nhưng việc hiểu các thành phần khác nhau của Internet như TCP/IP, DNS thực sự hoạt động ra sao là cực kỳ hữu ích, và giúp bạn khác biệt với nhiều developer. Tôi cũng thích sự linh hoạt khi tự kiểm soát mạng của mình và làm theo ý muốn. Còn lý do có nhiều máy tính thì ngày nay ảo hóa đã khá tốt, nên không phải chủ yếu để vọc nhiều OS khác nhau. Thực tế là vì vị trí đặt thiết bị. Ổ cứng khá ồn nên tôi muốn để chúng trong tủ, nhưng màn hình và bàn phím thì muốn đặt trên bàn. Vì vậy trong tủ có NAS, trên bàn có PC yên tĩnh, trong phòng khách có media center không tiếng ồn và các thiết bị khác. Một điều muốn nói là đừng sa vào cám dỗ của thiết bị server rackmount. Trông thì ngầu và mua cũ rẻ, nhưng không phù hợp cho gia đình. Thay vào đó nên dùng case PC desktop có quạt lớn. Thiết bị mạng rackmount thì khá ổn
Nó còn có hệ thống quản lý OOB thật sự, khá hữu ích. https://www.supermicro.com/en/products/system/iot/1u/sys-510...
Tôi đồng ý rằng các server rackmount sâu thông thường trong homelab thì công sức bỏ ra thường không đáng so với lợi ích
Nhưng nếu bạn có dù chỉ một chút ý định mang thiết bị rackmount thật sự về nhà, tôi cực kỳ khuyên nên tìm cách nghe trước tiếng ồn kinh khủng của nó. Thật khó tưởng tượng việc sống chung với âm thanh đó
Tuy nhiên nếu không có rack thật thì sẽ khá phiền. Cuối cùng nó sẽ bị xếp chồng lên các thiết bị khác như một cái tháp giả rack, và mỗi lần muốn tiếp cận thiết bị cần sửa thì phải tháo dỡ hết. Nếu định đi theo hướng mua thiết bị rack thanh lý sau thuê, thì nên làm cho đúng và mua cả rack lẫn rail. Rail có thể hơi đắt, nên hãy kiểm tra các lô hàng có kèm rail. Rail thường tương thích lâu hơn server rất nhiều, nên các công ty lớn thanh lý hàng loạt thiết bị hết hợp đồng thuê thường không kèm rail, còn người bán nhỏ thì hay kèm hơn