Vous êtes sur la page 1sur 77

Administration de Réseaux Informatiques

- Open Source-

Configurer un serveur de stockage sous Linux.


Rappel
Disque dur mécanique
• Il est constitué d’un ou de plusieurs plateaux
• Chaque plateau est divisé en pistes (tracks)
• Chaque piste est divisée en secteurs (sectors)
• Le cylindre est formé par les pistes de même rayon sur chaque plateau
• La capacité d’un disque dépend
• De la taille des secteurs
• Du nombre de cylindres et donc du nombre de plateaux
Rappel
Prise en charge des disques sous Linux:
• Le pointeur spécial /dev permet l’accès direct aux périphériques
• Format des pointeurs sur disque :
• Types de bus
• hd : Périphériques IDE
• sc : Périphériques SCSI
• sd : Périphériques SATA
• Exemples
• /dev/hda1 : Partition 1 sur le 1 er disque IDE
• /dev/sdb2 : Partition 2 sur le 2 ème disque Sata
Rappel

• Avant d’être utilisé, un disque doit être partitionné


• A l’aide de la commande « fdisk » si Linux est déjà installé
• Par le programme d’installation sinon (dépend de la distribution)
• Il faut ensuite créer un système de fichier
• Avec l’utilitaire générique « mkfs »
• mkfs.ext2, mkfs.ext3, mkfs.xfs, …
Rappel: points de montage
• Sous Linux, « Tout est fichier »
• L’arborescence est construite à partir de « points de montage »
• Un point de montage est une association entre une partition
physique et l’arborescence du système

• Avantages
• Mettre à l’abri certaines données stratégiques comme « /home »
• La défaillance du disque hdb n’entraîne pas une réinstallation totale
Rappel: points de montage
• Tant qu’ils ne sont pas effectués, le système de fichiers est
inaccessible
• Ils sont réalisés automatiquement au démarrage du système
• Seulement ceux qui figurent dans le fichier « /etc/fstab »
• Il est possible de créer un point de montage manuellement
• Pour les clés USB ou le CDROM par exemple
• En utilisant la commande « mount »
• Et « umount » pour supprimer le point de montage

• Il faut parfois préciser le type du système de fichier


Rappel: Mise en place 'un nouveau disque

• 3 étapes sont nécessaires


• Création d’une partition : fdisk
• Initialisation du système de fichiers : mkfs
• Création d’un point de montage : mount
Rappel: Mise en place 'un nouveau disque
• 1) Création d’une partition
• Partition principale de 100Mo avec « fdisk » sur /dev/sda
Rappel: Mise en place 'un nouveau disque
• 2) IniMalisation du système de fichiers
• Avec la commande « mkfs » suivie du système de fichier choisi
Rappel: Mise en place 'un nouveau disque
• 3) Création du point de montage
• De type ext3
• Avec la commande « mount »

• Le répertoire « /mnt/toto » doit déjà exister


• Vérification du point de montage avec la commande « df »
Initiation au LVM

Le Logical Volume Manager est un système de gestion très perfectionné des supports
de stockage. Le but est de dépasser la gestion physique des disques, et leur
organisation logique basique (les partitions) pour étendre la capacité globale des
supports, à l’aide d’une gestion entièrement logique de celle-ci.
Initiation au LVM

Le LVM regroupe les disques physiques, ou tout autre support de stockage dit
physique (disque, RAID matériel, RAID logiciel, support de stockage en provenance
d’un SAN), qu’il appelle des volumes physiques PV (Physical Volume) en un groupe de
volumes VG (Volume Group). Ce groupe VG est vu par le LVM comme une sorte de
métadisque, dans lequel vous allez créer des volumes logiques LV (Logical Volume) à
volonté.
Initiation au LVM

• Volume physique PV : un support de stockage de données dit physique : disque


dur par exemple

• Groupe de volumes VG : un regroupement logique de 1 à n PV

• Volume logique LV : un découpage logique au sein d’un VG.


Initiation au LVM
configuration du LVM

La configuration du LVM est située dans les fichiers et répertoires présents dans
/etc/lvm. Le fichier /etc/lvm/lvm.conf contient la configuration globale. La
configuration des différents volumes (physiques, groupes et logiques) ne se trouve
pas dans un fichier, mais dans une structure présente au sein des périphériques eux-
mêmes, dans les premiers blocs : ce sont les métadatas des volumes physiques.
Créer un volume physique

Un volume physique peut être un disque complet ou une partition classique au sein
d’un disque.

Pour vérifier les partition d'un disque:

# fdisk -l /dev/sdb
Créer un volume physique

Une fois les partitions créées, utilisez la commande pvcreate sur une première
partition (plusieurs partitions peuvent être précisées) :

# pvcreate /dev/sdb2

Physical volume "/dev/sdb2" successfully created


Voir les volumes physiques

La commande pvdisplay permet de visualiser l’ensemble des volumes physiques


accessibles sur votre système. Elle peut prendre aussi un nom de volume spécifique.

# pvdisplay /dev/sdb2

"/dev/sdb2" is a new physical volume of "10,00 GB"

...
PE Physical Extend

PE signifie Physical Extend, extension physique. Chaque VG, et donc PV le constituant,


est découpé en tranches appelées PE. Le PE est l’unité de base de travail du LVM. Si
un PE fait 4 Mo, cela signifie que l’espace pourra être découpé au sein du groupe de
volumes par tranches de 4 Mo. L’allocation se fait par PE : la création d’un volume
logique de 500 PE de 4 Mo fait donc 2000 Mo.
Créer un groupe de volumes

Pour créer un groupe de volumes, vous devez disposer d’au moins un volume
physique. Vous pouvez créer un groupe de volumes avec la commande vgcreate. Un
groupe de volumes porte un nom, celui que vous voulez. C’est le premier argument
de la commande. Vous passez ensuite comme argument la liste des volumes
physiques composant le groupe de volumes, ici un seul, /dev/sdb2.

# vgcreate vg01 /dev/sdb2

Volume group "vg01" successfully created


Propriétés d’un VG

Le groupe de volumes a de nombreuses propriétés. Il peut être étudié avec la


commande vgdisplay.

# vgdisplay vg01

--- Volume group ---

...
Créer un volume logique

Un volume logique est un découpage d’un VG (groupe de volumes) qui est


l’équivalent d’une partition dans laquelle vous pourrez créer un système de fichiers.
Un volume logique LV occupe un certain nombre de PE (extensions physiques) d’un
VG, contigus ou non. Ceci a son importance pour la suite car :

• il est possible d’agrandir un LV tant qu’il reste des PE de libres dans le VG.

• il est possible de réduire un LV, ce qui libérera des PE dans le VG, utilisables pour
créer de nouveaux LV ou pour les agrandir.
Créer un volume logique

Vous créez un volume logique avec la commande lvcreate. Un volume logique porte
un nom, dispose d’une taille exprimée soit en extensions logiques LE (Logical
Extension) qui sont la représentation des PE au sein d’un LV, soit en Ko, Mo, Go… La
commande suivante crée un volume logique appelé data01 au sein du VG vg01, d’une
taille de 6 Go. Le -L précise que l’unité est en Mo (m), Go (g), To (Teraoctet, t), Po
(Petaoctet), ou Eo (Exaoctet). Pour préciser un nombre de PE, utilisez « -l ».

# lvcreate -n data01 -L 6g vg01

Logical volume "data01" created


Créer un volume logique

Un LV est vu comme une partition, et dispose après sa création d’un fichier


périphérique associé. Le fichier est dans le dossier /dev/<nom_du_vg>/<nom_du_lv>.
Propriétés d’un volume logique

Les propriétés d’un volume logique sont accessibles par la commande lvdisplay

# lvdisplay /dev/vg01/data01

File descriptor 3 left open

File descriptor 4 left open

--- Logical volume ---


Accès au volume logique

Vous pouvez créer un système de fichiers et monter le LV comme pour n’importe


quelle partition :

# mkfs -t ext3 /dev/vg01/data01

Il ne reste plus qu’à monter le nouveau système de fichiers.

# mount -t ext3 /dev/vg01/data01 /mnt/data01


Agrandissements et réductions

Les groupes de volumes

Pour rajouter au sein d'un VG un nouveau volume physique. utiliser la commande


vgextend qui fonctionne de la même manière que vgcreate : indiquez le nom du VG
suivi du ou des PV à rajouter.
# pvcreate /dev/sdb3
Physical volume "/dev/sdb3" successfully created
# vgextend vg01 /dev/sdb3
Volume group "vg01" successfully extended
Agrandissements et réductions

Agrandir un groupe de volumes

Pour rajouter au sein d'un VG un nouveau volume physique. utiliser la commande


vgextend qui fonctionne de la même manière que vgcreate : indiquez le nom du VG
suivi du ou des PV à rajouter.
# pvcreate /dev/sdb3
Physical volume "/dev/sdb3" successfully created
# vgextend vg01 /dev/sdb3
Volume group "vg01" successfully extended
Agrandissements et réductions

Agrandir un volume logique

L’agrandissement d’un volume logique se fait dans cet ordre :

• Agrandissement du LV avec la commande lvextend

• Agrandissement du système de fichier avec resize2fs (ext3)


Agrandissements et réductions

Agrandir un volume logique

La commande lvextend autorise les paramètres -l (nombre d’extensions logiques LE) ou -L comme
pour lvcreate. Vous précisez ensuite la nouvelle taille du LV ou, si vous rajoutez un + en préfixe, la
taille additionnelle souhaitée. Vous pouvez aussi préciser, en dernier argument, le nom du PV sur
lequel forcer l’extension du LV (c’est aussi possible avec lvcreate). Ca ne marchera que si le ou les
PV précisés disposent d’assez de PE.
La commande suivante rajoute 1536 LE (4x1536=6144 Mo soit 6 Go) dans data01 :
# lvextend -l +1536 /dev/vg01/data01
Extending logical volume data01 to 12,00 GB
Logical volume data01 successfully resized
Agrandissements et réductions

Agrandir un volume logique

La commande resize2fs permet de réduire et d’agrandir un système de fichiers. Le premier


argument est le système de fichiers, le second la taille, avec un éventuel suffixe K (Ko), M
(Mo), ou G (Go). . Si la taille est absente, le système de fichiers sera adapté à la taille de la
partition ou du LV.

La commande resize2fs peut être utilisée à chaud, c’est-à-dire système de fichiers monté,
pour les agrandissements. Il faudra par contre démonter le système de fichiers pour le
réduire.

# resize2fs /dev/vg01/data01
Agrandissements et réductions
Réduire un volume logique

Pour réduire la taille d’un volume logique, vous devez procéder dans cet ordre :

• Vérification du système de fichiers à réduire avec fsck.

• Réduction du système de fichiers contenu dans le volume logique avec resize2fs.

• Réduction du volume logique avec la commande lvreduce.


Réduire un volume logique

Le système de fichiers ne peut être réduit que s’il n’est pas monté démontez-le :

# umount /mnt/data01
Réduire un volume logique

Vérifiez le système de fichiers :

# fsck -f /dev/vg01/data01
Réduire un volume logique

Redimensionnez le système de fichiers à 4 Go :

# resize2fs /dev/vg01/data01 4G
Réduire un volume logique

Enfin, redimensionnez le LV à 4 Go. La syntaxe de lvreduce est la même que lvextend,


sauf qu’il n’est pas possible de préciser de PV. Veillez ici à ne pas vous tromper : si vous
avez mal réduit le système de fichiers, vous risquez de le détruire. Répondez y à la
question si vous êtes certain.
# lvreduce -L 4G /dev/vg01/data01
WARNING: Reducing active logical volume to 4,00 GB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce data01? [y/n]: y
Reducing logical volume data01 to 4,00 GB
Logical volume data01 successfully resized
Réduire un volume logique

Remontez le système de fichiers :

# mount -t ext3 /dev/vg01/data01 /mnt/data01


Supprimer un volume logique

Démontez data01 et data02 :

# umount /data01

# umount /data02
Supprimer un volume logique

Supprimez les volumes logiques avec lvremove :


# lvremove /dev/vg01/data01 /dev/vg01/data02
Do you really want to remove active logical volume "data01"? [y/n]: y
Logical volume "data01" successfully removed
Do you really want to remove active logical volume "data02"? [y/n]: y
Logical volume "data02" successfully removed
Retirer tous les volumes physiques

Utilisez la commande vgreduce avec le paramètre -a pour ALL :

# vgreduce -a vg01

Can’t remove final physical volume "/dev/sdb2" from volume group "vg01"

Remarquez que la commande vgreduce laisse toujours au minimum un PV dans le VG,


car il faut au moins un PV pour constituer un VG.
Supprimer un volume physique

Vous pouvez détruire les informations contenues dans le volume avec la commande
pvremove. Cependant, si vous détruisez la partition via fdisk ou que vous créez un
système de fichiers dessus, l’effet est le même.
Partitionnement avancé RAID

Le RAID (Redundant Array of Independent Disks) a été défini par l’université


de Berkeley en 1987 dans le double but de réduire les coûts et d’augmenter
la fiabilité du stockage des données. Le but est de combiner plusieurs petits
disques physiques indépendants en une matrice (array : tableau, ensemble,
rangée, matrice) de disques. Une matrice apparaît comme une unité logique
de stockage unique.
Niveau RAID

RAID-0 : appelé stripe mode : deux disques au moins forment un seul


volume. Les deux disques ont en principe la même taille. Chaque opération
de lecture/écriture sera fractionnée et effectuée sur chacun des disques.
Ainsi, les performances sont accrues puisque les opérations de lecture et
d’écriture sont effectuées en parallèle sur les disques. Le RAID-0 n’a aucune
redondance. En cas de panne d’un des disques, il est probable que
l’ensemble des données soit perdu.
Niveau RAID

RAID-1 : appelé mirroring : premier mode redondant. Il peut être utilisé à


partir de deux disques ou plus avec d’éventuels disques de secours (Spare
Disk). Chaque information écrite sur un disque est dupliquée sur les autres.
Si N-1 disques du RAID viennent à tomber, les données restent intactes. Si
un disque de secours est présent, en cas de panne, il est automatiquement
reconstruit et prend la place du disque défaillant.
Niveau RAID

RAID-5 : RAID avec bande de parité redistribuée. C’est le mode le plus utilisé
car c’est celui qui offre le meilleur compromis entre le nombre de disques,
l’espace disponible et la redondance. Il faut au moins trois disques avec
d’éventuels disques de secours. La parité est présente sur chacun des
disques. La taille finale est celle de N-1 disques. Le RAID-5 survit à une
panne de disque. Dans ce cas, si un disque de secours est présent, il sera
automatiquement reconstruit. Les performances en lecture sont équivalentes
à celles du RAID-0 tandis qu’en écriture, elles dépendent de l’algorithme
employé et de la mémoire de la machine.
Périphériques RAID

Une matrice RAID est reconnue par le système comme un périphérique de type
bloc, comme n’importe quel disque physique. Ainsi, un RAID peut être constitué
avec des disques, des partitions (généralement, on crée une unique partition sur
chaque disque). Le bus n’a aucune importance : vous pouvez construire une
matrice RAID avec des disques SCSI et IDE mélangés. De même, on peut construire
du RAID sur d’autres matrices RAID. Les périphériques RAID sont sous la forme :

• /dev/md0

• /dev/md1
RAID avec mdadm

L’outil mdadm remplace les outils raidtools des anciennes


distributions Linux. Cet outil unique est plus simple et permet
d’effectuer l’ensemble des opérations. Son fichier de configuration
est /etc/mdadm.conf.
RAID avec mdadm: Création
RAID avec mdadm: Création

Soient deux partitions /dev/sdb1 et /dev/sdc1. Vous allez créer une


partition RAID-0, assemblage de ces deux partitions.

# mdadm --create /dev/md0 --level=raid0 --raid-devices=2

/dev/sdb1 /dev/sdc1

Il ne reste plus qu’à installer le système de fichiers sur le disque RAID :

# mkfs -t ext3 /dev/md0


RAID avec mdadm: Création
RAID avec mdadm: Création

C’est le même principe. Vous allez cette fois rajouter une partition de
secours /dev/sdd1.

# mdadm --create /dev/md0 --level=raid1 --raid-devices=2 /dev/sdb1


/dev/sdc1 --spare-devices=1 /dev/sdd1
Puis :

# mkfs -t ext3 /dev/md0


RAID avec mdadm: Création

RAID-0+1
Il faut au moins quatre partitions. Vous devez créer deux matrices RAID-1 que vous
allez regrouper en une matrice RAID-0.

# mdadm --create /dev/md0 --level=raid1 --raid-devices=2 /dev/sdb1 /dev/sdc1

# mdadm --create /dev/md1 --level=raid1 --raid-devices=2 /dev/sdd1 /dev/sde1

# mdadm --create /dev/md2 --level=raid0 --raid-devices=2 /dev/md0 /dev/md1

Puis : # mkfs -t ext3 /dev/md2


RAID avec mdadm: Création
RAID avec mdadm: Création

Vous allez utiliser trois disques de données /dev/sdb1, /dev/sdc1, /dev/sdd1 et un


disque de secours /dev/sde1.

# mdadm --create /dev/md0 --level=raid5 --raid-devices=3 /dev/sdb1


/dev/sdc1 /dev/sdd1 --spare-devices=1 /dev/sde1
Puis on formate :

# mkfs -t ext3 /dev/md0


RAID avec mdadm: État du RAID

Vous pouvez utiliser mdadm avec le paramètre --detail :

# mdadm --detail /dev/md0


Les quotas disques

Les quotas permettent de poser des limites à l’utilisation de systèmes de fichiers. Ces
limites sont de deux types :

• inodes : limite le nombre de fichiers.

• blocs : limite la taille disque.


Les quotas disques

Les quotas sont implémentés par système de fichiers individuel et pas pour
l’ensemble des systèmes de fichiers. Chaque utilisateur peut être géré de manière
totalement indépendante. Il en est de même pour les groupes. Pour chaque utilisation
(inode ou bloc), vous pouvez mettre en place deux limites dans le temps :
Les quotas disques

Limite dure (hard) : quantité maximale d’inodes ou de blocs utilisés que l’utilisateur
ou le groupe ne peuvent absolument pas dépasser. Dans ce cas, plus rien ne sera
possible (création de fichier ou fichier dont la taille dépasse la limite).
Les quotas disques

Limite douce (soft) : quantité maximale d’inodes ou de blocs utilisés que l’utilisateur
ou le groupe peuvent temporairement dépasser. Dans ce cas, les créations et
modifications seront possibles jusqu’à un certain point : limite dure et délai de grâce.
Les quotas disques

Un délai de grâce est mis en place. Durant ce temps, l’utilisateur peut continuer à
travailler sur le système de fichiers. Le but est qu’il revienne à terme sous la limite
douce. Le délai dépassé, la limite douce devient la limite dure. Quoi qu’il arrive,
l’utilisateur ne pourra jamais dépasser la limite dure.
Les quotas disques

Mise en place

Vous allez mettre en place les quotas sur la partition /home en respectant les étapes
suivantes :
Les quotas disques

Modifiez les options de partition dans /etc/fstab. On rajoute dans les options
usrquota (utilisateur) ou grpquota (groupe), ou les deux.

/dev/sdb2 /home ext3 defaults,usrquota 00


Les quotas disques

Remontez le système de fichiers.

# mount -o remount /home


Les quotas disques

Créez les fichiers contenant les informations de quota (base de données de quotas).

# cd /home

# touch aquota.user aquota.group


Les quotas disques

Mettez à jour la base de données avec la commande quotacheck.

# quotacheck -c /home
Les quotas disques

Démarrez (ou arrêter) les quotas. Cette opération n’est pas nécessaire après un
redémarrage de Linux car la mise en place des quotas est comprise dans les scripts de
démarrage. La commande quotaon démarre les quotas pour le système de fichiers
indiqué (-a pour tous). La commande quotaoff stoppe les quotas.

#quotaon /home
Les quotas disques

Éditez les quotas pour les utilisateurs ou les groupes. La commande edquota est
utilisée. En pratique, si tous les utilisateurs doivent avoir les mêmes quotas ou avec
quelques variantes, on crée un utilisateur lambda dont on recopiera les propriétés.
Les quotas disques

Établir les quotas pour Ahmed:

# edquota -u Ahmed
Les quotas disques

Les quotas de Ali sont identiques à ceux de Ahmed:

# edquota -p Ahmed Ali


Les quotas disques

Établissez le délai de grâce. Le délai accepte les unités « seconds », « minutes », «


hours », « days », « weeks », « monthes ».

# edquota -t
Les quotas disques

Vérifiez les quotas. Les utilisateurs peuvent vérifier l’état de leurs quotas avec la
commande quota. L’administrateur peut générer un rapport avec repquota. Enfin la
commande warnquota qui peut être exécutée via cron peut envoyer un mail aux
utilisateurs pour les prévenir en cas de dépassement.
Les quotas disques

Une dernière nécessité est d’utiliser régulièrement la commande quotacheck pour


maintenir la cohérence des informations de quotas des systèmes de fichiers. En effet,
en cas arrêt des quotas ou de problème (arrêt inopiné par exemple), il peut parfois
être nécessaire de vérifier et de réactualiser les informations.

# quotacheck -avug
Access control lists (ACLs) Linux

Complément aux droits standards et étendus

Les droits standards et les droits étendus sont des fonctionnalités intéressantes mais
qui ne s'applique que pour un seul utilisateur ou un seul groupe. Comment définir
des permissions spécifiques, voire différents, pour d'autres utilisateurs ou groupes
que les propriétaires ? Les ACLs offrent une réponse à cette question.
Access control lists (ACLs) Linux
Visualiser les permissions ACLs
# mkdir /opt/partage
# ls -ld /opt/partage
drwxr-xr-x. 2 root root 6 23 fév 20:16 /opt/partage
# getfacl /opt/partage
file: /opt/partage
owner: root
group: root
user::rwx
group::r-x
other::r-x
Access control lists (ACLs) Linux
Ajouter un ACLs à un répertoire¶
# setfacl -m g:omega:rx /opt/partage
# setfacl -m u:alfa:rwx /opt/partage
# getfacl /opt/partage
file: /opt/partage
owner: root
group: root
user::rwx
user:alfa:rwx
group::r-x
group:omega:r-x
other::r-x
TP

Vous aimerez peut-être aussi