🛠 NAS Samba sur NVMe avec VLANs de gestion
Objectifs
Exploiter le slot M.2 Key-M (2280, PCIe 2.1 x1, NVMe) du NanoPi R5S pour en faire un NAS Samba rapide, tout en isolant le trafic de gestion par VLAN 802.1Q sur le bridge LAN. Vous combinerez : montage du NVMe avec ext4, partage Samba durci, création de sous-interfaces VLAN sur le bridge (br-lan.10 données / br-lan.20 gestion), et règles de filtrage entre zones. Nécessite un switch géré amont.
Matériel
- NanoPi R5S avec SSD NVMe M.2 2280 (le slot est PCIe 2.1 x1 : bridé ~500 Mo/s, largement au-dessus du 2,5GbE)
- Debian/Ubuntu ou Armbian ; switch réseau géré avec trunk 802.1Q sur le port du R5S
- Alimentation USB-C PD ≥ 10 W (le NVMe ajoute de la consommation)
Code complet
#!/bin/bash
# 1) NVMe : formatage (ATTENTION efface tout) + montage persistant
lsblk ; mkfs.ext4 -L nas /dev/nvme0n1 # vérifier le bon disque AVANT
mkdir -p /mnt/nas && blkid /dev/nvme0n1
# /etc/fstab : UUID=... /mnt/nas ext4 defaults,noatime 0 2
mount -a
# 2) VLANs sur le bridge LAN (switch amont en trunk 10,20)
ip link add link br-lan name br-lan.10 type vlan id 10
ip link add link br-lan name br-lan.20 type vlan id 20
ip addr add 192.168.10.1/24 dev br-lan.10 # données
ip addr add 192.168.20.1/24 dev br-lan.20 # gestion
ip link set br-lan.10 up ; ip link set br-lan.20 up
# 3) Samba durci sur le VLAN données uniquement
apt install -y samba
printf '[nas]\n path = /mnt/nas\n browseable = yes\n valid users = nasuser\n create mask = 0660\n' >> /etc/samba/smb.conf
systemctl restart smbd
# 4) Isoler la gestion : le VLAN 20 ne sort pas vers WAN
iptables -A FORWARD -i br-lan.20 -o eth0 -j DROP
iptables -A FORWARD -i br-lan.10 -o eth0 -j ACCEPT
Vérification attendue
lsblk montre le NVMe monté sur /mnt/nas ; smbclient -L //192.168.10.1 -U nasuser liste le partage. Depuis un client du VLAN 10, le transfert écriture atteint plusieurs centaines de Mo/s (limite PCIe 2.1 x1 ~500 Mo/s, cohérent avec le 2,5GbE à ~280 Mo/s). Le ping entre VLAN 20 et WAN échoue (règle DROP) alors que le SSH de gestion fonctionne. ip -d link show br-lan.10 confirme l'encapsulation vlan id 10.
Erreurs fréquentes
- Formater le mauvais disque : toujours vérifier
lsblket la taille avantmkfs.ext4; l'eMMC et la microSD sont aussi candidats. - Trunk mal configuré côté switch : sans port en mode trunk autorisant les VLAN 10 et 20, les sous-interfaces restent sans trafic.
- Oublier
noatimeet user quotas : l'usure de l'eMMC est un débat clos puisqu'on écrit sur NVMe, mais les logs Samba peuvent saturer le système — les journaliser sur le NAS. - Partager sur tous les ports : lier Samba aux interfaces voulues (
interfaces = br-lan.10,bind interfaces only) sinon le partage fuit côté WAN. - Sous-estimer le bridage PCIe : un NVMe Gen4 à 7 Go/s donnera ~500 Mo/s max ici ; ne pas acheter au-delà d'un bon Gen3.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash