logo rss

GNU/Linux - Comment créer un NAS

Tux logo

Nous verrons ici comment créer notre propre NAS sous GNU/Linux.

L'avantage principal est d'avoir NAS peu coûteux (on pourra par exemple recycler un vieux PC), hautement flexible et configurable.

J'utiliserai la distribution Linux Debian avec l'outil mdadm pour gérer notre RAID et samba pour le partage de fichiers.

Architecture Cible

A la fin notre architecture devrait ressembler à ça.

Le but étant de rendre notre NAS accessible par différents appareils de notre réseau.

Un NAS avec trois disques de 2To connecté à un PC et une TV
NAS Architecture

Configuration

Configuration matérielle

Comme discuté précédemment, on peut créer un NAS à peu de frais en recyclan un vieux PC.

  • Voici un exemple de configuration qui pourra être utilisée :
    • CPU : > intel dual core
    • RAM : 512 MB
    • HDD : 1x 500 GB (OS) + 3x 2TB (data)
Un ordinateur avec trois disques de 2 TB
Configuration matérielle du NAS

Configuration

Nous installerons Debian sur notre premier disque dur (/dev/sda) puis créerons un RAID 5 avec nos trois disques de 2 TB (sdb, sdc et sdd). Cela nous donnera une taille de 4TB utile. (Rappel : dans une configuration de type RAID5 on perd la capacité d'un disque pour assurer la redondance)

Un NAS Debian avec trois disques de 2 TB
NAS Debian

Paramétrage

Nous avons tout d'abord besoin d'installer Debian comme brillamment expliqué ici.

Configuration Réseau

  • Éditer /etc/network/interfaces (remplacer ens192 par le nom de l'interface réseau) :
allow-hotplug ens192 iface ens192 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.254 dns-nameservers 192.168.1.254
  • Redémarrer :
root@host:~# reboot

Configurer la table de partitionnement

  • Installer l'utilitaire gdisk, qui est la version gpt de fdisk :
root@host:~# apt update && apt install mdadm gdisk
  • Nettoyer la table de partitionnement du disque /dev/sdb :
⚠️Bien vérifier la lettre d'attribution des disques avec fdisk -l pour éviter toute suppression malencontreuse.⚠️ root@host:~# wipefs -a /dev/sdb[1-9]* root@host:~# wipefs -a /dev/sdb
  • Créer une nouvelle table de partitionnement pour /dev/sdb :
root@host:~# gdisk /dev/sdb GPT fdisk (gdisk) version 1.0.3 Partition table scan: MBR: not present BSD: not present APM: not present GPT: not present Creating new GPT entries. Command (? for help): n Partition number (1-128, default 1): First sector (34-4194270, default = 2048) or {+-}size{KMGTP}: Last sector (2048-3907028991, default = 3907028991) or {+-}size{KMGTP}: Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): FD00 Changed type of partition to 'Linux RAID' Command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): Y OK; writing new GUID partition table (GPT) to /dev/sdb. The operation has completed successfully.
  • Copier la table de partitionnement de /dev/sdb vers /dev/sdc et /dev/sdd :
root@host:~# sfdisk -d /dev/sdb | sfdisk --force /dev/sdc root@host:~# sfdisk -d /dev/sdb | sfdisk --force /dev/sdd

mdadm

mdadm est un logiciel qui est utilisé pour créer, gérer et monitorer le RAID logiciel sous GNU/Linux.

  • Installer l'utilitaire mdadm :
root@host:~# apt install mdadm
  • Créer notre RAID 5 :
root@host:~# mdadm --create --level=5 --raid-devices=3 /dev/md0 /dev/sdb1 /dev/sdc1 /dev/sdd1
  • Vérifier le statut de notre RAID :
root@host:~# cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid5 sdd1[3] sdc1[1] sdb1[0] 418713600 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU] unused devices: <none>
  • Créer un système de fichier sur /dev/md0 :
root@host:~# mkfs.ext4 /dev/md0
  • Créer le dossier de montage :
root@host:~# mkdir /data
  • Monter le système de fichier de /dev/md0 vers le dossier /data :
root@host:~# mount /dev/md0 /data
  • Afficher les points de montage :
root@host:~# df -h Filesystem Size Used Avail Use% Mounted on udev 983M 0 983M 0% /dev tmpfs 200M 5.6M 194M 3% /run /dev/sda2 14G 1.5G 12G 12% / tmpfs 998M 0 998M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 998M 0 998M 0% /sys/fs/cgroup /dev/sda1 511M 3.3M 508M 1% /boot/efi tmpfs 200M 0 200M 0% /run/user/0 tmpfs 200M 0 200M 0% /run/user/1000 /dev/md0 1.8T 16M 1.7T 1% /data
  • Configurer mdadm pour assembler notre RAID au démarrage :
root@host:~# mdadm --detail --scan >> /etc/mdadm/mdadm.conf
  • Mettre à jour initramfs pour prise en compte :
root@host:~# update-initramfs -u
  • Ajouter le point de montage dans fstab pour un montage automatique au démarrage :
root@host:~# echo "/dev/md0 /data ext4 rw,nofail,relatime,x-systemd.device-timeout=20s,defaults 0 2" >> /etc/fstab

samba

Nous allons maintenant installer et configurer le service samba qui va permettre aux machines Windows d'accéder au partage de fichiers.

  • Installation :
root@host:~# apt install samba
  • Créer un utilisateur samba :
root@host:~# adduser --home /data --system samba
  • Donner les droits :
root@host:~# chown samba: /data
  • Créer un mot de passe de protection pour l'accès au partage :
root@host:~# smbpasswd -a samba
  • Éditer le fichier /etc/samba/smb.conf :
[global] workgroup = WORKGROUP server string = nas [share] path = /data read only = no valid users = samba
  • Redémarrer les services :
root@host:~# systemctl restart smbd; systemctl restart nmbd
  • Depuis un ordinateur vérifier l'accès au partage :
Connexion a un partage réseau depuis un ordinateur windows en trois étapes
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Contact :

adresse mail de contact