logo rss

GNU/Linux - Comment créer un NAS

Logo de Tux

Dans cet article, je vais expliquer comment créer son propre NAS (Serveur de stockage en réseau) sous une distribution GNU/Linux Debian.

L'avantage principal est d'avoir un NAS Ă  bas prix (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 le service samba pour le partage de fichiers. Toute la configuration se fera en ligne de commande.

Architecture Cible

A la fin, notre architecture devrait ressembler à ça.

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

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

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

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 le système ou le service rĂ©seau :
root@host:~# systemctl restart networking

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
  • Ajouter la configuration RAID dans le fichier mdadm.conf afin que le RAID soit assemblĂ© au dĂ©marrage :
root@host:~# mdadm --detail --scan >> /etc/mdadm/mdadm.conf
  • Mettre Ă  jour initramfs pour que cela soit pris en compte :
root@host:~# update-initramfs -u
  • Ajouter le point de montage /dev/md0 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.

  • Installer le service samba :
root@host:~# apt install samba
  • CrĂ©er un utilisateur samba :
root@host:~# adduser --home /data --system samba
  • DĂ©finir les droits sur le dossier de partage /data :
root@host:~# chown samba: /data
  • CrĂ©er un mot de passe associĂ© au compte utilisateur 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