LES MÉDIAS
Les périphériques de stockage sont placés dans le répertoire /dev
Lecteur de disquettes 1: fd0
Lecteur de disquettes 2: fd1
Disque dur maitre: sda/hda
Partition 1: sda1, Partition 2: sda2,….
Disque dur esclave: sdc
Lettre suivante pour les autres périphériques
Utilisez dmesg pour identifier le nom de votre clé usb
Partitionnement
fdisk
fdisk /dev/sdb
cfdisk
Cfdisk /dev/sdc
LES MÉDIAS
Un filesystem journalisé note toutes les transactions à venir avant de les exécuter
En cas de crash, le système peut savoir ce qui a été fait et ce qui ne l'a pas été
La journalisation procure donc quelques avantages :
la durée d'un fsck au boot ne dépend plus de la taille du filesystem (on sait ou chercher)
intégrité des données accrue (et paramétrables)
ext3/ext4/jfs/xfs/ReiserFS/Reiser4 sont journalisés
LES MÉDIAS
FORMATS DE PARTITIONS
minix
fs original ReiserFS/Reiser4/Btrfs
simple, encore utilisé sur les disquettes journalisé
limité (64 Mb) 10 fois plus performant sur les petits fichiers
ext2 problème de pérennité ?
développé en 1993 iso9660/udf
limité (2 Tb) respectivement CDRoms/DVDRoms
ext3 fat/vfat/ntfs
ext2 journalisé fat/vfat bien gérés
Conserve un espace libre (5%) support ntfs plus délicat (ro)
ext4 unionfs
supporte jusqu’au Exbioect (2^60) aggrégat de filesystems différents
en cours d'intégration au kernel mélange possible entre ro/rw
jfs/xfs nfs/smbfs/coda
journalisés filesystems réseau
respectivement IBM/SGI
Donne la totalité de l’espace (-1%)
LES MÉDIAS
FSTAB
Le fichier /etc/fstab contient les points de montage systèmes.
Pour chaque filesystem à monter, /etc/fstab contient :
la partition à monter (/dev/sda1)
le point de montage (/var)
le type de filesystem (reiserfs, ext3, ...)
les options de montage (lecteur seule, propriétaire, etc...)
un booléen à 1 si le fs doit être sauvegardé par dump (archivage)
un numéro d'ordre pour la vérification de fs au boot
LES MÉDIAS
{u,}mount : {dé,}montage des partitions sur le filesystem
mount <device> <mountpoint>
umount <device|mountpoint>
Les options communes à tous les types de systèmes de fichiers sont :
ro / rw Montage en lecture seulement/lecture-écriture
suid / nosuid Autorise ou interdit les opérations sur les bits suid et sgid
Interprète/n'interprète pas les périphériques caractères ou les
dev / nodev
périphériques blocs spéciaux sur le système de fichiers
Autorise ou interdit l’exécution de fichiers binaires sur ce
exec / noexec
système de fichiers
Le système de fichiers est (c’est l’option par défaut) / n'est pas
auto / noauto
monté automatiquement
Permet à tout utilisateur / seulement à root (C’est le
user / nouser paramétrage par défaut) de monter le système de fichiers
correspondant
Selon cette valeur, toutes les entrées/sorties se feront en
sync / async
mode synchrone ou asynchrone
Utilise le paramétrage par défaut (c’est équivalent à rw, suid,
defaults
dev, exec, auto, nouser, async)
LES BLOCS
Lors d’un formatage → Division des secteurs en petit groupes appelés blocs.
Une taille de bloc peut être spécifié.
mkfs -t ext3 -b 4096 /dev/sda1
Les tailles :
Ext2 peut être de 1 Ko, 2 Ko, 4 Ko, 8 Ko
Ext3 peut être de 1 Ko, 2 Ko, 4 Ko, 8 Ko
Ext4 peut être comprise entre 1 Ko et 64 Ko
Impact :
Taille maximal d’un fichier
Taille maximal du système de fichier
Performances
A savoir:
Plus les blocs sont petits plus la lecture d’un gros fichier prendra du temps
Avantageux d’utiliser des petits blocs pour de petits fichiers
Moins d'IOPS sera exécuté si vous avez une plus grande taille de bloc pour votre système de fichiers.
LES BLOCS
Constitué de blocs de 1024 octets
3 types de blocs
Superblocks (stock les métadonnées du système)
Répétés tous les 8193 blocs, informations sur la taille des blocs, les inodes libres, dernier moment de montage…
Inodes (stock les métadonnées des fichiers)
Pointeurs vers des blocs de données.
Chaque inode fait 256 octets et contient les « user, group, permissions et time-stamp » associés aux données
Les blocs de données
Fichiers et répertoire contenant les données
GESTION DES DISQUES ET LVM
LVM (Logical Volume Management) Fournit un abstraction du matériel de stockage :
on travaille sur des volumes logiques et non plus sur des partitions
on travaille sur des volume groups au lieu de disques
on peut ajouter des partitions dans des volumes groups
on peut agrandir les volumes logiques si nécessaire
LVM permet au final de construire des systèmes de fichiers sur des devices ayant des tailles modulables
Le système de fichier doit supporter le redimensionnement pour en profiter !
GESTION DES DISQUES ET LVM
Lister les partitions d'un disque /dev/sda Visualiser : lvdisplay ou lvs
fdisk -l /dev/sda Création de partition
fdisk -l (voir toutes les partitions) Formater en ext4
Partitionner un disque /dev/sda mkfs.ext4 /dev/ext00-vg/lv01 (chemin)
fdisk /dev/sda Formater en xfs
Déclarer des PV (Physical Volume) mkfs.xfs /dev/sda1
pvcreate /dev/sda /dev/sdb /dev/sdc Montage du LV
Visualiser : pvdisplay ou pvs mkdir /mnt/lv01
Créer un VG (Volume Group) mount /dev/ext00-vg/lv01 /mnt/lv01
vgcreate VGDATA /dev/sda1 /dev/sdb1 Redimensionner xfs
Visualiser : vgdisplay ou vgs xfs_growfs [options] mount-point -D size
Créer un LV (Logical Volume) xfs_growfs /dev/vg_test/lv_test
lvcreate -n [Nom_LV] -L [Taille] [nom_VG]
GESTION DES DISQUES ET LVM
Augmenter la taille du VG après ajout d’un disque :
pvcreate [nouveau_disque]
vgextend [nom_VG] [Nom_du_nouveau_disque]
vgextend ext00-vg /dev/sdb
Ensuite vérifier l’état de son LV
e2fsck -f [chemin de votre lv] (visible avec fdisk -l)
e2fsck -f /dev/mapper/ext00--vg-lv01
Puis redimensionner le LV
lvresize -L [nouvelletaille] [chemin de votre LV]
lvresize -L 12G /dev/ext00-vg/lv01
Et Redimensionner la partition
resize2fs [chemin du LV]
resize2fs /dev/mapper/ext00--vg-lv01 (ext4,ext3…)
xfs_growfs /dev/mapper/ext00--vg-lv01 (pour xfs)
Vérifier avec df -h
GESTION DES DISQUES ET LVM EXT4
Diminuer la taille d’un LV
Attention : Si vous diminuez votre LV avant la partition contenu à l’intérieur vous pouvez la détruire!
D’abord démonter la partition
umount [votre_partition]
umount /mnt/lv01
Vérifier l’état de la partition :
e2fsck -f /dev/mapper/ext00--vg-lv01
Réduire la taille de la partition (Avant de diminuer le LV !)
Resize2fs -f /dev/mapper/ext00--vg-lv01 2G
Puis réduire le LV
lvreduce -L <la taille voulue> <le chemin>
lvreduce -L 2G /dev/ext00-vg/lv01
Confirmer avec « y » à la question
Puis remonter le volume
mount /dev/ext00-vg/lv01 /mnt/lv1/
df -h pour vérifier : (ici nous avons descendu la partition à 2GO.)
GESTION DES DISQUES ET LVM XFS
Diminuer la taille d’un LV en XFS lvcreate -L 10G -n home centos
Attention : Il est nécessaire de détruire le FS et de le Confirmer avec « y » à la question
recréer - Donc il va nous falloir effectuer un dump Formater en xfs
avant de manipuler.
mkfs.xfs /dev/centos/home
Sauvegarder la partition
Puis remonter le volume
xfsdump -l 0 -f /root/home.image /dev/centos/home
mount /dev/ext00-vg/lv01 /mnt/lv1/
D’abord démonter la partition
df -h pour vérifier : (ici nous avons descendu la partition à
umount [votre_partition] 2GO.)
umount /mnt/lv01 Remonter le dump
Remove l’ancien LV xfsrestore -f /root/home.image /home
lvremove /dev/centos/home
Puis create le nouveau LV avec la nouvelle taille
lvcreate -n [Nom_LV] -L [Taille] [nom_VG]
GESTION DES DISQUES ET LVM
df : donne l'occupation des filesystems montés
df -h | grep "^/dev/"
lsblk : Voir point de montage + partitions
lsusb :Voir les périphériques USB
blkid : Voir ses UUID
hdparm : tuning du disque (DMA, energie, ...)
sudo hdparm /dev/sda
tune2fs : tuning du filesystem (max-mount, UUID)
sudo tune2fs l /dev/sda2
fsck : vérification du filesystem (boot single-user)
fsck a /dev/hda6
GESTION DES DISQUES ET LVM
Filesystems spéciaux
procfs
monté dans /proc
contient des informations sur les processus
zone fourre-tout pour les variables exportées du kernel
sysfs
monté dans /sys
contient des informations sur les devices présents
GESTION DES DISQUES ET LVM
Le SWAP
L'espace de swap permet de décharger temporairement la mémoire physique (RAM)
La taille empirique recommandée est RAM / 2
Lorsqu'un process n'utilise pas une zone de sa mémoire («page»), le kernel peut décider de la mettre dans le
swap («swap out»)
Lorsque la mémoire physique se fait rare, les zones nécessaires aux process :
doivent être stockées sur le swap («swap out»)
puis relues depuis le swap lorsque le process s'exécute («swap in»)
GESTION DES DISQUES ET LVM
EXEMPLE DE PARTITIONNEMENT
GESTION DES DISQUES ET LVM
Les inodes
Dans un fs unix, chaque fichier est représenté par un inode
Le fs contient une table d'association
"nom de fichier" ⇔ "inode"
L'inode contient toutes informations nécessaires concernant le fichier :
numéro d'inode
permissions, propriétaire
dates (création, accès, modification)
références vers les blocs de données
INODES
Inodes (Index nodes)
Pointeurs vers des blocs de données.
Chaque inode fait 256 octets et contient:
L’identifiant du proporiétaire (UID)
L’identifiant du groupe propriétaire (GID)
Les droits (rwxrwxrwx)
La taille du fichier
La date de dernier accès au fichier
La date de derniere modification du fichier
Le nombre de liens
La table des blocs
Retrouver un fichier avec son inode :
find / -inum <inode>
Recherche un fichier par son nom
find / -name <nom du fichier>
LES LIENS SYMBOLIQUES
Un hard link est simplement une entrée de la DT qui pointe vers Les soft links (symbolic links / symlinks) pointent vers un autre «
un inode fichier» de la DT
Il peut y avoir plusieurs hard-links sur un inode (et donc Le lien symbolique n'existe que par l'objet qu'il pointe : sans lui,
plusieurs « noms » pour un même contenu) plus de fichier
Les inodes existent tant qu'il y a au moins un hard-link pointant
dessus
UTILISATION DES LIENS
hard links
ne peuvent fonctionner que sur un même filesystem (la « ln » permet de créér des liens
tables des inodes est spécifique au filesystem)
ln original destination
performances maximum (rien ne distingue un hard link
crée un hard link (destination) pointant sur l'inode de original
d'un autre)
« ln -s » original destination
soft links
crée un lien symbolique destination pointant sur original
peuvent fonctionner entre les filesystems
« stat » permet de connaître toutes les infos d'un
impact sur les performances (indirection)
inode
un symlink n'est rien sans son hard-link !
stat fichier
affiche le contenu de l'inode pointé par fichier
TP
Créer une VM avec la table de partition suivante :
EN LVM – Taille du disque 40G
/boot = ext2 = 1G
/ = ext4 = 20G
/home = xfs = 5G
/var = ext4 = 10G
/tmp = ext4 = 3G
Installer votre machine avec VOTRE table de partition en LVM
Volumegroup : vg-data
Logical volume : lv-data01
Ajoutez 2 disques de 20GO (SCSI) à la VM
Installer le package lvm2
Créer un volume group nommé : vg-data, qui contiendra vos 2 disques
Puis créer 2 logicals volumes qui seront montés dans
/data01 (20GO)
/data02
Puis ajouter un dernier disque de 30GO et étendre data01 de 10GO et et data02 de 30GO.
N’oubliez pas de respecter les étapes nécessaires. (tout en ext4)