SlideShare une entreprise Scribd logo
1  sur  38
Télécharger pour lire hors ligne
OpenSolaris : fonctionnement
    des zones et de zfs



      Bruno Bonfils, <asyd@asyd.net>
                   Association GUSES
            http://www.guses.org/home/
Sommaire
●   Présentation d'OpenSolaris
●   Les zones
    Plusieurs instances d'OpenSolaris
    Brandz : l'émulation Linux
●   ZFS
    Comment gérer simplement son espace de stockage
    Ne plus s'inquiéter pour ses données !
Présentation d'OpenSolaris
OpenSolaris
Les zones : introduction
●   Permet plusieurs instances de l'OS
●   Une seule instance du noyau pour toutes les zones
●   Partage des ressources matérielles
●   Des adresses réseaux dédiées
●   Plusieurs types de zones permettant l'héritage des
    systèmes de fichiers, permettant de réduire l'espace
    disque nécessaire à une zone
●   Zone Linux maintenant possible avec brandz
Les zones : vue d'ensemble
               Matériel             zone guest
                                  zone blastwave




                          Noyau
                                    zone asyd
                                   zone guses
                                   zone globale



●   Une seule instance du noyau
●   Une et une seule zone globale
●   N zones non globales (Solaris ou Linux)
●   Accès à toutes les zones depuis la globale
Les zones : création

Configuration minimale d'une zone :

# zonecfg -z guses
zonecfg:guses> create [-t template]
zonecfg:guses> set zonepath=/zones/guses
zonecfg:guses> set autoboot=true
zonecfg:guses> add net
zonecfg:guses:net> set physical=bge0
zonecfg:guses:net> set address=xx.xx.xx.xx
zonecfg:guses:net> end
zonecfg:guses> verify
zonecfg:guses> commit
zonecfg:guses> exit
Les zones : les fs
●   Héritage
●   Partage d'un système de fichier (lofs)
    –   en lecture seule
    –   en lecture / écriture
●   Système de fichier dédié
Administration d'une zone
    ●   Installation et configuration initiale
         # zoneadm -z guses install
         # zoneadm -z guses boot
         # zlogin -C guses
    ●   Opération de maintenance
         # zoneadm -z guses [boot|halt|reboot]
    ●   Définition d'un processor set
         # zonecfg -z guses 'set pool=guest'

Un pset (processor set) est un ensemble de processeurs qui seront dédiés aux éléments utilisant ce processor set (par
exemple des zones). Plusieurs zones peuvent être associés au même processor set. La gestion des pset est totalement
dynamique.
Exemple d'architecture
Fonctionnement des zones
●   Utilisation d'un membre zoneid dans les
    structures noyaux
    –   la gestion des processus
    –   la pile IP
    –   les services RPC (ex: NFS)
    –   les IPC
●   L'ensemble du noyau est développé en
    connaissance des zones, d'où une intégration
    parfaite
●   Attention, pas de raw sockets
Exemple d'utilisation de zoneid
                                                   Extrait de procfs.h

272 type de f s truc t ps info {
273         int pr_flag;            /* pro ce s s flags (DEPRECATED; do no t us e ) */
274         int pr_nlwp;            /* numbe r o f active lwps in the pro ce s s */
275         p id_t p  r_pid;         /* unique pro c e s s id */
276         p id_t p  r_ppid;         /* pro ce s s id o f pare nt */
277         p id_t p  r_pgid;         /* pid o f pro ce s s gro up le ade r */
278         p id_t p id;
                      r_s           /* s e s s io n id */
279         u id_t p  r_uid;         /* re al us e r id */
280         u id_t p uid;
                      r_e             /* e ffe ctive us e r id */
281         gid_t p   r_gid;         /* re al gro up id */
282         gid_t p gid;
                      r_e             /* e ffe ctive gro up id */
283         u intptr_tp  r_addr;        /* addre s s o f pro ce s s */
284         s ize _t p ize ;
                      r_s             /* s ize o f pro ce s s image in Kbyte s */
285         s ize _t p s ize ;
                      r_rs             /* re s ide nt s e t s ize in Kbyte s */
286         s ize _t pr_pad1 ;
[..]                                                                                       typedef int id_t; /* A process id, */
304         t kid_tp
             as         r_tas kid; /* tas k id */
305         p jid_tp
              ro       r_pro jid; /* pro je ct id */                                       typedef id_t zoneid_t;
306         int pr_nzo mb;             /* numbe r o f zo mbie lwps in the pro c e s s */
307         p o lid_tp
              o         r_po o lid; /* po o l id */
308          zoneid_t pr_zoneid;                /* zone id */
309         id_t p   r_co ntract; /* pro ce s s c o ntrac t */
31 0        int pr_fille r[1 ]; /* re s e rve d fo r future us e */
311         lwps info _tp  r_lwp;        /* info rmatio n fo r re pre s e ntative lwp */
31 2 } ps info _t;
Les zones Linux : BrandZ
●   Émulation d'un noyau Linux 2.4
●   Émulation partielle du système de fichier procfs
●   Installation depuis la zone globale au travers de
    fichiers ISO, de tarballs, ou de CDROM
●   S'administre de la même façon qu'une zone
    (Open)Solaris
    zonecfg> create -t SUNWlx
Fonctionnement de BrandZ
●   Interception de l'interruption Linux 80
    –   Code en assembleur
●   Traduction des appels systèmes (lx_emulate)
    –   Appel natif (mkdir)
    –   Modifications mineures, notamment sur la gestion
        d'erreur (lx_rmdir)
    –   Totalement réécrits (lx_ptrace)
Présentation de ZFS
●   Gérer simplement vos données
●   Une facilité de sauvegarde accrue grâce aux
    snapshots
●   Garantit la sécurité de vos données
    –   miroir, raidz
    –   mécanisme de copy on write (ne pas modifier des
        blocs de données existants)
    –   utilisation de checksum

                           « if 1,000 files were created every second, it would
                           take about 9,000 years to reach the limit of the
                           number of files »
Présentation de ZFS
●   Système de fichier et gestionnaire de volume
    ne font qu'un
●   Plusieurs vues instantanées (snapshot) par
    volume
●   Plusieurs niveaux de hiérarchies possibles
●   Délégation d'administration (utilisation liée aux
    zones)
ZFS : vue d'ensemble
          ●   réduction, extension à
              chaud
          ●   tout l'espace disponible
              est partagé entre les
              volumes
          ●   bande passante globale
          ●   raid1/raidz/raid6
              possible
ZFS : Création d'un pool
  ●    Création d'un pool en mode miroir
         # zpool create data mirror c0t0d0 c0t1d0
  ●    Administration du pool
         # zpool status data
         # zpool iostat 1
         # zpool scrub
                                                       # zpool status data
                                                         pool: data
                                                        state: ONLINE
# zpool iostat                                          scrub: none requested
            capacity operations bandwidth              config:
pool         used avail read write read write
---------- ----- ----- ----- ----- ----- -----             NAME        STATE READ WRITE CKSUM
data        15.5G 59.0G          0     3 4.15K 37.3K       data       ONLINE    0  0     0
data        15.5G 59.0G          0     0      0 0           c0t0d0    ONLINE    0  0     0
data        15.5G 59.0G          0 109 0 352K               c0t1d0    ONLINE    0  0     0

                                                       errors: No known data errors
ZFS : Création de volumes
●   Création d'une hiérarchie de volumes
      # zfs create data/zones
      # zfs create data/home
      # zfs create data/home/asyd
      # zfs create data/home/lei
      # zfs create data/home/murlock
●   Il n'est pas nécessaire de modifier le fichier /etc/vfstab,
    le montage est automatique
Définition des propriétés
●   Quota pour l'ensemble du volume home
    # zfs set quota=100g data/home
●   Quota par utilisateur
    # zfs set quota=50g data/home/asyd
    # zfs set quota=50g data/home/lei
    # zfs set quota=50g data/home/murlock
●   Réservation d'espace
    # zfs set reversation=10g data/home/asyd
ZFS : Les propriétés d'un volume
●   Propriétés modifiables
    –   quota : taille maximum autorisée
    –   reservation : réserve l'espace disque (le rend
        inutilisable pour les autres volumes)
    –   mountpoint : point de montage
    –   sharenfs : partage le volume en NFS
    –   compression : active la compression à la volée
    –   snapdir : répertoire des snapshots visible ou non
ZFS : les snapshots
●   Manipulation de snapshots
    # zfs snapshot data/zones/guses@20070610
    # zfs send data/zones/guses@20070610 | ssh
    # zfs rollback data/zones/guses@20070610
●   Ne nécessite pas d'espace disque
    supplémentaire à la création. Seules les
    nouvelles données consommeront de l'espace
    disque.
Exemple d'utilisation des snapshots
●   Création d'un snapshot par jour
    @lundi, @mardi, @mercredi, etc.
●   Sauvegarde différentielle
    # zfs send -i data/home/asyd@lundi 
      data/home/asyd@mardi
●   Sauvegarde complète
    # zfs send data/home/asyd@dimanche
●   Montage des snapshots
    # zfs set snapdir=visible data/home/asyd
    # ls ~/.zfs/snapdir/lundi
Le fonctionnement de ZFS
●   mirror, raidz
●   Architecture
●   L'intégrité des données
    –   CoW (Copy on Write)
    –   Checksum
         ●   fletcher
         ●   sha256
ZFS : Mode miroir
L'application génère une   Le deuxième disque est       Les données correctes sont
demande de lecture. Le     sollicité, le checksum est   renvoyées à l'application, et
premier disque est         correct.                     le bloc du premier disque
utilisé, mais une erreur                                est mis à jour avec la valeur
est détectée par                                        correcte.
vérification du
checksum.
Le raidz et raidz2
●   Similaire au RAID5, mais l'utilisation du COW le
    rend plus performant
    –   Pas de « write hole » (trou d'écriture)
●   Détection des anomalies (checksum)
●   Le raidz2 utilise une double parité, à partir de 3
    disques seulement
L’arc hite c ture de ZFS


                                            Espace Utilisateur
                                                       Noyau

                Interfaces




                Couches transactionnelles




                Stockage
Les principales couches
●   ZPL (ZFS Posix Layer) interface implémentant
    le système de fichier
●   DMU (Data Management Unit)
    –   Gestion des transactions
●   Vdev : Gestion bas niveau des périphériques
    de stockage
    –   Gestion du mirror, raidz
    –   Compression
    –   Checksum
Inte rfac e d’adminis tratio n we b
Intégrité des données

   Le COW en action !




    Modification d'un fichier existant
Intégrité des données




Les carrés jaunes représentent les données existantes
Intégrité des données




Une application génère une modification du fichier existant. Cette modification porte sur deux blocs de données, mais est
partielle sur le second bloc. On copie donc les données depuis le bloc existant, on vérifie son checksum, et on apporte les
modifications sur le nouveau bloc.
Intégrité des données




De nouveaux blocs de références sont créés, on y copie les références vers les blocs de données ainsi que leurs
checksums.
Intégrité des données




On continue de remonter.
Intégrité des données




L'uberblock (équivalent du superblock) est modifié. S'il n'y a pas de snapshots, les anciens blocs sont libérés. Il est donc
moins coûteux (en terme de CPU) d'utiliser des snapshots !
Un mot sur l'optimisation ZFS
●   Utilisation d'un cache de type ARC (Adaptive
    Replacement Cache)
●   lzjb, l'algorithme de compression utilisé par zfs
    à été développé spécifiquement pour ZFS, par
    Jeff Bonwick
Fin
●   Questions / réponses
●   Site OpenSolaris
●   La communauté zones
●   La communauté BrandZ
●   La communauté ZFS
●   Le OpenSolaris User Group francophone

Contenu connexe

Tendances

Virtualiastion des systèmes d'exploitations
Virtualiastion des systèmes d'exploitationsVirtualiastion des systèmes d'exploitations
Virtualiastion des systèmes d'exploitationsSGHIOUAR abdelfettah
 
Analyse d'un kernel (crash, core) dump
Analyse d'un kernel (crash, core) dumpAnalyse d'un kernel (crash, core) dump
Analyse d'un kernel (crash, core) dumpGaëtan Trellu
 
Présentation unix linux
Présentation unix linuxPrésentation unix linux
Présentation unix linuxEmmanuel Florac
 
utilisation des core dump sous linux
utilisation des core dump sous linuxutilisation des core dump sous linux
utilisation des core dump sous linuxThierry Gayet
 
Installation de snort avec pulled pork
Installation de snort avec pulled porkInstallation de snort avec pulled pork
Installation de snort avec pulled porkSamiMessaoudi4
 
MYSQLDUMP & ZRM COMMUNITY (FR)
MYSQLDUMP & ZRM COMMUNITY (FR)MYSQLDUMP & ZRM COMMUNITY (FR)
MYSQLDUMP & ZRM COMMUNITY (FR)Cédric P
 
Installation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderInstallation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderMohamed Ben Bouzid
 
SdE TP 3 - Fonctions d'entrée et sortie
SdE TP 3 - Fonctions d'entrée et sortieSdE TP 3 - Fonctions d'entrée et sortie
SdE TP 3 - Fonctions d'entrée et sortieAlexandru Radovici
 
A la découverte de redo
A la découverte de redoA la découverte de redo
A la découverte de redoThierry Gayet
 
PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...
PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...
PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...Arthur Lutz
 

Tendances (20)

Virtualiastion des systèmes d'exploitations
Virtualiastion des systèmes d'exploitationsVirtualiastion des systèmes d'exploitations
Virtualiastion des systèmes d'exploitations
 
Analyse d'un kernel (crash, core) dump
Analyse d'un kernel (crash, core) dumpAnalyse d'un kernel (crash, core) dump
Analyse d'un kernel (crash, core) dump
 
Boot
BootBoot
Boot
 
Présentation unix linux
Présentation unix linuxPrésentation unix linux
Présentation unix linux
 
Implementing a key/value store
Implementing a key/value storeImplementing a key/value store
Implementing a key/value store
 
utilisation des core dump sous linux
utilisation des core dump sous linuxutilisation des core dump sous linux
utilisation des core dump sous linux
 
Hdfs
HdfsHdfs
Hdfs
 
2020 (1)
2020 (1)2020 (1)
2020 (1)
 
Installation de snort avec pulled pork
Installation de snort avec pulled porkInstallation de snort avec pulled pork
Installation de snort avec pulled pork
 
Nagios
NagiosNagios
Nagios
 
MYSQLDUMP & ZRM COMMUNITY (FR)
MYSQLDUMP & ZRM COMMUNITY (FR)MYSQLDUMP & ZRM COMMUNITY (FR)
MYSQLDUMP & ZRM COMMUNITY (FR)
 
Installation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderInstallation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey Spider
 
SdE 3 - Systemes de fichiers
SdE 3 - Systemes de fichiersSdE 3 - Systemes de fichiers
SdE 3 - Systemes de fichiers
 
Poster réseau - DNS
Poster réseau - DNSPoster réseau - DNS
Poster réseau - DNS
 
SdE 2 - System de fichiers
SdE 2 - System de fichiersSdE 2 - System de fichiers
SdE 2 - System de fichiers
 
SdE TP 3 - Fonctions d'entrée et sortie
SdE TP 3 - Fonctions d'entrée et sortieSdE TP 3 - Fonctions d'entrée et sortie
SdE TP 3 - Fonctions d'entrée et sortie
 
SdE - Introduction
SdE - IntroductionSdE - Introduction
SdE - Introduction
 
A la découverte de redo
A la découverte de redoA la découverte de redo
A la découverte de redo
 
Linux commandes
Linux commandesLinux commandes
Linux commandes
 
PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...
PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...
PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...
 

En vedette

Community management 2014_mediatrium
Community management 2014_mediatriumCommunity management 2014_mediatrium
Community management 2014_mediatriumMediatrium
 
Portfolio agile : de la visibilité au pilotage
Portfolio agile : de la visibilité au pilotagePortfolio agile : de la visibilité au pilotage
Portfolio agile : de la visibilité au pilotageCaroline Damour-Nobi
 
Les médias sociaux : meilleures pratiques en contexte d'affaires #slw3r
Les médias sociaux : meilleures pratiques en contexte d'affaires #slw3rLes médias sociaux : meilleures pratiques en contexte d'affaires #slw3r
Les médias sociaux : meilleures pratiques en contexte d'affaires #slw3rFrédéric Therrien
 
PHP Forum 2010 : Php et microsoft
PHP Forum 2010 : Php et microsoftPHP Forum 2010 : Php et microsoft
PHP Forum 2010 : Php et microsoftLeTesteur
 
Detente
DetenteDetente
Detentemoipc
 
5 notion de_gnie_lectrique
5 notion de_gnie_lectrique5 notion de_gnie_lectrique
5 notion de_gnie_lectriqueAyoub Bernabio
 
Comprendre la crise financière (2009)
Comprendre la crise financière (2009) Comprendre la crise financière (2009)
Comprendre la crise financière (2009) Philippe Watrelot
 
Galopades du patrimoine 2015
Galopades du patrimoine 2015Galopades du patrimoine 2015
Galopades du patrimoine 2015Laurent Rebours
 
référencement naturel site Internet (CCI Landes)
référencement naturel site Internet (CCI Landes)référencement naturel site Internet (CCI Landes)
référencement naturel site Internet (CCI Landes)Ludovic Renoult
 
Casablanca 2010 : Le traitement ARV en tant que prévention
Casablanca 2010 : Le traitement ARV en tant que préventionCasablanca 2010 : Le traitement ARV en tant que prévention
Casablanca 2010 : Le traitement ARV en tant que préventionVih.org
 
Les nouvelles tendances dans l'immobilier - Etude Ipsos pour Orpi
Les nouvelles tendances dans l'immobilier - Etude Ipsos pour OrpiLes nouvelles tendances dans l'immobilier - Etude Ipsos pour Orpi
Les nouvelles tendances dans l'immobilier - Etude Ipsos pour OrpiIpsos France
 
Mobile : comment y aller sans le regretter ? à Lyon
Mobile : comment y aller sans le regretter ? à LyonMobile : comment y aller sans le regretter ? à Lyon
Mobile : comment y aller sans le regretter ? à Lyonaltima°
 
Google Analytics für Einsteiger
Google Analytics für EinsteigerGoogle Analytics für Einsteiger
Google Analytics für EinsteigerCathrin Tusche
 
Padd soissons
Padd soissonsPadd soissons
Padd soissonssoissons
 

En vedette (20)

Community management 2014_mediatrium
Community management 2014_mediatriumCommunity management 2014_mediatrium
Community management 2014_mediatrium
 
Portfolio agile : de la visibilité au pilotage
Portfolio agile : de la visibilité au pilotagePortfolio agile : de la visibilité au pilotage
Portfolio agile : de la visibilité au pilotage
 
Les médias sociaux : meilleures pratiques en contexte d'affaires #slw3r
Les médias sociaux : meilleures pratiques en contexte d'affaires #slw3rLes médias sociaux : meilleures pratiques en contexte d'affaires #slw3r
Les médias sociaux : meilleures pratiques en contexte d'affaires #slw3r
 
PHP Forum 2010 : Php et microsoft
PHP Forum 2010 : Php et microsoftPHP Forum 2010 : Php et microsoft
PHP Forum 2010 : Php et microsoft
 
Detente
DetenteDetente
Detente
 
5 notion de_gnie_lectrique
5 notion de_gnie_lectrique5 notion de_gnie_lectrique
5 notion de_gnie_lectrique
 
Comprendre la crise financière (2009)
Comprendre la crise financière (2009) Comprendre la crise financière (2009)
Comprendre la crise financière (2009)
 
L’e mailing2012
L’e mailing2012L’e mailing2012
L’e mailing2012
 
Galopades du patrimoine 2015
Galopades du patrimoine 2015Galopades du patrimoine 2015
Galopades du patrimoine 2015
 
référencement naturel site Internet (CCI Landes)
référencement naturel site Internet (CCI Landes)référencement naturel site Internet (CCI Landes)
référencement naturel site Internet (CCI Landes)
 
Casablanca 2010 : Le traitement ARV en tant que prévention
Casablanca 2010 : Le traitement ARV en tant que préventionCasablanca 2010 : Le traitement ARV en tant que prévention
Casablanca 2010 : Le traitement ARV en tant que prévention
 
Propriété intellectuelle nov 2012
Propriété intellectuelle nov 2012Propriété intellectuelle nov 2012
Propriété intellectuelle nov 2012
 
Modelisation et maquettage 2015
Modelisation et maquettage 2015Modelisation et maquettage 2015
Modelisation et maquettage 2015
 
Ecrire Faire Lire
Ecrire Faire LireEcrire Faire Lire
Ecrire Faire Lire
 
Les nouvelles tendances dans l'immobilier - Etude Ipsos pour Orpi
Les nouvelles tendances dans l'immobilier - Etude Ipsos pour OrpiLes nouvelles tendances dans l'immobilier - Etude Ipsos pour Orpi
Les nouvelles tendances dans l'immobilier - Etude Ipsos pour Orpi
 
Geomatique
GeomatiqueGeomatique
Geomatique
 
Mobile : comment y aller sans le regretter ? à Lyon
Mobile : comment y aller sans le regretter ? à LyonMobile : comment y aller sans le regretter ? à Lyon
Mobile : comment y aller sans le regretter ? à Lyon
 
Google Analytics für Einsteiger
Google Analytics für EinsteigerGoogle Analytics für Einsteiger
Google Analytics für Einsteiger
 
Padd soissons
Padd soissonsPadd soissons
Padd soissons
 
Paris
ParisParis
Paris
 

Similaire à (Open)Solaris : Introduction aux zones et à ZFS

Snort_Instal.pptx
Snort_Instal.pptxSnort_Instal.pptx
Snort_Instal.pptxHelmut13
 
systemd red hat linux examen Ex200 rh124
systemd red hat linux examen Ex200 rh124systemd red hat linux examen Ex200 rh124
systemd red hat linux examen Ex200 rh124loffyhacker
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linuxKhalid ALLILI
 
03 01 intervention sur le système de fichier
03 01 intervention sur le système de fichier03 01 intervention sur le système de fichier
03 01 intervention sur le système de fichierNoël
 
Réussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDBRéussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDB MongoDB
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introOlivier Mallassi
 
Rapport systéme embarqué busybox
Rapport systéme embarqué busyboxRapport systéme embarqué busybox
Rapport systéme embarqué busyboxAyoub Rouzi
 
Etude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU LinuxEtude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU LinuxThierry Gayet
 
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesBreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesXavier MARIN
 
formation-administration-reseau-linux.pdf
formation-administration-reseau-linux.pdfformation-administration-reseau-linux.pdf
formation-administration-reseau-linux.pdfssusere8c939
 
Déploiement ELK en conditions réelles
Déploiement ELK en conditions réellesDéploiement ELK en conditions réelles
Déploiement ELK en conditions réellesGeoffroy Arnoud
 
resume-theorique-m202-v1-0-6308e0082c37c (3).pdf
resume-theorique-m202-v1-0-6308e0082c37c (3).pdfresume-theorique-m202-v1-0-6308e0082c37c (3).pdf
resume-theorique-m202-v1-0-6308e0082c37c (3).pdfFootballLovers9
 

Similaire à (Open)Solaris : Introduction aux zones et à ZFS (20)

Snort_Instal.pptx
Snort_Instal.pptxSnort_Instal.pptx
Snort_Instal.pptx
 
Configuration rnis
Configuration rnisConfiguration rnis
Configuration rnis
 
systemd red hat linux examen Ex200 rh124
systemd red hat linux examen Ex200 rh124systemd red hat linux examen Ex200 rh124
systemd red hat linux examen Ex200 rh124
 
Corrige_partie_ADM.pdf
Corrige_partie_ADM.pdfCorrige_partie_ADM.pdf
Corrige_partie_ADM.pdf
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linux
 
03 01 intervention sur le système de fichier
03 01 intervention sur le système de fichier03 01 intervention sur le système de fichier
03 01 intervention sur le système de fichier
 
Présentation de ISP 7.1 (ex TSM)
Présentation de ISP 7.1 (ex TSM)Présentation de ISP 7.1 (ex TSM)
Présentation de ISP 7.1 (ex TSM)
 
Réussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDBRéussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDB
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
 
Rapport systéme embarqué busybox
Rapport systéme embarqué busyboxRapport systéme embarqué busybox
Rapport systéme embarqué busybox
 
Etude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU LinuxEtude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU Linux
 
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesBreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
 
spark_intro_1208
spark_intro_1208spark_intro_1208
spark_intro_1208
 
formation-administration-reseau-linux.pdf
formation-administration-reseau-linux.pdfformation-administration-reseau-linux.pdf
formation-administration-reseau-linux.pdf
 
Sysadmin Day #5
Sysadmin Day #5Sysadmin Day #5
Sysadmin Day #5
 
Nagios twil
Nagios twilNagios twil
Nagios twil
 
Déploiement ELK en conditions réelles
Déploiement ELK en conditions réellesDéploiement ELK en conditions réelles
Déploiement ELK en conditions réelles
 
resume-theorique-m202-v1-0-6308e0082c37c (3).pdf
resume-theorique-m202-v1-0-6308e0082c37c (3).pdfresume-theorique-m202-v1-0-6308e0082c37c (3).pdf
resume-theorique-m202-v1-0-6308e0082c37c (3).pdf
 
Ocs
OcsOcs
Ocs
 
Redis
RedisRedis
Redis
 

Plus de Bruno Bonfils (12)

Drupal sso
Drupal ssoDrupal sso
Drupal sso
 
Vue d'ensemble du SSO
Vue d'ensemble du SSOVue d'ensemble du SSO
Vue d'ensemble du SSO
 
Splunk
SplunkSplunk
Splunk
 
iTop
iTopiTop
iTop
 
RunDeck
RunDeckRunDeck
RunDeck
 
Présentation de l'association GUSES
Présentation de l'association GUSESPrésentation de l'association GUSES
Présentation de l'association GUSES
 
Métrologie des IOs
Métrologie des IOsMétrologie des IOs
Métrologie des IOs
 
Introduction à OpenSolaris
Introduction à OpenSolarisIntroduction à OpenSolaris
Introduction à OpenSolaris
 
Ldap
LdapLdap
Ldap
 
Zsh Rmll
Zsh RmllZsh Rmll
Zsh Rmll
 
Shell
ShellShell
Shell
 
La signature numérique
La signature numériqueLa signature numérique
La signature numérique
 

(Open)Solaris : Introduction aux zones et à ZFS

  • 1. OpenSolaris : fonctionnement des zones et de zfs Bruno Bonfils, <asyd@asyd.net> Association GUSES http://www.guses.org/home/
  • 2. Sommaire ● Présentation d'OpenSolaris ● Les zones Plusieurs instances d'OpenSolaris Brandz : l'émulation Linux ● ZFS Comment gérer simplement son espace de stockage Ne plus s'inquiéter pour ses données !
  • 5.
  • 6. Les zones : introduction ● Permet plusieurs instances de l'OS ● Une seule instance du noyau pour toutes les zones ● Partage des ressources matérielles ● Des adresses réseaux dédiées ● Plusieurs types de zones permettant l'héritage des systèmes de fichiers, permettant de réduire l'espace disque nécessaire à une zone ● Zone Linux maintenant possible avec brandz
  • 7. Les zones : vue d'ensemble Matériel zone guest zone blastwave Noyau zone asyd zone guses zone globale ● Une seule instance du noyau ● Une et une seule zone globale ● N zones non globales (Solaris ou Linux) ● Accès à toutes les zones depuis la globale
  • 8. Les zones : création Configuration minimale d'une zone : # zonecfg -z guses zonecfg:guses> create [-t template] zonecfg:guses> set zonepath=/zones/guses zonecfg:guses> set autoboot=true zonecfg:guses> add net zonecfg:guses:net> set physical=bge0 zonecfg:guses:net> set address=xx.xx.xx.xx zonecfg:guses:net> end zonecfg:guses> verify zonecfg:guses> commit zonecfg:guses> exit
  • 9. Les zones : les fs ● Héritage ● Partage d'un système de fichier (lofs) – en lecture seule – en lecture / écriture ● Système de fichier dédié
  • 10. Administration d'une zone ● Installation et configuration initiale # zoneadm -z guses install # zoneadm -z guses boot # zlogin -C guses ● Opération de maintenance # zoneadm -z guses [boot|halt|reboot] ● Définition d'un processor set # zonecfg -z guses 'set pool=guest' Un pset (processor set) est un ensemble de processeurs qui seront dédiés aux éléments utilisant ce processor set (par exemple des zones). Plusieurs zones peuvent être associés au même processor set. La gestion des pset est totalement dynamique.
  • 12. Fonctionnement des zones ● Utilisation d'un membre zoneid dans les structures noyaux – la gestion des processus – la pile IP – les services RPC (ex: NFS) – les IPC ● L'ensemble du noyau est développé en connaissance des zones, d'où une intégration parfaite ● Attention, pas de raw sockets
  • 13. Exemple d'utilisation de zoneid Extrait de procfs.h 272 type de f s truc t ps info { 273 int pr_flag; /* pro ce s s flags (DEPRECATED; do no t us e ) */ 274 int pr_nlwp; /* numbe r o f active lwps in the pro ce s s */ 275 p id_t p r_pid; /* unique pro c e s s id */ 276 p id_t p r_ppid; /* pro ce s s id o f pare nt */ 277 p id_t p r_pgid; /* pid o f pro ce s s gro up le ade r */ 278 p id_t p id; r_s /* s e s s io n id */ 279 u id_t p r_uid; /* re al us e r id */ 280 u id_t p uid; r_e /* e ffe ctive us e r id */ 281 gid_t p r_gid; /* re al gro up id */ 282 gid_t p gid; r_e /* e ffe ctive gro up id */ 283 u intptr_tp r_addr; /* addre s s o f pro ce s s */ 284 s ize _t p ize ; r_s /* s ize o f pro ce s s image in Kbyte s */ 285 s ize _t p s ize ; r_rs /* re s ide nt s e t s ize in Kbyte s */ 286 s ize _t pr_pad1 ; [..] typedef int id_t; /* A process id, */ 304 t kid_tp as r_tas kid; /* tas k id */ 305 p jid_tp ro r_pro jid; /* pro je ct id */ typedef id_t zoneid_t; 306 int pr_nzo mb; /* numbe r o f zo mbie lwps in the pro c e s s */ 307 p o lid_tp o r_po o lid; /* po o l id */ 308 zoneid_t pr_zoneid; /* zone id */ 309 id_t p r_co ntract; /* pro ce s s c o ntrac t */ 31 0 int pr_fille r[1 ]; /* re s e rve d fo r future us e */ 311 lwps info _tp r_lwp; /* info rmatio n fo r re pre s e ntative lwp */ 31 2 } ps info _t;
  • 14. Les zones Linux : BrandZ ● Émulation d'un noyau Linux 2.4 ● Émulation partielle du système de fichier procfs ● Installation depuis la zone globale au travers de fichiers ISO, de tarballs, ou de CDROM ● S'administre de la même façon qu'une zone (Open)Solaris zonecfg> create -t SUNWlx
  • 15. Fonctionnement de BrandZ ● Interception de l'interruption Linux 80 – Code en assembleur ● Traduction des appels systèmes (lx_emulate) – Appel natif (mkdir) – Modifications mineures, notamment sur la gestion d'erreur (lx_rmdir) – Totalement réécrits (lx_ptrace)
  • 16. Présentation de ZFS ● Gérer simplement vos données ● Une facilité de sauvegarde accrue grâce aux snapshots ● Garantit la sécurité de vos données – miroir, raidz – mécanisme de copy on write (ne pas modifier des blocs de données existants) – utilisation de checksum « if 1,000 files were created every second, it would take about 9,000 years to reach the limit of the number of files »
  • 17. Présentation de ZFS ● Système de fichier et gestionnaire de volume ne font qu'un ● Plusieurs vues instantanées (snapshot) par volume ● Plusieurs niveaux de hiérarchies possibles ● Délégation d'administration (utilisation liée aux zones)
  • 18. ZFS : vue d'ensemble ● réduction, extension à chaud ● tout l'espace disponible est partagé entre les volumes ● bande passante globale ● raid1/raidz/raid6 possible
  • 19. ZFS : Création d'un pool ● Création d'un pool en mode miroir # zpool create data mirror c0t0d0 c0t1d0 ● Administration du pool # zpool status data # zpool iostat 1 # zpool scrub # zpool status data pool: data state: ONLINE # zpool iostat scrub: none requested capacity operations bandwidth config: pool used avail read write read write ---------- ----- ----- ----- ----- ----- ----- NAME STATE READ WRITE CKSUM data 15.5G 59.0G 0 3 4.15K 37.3K data ONLINE 0 0 0 data 15.5G 59.0G 0 0 0 0 c0t0d0 ONLINE 0 0 0 data 15.5G 59.0G 0 109 0 352K c0t1d0 ONLINE 0 0 0 errors: No known data errors
  • 20. ZFS : Création de volumes ● Création d'une hiérarchie de volumes # zfs create data/zones # zfs create data/home # zfs create data/home/asyd # zfs create data/home/lei # zfs create data/home/murlock ● Il n'est pas nécessaire de modifier le fichier /etc/vfstab, le montage est automatique
  • 21. Définition des propriétés ● Quota pour l'ensemble du volume home # zfs set quota=100g data/home ● Quota par utilisateur # zfs set quota=50g data/home/asyd # zfs set quota=50g data/home/lei # zfs set quota=50g data/home/murlock ● Réservation d'espace # zfs set reversation=10g data/home/asyd
  • 22. ZFS : Les propriétés d'un volume ● Propriétés modifiables – quota : taille maximum autorisée – reservation : réserve l'espace disque (le rend inutilisable pour les autres volumes) – mountpoint : point de montage – sharenfs : partage le volume en NFS – compression : active la compression à la volée – snapdir : répertoire des snapshots visible ou non
  • 23. ZFS : les snapshots ● Manipulation de snapshots # zfs snapshot data/zones/guses@20070610 # zfs send data/zones/guses@20070610 | ssh # zfs rollback data/zones/guses@20070610 ● Ne nécessite pas d'espace disque supplémentaire à la création. Seules les nouvelles données consommeront de l'espace disque.
  • 24. Exemple d'utilisation des snapshots ● Création d'un snapshot par jour @lundi, @mardi, @mercredi, etc. ● Sauvegarde différentielle # zfs send -i data/home/asyd@lundi data/home/asyd@mardi ● Sauvegarde complète # zfs send data/home/asyd@dimanche ● Montage des snapshots # zfs set snapdir=visible data/home/asyd # ls ~/.zfs/snapdir/lundi
  • 25. Le fonctionnement de ZFS ● mirror, raidz ● Architecture ● L'intégrité des données – CoW (Copy on Write) – Checksum ● fletcher ● sha256
  • 26. ZFS : Mode miroir L'application génère une Le deuxième disque est Les données correctes sont demande de lecture. Le sollicité, le checksum est renvoyées à l'application, et premier disque est correct. le bloc du premier disque utilisé, mais une erreur est mis à jour avec la valeur est détectée par correcte. vérification du checksum.
  • 27. Le raidz et raidz2 ● Similaire au RAID5, mais l'utilisation du COW le rend plus performant – Pas de « write hole » (trou d'écriture) ● Détection des anomalies (checksum) ● Le raidz2 utilise une double parité, à partir de 3 disques seulement
  • 28. L’arc hite c ture de ZFS Espace Utilisateur Noyau Interfaces Couches transactionnelles Stockage
  • 29. Les principales couches ● ZPL (ZFS Posix Layer) interface implémentant le système de fichier ● DMU (Data Management Unit) – Gestion des transactions ● Vdev : Gestion bas niveau des périphériques de stockage – Gestion du mirror, raidz – Compression – Checksum
  • 30. Inte rfac e d’adminis tratio n we b
  • 31. Intégrité des données Le COW en action ! Modification d'un fichier existant
  • 32. Intégrité des données Les carrés jaunes représentent les données existantes
  • 33. Intégrité des données Une application génère une modification du fichier existant. Cette modification porte sur deux blocs de données, mais est partielle sur le second bloc. On copie donc les données depuis le bloc existant, on vérifie son checksum, et on apporte les modifications sur le nouveau bloc.
  • 34. Intégrité des données De nouveaux blocs de références sont créés, on y copie les références vers les blocs de données ainsi que leurs checksums.
  • 35. Intégrité des données On continue de remonter.
  • 36. Intégrité des données L'uberblock (équivalent du superblock) est modifié. S'il n'y a pas de snapshots, les anciens blocs sont libérés. Il est donc moins coûteux (en terme de CPU) d'utiliser des snapshots !
  • 37. Un mot sur l'optimisation ZFS ● Utilisation d'un cache de type ARC (Adaptive Replacement Cache) ● lzjb, l'algorithme de compression utilisé par zfs à été développé spécifiquement pour ZFS, par Jeff Bonwick
  • 38. Fin ● Questions / réponses ● Site OpenSolaris ● La communauté zones ● La communauté BrandZ ● La communauté ZFS ● Le OpenSolaris User Group francophone