- Đây là một thử nghiệm thay thế ổ đĩa mạng dạng router OpenWRT cũ bằng tổ hợp SBC + HDD, nhằm duy trì samba, git, rsyncd, dnf repo trong khi giảm nghẽn cổ chai
- Libre Computer AML-S805X-AC là bo mạch €20 với ARM Cortex-A53 4 nhân, RAM 1GB, boot qua USB và hỗ trợ Debian, nhưng LAN chỉ 100Mb, còn 2 cổng USB-A vẫn là USB 2.0
- Tổng chi phí, không tính HDD, chỉ khoảng €43, nhưng vẫn cần vỏ HDD, bộ nguồn, cáp micro-USB và tùy chọn thêm dongle TTL-to-USB
- Image chính thức dựa trên Debian 12 dùng phân vùng EFI trong MBR và phân vùng root btrfs; tính năng tự động resize ở lần boot đầu hoạt động không ổn định và chậm trên dongle USB
- Sau khi né lỗi UAS trên vỏ HDD JMicron JMS578, độ trễ biến mất, nhưng tốc độ với ext4 chỉ khoảng 23,95MB/s, nên khó khuyến nghị nếu không có lý do mạnh như tiết kiệm điện
Thay router OpenWRT bằng SBC NAS
- Thiết bị cũ là một router đời cũ có gắn HDD; sau khi cài OpenWRT, nó được dùng như ổ đĩa mạng chứ không phải router
- Thiết bị mới cần giữ nguyên samba, git, rsyncd, dnf repo trong khi chạy nhanh hơn
- Router cũ có CPU yếu nên chật vật với
rsync qua SSH
- RAM thiếu nên bị kẹt ở các commit
git push có chứa binary lớn hơn 15MB
- Ứng viên được chọn là bo mạch AML-S805X-AC của Libre Computer
- Có cổng LAN nhưng chỉ hỗ trợ tới 100Mb
- 2 cổng USB-A chỉ hỗ trợ USB 2.0
- ARM Cortex-A53 4 nhân, RAM 1GB, boot qua USB, hỗ trợ Debian mới
- Có thể mua được mà không gặp khó khăn nguồn hàng đặc biệt
Thông số mạng thấp và nhu cầu thực tế
- Mạng 100Mb là cấu hình thấp theo tiêu chuẩn hiện nay, nhưng mục đích chính là duy trì bản sao của một thư mục có khoảng 200.000 file nhỏ
- Ngay cả nếu SBC hỗ trợ USB 3.0, mạng 1Gb có lẽ cũng khó kéo tốc độ đồng bộ lên đáng kể
- Chỉ riêng bo mạch chưa đủ để hoàn tất cấu hình NAS, nên cần thêm linh kiện
- Các cổng USB-A của bo mạch cung cấp tối đa 900mA cho mỗi cổng
- Cần vỏ HDD có nguồn ngoài
- Cần bộ nguồn tối thiểu 3A và cáp micro-USB chịu được 3A
Cấu hình €43 và lắp ráp vật lý
- Tổng chi phí không tính HDD là €43
- SBC: €20
- Vỏ HDD: €12
- Bộ nguồn 3A: €5
- Cáp micro-USB: €3
- 4 con bu lông và 12 con đai ốc: €0
- Dongle TTL-to-USB: €3, là tùy chọn vì bo mạch có ngõ ra HDMI
- HDD không được tính vào chi phí, với giả định là có sẵn HDD dư
- Vỏ HDD được mua vì tưởng là hộp nhựa nhỏ cho ổ 2,5 inch, nhưng thực tế là hộp cho ổ 3,5 inch
- Do không gian trong vỏ, SBC cũng được đặt luôn bên trong vỏ HDD
Boot và những điểm thô của image Debian
- Kết nối dongle TTL-to-USB vào GPIO của bo mạch và truy cập bằng
screen
$ sudo screen /dev/ttyUSB0 115200
- Output ban đầu hiển thị Libre Computer AML-S805X-AC, Amlogic Meson GXL,
DRAM: 512 MiB (effective 1 GiB)
- Sau đó, khi ghi image Debian 12 vào flash drive bằng
dd, free(1) nhận diện 1GB
- Image OS chính thức của Libre Computer dựa trên Debian stock
- Image đĩa có dung lượng 2,25GiB
- Có phân vùng EFI bên trong layout MBR
- Phân vùng thứ hai là btrfs, và được tự động resize để lấp đầy phần dung lượng còn lại ở lần boot đầu
- Tự động resize trên dongle USB không ổn định
- Trong 3 dongle USB dùng được, một chiếc bị treo vĩnh viễn trong lúc resize
- Một chiếc khác hoàn tất tác vụ nhưng sau đó trở nên rất chậm
- Việc repository dùng để tạo image OS không được công khai cũng vẫn là một vấn đề
- Giải thích liên quan nói rằng distribution builder là proprietary commercial offering có chứa IP của khách hàng và phần tích hợp, nên không thể công khai
- Cũng có lời khuyên rằng vì không thay đổi gì ngoài một vài thiết lập so với bản phân phối tiêu chuẩn, nếu muốn phân tích image thì hãy bootstrap rồi xem diff
Lỗi vỏ HDD và hiệu năng cuối cùng
- Sau khi nối vỏ HDD vào bo mạch, quá trình nhanh hơn nhiều so với dongle USB, nhưng vẫn có các độ trễ bất ngờ ở những điểm ngẫu nhiên
- Ngay sau khi đăng nhập, kernel phát sinh lỗi
uas_eh_abort_handler
- Kết quả
lsusb cho thấy bên trong vỏ là thiết bị JMicron JMS578 SATA 6Gb/s
Bus 001 Device 002: ID 152d:0578 JMicron Technology Corp. / JMicron USA Technology Corp. JMS578 SATA 6Gb/s
- Cách khắc phục là thêm
usb-storage.quirks=152d:0578:u vào dòng lệnh kernel để tắt UAS
- Sau biện pháp này, độ trễ biến mất
- Điểm benchmark không ấn tượng
- Trên kết nối USB 2.0, kết quả ghi 524MB bằng
dd và tính cả sync là real 0m21.876s
- Giá trị tính theo phân vùng ext4 là 23,95MB/s
- Cuối cùng, cấu hình này khó được khuyến nghị
- Một trong những lý do chọn SBC là giảm tiêu thụ điện
- Nếu không có ràng buộc tương tự, gần như không có lý do gì phải khổ sở với một thiết bị giá rẻ khó chiều như vậy
1 bình luận
Ý kiến trên Hacker News
Mẹo bí mật là desktop/NUC PC Fujitsu đời cũ. Ở Đức, nhiều doanh nghiệp thay thế định kỳ nên giá đồ cũ trên eBay khá rẻ
Nếu mức tiêu thụ điện là quan trọng, tìm
"$model energy consumption white paper"sẽ ra các tài liệu khá chính xác như điện năng khi nhàn rỗi; ví dụ là https://sp.ts.fujitsu.com/dmsp/Publications/public/wp-energy...Một chiếc NUC, sau khi bật tính năng tiết kiệm điện cho bộ điều khiển SATA trên Linux, dù PDF ghi là 9W nhưng điện năng nhàn rỗi đã giảm xuống tới 5W
Dùng một PC thực sự thay vì một máy tính bo mạch đơn tùy ý sẽ tốt hơn nhiều về kết nối, khả năng mở rộng và hỗ trợ phần mềm; phần lớn máy tính bo mạch đơn bị trói vào kernel sơ sài lúc ra mắt, buộc phải lấy một bản fork Armbian bị nhà cung cấp bỏ mặc, trộn với kernel cũ rồi đóng gói trông như một bản phân phối mới
Kỳ lạ là tài nguyên tính toán giá rẻ rất khó từ chối
Nhược điểm duy nhất là không có chỗ để gắn nhiều đĩa 2,5/3,5 inch, nhưng điều này cũng gần như là vấn đề sở thích
Những máy Dell hết hạn thuê đang xuất hiện hiện nay cũng có các tính năng hiện đại như CPU Intel thế hệ 8, TPM, USB-C
Các thử nghiệm NAS kiểu Raspberry Pi, đặc biệt nếu dùng nhiều adapter nguồn và phải gọt/cắt case, khiến tôi thấy nghi ngại. Tất cả đều quá mất công và chậm chạp, mà cảm giác cũng “không rẻ đến thế”
Lưu dữ liệu cá nhân quan trọng trên ổ USB cũng có vẻ hơi rủi ro. Nó sẽ không đốt cháy nhà bạn, nhưng vẫn thấy không yên tâm
Ưu điểm thực sự là form factor nhỏ và mức tiêu thụ điện “thấp”, nhưng dù toàn bộ chỉ 43 USD, người ta vẫn phải cân nhắc có nên chịu mạng 100Mbit để tiết kiệm vài đô hay trả 150 USD để dùng 2.5Gig
Có rất nhiều lựa chọn thay thế như Fujitsu Futro S920 (đồ cũ dưới 75 USD, khoảng 10W), FriendlyElec NanoPI R6C (dưới 150 USD, khoảng 2W, https://www.friendlyelec.com/index.php?route=product/product...), FriendlyElec Nas Kit (dưới 150 USD, khoảng 5W, https://www.friendlyelec.com/index.php?route=product/product...), Dell T20/T30 (đồ cũ dưới 100 USD, khoảng 25W), Fujitsu Celsius W570 (đồ cũ dưới 100 USD, khoảng 15W)
NAS/home server cá nhân của tôi dùng Fujitsu D3417-B, Intel Xeon 1225v5, 64GB ECC RAM, WD SN850x 2TB NVMe, Pico PSU 120; đắt hơn, nhưng ổn định, mạnh mẽ và điện năng nhàn rỗi dưới 10W
Khi mọi thứ chạy tốt thì ai cũng là chuyên gia lưu trữ. Khi có gì đó hỏng, bạn sẽ cảm thấy lẽ ra mình nên thêm một ổ cứng nữa vào mảng RAID, hoặc có thêm một NAS để sao lưu, hoặc chuẩn bị thêm một địa điểm bên ngoài để gửi dữ liệu tới
Giờ tôi không đi theo hướng rẻ tiền nữa. Dù vậy tôi hiểu sức hấp dẫn của nó
Nếu cần thêm đĩa thì mua thêm; nếu cần NAS sao lưu thì mua thêm một cái. Nếu cần bản sao offsite thì mua dung lượng hoặc mua NAS và đĩa cho địa điểm bên ngoài
Tầm giá của thiết bị không thay đổi điều gì ở đây
Nếu là tài liệu công việc, sổ sách kế toán, ảnh gia đình thì hẳn bạn sẽ muốn giữ an toàn
Nhưng nếu NAS chỉ chứa 20TB phim và chương trình TV lậu, thì thoải mái hơn nhiều khi mua ổ rẻ nhất rồi xem chuyện gì xảy ra
Dùng công cụ như Freefilesync thì dễ và nhanh, lại có thể nhìn thấy cả những gì đã bị xóa nhầm
Rất rẻ và đã trụ tốt hơn 10 năm. Tôi từng gặp mất dữ liệu do ổ hỏng, lỗi người dùng, lỗi/bug phần mềm ngoài ý muốn, nhưng vẫn không vấn đề gì
Nếu dựng một NAS như thế này thì tôi tò mò không biết truy cập tệp bằng cách nào. NFS hay SFTP?
Tôi cũng tò mò khi ở ngoài nhà thì truy cập thế nào. Dùng VPN luôn kết nối, hay có cách nào NAT hole punching tốt?
Syncthing khá giống điều tôi muốn ở chỗ nó cho phép mọi máy tính đồng bộ cùng một tệp dù đang ở mạng nào, nhưng nó luôn cố sao chép tất cả tệp. Điều tôi muốn là chỉ để tệp trên NAS và truy cập từ bất cứ đâu
Nextcloud cũng khá giống điều tôi muốn, nhưng trước đây khi dùng thử thì thấy không ổn định và khó tin cậy, lại có vẻ làm quá nhiều tính năng không cần thiết
Truy cập từ xa thì dùng SSH bastion được expose qua Tailscale. Dù là VPN, nhưng vì dựa trên WireGuard nên không gây khó chịu lắm. Tuy nhiên đường upload của tôi là gigabit nên tùy môi trường có thể khác
NAS có 28TB dung lượng và tôi vẫn đang cân nhắc chiến lược sao lưu. Hiện giờ chỉ có Dropbox và vài tệp linh tinh mất cũng không sao
Với dịch vụ khác thì tôi dùng Dropbox khá nhiều, nhưng 2TB ngày nay không còn lớn lắm. Hơn nữa số tệp đã vượt 500.000 nên nó cũng trở nên khá nhạy cảm
Đây là thiết lập cá nhân và có lẽ sẽ khác khá nhiều tùy từng người
Tôi dùng hai cái, một ở nhà và một ở văn phòng; điều phàn nàn duy nhất là hơi quá mức “chống người dùng làm bậy”. Dù vậy GUI nền web rất tốt
Cũng có phần mềm miễn phí để vượt qua NAT và IP động, hoạt động tốt (quickconnect.to). Tôi chủ yếu dùng làm SFTP và media server
Trên LAN thì chỉ dùng SMB, đủ cho nhu cầu của tôi
Khi truy cập từ xa bộ sưu tập ISO Linux, tôi dùng Plex
Trước đây tôi cũng từng dùng WebDAV hoặc FTP, tùy vào mục đích cụ thể
Ở ngoài nhà thì VPN là bắt buộc. Ngày nay chỉ port forwarding thôi là quá nguy hiểm
Đến đoạn phải thêm
usb-storage.quirks=152d:0578:uvào kernel command line để tắt UAS, nếu là tôi thì chắc đã ném vào thùng rác rồi bỏ cuộcTôi không hiểu mọi người lấy đâu ra kiên nhẫn để debug những vấn đề kiểu này đến cùng. Tôi biết mục tiêu của dự án này là làm cho rẻ và đơn giản, nhưng chi phí thời gian thì đắt và hoàn toàn không đơn giản
Image builder của bo mạch này trông khá đáng ngờ
Lời giải thích rằng “trình dựng bản phân phối là sản phẩm thương mại độc quyền, không thể công khai vì chứa nhiều IP và tích hợp của khách hàng” nghe như một bộ tiêm mã vào chuỗi cung ứng
Việc có UEFI để dùng nguyên các image thông thường là một lợi thế lớn, nhưng biến image mặc định và đặc biệt là firmware thành quy trình độc quyền là dấu hiệu cảnh báo quá lớn, khiến toàn bộ trở nên đáng nghi
Nếu firmware là phần mềm tự do/mã nguồn mở và có thể tự build trực tiếp chỉ từ đầu vào tự do/mã nguồn mở thì có thể ổn. Tuy nhiên chỉ nhìn cuộc thảo luận đó thì chưa rõ
Hỗ trợ image thông thường nhờ UEFI là một lợi thế lớn, nhưng việc đó không phải mặc định khiến tôi nghi ngờ giá trị và văn hóa của công ty
Có thể là câu hỏi ngớ ngẩn, nhưng tôi thắc mắc vì sao lại làm NAS server mà không có bộ nhớ ECC
Ngay cả trên server doanh nghiệp, ECC có thật sự cần thiết hay không vẫn còn là điều có thể tranh luận
Khá hay. Có vẻ hợp với use case đó. Nếu là tôi thì có lẽ sẽ chi thêm một chút để chọn loại có cổng gigabit
Xem video của Jeff Geerling thì có vẻ ngay cả những máy tính single-board nhỏ như vậy cũng có thể dựng NAS có hiệu năng khá tốt
Nếu là Pi 4 hoặc Pi 5, hoặc bo mạch Rockchip dùng RK3566 hay RK3588, bạn có thể gắn ổ cứng/SSD USB, hoặc hiện nay phần lớn có thể thêm ổ M.2 hay adapter SATA cho ổ cứng/SSD. Có thể chạy RAID không gặp vấn đề lớn ở 1Gbps, đôi khi cả 2.5Gbps
Cũng có người dùng OpenMediaVault, và nó ổn. Các NAS của tôi được cấu hình bằng Ansible + ZFS trên bare Debian, và với tôi cách đó đơn giản hơn để quản lý: https://github.com/geerlingguy/arm-nas
Nếu không chọn Raspberry Pi thì tôi có lẽ sẽ chọn Radxa hoặc Libre Computer. Cả hai đều có image khá ổn cho bo mạch mới, nhưng vấn đề output HDMI thì hầu như lúc nào cũng gặp, nên cần chuẩn bị thiết lập qua SSH hoặc serial console
Giống như các nội dung khác trong luồng này, hiệu năng/giá của các PC văn phòng SFF tân trang xuất hiện trên thị trường đồ cũ thực sự rất lớn
Trước đây tôi đã mua một máy dòng HP ultradesk với giá rất rẻ, khi nhận được thì hóa ra không phải hàng đã qua sử dụng mà là hàng tồn kho dư thừa, nên là máy mới và chỉ khoảng 20% giá bán lẻ. Rất yên tĩnh và hiệu quả điện năng cũng xuất sắc
CPU không phải loại cao cấp nhất, nhưng là thế hệ 10 hoặc 11 nên hoàn hảo cho mã hóa phần cứng dùng cho media server
Không phải là nó có đầy đủ phần cứng cho RAID và nhiều ổ cứng, nhưng với một ổ khởi động NVMe và một ổ cứng 16TB thì đủ cho nhu cầu của tôi. Vì là media nên mất cũng không lo
Những chiếc hộp kiểu này rẻ nên có thể đặt nhiều máy đảm nhiệm các việc khác nhau trong cùng một “triển khai”. Có thời tôi từng để riêng từng hộp cho NAS, media server, camera IP CCTV và homeassistant, tất cả đều chạy tốt
May là tôi không masochist đến mức thử những thứ như Kubernetes để điều phối nhiều thiết bị cùng lúc
Tất nhiên đây là xét theo mục đích homelab/cá nhân. Tôi không khuyến nghị cho các mục đích nghiêm túc hơn. Nhưng những máy này đơn giản là chạy tốt, và vì là PC x86 tiêu chuẩn nên loại bỏ được nhiều vấn đề thiết lập phần cứng và tương thích thường gặp trên các nền tảng đặc thù hơn
Thật mỉa mai khi gọi là Libre Computer mà lại không công khai công cụ cho phép người dùng tự tạo image của mình