🛠 Deploying a High-Performance NAS and Network Server on Xerxes Pi 2026
Objectifs
This advanced tutorial aims to transform the Xerxes Pi 2026 board into a high-performance file server (NAS) coupled with a network gateway. We will leverage the M.2 NVMe storage for minimal latency and PoE power for a clean 1U rack installation. The goal is to optimize I/O performance while ensuring reliable connectivity via the Broadcom Gigabit port.
Matériel nécessaire
- Xerxes Pi 2026 board with Raspberry Pi CM4 or CM5 module.
- NVMe M.2 SSD (2230 or 2280 format depending on the provided heatsink).
- PoE+ (802.3at) compatible network switch or PoE injector.
- Cat6 Ethernet cable.
- SSH access to the board.
- Recent Raspberry Pi OS Lite or Ubuntu Server image file.
Étapes
- Physical Installation and Power: Insert the CM module into the 100-pin mezzanine connectors. Install the NVMe SSD into the M.2 M-key slot located under the board, ensuring the provided heatsink is properly screwed to avoid thermal throttling. Connect the Ethernet cable to the BCM54210PE port. Plug the PoE+ cable into the dedicated port. Verify that the power source selection jumper is configured to accept PoE.
- NVMe Storage Configuration: Once the system boots, identify the disk with
lsblk. Format the NVMe as ext4 for native Linux performance:
sudo mkfs.ext4 /dev/nvme0n1
sudo mkdir /mnt/nvme
sudo mount /dev/nvme0n1 /mnt/nvme
Add an entry to /etc/fstab for automatic mounting at boot.
- Network Optimization: The Broadcom BCM54210PE controller sometimes requires adjustments for full speed. Enable jumbo frames if your switch supports them and disable power-saving mode:
sudo ethtool -s eth0 speed 1000 duplex full autoneg off
sudo ethtool -K eth0 tso off gso off
- File Service Deployment: Install Samba to share the NVMe storage:
sudo apt update && sudo apt install samba -y
sudo nano /etc/samba/smb.conf
Configure a share pointing to /mnt/nvme with appropriate permissions. Restart the service with sudo systemctl restart smbd.
- Monitoring and Automation: Use the provided macOS app or an SSH script to monitor NVMe temperatures and network load. Configure a Docker container via the management interface to host complementary services like Nextcloud or Plex, taking advantage of the PCIe Gen 2 x1 bandwidth.
Vérification
Test transfer speeds via dd or fio to confirm the NVMe reaches its theoretical rates. Verify Ethernet link stability with ethtool eth0. Ensure the board stays within acceptable thermal limits under sustained load thanks to the configured passive/active cooling.
Pour aller plus loin
Explore using the Qwiic connectors to add environmental sensors (temperature/humidity) in the rack. You can also configure a ZFS file system on the NVMe for data protection against corruption, although this consumes more RAM.
Other tutorials for this board
Code examples for this board
poe-status-monitor.pypythonnvme-benchmark.shbashqwiic-bme280-reader.pypythonpwm-fan-control.pypythonethernet-poe-config.shbashnvme_storage_benchmark-6.inobash