Raspberry Pi làm NAS bằng Docker so với TrueNAS

Raspberry Pi làm NAS bằng Docker so với TrueNAS

Raspberry Pi là cái board máy tính nhỏ bằng bao thuốc lá, chạy chip ARM, giá rẻ hơn hẳn một cái PC thường. Gắn thêm ổ cứng USB, cài Docker lên, nó biến thành "NAS mini": chỗ chứa file dùng chung trong

Xem video tóm tắt: Raspberry Pi làm NAS bằng Docker so với TrueNAS

Raspberry Pi làm NAS mini là gì, giải quyết nỗi đau nào

Raspberry Pi là cái board máy tính nhỏ bằng bao thuốc lá, chạy chip ARM, giá rẻ hơn hẳn một cái PC thường. Gắn thêm ổ cứng USB, cài Docker lên, nó biến thành "NAS mini": chỗ chứa file dùng chung trong nhà, kiêm luôn vài dịch vụ nhẹ như chặn quảng cáo toàn mạng. Vấn đề nó giải quyết rất thực tế: bạn cần chỗ lưu ảnh, tài liệu, backup máy tính, mà chưa muốn bỏ vài trăm đô mua NAS hãng ngay từ đầu.

Với một cái Pi và vài container Docker, bạn làm được:

  • Chia sẻ file qua Samba (SMB) — máy Windows, macOS, điện thoại trong nhà đều mount được như ổ đĩa mạng bình thường.
  • Pi-hole chặn quảng cáo toàn mạng — cắm một lần, mọi thiết bị trong nhà (TV, điện thoại, laptop) đều đỡ quảng cáo mà không cần cài extension từng máy.
  • Backup nhẹ — nơi hứng ảnh điện thoại, tài liệu máy tính, không cần lên mạng ngoài.
  • Sandbox học Docker/Linux — nghịch hỏng thì reset container, không ảnh hưởng gì lớn, học phí rẻ hơn nghịch trên máy thật.

Vài tình huống hay gặp: người mới nghịch self-host chỉ cần chỗ backup ảnh điện thoại trong nhà, không cần truy cập từ ngoài. Gia đình nhỏ 2-4 người muốn share file nội bộ và chặn quảng cáo chạy 24/7 mà tiền điện không đáng kể — Pi 5 ngốn điện chưa tới 10W lúc idle, chạy cả tháng cũng chẳng thấm vào đâu so với tiền điện tủ lạnh. Và có một nhóm nữa: dân đang học Docker, dùng Pi làm bãi tập trước khi đầu tư nghiêm túc vào NAS hay mini-PC chạy TrueNAS.

Nói trước để khỏi hiểu lầm: bài này không phải hướng dẫn cài TrueNAS lên Raspberry Pi. Nhiều video trên mạng làm bạn tưởng chuyện đó khả thi — thực tế thì chưa, lý do nói rõ ngay bên dưới.

Sơ đồ biến Raspberry Pi thành NAS mini bằng Docker

Vì sao TrueNAS không chạy chính thức trên Raspberry Pi

TrueNAS SCALE và TrueNAS CORE đều yêu cầu CPU x86_64 — tài liệu Hardware Guide chính thức của TrueNAS ghi rõ tối thiểu "2-Core Intel 64-Bit or AMD x86_64", cộng 8GB RAM và ổ boot 16GB SSD. Raspberry Pi chạy chip ARM, khác kiến trúc hoàn toàn, nên không nằm trong danh sách phần cứng được hỗ trợ.

Có một bản port ARM64 không chính thức do cộng đồng làm, chạy qua UEFI, công bố khoảng tháng 8/2025, khởi động được trên Pi 4 và Pi 5. Nghe hấp dẫn, nhưng vấn đề nằm ở đúng chỗ bài này cần: phần Apps/container trên bản ARM đó tại thời điểm viết bài vẫn chưa chạy ổn định. Tức là nếu bạn lên Pi để chạy Docker qua TrueNAS, thứ bạn cần nhất lại là thứ chưa xài được. iXsystems — hãng đứng sau TrueNAS — cũng chưa công bố ARM là nền tảng chính thức. Thay vì đẩy bạn vào một bản port cộng đồng còn dang dở, bài này đi thẳng vào cách thật sự chạy được trên Pi: Raspberry Pi OS gốc cộng Docker Engine.

Tiêu chíTrueNAS yêu cầuRaspberry Pi
Kiến trúc CPUx86_64ARM
RAM tối thiểu8GB4-8GB tùy dòng
Ổ boot16GB SSDThẻ SD / ổ USB
Hỗ trợ chính thức✓✗
Apps/container ARMChưa ổn địnhDocker Engine ổn định

Vì sao chọn Raspberry Pi OS + Docker thay vì cố nhét hệ điều hành NAS lên Pi

Raspberry Pi OS (bản dựa trên Debian) là hệ điều hành chính chủ của Raspberry Pi Foundation, và Docker có repo cài đặt chính thức cho nó. Không cần bản ARM không chính thức của bất kỳ hệ điều hành NAS nào, không cần vá lỗi tương thích do cộng đồng chưa hoàn thiện.

Mỗi dịch vụ — Samba, Pi-hole — chạy trong một container riêng. Container nào lỗi thì restart container đó, hệ điều hành gốc không dính gì. Toàn bộ cấu hình gói trong một file docker-compose.yml duy nhất, không cần học giao diện quản trị NAS riêng như DSM hay TrueNAS Web UI — đổi lại bạn phải quen gõ lệnh, không có GUI click-click như dùng NAS hãng.

Chuẩn bị phần cứng

Chọn Pi 4 (4GB hoặc 8GB) hoặc Pi 5. Pi 5 nhanh hơn hẳn ở I/O nên nếu mua mới, ưu tiên Pi 5. Giá tham khảo 9/2026: một board Pi 5 8GB đơn lẻ đã rơi vào khoảng 125-200 USD — cao hơn vài năm trước khá nhiều vì thiếu RAM toàn cầu, đừng ngạc nhiên nếu thấy con số này chênh với mấy bài cũ nói "cả bộ chỉ 50-100 đô". Cộng thêm nguồn, case, và ổ lưu trữ, một bộ hoàn chỉnh rơi vào khoảng 200-280 USD — không còn rẻ bằng lần so với NAS hãng entry như Synology DS224+ (~300 USD) như trước, nhưng vẫn hợp lý nếu bạn đã có sẵn Pi nằm không trong ngăn kéo.

Vài điểm phần cứng cần để ý:

  • Bỏ thẻ SD, boot bằng USB SSD. Thẻ SD ghi liên tục (log, database Pi-hole) dễ hỏng trong vài tháng. Pi 4 và Pi 5 đều hỗ trợ boot từ USB, dùng luôn USB SSD vừa bền vừa nhanh hơn.
  • Nguồn đủ dòng. Pi 4 cần PSU chính hãng từ 3A/5V trở lên, Pi 5 cần 5A/5V nếu có gắn ổ ngoài ăn dòng. Sạc điện thoại thường không đủ, Pi sẽ tự reset ngẫu nhiên khi ổ USB kéo dòng cao — lỗi này rất hay bị nhầm là lỗi phần mềm trong khi thủ phạm là cục sạc.
  • Ổ lưu trữ ngoài qua USB. Ban đầu một ổ USB SSD là đủ. Khi dữ liệu tăng và cần ổ dung lượng lớn cắm 24/7, nên chuyển sang ổ NAS-grade thay vì ổ desktop thông thường — phần này bàn kỹ hơn ở mục nâng cấp bên dưới.
Z80 Single Board Computer
Ảnh: Twylo (flickr) CC BY-SA

Cài Raspberry Pi OS, Docker Engine và Docker Compose

Cài Raspberry Pi OS bản 64-bit (Debian 12 "Bookworm") qua Raspberry Pi Imager — nhớ chọn đúng bản 64-bit, bản 32-bit vẫn tồn tại và dễ chọn nhầm. Sau khi SSH được vào Pi, cài Docker theo script apt chính thức:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER

Lệnh này tự thêm đúng repo — download.docker.com/linux/raspbian cho bản 32-bit, hoặc repo Debian arm64 nếu bạn dùng Raspberry Pi OS 64-bit — và cài trọn bộ docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin. Đăng xuất rồi đăng nhập lại (hoặc reboot) để lệnh usermod có hiệu lực, không thì mỗi lần gõ docker lại phải chèn sudo.

Kiểm tra đã có Compose plugin chưa:

docker compose version

docker-compose.yml cho Samba và Pi-hole

Tạo thư mục làm việc, ví dụ /home/pi/nas-stack, rồi viết file docker-compose.yml:

services:
  samba:
    image: dperson/samba
    container_name: samba
    restart: unless-stopped
    ports:
      - "137:137/udp"
      - "138:138/udp"
      - "139:139"
      - "445:445"
    volumes:
      - /mnt/usbssd/share:/share
    command: '-u "tester;Test2026#" -s "share;/share;yes;no;no;tester"'

  pihole:
    image: pihole/pihole:latest
    container_name: pihole
    restart: unless-stopped
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "80:80"
      - "443:443"
    environment:
      TZ: 'Asia/Ho_Chi_Minh'
      WEBPASSWORD: 'doi-mat-khau-nay'
    volumes:
      - ./pihole/etc-pihole:/etc/pihole
      - ./pihole/etc-dnsmasq.d:/etc/dnsmasq.d

dperson/samba có sẵn build cho arm64 và armhf nên chạy thẳng trên Pi không cần build lại. Đổi /mnt/usbssd/share thành đường dẫn ổ USB thật của bạn, và đổi user/mật khẩu trong dòng command — đừng để nguyên mẫu trong bài. Chạy:

docker compose up -d

Xong thì từ máy Windows gõ \\ip-cua-pi\share vào File Explorer, hoặc trên macOS dùng Finder → Connect to Server với smb://ip-cua-pi/share. Pi-hole thì vào http://ip-cua-pi/admin, đổi DNS trên router trỏ về IP của Pi là quảng cáo toàn mạng bắt đầu bị chặn.

Tốc độ thực tế, đừng kỳ vọng như NAS hãng

Cổng Ethernet onboard của Pi 4 và Pi 5 đều là Gigabit, nhưng theo benchmark thực tế trên diễn đàn Raspberry Pi, tốc độ copy file thực đo dao động khoảng 60-105MB/s tùy điều kiện — cổng Ethernet onboard chính là nút cổ chai, không phải ổ cứng hay CPU. Quen dùng NAS hãng chạy ổn định quanh 110MB/s rồi kỳ vọng Pi làm được y vậy? Bạn sẽ hơi hụt hẫng. Muốn khá hơn thì gắn thêm adapter 2.5GbE qua USB, nhưng vẫn bị giới hạn bởi băng thông USB dùng chung trên board — không phải phép màu, chỉ đỡ nghẽn hơn một chút.

Lỗi hay gặp và cách xử lý

  • Dùng thẻ SD làm ổ chính: ghi liên tục làm thẻ hỏng, mất dữ liệu không báo trước. Xử lý: boot và lưu trữ trên USB SSD ngay từ đầu, hạn chế log ghi liên tục nếu vẫn phải dùng SD cho việc khác.
  • Nguồn yếu: sạc điện thoại thường khiến Pi tự reset khi ổ USB kéo dòng cao, nhất là ổ 3.5" không có nguồn ngoài. Xử lý: dùng PSU chính hãng đúng công suất, ổ 3.5" nên có nguồn riêng thay vì ăn dòng qua cổng USB.
  • Kỳ vọng tốc độ sai: chờ đợi hiệu năng như NAS hãng trong khi cổng Gigabit onboard đã là điểm nghẽn cứng. Xử lý: set kỳ vọng đúng ngay từ đầu, hoặc lên adapter 2.5GbE nếu thực sự cần.
  • Nhầm "TrueNAS chạy được trên Pi": nhiều bài/video không chính thức làm người mới tưởng đây là hướng đi khả thi. Bản port ARM cộng đồng hiện chưa chạy ổn định phần Apps/container — đừng đi con đường đó nếu mục tiêu là Docker.
  • Chạy quá nhiều container trên Pi 4GB: dễ bị OOM kill khi RAM hết. Xử lý: theo dõi bằng docker stats, giới hạn số dịch vụ chạy đồng thời, hoặc lên bản 8GB nếu định chạy thêm vài container nữa.
Western Digital MyBook Essential 1TB
Ảnh: William Hook (flickr) CC BY-SA

Khi nào nên bỏ Pi, lên mini-PC chạy TrueNAS

Pi hợp với 1-3 người dùng, tải nhẹ, chạy không liên tục nặng. Vượt qua ngưỡng đó, giới hạn phần cứng lộ ra rõ: không có ZFS thật (Pi không đủ RAM và không có ECC để ZFS phát huy đúng nghĩa), không RAID phần cứng, cổng mạng giới hạn Gigabit chia sẻ băng thông với USB, và ổ cứng phải đi qua cổng USB thay vì kết nối trực tiếp như SATA trên NAS thật.

Vài dấu hiệu nên chuyển sang mini-PC chạy TrueNAS SCALE hoặc CORE (loạt bài build TrueNAS mini-PC nashub.vn đã có hướng dẫn riêng):

  • Nhiều người dùng truy cập đồng thời, không chỉ 2-3 thiết bị trong nhà.
  • Cần transcode video (Plex, Jellyfin) — CPU ARM của Pi đuối hẳn ở khoản này.
  • Tải nặng chạy 24/7, không chỉ backup lai rai.
  • Cần RAID/ZFS thật để bảo vệ dữ liệu quan trọng, không chỉ một ổ USB đơn lẻ.
  • Muốn ECC RAM cho dữ liệu nhạy cảm với lỗi bit.
Tiêu chíPi + DockerMini-PC TrueNASNAS hãng 2 khay
Chi phí khởi điểm~200-280 USD~300-500 USD~300 USD trở lên
RAID/ZFS thậtKhôngCóCó (SHR/RAID)
ECC RAMKhông hỗ trợTùy mainboardHiếm ở entry
Transcode videoYếuTốt (có iGPU)Tốt (entry-mid)
Độ phức tạpCao (CLI)Trung bình (Web UI)Thấp (GUI đầy đủ)

Nâng cấp ổ lưu trữ ngoài: chọn ổ NAS-grade, đừng lấy đại ổ desktop

Khi dữ liệu tăng và bạn gắn thêm ổ dung lượng lớn qua USB cho Pi, đây là lúc đáng để ý loại ổ. Ổ desktop thông thường không thiết kế để chạy 24/7 liên tục, còn ổ NAS-grade được rate workload và bảo hành riêng cho việc đó. Một lưu ý chung khi mua: cùng một dòng sản phẩm có thể có model dùng công nghệ ghi CMR và model dùng SMR khác nhau — trước khi mua nên tra mã model trên datasheet của hãng để chắc đúng loại mình cần, đừng chỉ nhìn tên dòng sản phẩm.

ModelTốc độWorkload/nămBảo hànhPhù hợp
WD Red Plus5400-7200rpm~180TB3 nămGia đình, 1-4 khay
WD Red Pro7200rpm~300TB5 nămNhiều khay, tải nặng
Seagate IronWolf5400-7200rpm~180TB3 nămGia đình, 1-4 khay
IronWolf Pro7200rpm~300TB5 nămNhiều khay, tải nặng
Toshiba N3007200rpm~180TB5 nămGia đình đến trung bình

Không có hãng nào "tốt nhất tuyệt đối" — WD Red Plus, IronWolf hay N300 đều là lựa chọn hợp lý cho NAS gia đình gắn ngoài qua Pi. Lên đến mini-PC TrueNAS nhiều khay hoặc tải nặng hơn thì mới cần nhắc tới bản Pro của WD hay Seagate.

Bảo mật và bảo trì

Đừng mở cổng Samba (445) hay Pi-hole admin UI (80/443) thẳng ra Internet — chỉ dùng trong LAN, cần truy cập từ xa thì đi qua VPN. Đặt user/mật khẩu riêng cho Samba, tránh share dạng guest ghi được nếu máy có dữ liệu quan trọng. Nghe hiển nhiên, nhưng đây là chỗ nhiều người bỏ qua lúc setup nhanh rồi quên luôn.

Image Docker không tự vá lỗ hổng, nên định kỳ chạy docker compose pull && docker compose up -d để cập nhật Samba và Pi-hole, cùng với cập nhật Raspberry Pi OS. Và nhớ: Pi không có RAID hay ZFS bảo vệ dữ liệu như NAS thật, nên nếu dữ liệu trên đó quan trọng, vẫn cần một chiến lược backup riêng — Pi là nơi lưu trữ tiện, không phải nơi lưu trữ an toàn tuyệt đối.

Chọn Pi hay lên NAS thật

Pi + Docker là điểm khởi đầu tốt để học và giải quyết nhu cầu nhẹ trong nhà — share file, chặn quảng cáo, backup ảnh. Giá không còn rẻ như vài năm trước, nhưng vẫn thấp hơn NAS hãng nếu bạn tận dụng được Pi có sẵn. Khi nhu cầu vượt quá vài người dùng, cần transcode, hoặc bắt đầu quan tâm đến chuyện mất dữ liệu vì không có RAID — đó là lúc đáng nhìn sang mini-PC chạy TrueNAS SCALE hay CORE, nơi ZFS và Apps thật sự làm đúng việc của chúng.

Mua NAS chính hãng

Xem tất cả →

Thiết bị NAS Synology & ổ cứng chính hãng Nhật Bản — tư vấn cấu hình, lắp đặt và bảo hành. Mua qua Shopee, giao toàn quốc.

No comments yet