Outils pour utilisateurs

Outils du site


systemedefichiers

Systèmes de fichiers

Considérations générales

Partitionnement

RH recommande le schéma de partitionnement suivant:

  • /home
  • /opt
  • /usr/local

LVM

Permet de grouper des Volumes Physiques et d'utiliser l'espace ainsi disponible en Volumes Logiques auxquels on associera point de montage et système de fichier.

On pourra ensuite facilement gérer (notamment étendre) cet espace de stockage.

LVM se gère via l'interface system-config-lvm.

Attention : un système dont le FS racine est sur LVM doit disposer d'une partition standard pour /boot.

Extents : unité d'allocation de base. 4 mo.

Type de LV

  • linear - lv classique
  • striped - idem, en définissant explicitemment l'emplacement physique des données. Permet de répartir et donc de paralléliser les opérations d'I/O, ce qui peut apporter des perf intéressantes
  • thin provisionned volume : permet d'allouer plus de ressources que l'on en a réellement.
  • snapshot nothing to do with backup
  • cas d'utilisation: faire un fsck sur un snapshot pour déterminer si le besoin est réel sur l'original.
  • faire un test sur un snapshot des données en prod

gestion

  • pvcreate /dev/sda
  • vgcreate vgnom /dev/sda
  • lvcreate –extents 1000 –name vg_home vgnom

lvs

attributs:

  • Type de volume
    • Cache
    • mirrored
    • Mirrored w/o initial sync
    • origin
    • Origin with merging snapshot
    • raid
    • Raid w/o initial sync
    • snapshot
    • merging Snapshot
    • pvmove
    • virtual
    • mirror or raid image
    • Image out of sync
    • mirror log device
    • under conversion
    • thin Volume
    • thin pool
    • Thin pool data
    • raid or pool metadata or pool metadata spare
  • permissions
  • politique d'allocation
  • fixed minor
  • État
    • active
    • suspended
    • Invalid snapshot
    • invalid Suspended snapshot
    • snapshot merge failed
    • suspended snapshot Merge failed
  • device open / unknow
  • target type (cache, mirror, raid, snapshot, …)
  • ?
  • État de santé
  • skip activation

Déplacement d'extents

Opération à réaliser lors du retrait d'un disque d'un groupe de volume.

Snapshots

lvcreate –snapshot –name foo –size XX /dev/VGNAME/LVNAME

lvconvert –merge /DEV/VGNAME/LVNAME # ne fonctionnera pas si le LV d'origine est actif

Attention un snapshot plein, c'est un snapshot en carafe !

Attention, faire un snapshot de /root, c'est prendre le risque de rendre le système non bootable

Corrigé en regénérant le initramfs en incluant le driver dm-snapshot ( ligne add_drivers+= dans /etc/dracut.conf )

Partitions

À manipuler avec parted :

  • print
  • mkpart
  • resize

puis mkfs.

Rajouter une nouvelle partition:

  • création partition
  • création FS
  • (e2label)
  • édition /etc/fstab

Structure système de fichier

fichiers partageables ou non

fichier statiques (binaires) ou modifiés (documents)

droits d'accès

FHS

/sys est un FS virtuel utilisé principalement pour la gestion des périphérique “hotpluggable”. Propose les même informations que /proc, de manière hiérarchisée.

/sbin/ contient les binaires indispensable au démarrage et à la réparation du système, pouvant fonctionner en l'absence de /usr.

/usr/local reprend l'arborescence de /usr et propose un stockage des applications exclus des mises à jour.

/proc ne stocke pas de données mais offre une interface “fichier” aux différents composants du systèmes et aux processus en cours de fonctionnement.

Certains éléments de /proc peuvent être modifiés.

montage

À l'aide de la commande mount Voir également la commande blkid permettant de récupérer identifiant (UUID) et label d'un système de fichier. /usr pourra avoir sa propre partition et être monté en lecture-seul. On pourra également le partager entre plusieurs machines.

l'option –bind permet de monter un FS déjà monter sur un autre répertoire.

L'option –move permet de déplacer un point de montage.

Le démontage se fait via la commande umount. les commandes lsof et fuser -m permettent de déterminer les processus occupant un FS et empéchant son démontage.

ext3

Version améliorée d'ext2, apportant le principe de la journalisation. Cela permet une reprise sur incident rapide contrairement à ext2 où il est nécessaire de parcourir l'ensemble du fs pour détecter et corriger les erreurs.

Le journalisation apporte également un gain de performance par l'optimisation du nombre de seeks.

ext4

FS par défaut sur RH6. étend les possibités de mise à l'échelle de ext3. limite en terme de taille de FS et de fichiers plus importante. Utilisation des extents plutôt que des blocs : meilleure gestion des gros fichiers.

support des acl, journalisation des quotas (diminue le temps de vérification après un crash).

écriture sur disque uniquement sur fsync ⇒ optimisation de la mise en cache.

stripe geometry

Normalement, la création d'un FS de type ext4 par-dessus un système de stockage Stripé (lvm, raid) se fait de manière optimale. Il est possible de s'assurer de la chose avec l'option -E de mkfs.ext4:

mkfs.ext4 -E stride=16,stripe-width=64 /dev/device

avec stride = RAID Chunk size et stripe-width = nb de disques de données composant le raid.

write barriers

Permet de garantir l'intégrité des données en cas de perte de courant sur un périphérique avec cache d'écriture actif. À désactiver en l'absence de cache ou lorsque le cache est protégé par batterie.

Autres commandes

e2fsck
tune2fs
e2label
quota
resize2fs

nfs

Protocole permettant de monter des systèmes de fichier résidant sur d'autres machines, et d'y accéder localement.

3 versions.

TCP préferable, même si UDP est possible pour les versions 2 et 3.

La version 4 de nfs utilise exclusivement le port 2049 et rend l'utilisation de certains services inutiles.

Les services

  • rpcbind - remplace portmap. associe service et n° de port. inutile en v4.
  • nfslock - permet aux clients de verrouiller des fichiers (nfs v2 et 3)
  • lockd - processus noyau de gestion des verrous
  • rpc.mountd - gère les demandes de montage des clients nfs v2 et 3
  • rpc.nfsd - service principal
  • rpc.statd - inutilisé par v4
  • rpc.quotad - gestionnaire de quota
  • rpc.idmpad - mise en correspondance des utilisateurs nfsv4 avec uid/gid local.

option de montage nfs

  • intr
  • nfsvers
  • lookupcache
  • noexec
  • nosuid
  • rsize
  • wsize

configuration serveur

via /etc/exports ou la commande exportfs

chemin  client(options)

avec options:

  • ro
  • (a)sync
  • wdelay
  • root_squash, all_squash, anonuid, anongid
  • acl

pare-feu

dans /etc/sysconfig, il est possible de spécifier les ports sur lesquels les différents services devront écouter.

Sécurité

L'accès aux partages nfs est contrôlé via:

  • les directives d'hôtes du fichier /etc/exports. (sensible aux attaques dns)
  • les permissions sur les fichiers. (mapping uid/gid ou squashing)

On peut également améliorer ceci en utilisant kerberos

Divers

La commande showmount -e serveur donne la liste des éléments exportés par serveur.

Voir également autofs

La commande rpcinfo permet de lister les services connus de rpcbind

FS-Cache

Utilisation d'un disque local pour mettre en cache persistent des données disponibles sur le réseau. Peut apporter des gains de performance coté client et réduire la charge serveur et réseau.

xfs

FS par défaut sur RH7

scalable, high performance, quick crash recovery

Allocation delayée

Permet les quota, l'agrandissement à chaud, les quotas utilisateur, groupe et projet.

freeze / unfreeze (équivalent des snapshots lvm)

sauvegarde complète et incrémentale du FS

Write Barriers

Mécanisme de protection de l'intégrité des données lors de l'utilisation d'un cache en écriture non protégé par batterie, donc sensibles aux coupures de courant (pouvant entrainer des corruptions de données).

Garantie l'écriture dans l'ordre et sur disque des métadonnées du journal. Les applications faisant beaucoup d'appels fsync ou qui écrivent / suppriment de nombreux fichiers ne vont pas apprécier.

Ce mécanisme est donc inutile si le système de stockage utilise un système de cache protégé.

Ce mécanisme est également inutile si on désactive le cache en écriture ( hdparm -WO )

benchmark

write cache barrierresultat

swap

if m< 2 then S = 2m else S= M+2

ne pas modifier la swap en production, mais plutôt en mode rescue.

# vim: set filetype=dokuwiki:

systemedefichiers.txt · Dernière modification: 2016/03/25 20:29 (modification externe)