
🎯 Ce guide présente le fonctionnement de LVM (Logical Volume Management), une technologie permettant de gérer les espaces de stockage d’un serveur Linux de manière souple. Vous découvrirez comment organiser les disques en volumes physiques, les regrouper au sein de groupes de volumes, puis créer et étendre des volumes logiques utilisables par le système. Nous aboedrons ensuite, la mise en place et le diagnostic des échanges de fichiers sur un serveur Linux. Vous y découvrirez le fonctionnement du protocole FTP, la différence entre les modes actif et passif, ainsi que les principes de création et de gestion des comptes FTP. Le guide présente également rsync, utilisé pour synchroniser des fichiers et réaliser des sauvegardes ou réplications de données.

Volumes logiques : LVM #
LVM (Logical Volume Management) permet de gérer les espaces de stockage d’un serveur Linux en ajoutant une couche d’abstraction entre les disques physiques et les systèmes de fichiers.
Sans LVM, un système de fichiers est généralement directement associé à une partition. Modifier sa taille peut alors nécessiter de manipuler directement les partitions du disque.
Avec LVM, le stockage est organisé en plusieurs niveaux. Il devient possible d’ajouter de l’espace à un groupe de volumes, puis d’utiliser cet espace pour agrandir un volume logique sans avoir à repenser toute l’organisation du disque.
LVM est particulièrement utile pour les serveurs dont les besoins en stockage peuvent évoluer au cours de leur exploitation.
Comment fonctionne LVM ?
LVM repose sur trois niveaux :
Physical Volume (PV) → Volume Group (VG) → Logical Volume (LV)
Les volumes physiques : PV #
Le Physical Volume (PV) correspond à une ressource de stockage intégrée à LVM.
Il peut s’agir notamment :
- d’un disque ;
- d’une partition ;
- d’un volume RAID ;
- d’un volume provenant d’un SAN.
Le PV constitue donc la brique de base à partir de laquelle LVM va pouvoir gérer l’espace disponible.
Pour afficher les volumes physiques configurés :
pvdisplay
Lorsqu’un nouveau disque ou une nouvelle partition doit être intégrée à LVM, elle doit d’abord être initialisée comme volume physique.
Par exemple :
pvcreate /dev/sdb1
Une fois cette opération effectuée, /dev/sdb1 peut être ajouté à un groupe de volumes.
À noter : la création du PV suppose que le disque ou la partition a été préparé au préalable. La méthode de partitionnement dépend notamment du type de table de partition utilisée sur le serveur.
Les groupes de volumes : VG
Le Volume Group (VG) regroupe un ou plusieurs volumes physiques.
C’est cette couche qui permet de mettre en commun les espaces disponibles sur plusieurs supports.
Par exemple, si un groupe vg0 dispose de plusieurs PV, l’espace libre de ces différents volumes peut être utilisé pour créer ou agrandir des volumes logiques.
Pour afficher les groupes de volumes :
vgdisplay
Pour ajouter un nouveau volume physique au groupe vg0 :
vgextend vg0 /dev/sdb1
Le groupe vg0 dispose alors de l’espace supplémentaire fourni par /dev/sdb1.
Les volumes logiques : LV #
Le Logical Volume (LV) est le volume que le système va réellement utiliser.
Il est créé à partir de l’espace disponible dans un Volume Group, puis peut être formaté avec un système de fichiers et monté dans l’arborescence Linux.
Pour afficher les volumes logiques :
lvdisplay -C
Pour créer un volume logique de 10 Go dans vg0 :
lvcreate -L 10G -n <NOMMONTAGE> vg0
Le volume peut ensuite être formaté avec le système de fichiers souhaité.
Par exemple, avec XFS :
mkfs.xfs /dev/vg0/<NOMMONTAGE>
Le volume est alors prêt à être monté et utilisé par le système.
Agrandir un volume LVM
L’un des principaux intérêts de LVM apparaît lorsqu’un volume arrive à saturation.
Il est possible d’ajouter de l’espace au Volume Group, puis d’utiliser cet espace pour agrandir le Logical Volume concerné.
Par exemple, pour ajouter 20 Go au volume var :
lvextend -L +20G /dev/mapper/vg0-var
L’opération ne s’arrête toutefois pas au volume logique.
Le système de fichiers doit lui aussi être agrandi afin de pouvoir exploiter l’espace supplémentaire.
Avec un système de fichiers XFS :
xfs_growfs /dev/mapper/vg0-var
Avec un système de fichiers ext3/ext4 :
resize2fs /dev/mapper/vg0-var
Il faut donc bien distinguer les deux opérations :
LV agrandi ≠ système de fichiers automatiquement agrandi.
LVM fournit l’espace supplémentaire, mais le système de fichiers doit également être capable de l’utiliser.
Monter un volume logique
Une fois le volume logique créé et formaté, il peut être monté dans l’arborescence Linux.
Commencez par créer le point de montage :
mkdir /var/lib/<NOMMONTAGE>
Le montage peut ensuite être effectué avec :
mount /var/lib/<NOMMONTAGE>
Pour que le volume soit automatiquement remonté après un redémarrage, son association doit être déclarée dans /etc/fstab.
Par exemple :
/dev/mapper/vg0-<NOMMONTAGE> /var/lib/<NOMMONTAGE> xfs noatime,logbufs=8 0 2
Attention : une erreur dans
/etc/fstabpeut empêcher le système de démarrer correctement. Vérifiez toujours la configuration avant de redémarrer le serveur.
Ajouter un volume LVM à un serveur
Lorsqu’un serveur manque d’espace, la logique générale est donc la suivante :
Nouveau stockage → PV → VG → LV → système de fichiers → point de montage
Par exemple, pour intégrer /dev/sdb1 dans un groupe vg0, puis créer un nouveau volume :
pvcreate /dev/sdb1
vgextend vg0 /dev/sdb1
lvcreate -L 10G -n <NOMMONTAGE> vg0
mkfs.xfs /dev/vg0/<NOMMONTAGE>
Le volume peut ensuite être monté sur le répertoire souhaité et ajouté à /etc/fstab pour être disponible automatiquement après redémarrage.
Cette organisation permet de faire évoluer progressivement le stockage d’un serveur sans devoir réorganiser l’ensemble de ses partitions.
Et pour la SWAP ?
LVM peut également être utilisé pour créer un volume dédié à la SWAP, c’est-à-dire l’espace disque utilisé par Linux lorsque la mémoire RAM disponible est insuffisante ou selon la politique de gestion de la mémoire du système.
Un volume logique peut être créé spécifiquement pour cet usage :
lvcreate -L 1G -n swap vg0
Il doit ensuite être initialisé comme espace SWAP :
mkswap /dev/vg0/swap
Puis déclaré dans /etc/fstab :
/dev/vg0/swap swap swap defaults 0 0
Pour activer la SWAP :
swapon -a
Vous pouvez ensuite vérifier son état avec :
cat /proc/swaps
ou :
free
Les commandes LVM à retenir #
Pour les opérations courantes, les commandes sont organisées selon les trois niveaux de LVM :
| Niveau | Rôle | Commandes principales |
|---|---|---|
| PV | Gérer les volumes physiques | pvdisplay, pvcreate |
| VG | Regrouper l’espace disponible | vgdisplay, vgextend |
| LV | Créer et gérer les volumes utilisés par le système | lvdisplay, lvcreate, lvextend |
À cela s’ajoutent les commandes liées au système de fichiers, comme mkfs.xfs, xfs_growfs ou resize2fs.
À retenir
LVM permet de dissocier la gestion du stockage physique de son utilisation par le système.
Un disque ou une partition devient un PV, plusieurs PV peuvent être regroupés dans un VG, puis des LV sont créés dans cet espace pour être formatés et montés.
Cette organisation apporte surtout de la souplesse : lorsqu’un serveur manque d’espace, il est possible d’ajouter du stockage au VG puis d’utiliser cet espace pour créer ou agrandir les volumes nécessaires.
Echanges de fichiers #

Le protocole FTP historique ne chiffre ni les données transférées ni les identifiants utilisés pour établir la connexion. Les informations peuvent donc être interceptées si elles transitent sur un réseau non maîtrisé.
L’utilisation de FTP peut néanmoins être tolérée dans un environnement isolé et maîtrisé, lorsque les échanges restent confinés à un réseau de confiance et que le niveau de risque est acceptable.
En dehors de ce contexte, il est fortement recommandé de sécuriser systématiquement les échanges. Selon les besoins et les protocoles supportés par le serveur, on privilégiera notamment FTPS, qui ajoute un chiffrement TLS à FTP, ou SFTP, qui repose sur SSH.
Le choix du protocole doit donc tenir compte non seulement du besoin de transfert de fichiers, mais également de la nature du réseau sur lequel ces échanges sont réalisés et de la sensibilité des données transférées.
Comprendre le protocole FTP(s) #

FTPS — File Transfer Protocol Secure
Le protocole FTPS (File Transfer Protocol Secure) permet de transférer des fichiers entre un poste client et un serveur à travers un réseau, tout en sécurisant les échanges grâce au chiffrement SSL/TLS.
Son fonctionnement repose sur deux composants :
- un client FTPS, installé sur le poste utilisé pour effectuer les transferts ;
- un serveur FTPS, installé sur le serveur qui héberge les fichiers.
Comme FTP, FTPS utilise un canal de contrôle pour gérer la connexion et les commandes, ainsi qu’un canal distinct pour le transfert des données. Le chiffrement TLS protège les identifiants ainsi que les données échangées entre le client et le serveur.
Selon la configuration retenue, FTPS peut fonctionner en mode explicite ou implicite. Le mode explicite est aujourd’hui le plus courant : le client établit d’abord une connexion FTP puis demande son passage en mode sécurisé avec TLS.
À retenir : FTPS conserve le fonctionnement général de FTP tout en ajoutant une couche de chiffrement TLS. Il permet ainsi de sécuriser les échanges de fichiers sans changer fondamentalement le modèle client/serveur de FTP.
Les serveurs FTP sous Linux/Unix
Plusieurs logiciels permettent de mettre en place un serveur FTP sous Linux ou Unix.
Parmi les solutions couramment rencontrées figurent notamment ProFTPd et Pure-FTPd.
ProFTPd
ProFTPd est un serveur FTP dont la configuration repose sur une logique proche de celle que l’on retrouve dans d’autres logiciels serveurs Linux.
Il permet notamment de gérer des configurations complexes et des serveurs virtuels.
Pure-FTPd
Pure-FTPd propose notamment la gestion d’utilisateurs virtuels et plusieurs possibilités d’authentification.
L’administration des utilisateurs virtuels peut être réalisée avec la commande pure-pw.
Par exemple :
pure-pw useradd gerard -u ftpuser -d /var/www/vhosts/www.website.com/
L’option -d permet de définir le répertoire auquel l’utilisateur est restreint.
La base des utilisateurs peut ensuite être reconstruite avec :
pure-pw mkdb
Créer un utilisateur FTP
La méthode de création d’un compte dépend du serveur FTP utilisé.
Dans une configuration ProFTPd utilisant les comptes système, la création peut par exemple être effectuée avec :
adduser alexandre
Lorsque la création ou la modification d’un compte FTP doit être effectuée par le support, les informations nécessaires doivent être précisées.
Il est notamment nécessaire d’indiquer :
- le nom d’utilisateur ;
- le mot de passe, selon les règles de sécurité applicables ;
- le répertoire de base de l’utilisateur.
Le répertoire de base correspond à l’emplacement dans lequel l’utilisateur pourra effectuer ses opérations de transfert.
Conseil : dans une demande de création de compte, évitez de transmettre un mot de passe définitif par un canal non sécurisé. Lorsque cela est possible, privilégiez une procédure permettant à l’utilisateur de définir lui-même son secret.
Utiliser un client FTP
Le client FTP est le logiciel utilisé pour se connecter au serveur et transférer les fichiers.
Il permet notamment :
- d’envoyer des fichiers vers le serveur ;
- de télécharger des fichiers ;
- de parcourir les répertoires accessibles ;
- de gérer les transferts.
FileZilla est un exemple de client multiplateforme largement utilisé. Il permet de gérer différents types de connexions selon les protocoles pris en charge par le serveur.
Pour établir une connexion, vous devez généralement renseigner :
Adresse du serveur : IP ou nom d'hôte
Nom d'utilisateur : <utilisateur>
Mot de passe : <mot de passe>
Port : 21
Le port dépend toutefois du protocole utilisé. Le port 21 correspond au FTP classique ; une configuration FTPS ou un autre protocole peut utiliser une configuration différente.
FTP actif ou FTP passif ?
FTP possède une particularité importante : les commandes et les données ne transitent pas par la même connexion.
La connexion initiale permet au client et au serveur d’échanger les commandes nécessaires à la session. Une seconde connexion est ensuite utilisée pour transférer les données.
C’est cette seconde connexion qui explique la plupart des difficultés rencontrées avec les pare-feu.
Le mode actif
En mode actif, le serveur établit la connexion destinée au transfert des données vers le client.
Cela peut poser problème lorsque le client se trouve derrière un pare-feu ou un routeur qui bloque les connexions entrantes.
Le mode passif
En mode passif, c’est le client qui établit la connexion de données vers le serveur.
Le serveur indique au client le port à utiliser, puis le client ouvre lui-même cette connexion.
Ce fonctionnement est généralement mieux adapté aux postes situés derrière un pare-feu ou une translation d’adresses.
C’est pourquoi le mode passif est généralement recommandé pour les connexions FTP depuis un poste client.
Les problèmes FTP les plus fréquents
La connexion au serveur ne fonctionne pas
Commencez par vérifier :
- l’adresse du serveur ;
- le port utilisé ;
- les identifiants ;
- la connectivité réseau ;
- la présence éventuelle d’un pare-feu.
Si la connexion au serveur fonctionne mais que les transferts échouent, vérifiez notamment le mode passif.
La connexion fonctionne mais les fichiers ne s’affichent pas
Ce comportement est typique d’un problème lié à l’ouverture du canal de données.
Dans ce cas, vérifiez la configuration du client FTP et activez le mode passif.
Si le problème persiste, il faut également vérifier les ports nécessaires au fonctionnement du mode passif côté serveur et les règles de filtrage réseau associées.
Synchroniser des fichiers avec rsync #

rsync permet de synchroniser des fichiers et des répertoires entre deux emplacements.
Contrairement à un simple transfert de fichiers, rsync compare notamment les données présentes à la source et à la destination afin de ne transférer que ce qui doit l’être.
Il est donc particulièrement adapté aux :
- sauvegardes incrémentales ;
- réplications de répertoires ;
- distributions de fichiers ;
- synchronisations entre serveurs.
La synchronisation est généralement unidirectionnelle : les données sont copiées de la source vers la destination.
La syntaxe générale est la suivante :
rsync [OPTIONS] SRC [SRC] [USER@]HOST:DEST
ou dans l’autre sens :
rsync [OPTIONS] [USER@]HOST:SRC [DEST]
Par exemple :
rsync -av --delete --progress login@serveur:/source/ /destination/
L’option --delete mérite une attention particulière : elle permet de supprimer dans la destination les fichiers qui n’existent plus dans la source.
Attention : une commande
rsyncavec--deletepeut donc supprimer des données. Vérifiez toujours la source, la destination et les options utilisées avant de lancer une synchronisation.
Pour connaître l’ensemble des options disponibles :
man rsync
À retenir
FTP permet d’échanger des fichiers entre un client et un serveur, mais son fonctionnement à deux canaux peut nécessiter une configuration particulière des pare-feu. Le mode passif est généralement le plus adapté aux postes clients situés derrière un pare-feu.
Pour les besoins de synchronisation ou de sauvegarde, rsync offre une approche différente en comparant les fichiers et en ne transférant que les données nécessaires.
Comprendre cron #

Un serveur Linux doit régulièrement effectuer des opérations sans intervention humaine : lancer une sauvegarde, nettoyer des fichiers temporaires, exécuter un script ou effectuer une opération de maintenance.
Le mécanisme cron permet précisément de programmer ce type de tâche.
Une tâche planifiée est définie dans une crontab, c’est-à-dire une table contenant les commandes à exécuter ainsi que les horaires auxquels elles doivent être lancées.
Chaque utilisateur peut disposer de sa propre crontab.
Consulter les tâches planifiées #
La commande suivante affiche la crontab de l’utilisateur actuellement connecté :
crontab -l
Elle permet notamment de vérifier les tâches déjà configurées.
Ajouter une tâche planifiée
Pour modifier la crontab de l’utilisateur courant :
crontab -e
Cette commande ouvre la crontab dans l’éditeur configuré sur le système.
Chaque ligne correspond à une tâche et suit une syntaxe composée de cinq champs temporels, suivis de la commande à exécuter :
minute heure jour_du_mois mois jour_de_la_semaine commande
On peut également la représenter ainsi :
mm hh jj MMM JJJ commande
Les cinq premiers champs permettent de définir précisément quand la commande doit être exécutée.
| Champ | Valeurs |
|---|---|
| Minute | 0-59 |
| Heure | 0-23 |
| Jour du mois | 1-31 |
| Mois | 1-12 |
| Jour de la semaine | 0-7 |
Pour le jour de la semaine, 0 et 7 correspondent généralement au dimanche.
Comprendre la syntaxe d’une crontab
Chaque champ peut utiliser plusieurs formes de notation.
L’astérisque * signifie toutes les valeurs possibles.
*
La liste permet de sélectionner plusieurs valeurs :
5,8
correspond aux valeurs 5 et 8.
Une plage permet de sélectionner un intervalle :
2-5
correspond aux valeurs 2, 3, 4 et 5.
Enfin, / permet de définir une périodicité.
*/3
signifie toutes les trois unités :
0,3,6,9,12...
Une plage peut également être combinée avec cette notation :
10-20/3
correspond à :
10,13,16,19
Exemple de tâche planifiée
La ligne suivante :
0 0 13 * 5 commande
indique que la commande doit être exécutée à 00h00 le 13 du mois, lorsque le jour de la semaine correspond au cinquième jour selon la numérotation utilisée.
Il faut être particulièrement attentif à la combinaison des champs jour du mois et jour de la semaine, dont le comportement peut surprendre.
Pour une tâche devant s’exécuter précisément selon une combinaison de critères, il est préférable de tester la planification avant de la mettre en production.
Gérer la sortie d’une tâche cron
Une tâche cron exécute une commande comme si elle était lancée depuis le shell.
Si cette commande produit des informations sur sa sortie standard ou sa sortie d’erreur, cron peut les transmettre par courrier électronique à l’utilisateur, selon la configuration du système.
Pour conserver ces informations dans des fichiers, il est possible de rediriger les sorties.
Par exemple :
commande > fichier-1 2> fichier-2
La sortie standard sera enregistrée dans fichier-1, tandis que les erreurs seront enregistrées dans fichier-2.
Il est également possible de regrouper les deux sorties dans un même fichier :
commande >> /mon/repertoire/journal.txt 2>&1
Le double >> permet ici d’ajouter les nouvelles sorties à la fin du fichier sans écraser son contenu.
Cette méthode est particulièrement utile pour conserver un historique d’exécution et faciliter le diagnostic d’une tâche planifiée.
Conseil : lorsqu’une tâche cron est importante, prévoyez systématiquement une gestion de ses sorties et de ses erreurs. Une tâche qui échoue silencieusement peut rester inaperçue pendant longtemps.
À retenir
cron permet d’automatiser l’exécution de commandes sur un serveur Linux.
La configuration repose sur une crontab, consultable avec :
crontab -l
et modifiable avec :
crontab -e
Chaque tâche est définie par cinq paramètres temporels suivis de la commande à exécuter.
La planification ne suffit toutefois pas à garantir qu’une tâche fonctionne correctement. Pour les traitements importants, pensez également à gérer les sorties, les erreurs et les journaux d’exécution.
Ceci conclut notre guide. Le Centre d’Expertise Client XPR reste à votre disposition.