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: , 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 : ext linux : 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 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 () 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 : 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 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 I I I btrfs

I

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 : 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

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 ””, 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 pour Solaris, le code source est lib´er´eavec OpenSolaris (2005), puis (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, , 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.