Outils pour utilisateurs

Outils du site


freebsd:zfs

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
freebsd:zfs [2012/07/12 15:35] sheltemfreebsd:zfs [2018/04/25 08:44] (Version actuelle) sheltem
Ligne 23: Ligne 23:
  
   zpool create mon_pool raidz ada0 ada1 ada3   zpool create mon_pool raidz ada0 ada1 ada3
 +  
 +==== Propriétés ====
 +  
 +Voir les propriétés d'un pool :
 +
 +  zfs get all storage/home
 +
 +Voir le status d'un propriété (compression dans l'exemple):
 +
 +  zfs get compression storage/home
 +  
 +Changer une propriété (atime dans l'exemple):
 +
 +  zfs set atime=on storage/home
      
 ===== Réparer un pool dégradé ===== ===== Réparer un pool dégradé =====
Ligne 53: Ligne 67:
 </code> </code>
  
-C'est donc "ada1" qui a été enlevé (dans l'exemple ci dessus, il est marqué "REMOVED" car le l'ai débranché volontairement)+C'est donc "ada1" qui a été enlevé (dans l'exemple ci dessus, il est marqué "REMOVED" car je l'ai débranché volontairement)
  
 On éteint la machine, on remplace le disque défaillant, puis on rallume. On éteint la machine, on remplace le disque défaillant, puis on rallume.
Ligne 94: Ligne 108:
 ===== Redimensionner un pool ===== ===== Redimensionner un pool =====
  
-Imaginons un pool de 3 disques de 250Go (ada1, ada2, ada3), que l'on souhaite remplacer par 3 disques de 1To, si le pool ne contient pas le système, il paraît judicieux de tous transférer sur un autre support, puis refaire un pool avec les 3 nouveaux disques.+Imaginons un pool de 3 disques de 250Go (ada1, ada2, ada3), que l'on souhaite remplacer par 3 disques de 1To
 + 
 +Si le pool ne contient pas le système, il paraît judicieux de tous transférer sur un autre support, puis refaire un pool avec les 3 nouveaux disques, ou si l'on a suffisamment de contrôleurs, on peut également connecter les 2 pools et donc faire le transfert des données directement 
  
 Si le système est dessus et/ou le pool est plein et qu'on a pas de moyen de transférer les données provisoirement ailleurs, il y a une solution, qui peut être longue mais qui fonctionne. Si le système est dessus et/ou le pool est plein et qu'on a pas de moyen de transférer les données provisoirement ailleurs, il y a une solution, qui peut être longue mais qui fonctionne.
  
-On éteint la machine et on remplace un 250GO par un modèle d'un 1To, et on déclare le remplacement comme indiqué dans le chapitre précédent.+On éteint la machine et on remplace un 250Go par un modèle d'un 1To, et on déclare le remplacement comme indiqué dans le chapitre précédent.
  
-Une fois que le status confirme que le pool est "ONLINE" est sans erreur, on recommence l'opérationjusqu'a avoir remplacé les 3 disques, **en s'assurant toujours d'attendre la fin de la reconstruction !**+Une fois que le status confirme que le pool est "ONLINE" et sans erreur, on recommence l'opération en remplaçant le disque suivant... jusqu'a avoir remplacé les 3 disques, **en s'assurant toujours d'attendre la fin de la reconstruction !**
  
-Ensuite tape :+Ensuite on fait un :
  
   zpool list   zpool list
Ligne 111: Ligne 127:
    
   zpool set autoexpand=on mon_pool   zpool set autoexpand=on mon_pool
- +  
-Ce qui active la possibilité d'auto redimensionnement du pool, il faut ensuite déconnecté un disque, puis le reconnecté en lui indiquant d'étendre sa taille (ce qui implique cette option pour les autres disques) :+Ce qui active la possibilité d'auto redimensionnement du pool, il faut ensuite déconnecter un disque, puis le reconnecter en lui indiquant d'étendre sa taille :
  
   zpool offline mon_pool ada1   zpool offline mon_pool ada1
Ligne 119: Ligne 135:
  
   zpool online -e mon_pool ada1   zpool online -e mon_pool ada1
 +
 +L'option "-e" implique les autres disques du pool
  
 Et voila, un : Et voila, un :
Ligne 124: Ligne 142:
   zpool list   zpool list
  
-devrait vous montrer cette fois environ 3To.+devrait vous montrer cette fois environ 3To (~ 1,8To utilisable en raidz).
  
 on peut ensuite désactivé l'option d'auto redimensionnement : on peut ensuite désactivé l'option d'auto redimensionnement :
Ligne 130: Ligne 148:
   zpool set autoexpand=off mon_pool   zpool set autoexpand=off mon_pool
      
 +===== Tuning =====
 +
 +==== Alignement des blocs ====
 +
 +Pour résumer, sous freebsd, les disques sont détecté comme ayant des blocs de 512 octets, et la plupart des outils de partitionnements les voient comme ça, sauf que tous les disques durs d'aujourd'hui utilise des blocs de 4ko.(en incluant une compatibilité avec l'ancien système 512 octets). En somme des "redécoupage" sont fait à la volée à chaque lecture/écriture sur le disque, ce qui fait légèrement baisser les performances des disques via un système de fichiers "standard", mais qui peut provoquer une baisse très significative sur du raid (dont le lecture/écriture sont multipliés).
 +
 +Pour vérifier :
 +
 +  zdb -C storage | grep ashift
 +
 +   ashift: 9
 +
 +La valeur "9" signifie que le disque est partitionné en se basant sur des blocs de 512 octets.
 +
 +L'utilitaire "zpool" ne permettant pas de définir la taille des blocs, on va donc le duper en utilisant "gnop" qui sert normalement à faire des tests sur des partitions de type GEOM.
 +
 +**Attention, Dans le cas d'un pool existant, et avant d'utiliser ce qui suit, il faut le détruire, et donc sauvegarder les données qui seront détruites avec lui**
 +
 +On crée les "pseudo" devices :
 +
 +  gnop create -S 4096 /dev/ada1
 +  gnop create -S 4096 /dev/ada2
 +  gnop create -S 4096 /dev/ada3
 +
 +On crée notre pool avec :
 +
 +  zpool create storage raidz /dev/ada1.nop /dev/ada2.nop /dev/ada3.nop
 +  
 +On vérifie :
 +
 +<code>
 +zpool status
 +
 +pool: storage
 +state: ONLINE
 +scan: none requested
 +config:
 +
 + NAME                 STATE     READ WRITE CKSUM
 + storage              ONLINE               0
 +   raidz1-0           ONLINE               0
 +     /dev/ada1.nop    ONLINE               0
 +     /dev/ada2.nop    ONLINE               0
 +     /dev/ada3.nop    ONLINE               0
 +</code>
 +On exporte le pool (sauve les paramètres et stop les lecture/écriture eventuelle sur le pool) :
 +
 +  zpool export storage
 +  
 +On détruit les "pseudo" device :  
 +  
 +  gnop destroy /dev/ada1.nop /dev/ada2.nop /dev/ada3.nop
 +  
 +On importe le pool :  
 +  
 +  zpool import storage
 +
 +On vérifie :
 +
 +  zpool status
 +  
 +   pool: storage
 +   state: ONLINE
 +   scan: none requested
 +   config:
 +
 + NAME        STATE     READ WRITE CKSUM
 + storage     ONLINE               0
 +   raidz1-0  ONLINE               0
 +     ada1    ONLINE               0
 +     ada2    ONLINE               0
 +     ada3    ONLINE               0
 +
 +Le pool en mode raidz est bien la avec les "vrais" devices.
 +  
 +On vérifie également que zfs considère bien nos disques comme ayant des blocs de 4Ko :
 +  
 +  zdb -C storage | grep ashift
 +  
 +Ce qui doit donner :
 +
 +  ashift: 12
 +
 +et non plus "9" comme précédemment.
 +
 +==== Ajuster les propriétés ====
 +
 +La déduplication est une propriété qui fera gagné un espace non négligeable sur certain système de fichiers, mais sur un NAS personnel, elle sera la plupart du temps inutile, mais surtout trés gourmande en ressources.
 +
 +Pour la désactiver :
 +
 +  zfs set dedup=off
 +
 +Une autre propriété rarement utile, les "acces time", permettant de mettre a jour les dates d'accès au fichiers, cela génère beaucoup de lecture/écriture.
 +
 +Pour les désactiver :
 +
 +  zfs set atime=off storage
 +
 +Et la compression, effectivement ce serait encore un gain d'espace, mais au prix d'énormément de ressources.
 +
 +Pour la désactiver :
 +
 +  zfs set compression=off storage
  
freebsd/zfs.1342107327.txt.gz · Dernière modification : 2012/07/12 15:35 de sheltem