Auto-update blog content from Obsidian: 2026-04-29 19:59:52
Some checks failed
Blog Deployment / Check-Rebuild (push) Successful in 8s
Blog Deployment / Build (push) Successful in 31s
Blog Deployment / Deploy-Staging (push) Successful in 9s
Blog Deployment / Test-Staging (push) Failing after 3s
Blog Deployment / Merge (push) Has been skipped
Blog Deployment / Deploy-Production (push) Has been skipped
Blog Deployment / Test-Production (push) Has been skipped
Blog Deployment / Clean (push) Has been skipped
Blog Deployment / Notify (push) Successful in 3s
Some checks failed
Blog Deployment / Check-Rebuild (push) Successful in 8s
Blog Deployment / Build (push) Successful in 31s
Blog Deployment / Deploy-Staging (push) Successful in 9s
Blog Deployment / Test-Staging (push) Failing after 3s
Blog Deployment / Merge (push) Has been skipped
Blog Deployment / Deploy-Production (push) Has been skipped
Blog Deployment / Test-Production (push) Has been skipped
Blog Deployment / Clean (push) Has been skipped
Blog Deployment / Notify (push) Successful in 3s
This commit is contained in:
223
content/post/18-create-nas-server-with-truenas/index.fr.md
Normal file
223
content/post/18-create-nas-server-with-truenas/index.fr.md
Normal file
@@ -0,0 +1,223 @@
|
||||
---
|
||||
slug: create-nas-server-with-truenas
|
||||
title: Construction et installation de mon NAS avec TrueNAS SCALE
|
||||
description: "Guide pas à pas pour un NAS TrueNAS SCALE en homelab : choix du matériel, installation, pool ZFS et datasets, partages SMB/NFS et snapshots."
|
||||
date: 2026-02-27
|
||||
draft: false
|
||||
tags:
|
||||
- truenas
|
||||
categories:
|
||||
- homelab
|
||||
---
|
||||
## Introduction
|
||||
|
||||
Dans mon homelab, j'ai besoin d'un endroit pour stocker des données en dehors de mon cluster Proxmox VE.
|
||||
|
||||
Au départ, mon unique serveur physique a 2 disques HDD de 2 To. Quand j'ai installé Proxmox dessus, ces disques sont restés attachés à l'hôte. Je les ai partagés via un serveur NFS dans un LXC, loin des bonnes pratiques.
|
||||
|
||||
Cet hiver, le nœud a commencé à montrer des signes de faiblesse, s'éteignant sans raison. Ce compagnon a maintenant 7 ans. Lorsqu'il est passé hors ligne, mes partages NFS ont disparu, entraînant la chute de quelques services dans mon homelab. Le remplacement du ventilateur du CPU l'a stabilisé, mais je veux maintenant un endroit plus sûr pour ces données.
|
||||
|
||||
Dans cet article, je vais vous expliquer comment j'ai construit mon NAS avec TrueNAS.
|
||||
|
||||
---
|
||||
## Choisir la bonne plateforme
|
||||
|
||||
Depuis un moment je voulais un NAS. Pas un Synology ou QNAP prêt à l'emploi, même si je pense qu'ils sont de bons produits. Je voulais le construire moi‑même. L'espace est limité dans mon petit rack, et les boîtiers NAS compacts sont rares.
|
||||
|
||||
### Matériel
|
||||
|
||||
Je suis parti sur un NAS full‑flash. Pourquoi ?
|
||||
|
||||
- C'est rapide
|
||||
- C'est ~~furieux~~ compact
|
||||
- C'est silencieux
|
||||
- Ça consomme moins d'énergie
|
||||
- Ça chauffe moins
|
||||
|
||||
Le problème est le prix.
|
||||
|
||||
La vitesse réseau est de toute façon mon goulot d'étranglement, mais les autres avantages sont exactement ce que je veux. Je n'ai pas besoin d'une capacité massive, environ 2 To utilisables suffisent.
|
||||
|
||||
Mon premier choix était le [Aiffro K100](https://www.aiffro.com/fr/products/all-ssd-nas-k100). Mais la livraison vers la France a presque doublé le prix. Finalement j'ai opté pour un [Beelink ME mini](https://www.bee-link.com/products/beelink-me-mini-n150?variant=48678160236786).
|
||||
|
||||
Ce petit cube a :
|
||||
- CPU Intel N200
|
||||
- 12 Go de RAM
|
||||
- 2x Ethernet 2,5 Gbps
|
||||
- Jusqu'à 6x disques NVMe
|
||||
- Une puce eMMC 64 Go pour l'OS
|
||||
|
||||
J'ai commencé avec 2 disques NVMe pour l'instant, 2 To chacun.
|
||||
|
||||
### Logiciel
|
||||
|
||||
Maintenant que le matériel est choisi, quel logiciel vais‑je utiliser ?
|
||||
|
||||
Mes besoins étaient simples :
|
||||
- partages NFS
|
||||
- support ZFS
|
||||
- capacités VM
|
||||
|
||||
J'ai considéré FreeNAS/TrueNAS, OpenMediaVault et Unraid. J'ai choisi TrueNAS SCALE 25.10 Community Edition. Pour être clair : FreeNAS a été renommé TrueNAS CORE (basé sur FreeBSD), tandis que TrueNAS SCALE est la gamme basée sur Linux. J'utilise SCALE.
|
||||
|
||||
---
|
||||
## Installer TrueNAS
|
||||
|
||||
⚠️ J'ai installé TrueNAS sur la puce eMMC. Ce n'est pas recommandé, l'endurance de l'eMMC peut être un risque.
|
||||
|
||||
L'installation ne s'est pas déroulée aussi bien que prévu...
|
||||
|
||||
J'utilise [Ventoy](https://www.ventoy.net/en/index.html) pour garder plusieurs ISOs sur une clé USB. J'étais en version 1.0.99, et l'ISO ne se lançait pas. La mise à jour vers 1.1.10 a résolu le problème :
|
||||

|
||||
|
||||
Mais là j'ai rencontré un autre problème lors du lancement de l'installation sur mon périphérique de stockage eMMC :
|
||||
```
|
||||
Failed to find partition number 2 on mmcblk0
|
||||
```
|
||||
|
||||
J'ai trouvé une solution sur ce [post](https://forums.truenas.com/t/installation-failed-on-emmc-odroid-h4/15317/12) :
|
||||
- Entrer dans le shell
|
||||

|
||||
- Éditer le fichier `/lib/python3/dist-packages/truenas_installer/utils.py`
|
||||
- Déplacer la ligne `await asyncio.sleep(1)` juste sous `for _try in range(tries):`
|
||||
- Modifier la ligne 46 pour ajouter `+ 'p'` :
|
||||
`for partdir in filter(lambda x: x.is_dir() and x.name.startswith(device + 'p'), dir_contents):`
|
||||

|
||||
- Quitter le shell et lancer l'installation sans redémarrer
|
||||
|
||||
L'installateur a finalement pu passer :
|
||||

|
||||
|
||||
Une fois l'installation terminée, j'ai éteint la machine. Ensuite je l'ai installée dans mon rack au-dessus des 3 nœuds Proxmox VE. J'ai branché les deux câbles Ethernet depuis mon switch et je l'ai mise sous tension.
|
||||
|
||||
## Configurer TrueNAS
|
||||
|
||||
Par défaut, TrueNAS utilise DHCP. J'ai trouvé son adresse MAC dans mon interface UniFi et créé une réservation DHCP. Dans OPNsense, j'ai ajouté un override host pour Dnsmasq. Dans le plugin Caddy, j'ai configuré un domaine pour TrueNAS pointant vers cette IP, puis j'ai redémarré.
|
||||
|
||||
✅ Après quelques minutes, TrueNAS est maintenant disponible sur [https://nas.vezpi.com](https://nas.vezpi.com/).
|
||||
|
||||
### Paramètres généraux
|
||||
|
||||
Pendant l'installation, je n'ai pas défini de mot de passe pour truenas_admin. La page de connexion m'a forcé à en choisir un :
|
||||

|
||||
|
||||
Une fois le mot de passe mis à jour, j'arrive sur le tableau de bord. L'interface donne une bonne impression au premier abord :
|
||||

|
||||
|
||||
J'explore rapidement l'interface, la première chose que je fais est de changer le hostname en `granite` et de cocher la case en dessous pour hériter du domaine depuis DHCP :
|
||||

|
||||
|
||||
Dans les `General Settings`, je change les paramètres de `Localization`. Je mets le Console Keyboard Map sur `French (AZERTY)` et le Fuseau horaire sur `Europe/Paris`.
|
||||
|
||||
Je crée un nouvel utilisateur `vez`, avec le rôle `Full Admin` dans TrueNAS. J'autorise SSH uniquement pour l'authentification par clé, pas de mots de passe :
|
||||

|
||||
|
||||
Finalement je retire le rôle admin de `truenas_admin` et verrouille le compte.
|
||||
|
||||
### Création du pool
|
||||
|
||||
Dans TrueNAS, un pool est une collection de stockage créée en combinant plusieurs disques en un espace unifié géré par ZFS.
|
||||
|
||||
Dans la page `Storage`, je trouve mes `Disks`, où je peux confirmer que TrueNAS voit mon couple de NVMe :
|
||||

|
||||
|
||||
De retour sur le `Storage Dashboard`, je clique sur le bouton `Create Pool`. Je nomme le pool `storage` parce que je suis vraiment inspiré pour lui donner un nom :
|
||||

|
||||
|
||||
Puis je sélectionne la disposition `Mirror` :
|
||||

|
||||
|
||||
J'explore rapidement les configurations optionnelles, mais les valeurs par défaut me conviennent : autotrim, compression, pas de dedup, etc. À la fin, avant de créer le pool, il y a une section `Review` :
|
||||

|
||||
|
||||
Après avoir cliqué sur `Create Pool`, on m'avertit que tout sur les disques sera effacé, ce que je confirme. Finalement le pool est créé.
|
||||
|
||||
### Création des datasets
|
||||
|
||||
Un dataset est un système de fichiers à l'intérieur d'un pool. Il peut contenir des fichiers, des répertoires et des datasets enfants, il peut être partagé via NFS et/ou SMB. Il vous permet de gérer indépendamment les permissions, la compression, les snapshots et les quotas pour différents ensembles de données au sein du même pool de stockage.
|
||||
|
||||
#### Partage SMB
|
||||
|
||||
Créons maintenant mon premier dataset `files` pour partager des fichiers sur le réseau pour mes clients Windows, comme des ISOs, etc :
|
||||

|
||||
|
||||
Lors de la création de datasets SMB dans SCALE, définissez le Share Type sur SMB afin que les bons ACL/xattr par défaut s'appliquent. TrueNAS me demande alors de démarrer/activer le service SMB :
|
||||

|
||||
|
||||
Depuis mon portable Windows, j'essaie d'accéder à mon nouveau partage `\\granite.mgmt.vezpi.com\files`. Comme prévu on me demande des identifiants.
|
||||
|
||||
Je crée un nouveau compte utilisateur avec permission SMB.
|
||||
|
||||
✅ Succès : je peux parcourir et copier des fichiers.
|
||||
|
||||
#### Partage NFS
|
||||
|
||||
Je crée un autre dataset : `media`, et un enfant `photos`. Je crée un partage NFS à partir de ce dernier.
|
||||
|
||||
Sur mon serveur NFS actuel, les fichiers photos sont possédés par `root` (gérés par _Immich_). Plus tard je verrai comment migrer vers une version sans root.
|
||||
|
||||
⚠️ Pour l'instant je définis, dans les `Advanced Options`, le `Maproot User` et le `Maproot Group` sur `root`. Cela équivaut à l'attribut NFS `no_squash_root`, le `root` local du client reste `root` sur le serveur, ne faites pas ça :
|
||||

|
||||
|
||||
✅ Je monte le partage NFS sur un client, cela fonctionne bien.
|
||||
|
||||
Après la configuration initiale, mes datasets du pool `storage` ressemblent à :
|
||||
|
||||
- `backups`
|
||||
- `duplicati` : backend de stockage [Duplicati](https://duplicati.com/)
|
||||
- `proxmox` : futur Proxmox Backup Server
|
||||
- `cloud` : données `Nextcloud`
|
||||
- `files` :
|
||||
- `media`
|
||||
- `downloads`
|
||||
- `photos`
|
||||
- `videos`
|
||||
|
||||
J'ai mentionné les capacités VM dans mes exigences. Je ne couvrirais pas cela dans ce post, ce sera abordé la prochaine fois.
|
||||
|
||||
### Protection des données
|
||||
|
||||
Il est maintenant temps d'activer quelques fonctionnalités de protection des données :
|
||||

|
||||
|
||||
Je veux créer des snapshots automatiques pour certains de mes datasets, ceux qui me tiennent le plus à cœur : mes fichiers cloud et les photos.
|
||||
|
||||
Créons des tâches de snapshot. Je clique sur le bouton `Add` à côté de `Periodic Snapshot Tasks` :
|
||||
- cloud : snapshots quotidiens, conserver pendant 2 mois
|
||||
- photos : snapshots quotidiens, conserver pendant 7 jours
|
||||

|
||||
|
||||
Je pourrais aussi configurer une `Cloud Sync Task`, mais Duplicati gère déjà les sauvegardes hors site.
|
||||
|
||||
---
|
||||
## Utilisation de TrueNAS
|
||||
|
||||
Maintenant que mon instance TrueNAS est configurée, je dois planifier la migration des données depuis mon serveur NFS actuel vers TrueNAS.
|
||||
|
||||
### Migration des données
|
||||
|
||||
Pour chacun de mes partages NFS actuels, sur un client, je monte le nouveau partage NFS pour synchroniser les données :
|
||||
```
|
||||
sudo mkdir /new_photos
|
||||
sudo mount 192.168.88.30:/mnt/storage/media/photos /new_photos
|
||||
sudo rsync -a --info=progress2 /data/photo/ /new_photos
|
||||
```
|
||||
|
||||
À la fin, je pourrais décommissionner mon ancien serveur NFS sur le LXC. La disposition des datasets après migration ressemble à ceci :
|
||||

|
||||
|
||||
### Application Android
|
||||
|
||||
Par curiosité, j'ai cherché sur le Play Store une application pour gérer une instance TrueNAS. J'ai trouvé [Nasdeck](https://play.google.com/store/apps/details?id=com.strtechllc.nasdeck&hl=fr&pli=1), qui est plutôt sympa. Voici quelques captures d'écran :
|
||||

|
||||
|
||||
---
|
||||
## Conclusion
|
||||
|
||||
Mon NAS est maintenant prêt à stocker mes données.
|
||||
|
||||
Je n'ai pas abordé les capacités VM car je vais bientôt les expérimenter pour installer Proxmox Backup Server en VM. De plus je n'ai pas configuré les notifications, je dois mettre en place une solution pour recevoir des alertes par email dans mon système de notification.
|
||||
|
||||
TrueNAS est un excellent produit. Il nécessite du matériel capable pour ZFS, mais l'expérience est excellente une fois configuré.
|
||||
|
||||
Étape suivante : déployer Proxmox Backup Server en tant que VM sur TrueNAS, puis revoir les permissions NFS pour passer Immich en mode sans root.
|
||||
219
content/post/18-create-nas-server-with-truenas/index.md
Normal file
219
content/post/18-create-nas-server-with-truenas/index.md
Normal file
@@ -0,0 +1,219 @@
|
||||
---
|
||||
slug: create-nas-server-with-truenas
|
||||
title: Build and install of my NAS with TrueNAS Scale
|
||||
description: "Step-by-step TrueNAS SCALE homelab NAS build: hardware choice, installation, ZFS pool and datasets, SMB/NFS shares and snapshots."
|
||||
date: 2026-02-27
|
||||
draft: false
|
||||
tags:
|
||||
- truenas
|
||||
categories:
|
||||
- homelab
|
||||
---
|
||||
## Introduction
|
||||
|
||||
In my homelab, I need a place to store data outside of my Proxmox VE cluster.
|
||||
|
||||
At the beginning, my single physical server has 2 HDDs disks of 2 TB. When I installed Proxmox on it, those disks stayed attached to the host. I shared them via an NFS server in an LXC, far from best practice.
|
||||
|
||||
This winter, the node started to fail, shutting down for no reason. This buddy is now 7 years old. When it went offline, my NFS shares disappeared, taking a few services down with them in my homelab. Replacing the CPU fan stabilized it, but I now want a safer home for that data.
|
||||
|
||||
In this article, I’ll walk you through how I built my NAS with TrueNAS.
|
||||
|
||||
---
|
||||
## Choose the right platform
|
||||
|
||||
For a while I wanted a NAS. Not an out‑of‑the‑box Synology or QNAP, even though I think they’re great products. I wanted to build mine. Space is tight in my tiny rack, and small NAS cases are rare.
|
||||
|
||||
### Hardware
|
||||
|
||||
I went for an all‑flash NAS. Why?
|
||||
- It's fast
|
||||
- It's ~~furious~~ compact
|
||||
- It's quiet
|
||||
- It uses less power
|
||||
- It runs cooler
|
||||
|
||||
The trade‑off is price.
|
||||
|
||||
Network speed is my bottleneck anyway, but the other benefits are exactly what I want. I don’t need massive capacity, about 2 TB usable is enough.
|
||||
|
||||
My first choice was the [Aiffro K100](https://www.aiffro.com/fr/products/all-ssd-nas-k100). But shipping to France nearly doubled the price. Finally I ended up with a [Beelink ME mini](https://www.bee-link.com/products/beelink-me-mini-n150?variant=48678160236786).
|
||||
|
||||
This small cube has:
|
||||
- Intel N200 CPU
|
||||
- 12 GB RAM
|
||||
- 2x 2.5 Gbps Ethernet
|
||||
- Up to 6x NVMe drives
|
||||
- A 64 GB eMMC chip for the OS
|
||||
|
||||
I started with 2 NVMe drives for now, 2 TB each.
|
||||
|
||||
### Software
|
||||
|
||||
Now that the hardware is chosen, which software will I use?
|
||||
|
||||
My requirements were simple:
|
||||
- NFS shares
|
||||
- ZFS support
|
||||
- VM capabilities
|
||||
|
||||
I considered FreeNAS/TrueNAS, OpenMediaVault, and Unraid. I chose TrueNAS SCALE 25.10 Community Edition. For clarity: FreeNAS was renamed TrueNAS CORE (FreeBSD‑based), while TrueNAS SCALE is the Linux‑based line. I’m using SCALE.
|
||||
|
||||
---
|
||||
## Install TrueNAS
|
||||
|
||||
⚠️ I installed TrueNAS on the eMMC chip. That’s not recommended, eMMC endurance can be a risk.
|
||||
|
||||
The install didn’t go as smoothly as expected...
|
||||
|
||||
I use [Ventoy](https://www.ventoy.net/en/index.html) to keep multiple ISOs on one USB stick. I was in version 1.0.99, and the ISO wouldn't launch. Updating to 1.1.10 fixed it:
|
||||

|
||||
|
||||
But here I encountered another problem when launching the installation on my eMMC storage device:
|
||||
```
|
||||
Failed to find partition number 2 on mmcblk0
|
||||
```
|
||||
|
||||
I found a solution on this [post](https://forums.truenas.com/t/installation-failed-on-emmc-odroid-h4/15317/12):
|
||||
- Enter the shell
|
||||

|
||||
- Edit the file `/lib/python3/dist-packages/truenas_installer/utils.py`
|
||||
- Move the line `await asyncio.sleep(1)` right beneath `for _try in range(tries):`
|
||||
- Edit line 46 to add `+ 'p'`:
|
||||
`for partdir in filter(lambda x: x.is_dir() and x.name.startswith(device + 'p'), dir_contents):`
|
||||

|
||||
- Exit the shell and start the installation without reboot
|
||||
|
||||
The installer was finally able to get through:
|
||||

|
||||
|
||||
Once the installation was complete, I shut down the machine. Then I installed it into my rack on top of the 3 Proxmox VE nodes. I plugged both Ethernet cables from my switch and powered it up.
|
||||
|
||||
## Configure TrueNAS
|
||||
|
||||
By default, TrueNAS uses DHCP. I found its MAC address in my UniFi interface and created a DHCP reservation. In OPNsense, I added a Dnsmasq host override. In the Caddy plugin, I set up a domain for TrueNAS pointing to that IP, then rebooted.
|
||||
|
||||
✅ After a few minutes, TrueNAS is now available on https://nas.vezpi.com.
|
||||
### General Settings
|
||||
|
||||
During install, I didn’t set a password for truenas_admin. The login page forced me to pick one:
|
||||

|
||||
|
||||
Once the password is updated, I land on the dashboard. The UI feels great at first glance:
|
||||

|
||||
|
||||
I quickly explore the interface, the first thing I do is changing the hostname to `granite` and check the box below et it inherit domain from DHCP:
|
||||

|
||||
|
||||
In the `General Settings`, I change the `Localization` settings. I set the Console Keyboard Map to `French (AZERTY)` and the Timezone to `Europe/Paris`.
|
||||
|
||||
I create a new user `vez`, with `Full Admin` role within TrueNAS. I allow SSH for key‑based auth only, no passwords:
|
||||

|
||||
|
||||
Finally I remove the admin role from `truenas_admin` and lock the account.
|
||||
|
||||
### Pool creation
|
||||
|
||||
In TrueNAS, a pool is a storage collection created by combining multiple disks into a unified ZFS‑managed space.
|
||||
|
||||
In the `Storage` page, I can find my `Disks`, where I can confirm TrueNAS can see my couple of NVMe drives:
|
||||

|
||||
|
||||
Back in the `Storage Dashboard`, I click the `Create Pool` button. I name the pool `storage` because I'm really inspired to give it a name:
|
||||

|
||||
|
||||
Then I select the `Mirror` layout:
|
||||

|
||||
|
||||
I explore quickly the optional configurations, but the defaults are fine to me: autotrim, compression, no dedup, etc. At the end, before creating the pool, there is a `Review` section:
|
||||

|
||||
|
||||
After hitting `Create Pool`, I'm warned that everything on the disks will be wiped, which I confirm. Finally the pool is created.
|
||||
|
||||
### Datasets creation
|
||||
|
||||
A dataset is a filesystem inside a pool. It can contains files, directories and child datasets, it can be shared using NFS and/or SMB. It allows you to independently manage permissions, compression, snapshots, and quotas for different sets of data within the same storage pool.
|
||||
|
||||
#### SMB share
|
||||
|
||||
Let's now create my first dataset `files` to share files over the network for my Windows clients, like ISOs, etc:
|
||||

|
||||
|
||||
When creating SMB datasets in SCALE, set Share Type to SMB so the right ACL/xattr defaults apply. TrueNAS then prompts me to start/enable the SMB service:
|
||||

|
||||
|
||||
From my Windows Laptop, I try to access my new share `\\granite.mgmt.vezpi.com\files`. As expected I'm prompt to give credentials.
|
||||
|
||||
I create a new user account with SMB permission.
|
||||
|
||||
✅ Success: I can browse and copy files.
|
||||
|
||||
#### NFS share
|
||||
|
||||
I create another dataset: `media`, and a child `photos`. I create a NFS share from the latter.
|
||||
|
||||
On my current NFS server, the files for the photos are owned by `root` (managed by *Immich*). Later I'll see how I can migrate towards a root-less version.
|
||||
|
||||
⚠️ For now I set, in `Advanced Options`, the `Maproot User` and `Maproot Group` to `root`. This is equivalent to the NFS attribute `no_squash_root`, the local `root` of the client stays `root` on the server, don't do that:
|
||||

|
||||
|
||||
✅ I mount the NFS share on a client, this works fine.
|
||||
|
||||
After initial setup, my `storage` pool datasets look like:
|
||||
- `backups`
|
||||
- `duplicati`: [Duplicati](https://duplicati.com/) storage backend
|
||||
- `proxmox`: future Proxmox Backup Server
|
||||
- `cloud`: `Nextcloud` data
|
||||
- `files`:
|
||||
- `media`
|
||||
- `downloads`
|
||||
- `photos`
|
||||
- `videos`
|
||||
|
||||
I mentioned VM capabilities in my requirements. I won't cover that is this post, it will be covered next time.
|
||||
|
||||
### Data protection
|
||||
|
||||
Now time to enable some data protection features:
|
||||

|
||||
|
||||
I want to create automatic snapshots for some of my datasets, those I care the most: my cloud files and photos.
|
||||
|
||||
Let's create snapshot tasks. I click on the `Add` button next to `Periodic Snapshot Tasks`:
|
||||
- cloud: daily snapshots, keep for 2 months
|
||||
- photos: daily snapshots, keep for 7 days
|
||||

|
||||
|
||||
I could also set up a `Cloud Sync Task`, but Duplicati already handles offsite backups.
|
||||
|
||||
---
|
||||
## Using TrueNAS
|
||||
|
||||
Now my TrueNAS instance is configured, I need to plan the migration of the data from my current NFS server to TrueNAS.
|
||||
### Data migration
|
||||
|
||||
For each of my current NFS shares, on a client, I mount the new NFS share to synchronize the data:
|
||||
```
|
||||
sudo mkdir /new_photos
|
||||
sudo mount 192.168.88.30:/mnt/storage/media/photos /new_photos
|
||||
sudo rsync -a --info=progress2 /data/photo/ /new_photos
|
||||
```
|
||||
|
||||
At the end, I could decommission my old NFS server on the LXC. The dataset layout after migration looks like this:
|
||||

|
||||
|
||||
### Android application
|
||||
|
||||
Out of curiosity, I've checked on the Google Play store for an app to manage a TrueNAS instance. I've found [Nasdeck](https://play.google.com/store/apps/details?id=com.strtechllc.nasdeck&hl=fr&pli=1), which is quite nice. Here some screenshots:
|
||||

|
||||
|
||||
---
|
||||
## Conclusion
|
||||
|
||||
My NAS is now ready to store my data.
|
||||
|
||||
I didn't address VM capabilities as I will experience it soon to install Proxmox Backup Server as VM. Also I didn't configure notifications, I need to setup a solution to receive email alerts to my notification system.
|
||||
|
||||
TrueNAS is a great product. It needs capable hardware for ZFS, but the experience is excellent once set up.
|
||||
|
||||
Next step: deploy Proxmox Backup Server as a VM on TrueNAS, then revisit NFS permissions to go root‑less for Immich.
|
||||
Reference in New Issue
Block a user