Khoảng một năm trước, tôi đã có dịp đánh giá thiết bị NAS Ugreen DXP4800 Plus và nhận thấy rằng mặc dù phần cứng rất ấn tượng, phần mềm đi kèm lại còn nhiều hạn chế. Giờ đây, sau một năm, phần mềm đã được cải thiện đáng kể, và phần cứng vẫn giữ nguyên chất lượng cao. Tuy nhiên, trong vài tháng gần đây, tôi đã tập trung thử nghiệm sâu hơn về hệ thống mạng và quyết định rằng dự án tiếp theo sẽ là thay thế router của nhà cung cấp dịch vụ Internet (ISP) bằng một router OPNsense. Trong quá trình cân nhắc các lựa chọn phần cứng, tôi chợt nhớ rằng chiếc NAS Ugreen này có hai cổng Ethernet khá mạnh mẽ ở phía sau. Câu hỏi đặt ra là liệu nó có thể hoạt động như một router hay không, và hóa ra, câu trả lời là có thể.
Thừa nhận rằng, để hiện thực hóa ý tưởng này là cả một quá trình không hề đơn giản. Ban đầu, tôi đã thử chạy một máy ảo OPNsense bên trong UGOS (hệ điều hành của Ugreen NAS), vì một trong những bản cập nhật của Ugreen đã bổ sung tính năng quản lý máy ảo QEMU đầy đủ. Tôi không thực sự có ý định sử dụng nó lâu dài, mà chỉ muốn thử nghiệm. Tuy nhiên, phương pháp này nhanh chóng gặp vấn đề. Mặc dù tôi có thể chuyển cả hai card mạng (NIC) cho máy ảo, nhưng nó lại gặp khó khăn trong việc giao tiếp qua PPPoE, vốn là phương thức ISP của tôi sử dụng để xác thực. Đến giai đoạn này, tôi quyết định mạnh dạn hơn, thay thế hoàn toàn UGOS trên Ugreen NAS bằng Proxmox.
Nói tóm lại, giải pháp này đã thành công. Ugreen DXP4800 Plus NAS hiện đang hoạt động như router chính trong hệ thống mạng gia đình tôi và đã chạy ổn định trong vài tuần qua. Tuy nhiên, câu chuyện không hề đơn giản như việc chỉ cần cài đặt OPNsense và chạy. Chẳng hạn, làm thế nào để tôi có thể tiếp tục sử dụng các ổ đĩa trong chiếc NAS Ugreen này? Tại sao tôi không thể chạy OPNsense mà không cần Proxmox? Hơn thế nữa, trong quá trình thực hiện, tôi đã có một số khám phá thú vị về UGOS của Ugreen.
Chuẩn Bị Ugreen DXP4800 Plus Cho Proxmox
Cảnh Báo Về Dịch Vụ Watchdog Độc Đáo Của Ugreen
Một máy tính xách tay đang chạy quá trình cài đặt Proxmox
Ugreen khá cởi mở trong việc cho phép người dùng cài đặt các hệ điều hành khác trên thiết bị NAS của họ, nhưng quá trình này không đơn giản như việc chỉ cần khởi động từ USB và cài đặt bất cứ thứ gì bạn muốn. Trước hết, không có sẵn một bản image hệ thống để bạn có thể flash trở lại UGOS nếu có sự cố, và bạn cần phải nhận một bản image khởi động đặc biệt từ Ugreen, được tùy chỉnh theo số serial của thiết bị, để khôi phục lại. Đó là lý do tại sao, trước khi làm bất cứ điều gì khác, tôi đã sao lưu tất cả mọi thứ. Không chỉ các tệp tin của tôi trên 12TB dung lượng lưu trữ, mà còn cả ổ SSD mà thiết bị dùng để khởi động. Bằng cách đó, tôi có thể khôi phục bản image về SSD trong tương lai nếu cần.
Để khởi động phần mềm của riêng bạn, bạn sẽ cần vô hiệu hóa dịch vụ Watchdog của Ugreen trong BIOS. Đây là một dịch vụ yêu cầu hệ thống phải phản hồi BIOS cứ sau ba phút, và nếu không, hệ thống sẽ tự khởi động lại. Mặc dù điều này có vẻ như một nỗ lực kém cỏi nhằm mục đích DRM, nhưng thực chất nó khá thông minh. Dịch vụ này tồn tại để đảm bảo rằng hệ thống không bị treo. Không có phản hồi trong ba phút? Khởi động lại hệ thống để mọi thứ trở lại bình thường. Thực tế, có những nỗ lực trong cộng đồng nhằm đưa dịch vụ Watchdog này hoạt động trên các hệ điều hành thay thế, cũng vì lý do này, với thành công đã được tìm thấy khi port nó sang TrueNAS. Sau khi vô hiệu hóa nó, tôi đã sử dụng Clonezilla để tạo một bản image của SSD và chỉ sao chép các tệp quan trọng tôi cần từ các ổ đĩa lưu trữ.
Lý do tại sao tôi cần sử dụng Proxmox ngay từ đầu, một phần là do phần cứng được Ugreen sử dụng. Thiết bị này có hai card mạng (NIC): một Intel I226-V 2.5GbE và một Aquantia AQC113 10GbE. Cả hai đều là NIC chất lượng cao (tốt hơn nhiều so với bất kỳ sản phẩm nào của Realtek, vốn bị ghét bỏ trong cộng đồng OPNsense và pfSense), nhưng chiếc từ Aquantia lại không có driver cho FreeBSD, hệ điều hành mà OPNsense chạy trên đó. Trong những trường hợp như thế này, việc ảo hóa trong Proxmox sẽ giải quyết vấn đề đó, và một số người vẫn sử dụng Proxmox để ảo hóa OPNsense để hưởng lợi từ các driver Linux tốt hơn. Hơn nữa, ảo hóa OPNsense có thể dẫn đến hiệu suất tốt hơn khi sử dụng các kết nối PPPoE gigabit, vì vậy, điều này hoàn toàn hợp lý.
Cài Đặt Proxmox và OPNsense: Quy Trình Chi Tiết
Quá Trình Cài Đặt Không Nguy Hiểm, Nhưng Cần Chú Ý
Khi mọi thứ đã được sao lưu và chuẩn bị kỹ lưỡng, việc cài đặt Proxmox và OPNsense diễn ra tương tự như khi tôi cài đặt chúng trên bất kỳ thiết bị nào khác. Cài đặt Proxmox từ USB, khởi động từ nó, cài đặt vào SSD, và cơ bản là xong. Cổng HDMI trên NAS Ugreen có thể xuất ra terminal Linux của Proxmox, và tôi có thể truy cập Proxmox qua mạng để vào giao diện web GUI của nó. Sau đó, tôi chỉ cần import file ISO của OPNsense và tạo một máy ảo. Sau khi cấu hình, quay lại tab phần cứng và thêm một bộ điều hợp mạng khác, đảm bảo chuyển cổng Ethernet thứ hai vào máy ảo trước khi khởi động nó.
Đối với mẫu NAS cụ thể này, tôi khuyên bạn nên đặt chế độ CPU là host và cấp quyền truy cập vào tất cả các nhân CPU. Việc cấp phát một lượng RAM kha khá cũng rất quan trọng, đặc biệt vì khi đã cấu hình xong, bạn không nên sử dụng NAS cho bất kỳ mục đích nào khác. Bạn muốn mạng của mình càng ổn định càng tốt, vì vậy việc đảm bảo không chạy bất kỳ thứ gì khác trên đó có thể gây ra vấn đề về hiệu suất hoặc thậm chí khiến nó bị treo là cực kỳ quan trọng. Nếu không, bạn sẽ không còn truy cập Internet được nữa. Bạn cũng sẽ cần kết nối trực tiếp thiết bị này với mạng ra ngoài khi cấu hình OPNsense, điều này có nghĩa là bạn phải rút phích cắm router hiện tại của mình. Tôi đã giữ router cũ của mình cắm điện càng lâu càng tốt trong quá trình này, chỉ để nó có thể duy trì DHCP và cho phép máy tính của tôi vẫn kết nối với giao diện web của OPNsense trong khi tôi đang cấu hình nó.
Khi mọi thứ đã được thiết lập và router OPNsense của bạn có thể lấy được IP WAN từ ISP, bước cuối cùng là thay đổi gateway. Trong trường hợp của tôi, tôi đã thay đổi nó thành 192.168.1.1. Tôi đã sẵn sàng thay đổi, rút phích cắm router của mình khỏi mạng, và sau đó áp dụng trong OPNsense. Việc cấp phát địa chỉ IP từ router của bạn sẽ vẫn tồn tại trong một thời gian, nhưng tôi đã để nó cắm điện càng lâu càng tốt để ngăn chặn bất kỳ vấn đề định tuyến cục bộ nào. Lần đầu tiên, tôi đã mất kết nối giữa chừng quá trình thiết lập vì tôi đã rút phích cắm router của mình ngay từ đầu quá trình cấu hình, và PC của tôi sau đó đã tự động nhận một địa chỉ IP riêng tự động (Automatic Private IP Address, hay IPIPA). Điều này xảy ra khi một máy tính không nhận được phản hồi từ máy chủ DHCP trên mạng, và khiến tôi không thể giao tiếp với router OPNsense của mình qua mạng cục bộ.
Hiện tại, tôi có thể sử dụng NAS Ugreen làm router của mình, và nó hoạt động hoàn hảo. Tôi không gặp bất kỳ vấn đề nào về hiệu suất, và CPU Pentium Gold 8505 đủ sức xử lý các kết nối gigabit qua PPPoE, ngay cả với rất nhiều thiết bị kết nối. Tôi thậm chí đã cấu hình CrowdSec và ZenArmor, và cả hai đều hoạt động hoàn hảo. Nhưng một câu hỏi vẫn còn đó… còn về bộ nhớ lưu trữ thì sao?
Lấy Lại Quyền Truy Cập Dữ Liệu Lưu Trữ Trên NAS Ugreen
Ugreen Không Sử Dụng Chuẩn Btrfs Thông Thường
Ugreen NAS 6 với các khay ổ đĩa mở ra
Mặc dù tôi đã sao lưu các tệp của mình (và do đó, tôi không thực sự quan tâm đến việc chúng có bị mất hay không), tôi vẫn muốn xem liệu mình có thể gắn các ổ đĩa và thiết lập một chia sẻ mạng cơ bản hay không. 12TB là một lượng lưu trữ lớn, vì vậy sẽ rất tuyệt nếu có thể sử dụng nó! Tôi đã thử gắn các ổ đĩa một cách cơ bản, sử dụng mdadm dựa trên Linux để tập hợp mảng, và nó đã hoạt động. Sau đó, tôi sử dụng kpartx để ánh xạ phân vùng được gắn nhãn UGREEN-DATA, vì đây là phần lớn dung lượng lưu trữ và tôi cho rằng nó chứa các tệp của mình. Tuy nhiên, một điều kỳ lạ đã xảy ra. Driver btrfs của Proxmox báo cho tôi biết rằng có một cờ không tương thích và nó không thể gắn kết hệ thống tệp. Khi tôi kiểm tra phiên bản btrfs, tôi cho rằng mình đã tìm thấy nguyên nhân; nó sử dụng btrfs-progs 6.2, được phát hành vào đầu năm 2023. Với việc tôi đã tạo hệ thống tệp vào đầu năm 2024, tôi nghĩ rằng nó chỉ đơn giản là thiếu tính năng.
Đầu tiên, tôi đã tạo một máy ảo Fedora và cập nhật phiên bản btrfs-progs lên phiên bản mới nhất, chuyển toàn bộ mảng đã tập hợp. Nó lại báo cho tôi biết rằng có một cờ không tương thích và do đó không thể gắn kết hệ thống tệp. Đến giai đoạn này, tôi cho rằng Ugreen chắc hẳn phải có một triển khai btrfs tùy chỉnh, điều này có lý vì NAS Ugreen hỗ trợ btrfs trong RAID 5, trong khi bản thân btrfs đã gặp nhiều vấn đề với RAID 5. Những vấn đề này phần lớn đã được khắc phục trong btrfs 6.2 (mà Ugreen NAS cũng xác định phiên bản của nó là), nhưng với tất cả các dịch vụ tùy chỉnh mà tôi có thể thấy Ugreen đã triển khai, tôi nghi ngờ rằng Ugreen cũng đã thực hiện các thay đổi đối với btrfs để phù hợp hơn với nhu cầu của mình. Điều này sẽ giải thích vấn đề cờ không tương thích.
Tôi còn một ý tưởng nữa về cách để gắn các ổ đĩa. Sẽ thế nào nếu tôi khôi phục SSD vào một máy ảo Proxmox trên một máy khác, sau đó sử dụng iSCSI để ánh xạ các ổ đĩa qua mạng, gắn kết chúng từ xa? Tôi đã sử dụng Ayaneo AM01 làm máy Proxmox để chạy Home Assistant của mình, và tôi còn rất nhiều tài nguyên dự phòng. Tôi đã khởi động Clonezilla trong máy ảo riêng của nó với một ổ đĩa ảo chứa đủ dung lượng, khôi phục SSD Ugreen gốc của tôi qua mạng. Mặc dù sau đó tôi cần thay đổi máy ảo thành UEFI, thêm đĩa EFI và sửa đổi các mục khởi động để thêm GRUB bootloader trong phân vùng /boot từ đĩa đã khôi phục, nhưng nó đã hoạt động. UGOS đang khởi động trong một máy ảo trên một máy không hề giống với thiết bị gốc mà nó đến từ. Thậm chí còn tốt hơn, ứng dụng NAS Ugreen chính thức trên PC và điện thoại của tôi có thể tự động nhận diện nó.
UGOS của Ugreen NAS đang chạy trong Proxmox, hiển thị giao diện người dùng
Tiếp theo, tôi đã chia sẻ các ổ đĩa qua mạng. Đầu tiên, tôi thực hiện bằng cách xử lý mọi thứ trên Ugreen NAS đang chạy Proxmox, sử dụng mdadm để tập hợp các ổ đĩa, và tôi đã kích hoạt nhóm volume bằng kpartx trước khi chuyển nó qua iSCSI. Sau đó, tôi có thể gắn ổ đĩa qua iSCSI trên Ayaneo AM01, đang ảo hóa UGOS, và gắn nó vào /volume1. Cuối cùng tôi đã có thể gắn kết hệ thống tệp btrfs và truy cập các tệp của mình! Phải thừa nhận rằng, không có nhiều chức năng khác hoạt động vì UGOS vẫn báo cáo rằng hệ thống RAID bị hỏng và “khóa” của tôi không còn khớp nữa, nhưng tôi có thể truy cập các tệp của mình bằng trình quản lý tệp tích hợp, đây là mục tiêu chính mà tôi muốn đạt được.
Kể từ đó, tôi đã thử nghiệm với UGOS để xem liệu mình có thể khiến các ổ đĩa được nhận diện một cách tự nhiên hay không, và tôi có thể đã tìm ra một cách. Tôi đã phát hiện ra một cơ sở dữ liệu trong các tệp hệ thống xác định số serial ổ đĩa của tôi, ID hệ thống tệp của chúng và ID hệ thống tệp tổng thể. Mặc dù ID hệ thống tệp tổng thể khớp, nhưng các ổ đĩa riêng lẻ rõ ràng không khớp, vì chúng chỉ là các chia sẻ iSCSI. Tôi nghi ngờ rằng mình có thể thay đổi các mục dữ liệu để khớp với số serial chia sẻ iSCSI, nhưng tôi cũng đoán rằng có nhiều điều đang diễn ra hơn để xác minh các ổ đĩa. Hơn nữa, ngay cả khi điều đó hoạt động, tôi không thể cập nhật UGOS nữa hoặc cài đặt ứng dụng vì vấn đề “khóa” đã đề cập ở trên. Tôi đã cố gắng tìm hiểu xem liệu tôi có thể giả mạo phản hồi hay không, nhưng tôi không thể tìm ra.
Giao diện cập nhật UGOS của Ugreen NAS hiển thị thông báo lỗi cập nhật
Như một nỗ lực cuối cùng trước khi bỏ cuộc, tôi thậm chí đã thử sử dụng tệp hosts để chuyển hướng yêu cầu xác thực đến một máy chủ cục bộ mà tôi đã khởi động trong Python để trả lời với trạng thái hợp lệ, nhưng nó chỉ báo lỗi mạng sau khi nhận được phản hồi. Tôi nghi ngờ rằng máy chủ cũng xử lý việc cung cấp gói cập nhật, và không thể đánh lừa máy chủ của Ugreen chỉ từ phía máy khách. Với điều đó, tôi đã cố gắng tìm ra nơi dịch vụ xác thực lấy khóa từ. Đó có thể là một con đường để khám phá vào một thời điểm nào đó.
Bất kể điều gì, tôi đã làm cho nó hoạt động! Tôi giờ đây đã có OPNsense trên NAS Ugreen, và các ổ đĩa lưu trữ trong đó đã có thể truy cập được. Tôi đã truy cập chúng theo cách này một thời gian, nhưng có lẽ tôi sẽ phá hủy mảng vào một thời điểm nào đó và xây dựng lại nó dưới Proxmox. Đó sẽ là một cách dễ dàng và an toàn hơn để thực sự sử dụng các ổ đĩa đó, nhưng đây là một thử nghiệm thú vị để chơi và thiết lập, và tôi rất vui vì mình đã thực hiện nó.
Ugreen NAS sở hữu phần cứng đáng kinh ngạc cho một thiết bị NAS, và đối với một router OPNsense, nó còn tốt hơn nữa. Nhược điểm duy nhất là tôi cần ảo hóa để khắc phục vấn đề driver, nhưng ngay cả khi đó, với việc tôi có kết nối PPPoE, đó có lẽ là điều tôi sẽ cần phải làm dù sao đi nữa. Hơn nữa, khi tôi hoàn thành việc thử nghiệm, tôi có thể phá hủy mảng RAID và xây dựng lại nó trong Proxmox. Điều đó có nghĩa là router của tôi sẽ không chỉ là một router, mà nó sẽ là một NAS đầy đủ chức năng. Đây là một thử nghiệm thú vị để khám phá và thiết lập, và tôi rất vui vì đã thực hiện nó. Khả năng kiểm soát mạng mà OPNsense mang lại là rất lớn, và tôi cũng đã học được rất nhiều điều thông qua đó!
Nếu bạn cũng đang tìm cách tận dụng tối đa phần cứng NAS của mình hoặc muốn trải nghiệm khả năng kiểm soát mạng vượt trội với OPNsense, đừng ngần ngại chia sẻ kinh nghiệm của bạn hoặc đặt câu hỏi trong phần bình luận bên dưới. Hãy cùng congnghemoi.net khám phá những giới hạn mới của công nghệ!