Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux
Caract´eristiqueset fonctionnalit´es des syst`emes de fichiers locaux ANF Mathrice 2018 SSA3
Vincent Bayle
AFMB UMR7257
December 4, 2018 Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Introduction
Introduction Caract´eristiquesdes syst`emesde fichier Cr´eation,Diffusion Repr´esentationdes donn´eessur le disque Journalisation Ecritures Copy On Write R´eductionde l’espace utilis´e: Compression, D´eduplication Chiffrement V´erificationde l’int´egrit´edu syst`emede fichiers ou des donn´ees: fsck, scrub Abstraction de la couche stockage : gestion de volume logiques Snapshots Clones Dispositifs de cache Les diff´erentssyst`emesde fichiers Environnement OsX HFS, HFS+ APFS Environnement Windows FAT et d´eriv´es NTFS Environnement Unix linux : ext linux : btrfs xfs jfs UFS ZFS / OpenZFS Conclusion Sources Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Introduction
Introduction
Pour un syst`emede fichiers, on trouve deux significations :
I Le syst`emede fichier virtuel pr´esent´e`al’utilisateur (sous Unix), arbre invers´eavec /pour racine
I L’organisation des donn´eessur un espace physique ou logique
Pr´esentationlimit´ee aux syst`emesr´ecents, rattach´es`ades disques durs en local Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Introduction
M´eta-donn´ees
Du syst`emede fichier : m´ecaniqueinterne Pour les fichiers, elles peuvent avoir une utilit´epour l’utilisateur :
I Nom
I dates (cr´eation,modification, acc`es)
I droits I attributs sp´ecifiques(par exemple read only) I propri´etaire,groupe I type de droits (lecture ´ecriture-modification suppression ex´ecution) I ACLs I Audit des fichiers (SACL NTFS : qui a copi´e,regard´e,etc.)
I type de fichier (fichier r´egulier,r´epertoire, lien, raccourci...)
I indication du type de contenu (extension, type MIME)
I d’autres, ´eventuellementprogrammable dans certains syst`emesde fichiers Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Caract´eristiquesdes syst`emesde fichier
Introduction Caract´eristiquesdes syst`emesde fichier Cr´eation,Diffusion Repr´esentationdes donn´eessur le disque Journalisation Ecritures Copy On Write R´eductionde l’espace utilis´e: Compression, D´eduplication Chiffrement V´erificationde l’int´egrit´edu syst`emede fichiers ou des donn´ees: fsck, scrub Abstraction de la couche stockage : gestion de volume logiques Snapshots Clones Dispositifs de cache Les diff´erentssyst`emesde fichiers Environnement OsX HFS, HFS+ APFS Environnement Windows FAT et d´eriv´es NTFS Environnement Unix linux : ext linux : btrfs xfs jfs UFS ZFS / OpenZFS Conclusion Sources Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Caract´eristiquesdes syst`emesde fichier Cr´eation,Diffusion
Cr´eation,Diffusion
I Quand a ´et´elanc´ele code pour le syst`emede fichiers (maturit´e/obsolescence)
I Qui produit le syst`emede fichiers :
I Soci´et´ecommerciale (associ´e`aun syst`emed’exploitation) I Monde libre, et dans ce cas, mode : I Cath´edrale I Bazar
I Diffusion des caract´eristiques des syst`emesde fichiers : I Libre (diff´erentstypes de licenses) I ou pas : I caract´eristiquesnon divulgu´ees I prot´eg´eespar des brevets : licenses d’utilisation Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Caract´eristiquesdes syst`emesde fichier Repr´esentationdes donn´eessur le disque
Repr´esentationdes donn´eessur le disque
I Forme sur le disque I Composition I en bloc I inode I domaines (extents) I emplacement des m´eta-donn´eesdes fichiers I Nom des fichiers I taille (nombre de caract`eres) I extension I jeu de caract`eresutilis´es
I ACLs disponibles
I Quotas disponibles sur le syst`emede fichier : I pour un utilisateur I pour un sous espace I avec limitation de l’espace utilis´eet / ou du nombre de fichiers
I Sommes de contrˆole I pour des transactions I pour des m´eta-donn´ees I pour les donn´ees
I De cette repr´esentationsur le disque (et quelquefois d’une taille de bloc param´etrable),d´ecoulentdes limitations sur les diff´erentestailles : I Taille maximale du syst`emede fichier I Taille maximale d’un fichier I Nombre de fichiers total, par r´epertoire Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Caract´eristiquesdes syst`emesde fichier Repr´esentationdes donn´eessur le disque
Journalisation
Dispositif qui permet de s’assurer de la coh´erencedu syst`emede fichier, par rapport `a une op´erationd’´ecritureinterrompue
I Ecriture dans un journal des op´erations
I En cas de red´emarrage, les transactions peuvent ˆetrerejou´ees
I Concerne plutˆotles m´eta-donn´eesdu syst`emede fichiers
I Impact ´eventuelsur les performances
I Permet d’´eviterun fsck (file system check), en cas de red´emarrage intempestif
I Deux mani`eresde stocker : I logique I physique
I Trois mani`eresde se comporter vis-`a-visde la coh´erence: I Writeback I Ordered I Data Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Caract´eristiquesdes syst`emesde fichier Repr´esentationdes donn´eessur le disque
Ecritures Copy On Write
I Dispositif copi´ede la gestion de la m´emoirevirtuelle des ordinateurs (fork) 1 I Sur les syst`emesde fichiers, plutˆotRedirect on Write : I Quand une ´ecritureest r´ealis´ee,on utilise un nouvel espace (bloc p.ex.) I Et les pointeurs sont ensuite modifi´es
I Les donn´ees(et m´etadonn´ees)restent donc coh´erentes
I Et le nombre d’´ecrituresreste limit´e
1Pour une op´erationr´eellementCopy on Write, copie du bloc, puis modification de l’original, soit 2 ´ecritures Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Caract´eristiquesdes syst`emesde fichier Repr´esentationdes donn´eessur le disque
R´eductionde l’espace utilis´e: Compression, D´eduplication
Compression : Diff´erentsalgorithmes disponibles Impl´ement´eepar fichier D´eduplication: En comparant avec une base de donn´eesdes blocs d´ej`astock´essur le syst`eme Peut-ˆetrer´ealis´ee:
I online : n´ecessitebeaucoup de m´emoirepour une base de blocs I post-traitement Les ´el´ementsd´e-dupliqu´espeuvent ˆetredes blocs, des fichiers, etc. Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Caract´eristiquesdes syst`emesde fichier Repr´esentationdes donn´eessur le disque
Chiffrement
Les syst`emesde fichiers offrent diverses possibilit´esquand au chiffrement
I D’un volume ou sous-volume
I Des fichiers
I Eventuellement par utilisateur Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Caract´eristiquesdes syst`emesde fichier V´erificationde l’int´egrit´edu syst`emede fichiers ou des donn´ees: fsck, scrub
V´erificationde l’int´egrit´edu syst`emede fichier : fsck, scrub
fsck : File System ChecK consiste `av´erifierque le syst`emede fichier est dans un ´etatcoh´erent Mais cela ne pr´esumeen rien de l’´etatdes donn´eessur le disque scrub : est une op´erationde v´erificationsyst´ematiqueli´ee`al’utilisation de somme de contrˆole
I sur les m´eta-donn´ees I et sur les donn´ees Le m´ecanisme:
I le syst`emede fichier est parcouru de mani`ereexhaustive I la somme de contrˆoledes ´el´ementslus est compar´ee`aune version initiale I en cas d’erreur : I en cas de redondance suffisante, l’information est r´ecup´er´ee I sinon, elle est perdue (et identifi´eecomme telle) Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Caract´eristiquesdes syst`emesde fichier Abstraction de la couche stockage : gestion de volume logiques
Gestion de volumes logiques
Sur le mod`eledu gestionnaire de volume logique LVM de linux :
I Agr´egationd’espaces physiques de stockage (couche physique : PV)
I Couche interm´ediairede gestion (zpool, VG)
I Pr´esentationau syst`emede volumes logiques (datasets, LV) : partitions ou datasets Le syst`emepeut int´egrerde la r´epartition des donn´ees:
I A des niveaux diff´erents(zpool ou LV)
I Et permettre des r´epartitions diff´erentes: I Stripping ou RAID0 I Mirroring (RAID1) I RAID10 I Simple parit´e(RAID5 ou raidz), double parit´e(RAID6ou raidz2), triple parit´e(raidz3) Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Caract´eristiquesdes syst`emesde fichier Abstraction de la couche stockage : gestion de volume logiques
Gestion de volumes logiques
Notion associ´ees:
Sous-volume : I P´eriph´eriqueen mode bloc I Syst`emede fichier rattach´e I Sous-r´epertoire du r´epertoire parent (hi´erarchie possible) I Point de montage ´eventueldans le syst`emede fichier virtuel I Quota I Espace r´eserv´e Thin-Provisionning : Partage non-exclusif de l’espace disponible entre plusieurs sous-volumes (pas d’espace r´eserv´e) Tiering : Mise en place de stockage sur des espaces utilisant des technologies diff´erentes,plus ou moins rapide. Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Caract´eristiquesdes syst`emesde fichier Abstraction de la couche stockage : gestion de volume logiques
Snapshots Un snapshot (instantan´een fran¸cais)est une version du syst`emede fichier, dans un ´etatcoh´erent
I D´ependant de la technologie sous-jacente
I En lecture seule, ou lecture-´ecriture I Syst`emecopy on write : ensemble de pointeurs vers les blocs `al’instant ou le snapshot est pris. I Taille mobilis´eepar un snapshot minimale (principalement les modifications) I Ecriture de quelques m´eta-donn´eessuppl´ementaires I Destruction des snapshots instantan´ee I Possibilit´ed’envoi de diff´erentielsentre snapshot, pour diminuer les tailles des sauvegardes I Syst`emenon copy on write (LVM) : taille initiale (maximale) fig´ee. I Quand il y modification d’un bloc, r´e´ecrituredu bloc initial dans le snapshot, et du nouveau `ala place I Multiplication des ´ecritures(i.e. 1 snapshot = 2 ´ecritures,8 snapshots = 9 ´ecriture): perte de performance I Une fois rempli, un snapshot est compl`etement inutilisable I Une destruction de snapshot (merge) n’est pas instantan´ee(attention au reboot...) En cons´equence:
I Le nombre d’instantan´epeut ˆetrelimit´e
I La consommation de ressources peut ˆetrecons´equente: espace disque, ou autre (cas BTRFS p.ex.)
I Impact (ou pas) sur les performances
I Possibilit´ede diff´erentielsentre 2 snapshots, incr´emental Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Caract´eristiquesdes syst`emesde fichier Abstraction de la couche stockage : gestion de volume logiques
Clones
Pour un syst`emede fichiers, un clone est un fork d’un syst`emede fichier. Mais en lecture ´ecriture:
I Possibilit´ede basculer d’un clone `al’autre
I Consommation de ressources
I Impact sur les performances Certains syst`emesde fichiers permettent de cr´eerun clone d’un fichier :
I Li´e`ades syst`emescopy on write
I Diff´erentd’un lien permanent : I Cr´eationd’un nouvel inode I Seuls les nouveaux blocs des 2 fichiers seront diff´erents Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Caract´eristiquesdes syst`emesde fichier Dispositifs de cache
Dispositifs de cache
Il existe des dispositifs de cache `aplusieurs niveau :
I En lecture
I En ´ecriture Les dispositifs vont utiliser plusieurs supports :
I M´emoire
I Disques ou ´el´ementsde stockage plus rapides (SSD, NVME, m´emoire) Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Les diff´erents syst`emesde fichiers
Introduction Caract´eristiquesdes syst`emesde fichier Cr´eation,Diffusion Repr´esentationdes donn´eessur le disque Journalisation Ecritures Copy On Write R´eductionde l’espace utilis´e: Compression, D´eduplication Chiffrement V´erificationde l’int´egrit´edu syst`emede fichiers ou des donn´ees: fsck, scrub Abstraction de la couche stockage : gestion de volume logiques Snapshots Clones Dispositifs de cache Les diff´erentssyst`emesde fichiers Environnement OsX HFS, HFS+ APFS Environnement Windows FAT et d´eriv´es NTFS Environnement Unix linux : ext linux : btrfs xfs jfs UFS ZFS / OpenZFS Conclusion Sources Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Les diff´erents syst`emesde fichiers Environnement OsX
HFS, HFS+
I D´evelopp´epar Apple
I Int´egr´eaux syst`emes Mac Os et Mac OsX
I Hierarchical Filesystem depuis 1981, remplac´epar HFS+ en 1998
I Journalisation apparue avec OsX 10.3,
I ACLs de type NFSv4 `apartir de OsX 10.4
I Compression `apartir de OsX 10.6 Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Les diff´erents syst`emesde fichiers Environnement OsX
APFS :
I Cr´eation,Diffusion : d´evelopp´epar Apple, depuis 2014 I Premi`ereversion diffus´eeen 2017 (IOS 10.3) I Syst`emede fichier par d´efautdepuis OsX 10.13 (disponible depuis 10.12)
I Stockage des donn´eessur le disque : I Utilisation de B-Tree (contenu des r´epertoires, allocation des fichiers, ...) I Somme de contrˆolepour les meta-donn´ees I ACLs standards I Quelques chiffres : I Taille max du nom de fichiers : 255 caract`eresen UTF16 I Taille max de volume th´eorique : 256 To en pratique I Taille max de fichiers th´eorique : 8 Eio 63 I Nombre max de fichiers : 2
I Gestion de l’espace disque et de la vitesse I Partition, gestion de sous-volume : via un partage d’espace I Quotas I Compression : impl´ement´ee I D´eduplication: non I Cache / Tiering : non Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Les diff´erents syst`emesde fichiers Environnement OsX
APFS :
I Gestion de l’int´egrit´e,de la s´ecurit´e,possibilit´ede conserver des ´etatsant´erieurs/ diff´erents.
I Journalisation : dispositif plus intelligent I Copy On Write : le syst`emeest dˆot´ed’un dispositif copy on write (r´evolutionnaire, permet d’´eviterla double ´ecrituredu journal) I Snapshots read only, I Clones de fichiers disponibles
I V´erificationde l’int´egrit´edes m´eta-donn´ees(somme de contrˆole) I Chiffrement : disponible
I Autres ´el´ements: Alternate Data Stream, gestion des fichiers creux (sparse files) Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Les diff´erents syst`emesde fichiers Environnement Windows
FAT (12-16-32) / VFat / ExFat
I Syst`ememono-utilisateur
I Diffus´epar microsoft depuis MS-DOS, taille des indices a grandi avec la taille des p´eriph´eriques
I Initialement, limitation des noms `a8 + 3 caract`eres
I VFAT pour parer `acette limitation
I (D´e)Fragmentation : certains ont vu bouger des carr´esde couleur...
I ExFat depuis 2006 I Soumis `aune license microsoft, prot´eg´epar des brevets I R´epandudans les dispositifs mobiles I Redevance microsoft dans les appareils mobiles Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Les diff´erents syst`emesde fichiers Environnement Windows
NTFS : New Technology File System
I Cr´eation,Diffusion : d´evelopp´epar Microsoft, premi`ereversion en 1993.
I D´eveloppeurs d´ebauch´esde chez DEC I Plusieurs versions jusqu’en 2001(Version 3.1, livr´eeavec Windows XP)
I Stockage des donn´eessur le disque : I Utilisation de B+Tree (contenu des r´epertoires, allocation des fichiers) I ACLs standards (DACL) et d’audit : SACL I D´efragmentation: possible I Quelques chiffres : I 256 caract`erepar nom de fichier (UTF16) I Taille max de volume th´eorique : 16 EiO (256 To en pratique) I Taille max de fichiers th´eorique : 16Eio (16To en pratique) 32 I Nombre max de fichiers : 2 − 1 Gestion de l’espace disque et de la vitesse
I Gestion de plusieurs disques : via le Logical Disk Manager ou Storage Spaces I Modification possible de la taille : depuis Windows Vista I Partition, gestion de sous-volume : non I Quotas : impl´ement´es,depuis la version 3.0 (Windows 2000) I Compression : impl´ement´ee,alogrithme LZNT1 I D´eduplication: non I Cache / Tiering : non Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Les diff´erents syst`emesde fichiers Environnement Windows
NTFS : New Technology File System
I Gestion de l’int´egrit´e,de la s´ecurit´e,possibilit´ede conserver des ´etatsant´erieurs/ diff´erents.
I Journalisation : impl´ement´eedepuis l’origine I Copy On Write : le syst`emesemble ˆetredot´ede dispositif copy on write I Snapshots disponibles via un service Volume Shadow Copy Service (VSS) I Persistent depuis vista (accessible Previous Version / System Restore) I V´erificationde l’int´egrit´e(fsck / scrub). Utilitaire ChkDSK, ´equivalentfsck I Chiffrement : disponible depuis la version 3.0, via le service EFS
I Autres ´el´ements: Alternate Data Stream
I Manipulation retard´eesur d’autres OS (la structure n’est pas document´ee)
I Rempla¸canten cours de cr´eation: Syt`emeReFS I Utilisation de sommes de contrˆole(sur les m´eta-donn´eesou les donn´ees) I Allocation on write I Disponible depuis Windows Server 2012 Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Les diff´erents syst`emesde fichiers Environnement Unix
Liste des syst`emesde fichiers d´ecritssur les syst`emesUnix
I Suite ext : I ext2 I ext3 I ext4 I btrfs
I reiserfs
I xfs
I jfs
I UFS
I ZFS Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Les diff´erents syst`emesde fichiers Environnement Unix ext2
I Lanc´een 1994, d´evelopp´epar R´emiCard,
I Stockage des donn´eessur le disque : I d´ecoupageen blocs (de 1k `a8k), regroup´esen groupes (de taille fixe) I inodes : interm´ediaires(logiques et physiques) entre les r´epertoires, fichiers et les blocs
I Quelques chiffres : I Taille maximale du syst`emede fichiers : 16 TB pour une taille de bloc de 4 ko (2TB avant le noyau 2.4) I Taille maximale d’un fichier : 2TB I Liste seulement pour le contenu des r´epertoires, lenteurs au-del`ade 10000 fichiers / r´epertoire
I Gestion de l’espace disque et de la vitesse I Gestion de plusieurs disques : non I Modification possible de la taille : via le programme resize2fs (e2fsprogs) I Partition, gestion de sous-volume : aucune I Quotas : gestion par le syst`eme I Compression : possible via un module compl´ementaire I D´eduplication: non I Cache / Tiering : syst`eme´eventuellement
I Gestion de l’int´egrit´e,de la s´ecurit´e,possibilit´ede conserver des ´etatsant´erieurs/ diff´erents. I Journalisation non I Copy On Write : non, pas de snaphshots, ni clones non plus I V´erificationde l’int´egrit´e: fsck (e2fsck), seulement sur un syst`emede fichier non-mont´e I Chiffrement : non Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Les diff´erents syst`emesde fichiers Environnement Unix ext3
I D´eveloppement depuis 1999, disponible dans le noyau `apartir de 2001. Compatible avec les syst`emesext2
I Stockage des donn´eessur le disque : I d´ecoupageen blocs (de 1k `a8k), regroup´esen groupes I Index HTree pour les r´epertoires
I Quelques chiffres I Taille maximale du syst`emede fichiers : 16 TB pour une taille de bloc de 4 ko I Taille maximale d’un fichier : 2TB
I Gestion de l’espace disque et de la vitesse I Gestion de plusieurs disques : non I Modification possible de la taille (r´eduction, agrandissement) : via le programme resize2fs (e2fsprogs) I Partition, gestion de sous-volume , thin-provisionning : non I Quotas : gestion par le syst`eme I Compression : via un module suppl´ementaire I D´eduplication: non I Cache / Tiering : non
I Gestion de l’int´egrit´e,de la s´ecurit´e,gestion de snapshots, clones I Journalisation : fonctionnalit´eajout´ee,pour les donn´ees,ou seulement les m´eta-donn´ees I Copy On Write : non I V´erificationde l’int´egrit´e: fsck, sur un syst`emede fichier non-mont´e I Chiffrement : non Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Les diff´erents syst`emesde fichiers Environnement Unix ext4
I D´eveloppement depuis 2006, disponible dans le noyau `apartir de 2008. R´etro-compatibleavec les syst`emesext3
I Stockage des donn´eessur le disque : I d´ecoupageen blocs (de 1k `a8k), regroup´esen domaines (extents) qui sont des blocs contig¨ues(128MiB pour une taille de bloc de 4k) I utilisation d’inodes : interm´ediairesentre les fichiers et les blocs I delayed allocation (pour r´eduirela fragmentation)
I D´efragmentationen ligne
I Quelques chiffres I Taille maximale du syst`emede fichiers : 1EiB I Taille maximale d’un fichier : 16TB I Index HTree pour les r´epertoires
I Gestion de l’espace disque et de la vitesse I Gestion de plusieurs disques : non I Modification possible de la taille (r´eduction, agrandissement) : via le programme resize2fs (e2fsprogs) I Partition, gestion de sous-volume , thin-provisionning : non I Quotas : gestion par le syst`eme I Compression : via un module suppl´ementaire I D´eduplication: non I Cache / Tiering : non Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Les diff´erents syst`emesde fichiers Environnement Unix ext4
I Gestion de l’int´egrit´e,de la s´ecurit´e,gestion de snapshots, clones I Journalisation : oui, plus un checksum sur le journal I Copy On Write : non I V´erificationde l’int´egrit´e: fsck, sur un syst`emede fichier non-mont´e I Chiffrement : `apartir du noyau 4.1 en Juin 2015 Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Les diff´erents syst`emesde fichiers Environnement Unix btrfs
I D´eveloppement depuis 2007. Inclus dans le noyau linux en 2009. Depuis 2012, consid´er´ecomme stable pour certaines distributions
I En 2017, fin du support RedHat
I Stockage des donn´eessur le disque : I B-Tree. Utilisation de sommes de contrˆolepour les m´eta-donn´eeset les donn´ees I Extents (regroupement de blocs)
I D´efragmentation: online, depuis 2011
I Quelques chiffres I Taille maximale du syst`emede fichiers : 16EiB I Taille maximale d’un fichier : 16EiB
I Gestion de l’espace disque et de la vitesse I Gestion de plusieurs disques : Raid0, 1 et 10. Autres niveaux en cours de d´eveloppement. Ajout possibles de disques `achaud. I Modification possible de la taille online I Gestion de sous-volume possibles, montage `ades emplacements diff´erentssur le syst`emede fichiers I Quotas : gestion par sous-volume, hi´erarchique (pas par utilisateur) I Compression possible par zlib, lzo I D´eduplicationpossible I Cache / Tiering : non Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Les diff´erents syst`emesde fichiers Environnement Unix btrfs
I Gestion de l’int´egrit´e,de la s´ecurit´e,gestion de snapshots, clones I Journalisation : non I Syst`emede fichiers Copy On Write. I Permet de g´ererdes snapshots, et, des send/receive diff´erentiels,clones de fichiers I V´erificationde l’int´egrit´e: fsck, plusieurs autres m´ethodes. Scrub des disques I Chiffrement : non Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Les diff´erents syst`emesde fichiers Environnement Unix xfs
I D´eveloppement par SGI en 1993, pour les syst`emesIRIX. Port´e(sauf le gestionnaire de volumes) dans le noyau linux en 2001, disponible actuellement dans toutes les distributions
I Stockage des donn´eessur le disque : I Syst`eme64-bit, B-tree, allocation par extents, delayed allocation possible, taille de blocs fixe de 512o `a64ko I Attributs ´etendus(root ou user), sauvegard´espar xfsdump/xfsrestore I Utilisation de write barriers
I D´efragmentation: online
I Quelques chiffres I Taille maximale du syst`emede fichiers : 8EiB I Taille maximale d’un fichier : 8EiB Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Les diff´erents syst`emesde fichiers Environnement Unix xfs
I Gestion de l’espace disque et de la vitesse I Gestion de plusieurs disques : le syst`emeest adoss´e`aun gestionnaire de volumes. Qui n’a pas ´et´eport´esous Linux I Modification possible de la taille : augmentation possible online, r´eductionvia dump/restore I Gestion de sous-volume possibles : Non I Quotas : Option disponible par d´efaut I Compression : non, pas nativement I D´eduplication: Non I Cache / Tiering : non
I Gestion de l’int´egrit´e,de la s´ecurit´e,gestion de snapshots, clones I Journalisation : logique des m´eta-donn´ees.Possibilit´ede placer le journal sur un syst`emede fichier diff´erent I Syst`emede fichiers Copy On Write : Non I Snapshots disponibles : pas sous linux, renvoy´esau gestionnaire de volume I V´erificationde l’int´egrit´e: fsck. Pas de sommes de contrˆolecontre la corruption silencieuse des donn´ees I Chiffrement : `apartir du noyau 4.1 en Juin 2015 Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Les diff´erents syst`emesde fichiers Environnement Unix jfs
I D´evelopp´epar IBM depuis 1990 Version 1, 1999 pour la V2. Disponibles sur syst`emesAIX, OS/2, port´esous linux (sous licence GPL) depuis 2001.
I Stockage des donn´eessur le disque : I Syst`eme64-bit, B-tree, allocation par extents I Efficace pour certaines bases de donn´ees
I D´efragmentation: online
I Quelques chiffres I Taille maximale du syst`emede fichiers : 32 PB I Taille maximale d’un fichier : 4PB Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Les diff´erents syst`emesde fichiers Environnement Unix jfs
I Gestion de l’espace disque et de la vitesse I Gestion de plusieurs disques : Non I Modification possible de la taille du syst`emede fichier : augmentation possible online I Gestion de sous-volume possibles : Non I Quotas : disponibles I Compression : Non (seulement sur JFS1 sous AIX) I D´eduplication: Non I Cache / Tiering : non
I Gestion de l’int´egrit´e,de la s´ecurit´e,gestion de snapshots, clones I Journalisation : logique des m´eta-donn´eesseulement. D´eport sur un autre p´eriph´erique possible I Syst`emede fichiers Copy On Write : Non I Snapshots disponibles : pas sous linux, renvoy´esau gestionnaire de volume. N´ecessit´e d’utiliser un m´ecanismede lock I V´erificationde l’int´egrit´e: fsck. Pas de sommes de contrˆolecontre la corruption silencieuse des donn´ees I Chiffrement : Non Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Les diff´erents syst`emesde fichiers Environnement Unix
UFS
I Aussi appel´eFFS (Fast File System)
I D´eveloppement initial depuis 1979... Voir https://www.usenix.org/system/files/login/articles/584-mckusick.pdf
I Diff´erentesimpl´ementations
I Stockage des donn´eessur le disque : I Syst`eme64-bit, Tables pour le contenu des r´epertoires I Augmentations successives de la taille des blocs, I Dispositif ”Soft updates”, plutˆotqu’un journal
I D´efragmentation: Non
I Quelques chiffres 73 I Taille maximale du syst`emede fichiers : 8ZiB (2 octets ) 73 I Taille maximale d’un fichier : 8ZiB (2 octets ) I Nom : 255 octets Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Les diff´erents syst`emesde fichiers Environnement Unix
UFS
I Gestion de l’espace disque et de la vitesse I Gestion de plusieurs disques : Non I Modification possible de la taille du syst`emede fichier : augmentation possible online I Gestion de sous-volume possibles : Filesystem Stacking I Quotas : disponibles I Compression : Non I D´eduplication: Non I Cache / Tiering : non
I Gestion de l’int´egrit´e,de la s´ecurit´e,gestion de snapshots, clones I Journalisation : Non I Syst`emede fichiers Copy On Write : Non I Snapshots disponibles depuis 1999 I V´erificationde l’int´egrit´e: fsck (en arri`ereplan en cas d’utilisation de ”Soft updates”) I Chiffrement : Non Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Les diff´erents syst`emesde fichiers Environnement Unix
ZFS / OpenZFS Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Les diff´erents syst`emesde fichiers Environnement Unix
ZFS / OpenZFS
I Zetabytte File System
I D´eveloppement initial en 2001, par Sun Microsystems pour Solaris, le code source est lib´er´eavec OpenSolaris (2005), puis illumos (2010), premi`ereversion stable pour linux en 2013, lancement d’OpenZFS en 2013
I licence CDDL (probl`emede compatibilit´eavec la license GNU)
I Stockage des donn´eessur le disque : I Syst`eme128-bit I int´egrationde diff´erentescomposantes : I/O Scheduler, Logical Volume Manager, jusqu’`ades programmes (serveur NFS) I Bas´esur des pools d’espaces (zpool), et met `adisposition des datasets (syst`emesde fichiers) ou des volumes (zvol, p´eriph´eriqueen mode bloc) I Utilisation syst´ematiqueet hi´erarchis´eede sommes de contrˆole I Taille de blocs dynamique (128ko par d´efaut)
I D´efragmentation: ???
I Quelques chiffres 128 I Taille maximale du syst`emede fichiers : 2 octets 64 I Taille maximale d’un fichier : 16 EiB 2 octets 48 I Nombre de fichiers 2 par r´epertoire, illimit´epar syst`emede fichier I Nom : 255 caract`eresASCII Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Les diff´erents syst`emesde fichiers Environnement Unix
ZFS / OpenZFS
I Gestion de l’espace disque et de la vitesse I Gestion de plusieurs disques int´egr´eeet native. Plusieurs possibilit´ed’agr´egation,du RAID0 au raidz3 I Modification possible de la taille du syst`emede fichier : augmentation possible online I Gestion de sous-volume possibles : tr`esfine, param´etrablepour chaque branche, d´el´egationpossible de droits I Quotas : disponibles, au niveau utilisateur ou au niveau d’un sous-volume I Compression : Oui, plusieurs algorithmes disponibles I D´eduplication: Oui, online (mais consomme beaucoup de ressources) I Cache : Oui. 2 niveaux de cache en lecture (ARC, en m´emoireet L2ARC, sur disque), et un cache disponible en ´ecriture(ZIL)
I Gestion de l’int´egrit´e,de la s´ecurit´e,gestion de snapshots, clones I Journalisation : pas n´ecessaire I Syst`emede fichiers Copy On Write : Oui I Utilisation syst´ematiqueet hi´erarchis´eede sommes de contrˆole(pour les m´eta-donn´ees, les donn´ees) I Snapshots : Oui, nombre illimit´e I V´erificationde l’int´egrit´e: scrub sur les volumes I Chiffrement : au niveau des volumes (datasets) Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Conclusion
Introduction Caract´eristiquesdes syst`emesde fichier Cr´eation,Diffusion Repr´esentationdes donn´eessur le disque Journalisation Ecritures Copy On Write R´eductionde l’espace utilis´e: Compression, D´eduplication Chiffrement V´erificationde l’int´egrit´edu syst`emede fichiers ou des donn´ees: fsck, scrub Abstraction de la couche stockage : gestion de volume logiques Snapshots Clones Dispositifs de cache Les diff´erentssyst`emesde fichiers Environnement OsX HFS, HFS+ APFS Environnement Windows FAT et d´eriv´es NTFS Environnement Unix linux : ext linux : btrfs xfs jfs UFS ZFS / OpenZFS Conclusion Sources Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Conclusion
Conclusion
Evolution des syst`emesde fichiers :
I Plus de s´ecurit´e: journalisation, gestion de snapshots, v´erification de l’int´egrit´e
I Nouvelles fonctionnalit´es: clones, chiffrement
I Suit l’´evolutiondes supports et des capacit´esde traitement Limites : capacit´esd’une machine
I Agglom´eration de disques
I Bande-passante (Bus, r´eseau)
I Calcul En local, le syst`emeZFS est un cran au-dessus (maturit´e,fonctionnalit´esdisponibles), pour passer `al’´echelle, syst`emesdistribu´es Caract´eristiqueset fonctionnalit´esdes syst`emesde fichiers locaux Conclusion Sources
Sources
I Un article technique et cependant tr`esdrˆole,sur l’histoire de quelques syst`emes d’exploitations : https: //arstechnica.com/gadgets/2008/03/past-present-future-file-systems/
I Un rapport en anglais (ne pas s’arrˆeteraux premi`erespages) sur les m´ecanismes de cache sur les syst`emesde fichiers Linux ext4 et XFS, et de tests https: //www.vutbr.cz/www_base/zav_prace_soubor_verejne.php?file_id=158453
I Un rapport qui compare les syst`emesde fichiers CoW, BTRFS et ZFS en vue de l’implantation dans le syst`emeFenixOS (galaxie Tanenbaum, Minix, qui a lanc´e Linus) http://sakisk.me/files/copy-on-write-based-file-systems.pdf
I Une th`ese`apropos de l’int´egrit´ede donn´eesdans les syst`emesde fichiers, par rapport `ala journalisation (Syst`emesNTFS, ext3, xfs, jfs, reiserfs). D´etailleles modes de journalisation (writeback, ordered, data ), Explique la distinction entre Physical et Logical journaling. http://pages.cs.wisc.edu/~vijayan/vijayan-thesis.pdf
I Diff´erentsarticles wikipedia, sur les diff´erentestechnologies.