Page 4 of 7

Re: Disques qui passent en "Removed" Régulièrement

Posted: 21 Oct 2014 13:34
by sleid
Disques|ZFS|Pools|Informations est toujours à jour, c'est ici qu'il faut prendre les informations des noms des disques, et le rafraichir après chaque opération, c'est aussi simple que cela.

Re: Disques qui passent en "Removed" Régulièrement

Posted: 21 Oct 2014 20:28
by CorbeilleNews
Je vais tenter de répondre à toutes vos questions pas évident car cela se croise :

Ma méthodologie est la suivante :
Étant donné que j'aimerais valider ce que je dois faire sur le gros NAS avec le NAS de test, je fais tous les essais sur le NAS de test qui est un autre ordinateur, une autre clé USB (mais le même modèle) sur laquelle j'ai fait une remise à zéro des paramètres par défaut avec le WEBGUI puisqu'elle était auparavant utilisée avec d'autres disques.
Puis j'essaierai de reproduire les manip en recréant un NAS (sur l'ordinateur du gros NAS mais avec les 4 disques de test) pour me rédiger une check-list complète des opérations et de leur ordre afin de ne rien oublier lorsque j'y remettrai les disques du gros NAS avec la clé USB correspondante.


Donc sur le NAS de test :
Je me suis mis dans les mêmes conditions pour démarrer avec le NAS de test qu'avec le gros NAS à savoir :
RAID-Z2 avec moins de disques :) soit 4 disques identiques en secteurs 4k
J'ai sorti 2 disques pour les brancher en USB (avec le même boitier que j'avais utilisé auparavant) pour lui faire perdre les .nop sur ces 2 disques (ce qui s'est passé avec le gros NAS quand j'ai du faire le scrub avec les disques en USB car sinon ils passaient en removed lorsqu’ils étaient branchés en SATA)
J'ai remis les disques en SATA et constaté qu'ils avaient perdus leurs .nop respectifs
Sur le shell de la machine j'ai exporté le Pool, fait un destroy des nop sur TOUS LES DISQUES : pas cherché à comprendre et c'est facile avec l'historique des commandes sur le shell :D
J'ai fait un import du Pool
J'ai retrouvé tout mon Pool avec AUCUN disque en .nop (aussi bien avec le WEBGUI qu'avec le zpool status du shell)
J'ai tenté avec le WEBGUI de faire un replace ada3 par ada3 et j'ai eu le message "cannot replace ada3.nop with ada3.nop: no such device in pool"

Pour information sur le gros NAS j'ai toujours fait comme cela avec les premiers disques que j'ai remplacé et cela a toujours fonctionné (il me semble même que c'est un membre du forum qui m'a dit comment faire, il faudrait que je retrouve le sujet)

Peut être que c'est un problème de synchronisation entre le WEBGUI et le NAS mais comme j'ai du mal à comprendre le principe : quand est-ce que c'est synchronisé, quand est-ce que ça ne l'est pas, ce qui est synchronisé ou ce qui ne l'est pas ...

Pour info j'ai bien tenté de faire autrement pour remplacer un disque mais je n'ai jamais compris le online, offline, attach, detach, upgrade, ... je ne cerne pas les différences, si c'est pour éjecter de manière hardware le disque de la machine ou si c'est pour l'éjecter du Pool, mais après comment en remettre un ... Je mélange un peu et ce serait bien d'avoir des éclaircissements là dessus, j'ai horreur d'avancer en ne sachant pas ce que je fais :)

Merci pour votre aide

Re: Disques qui passent en "Removed" Régulièrement

Posted: 21 Oct 2014 23:36
by mtiburs
Bonsoir,

Ne connaissant pas suffisamment le raidz, je me fie à la doc (j'ai fais du raidz mais que sous forme d'essai, je n'en ai pas en prod)

Regardez ceci, dans la rubrique "Remplacement de périphériques dans un pool de stockage".
Tout est expliqué.
http://docs.oracle.com/cd/E19253-01/820 ... index.html

Il n'y a pas la manip du gnop destroy (expliqué par sleid), mais cela reste la référence en information sur ZFS.

Voici ce qu'on peut y retenir:
Voici les étapes de base pour remplacer un disque :
- Le cas échéant, mettez le disque hors ligne à l'aide de la commande zpool offline.
- Enlevez le disque à remplacer.
- Insérez le disque de remplacement.
- Exécutez la commande zpool replace. Exemple : # zpool replace tank c1t1d0
- Remettez le disque en ligne à l'aide de la commande zpool online


Je pense que si vous suivez l'exemple en mettant /dev/ada3 à la place de c1t1d0, les choses devraient se dérouler correctement.
Corbeillenews wrote:Peut être que c'est un problème de synchronisation entre le WEBGUI et le NAS mais comme j'ai du mal à comprendre le principe : quand est-ce que c'est synchronisé, quand est-ce que ça ne l'est pas, ce qui est synchronisé ou ce qui ne l'est pas ...
Les choses ne sont pas synchronisé quand il y a un écart entre "courant" et "détecté", donc si vous cliquez sur "courant" et qu'après avoir cliqué sur "détecté" il n'y a aucune différence, c'est que c'est bon.
C'est à vous de voir la différence, ce n'est pas une chose automatique, il vous présente les deux états, et c'est vous qui déciderez ensuite de passer ce qui est dans détecté dans courant (en fait, la synchro doit donner ce résultat).

Re: Disques qui passent en "Removed" Régulièrement

Posted: 22 Oct 2014 01:09
by CorbeilleNews
Les choses ne sont pas synchronisé quand il y a un écart entre "courant" et "détecté", donc si vous cliquez sur "courant" et qu'après avoir cliqué sur "détecté" il n'y a aucune différence, c'est que c'est bon.
La seule différence est le nom du périphérique virtuel : j'avais mis VDEV0 (apparait dans courant) et dans détecté il est écrit Pool0_raidz2_0

Dois je faire une synchro dans l'onglet juste à côté et laisser les paramètres par défaut comme vous me l'avez indiqué précédemment ?

J'ai l'impression que l'on touche au but, j'aime bien manipuler mais avec des données c'est risqué et puis là je commence à être super short car après j'ai des jours de resilvering qui m'attendent :D ...

Merci

Re: Disques qui passent en "Removed" Régulièrement

Posted: 22 Oct 2014 07:34
by mtiburs
Bonjour,

Je n'ai actuellement pas assez de recul sur cette synchro et comme l'autre fois j'ai eu une perte de pool inexpliqué, je ne peux pas vous dire exactement ce qu'il faut faire.
C'est pour cela que je préconisais de repartir avec une clef "neuve", car il n'y a pas de config 'comme çà il n'y a rien dans "courant" et la synchro est forcément bonne)

Maintenant, si c'est sur le nas de test, on peut faire une sauvegarde de la config de N4F, puis faire un synchro (en laissant les choix fait par défauts).

Re: Disques qui passent en "Removed" Régulièrement

Posted: 22 Oct 2014 07:52
by CorbeilleNews
Maintenant, si c'est sur le nas de test, on peut faire une sauvegarde de la config de N4F, puis faire un synchro (en laissant les choix fait par défauts).
En effet, c'est sur le NAS de test mais à quoi va servir la sauvegarde ? Vous parlez bien de la sauvegarde faite dans la rubrique sauvegarde et restauration du WEBGUI ?

Sinon, je me demande toujours ce que contient cette sauvegarde si on peux exporter un Pool et l'importer à partir d'une nouvelle clé sans cette sauvegarde. Mais peut être qu'il faut absolument l'exporter avant pour pouvoir l'importer ?

Merci de me confirmer.

Re: Disques qui passent en "Removed" Régulièrement

Posted: 22 Oct 2014 08:37
by sleid
"J'ai sorti 2 disques pour les brancher en USB (avec le même boitier que j'avais utilisé auparavant) pour lui faire perdre les .nop sur ces 2 disques (ce qui s'est passé avec le gros NAS quand j'ai du faire le scrub avec les disques en USB car sinon ils passaient en removed lorsqu’ils étaient branchés en SATA)
J'ai remis les disques en SATA et constaté qu'ils avaient perdus leurs .nop respectifs"

INUTILE et en plus désynchronise complètement le pool vu du webgui

"Sur le shell de la machine j'ai exporté le Pool, fait un destroy des nop sur TOUS LES DISQUES : pas cherché à comprendre et c'est facile avec l'historique des commandes sur le shell"

Méthode correcte (si vous avez fait un gnop destroy avec le nom correct des disques)

"J'ai tenté avec le WEBGUI de faire un replace ada3 par ada3 et j'ai eu le message "cannot replace ada3.nop with ada3.nop: no such device in pool"

à partir des outils du menu zfs dans le webgui si vous n'êtes pas synchronisé ça ne fonctionne pas. Donc SYNCHRONISEZ, c'est sans risque pour les données!!!!!
En gros la synchronisation permet de remplacer la configuration courante qui est dans le fichier de configuration par celle détectée (celle qui fait foi)

Par contre si à partir de l'onglet avancé du webgui vous entrez une commande synchronisé ou pas cela fonctionnera avec les noms de disques récupérés dans le webgui : Disques|ZFS|Pools|Informations

Re: Disques qui passent en "Removed" Régulièrement

Posted: 22 Oct 2014 11:32
by mtiburs
CorbeilleNews wrote:En effet, c'est sur le NAS de test mais à quoi va servir la sauvegarde ? Vous parlez bien de la sauvegarde faite dans la rubrique sauvegarde et restauration du WEBGUI ?

Sinon, je me demande toujours ce que contient cette sauvegarde si on peux exporter un Pool et l'importer à partir d'une nouvelle clé sans cette sauvegarde. Mais peut être qu'il faut absolument l'exporter avant pour pouvoir l'importer ?

Merci de me confirmer.
La sauvegarde du webgui sert a sauvegarder la configuration des services du nas, le webgui étant comme un "frontend", il se base sur un fichier XML.
La configuation du pool est aussi dans cette configuration, mais ce n'est pas la configuration "propre au pool", c'est juste utile en cas de rechargement pour qu'il retrouve directement "ses petits" sans faire un import, car vous pourriez avoir 2 pools de dispo et dans votre config N4F, n'en utiliser que un.
Cette configuration est un "tout" et c'est pour çà que la config-ZFS de N4F peut être désynchronisé.

Le pool ZFS lui possède sa propre config, qui est intégré au sein du pool. Quand vous faites un "import", ZFS va lire dans tous ses périphérique ce qu'il peut y trouver, dès qu'il trouve une config, il regarde si elle est utilisé (si elle a le statut "d'exporté)".
ZFS est toujours content d'avoir des pools avec ce status "exporté" donc, il faut le faire, mais si votre clef est fichue et que vous en faites une neuve, ZFS va détecté un pool mais il va voir aussi que ce pool "servait", en gros un pool non exporté veut dire "je sers a quelque chose", un pool exporté veut dire "je ne suis plus utilisé".
C'est pour cela que l'option -f sert a forcer l'import (pour dire "je sais que tu étais utilisé mais désormais c'est moins qui vais t'utiliser"). L'import et l'export est uniquement un status d'utilisation, celà n'interfère pas sur les données.

Ensuite ZFS va rassembler tous les disques du pools et voir si il peut en faire quelque chose.
Par exemple, quand vous avez un pool de 14 disques, vous pouvez brancher vos disques n'importe comment, sauf que l'import et l'export vont participer a mieux gérer les choses.
Prenons ce cas de 14 disques:
1) votre pool fonctionne correctement, vous l'exportez, ensuite vous mélangez tous les disques (comme un jeu de cartes) et ensuite vous faites un import, et bien ZFS va retrouver son pool comme si de rien était, quand vous ferez un zpool status, vous allez voir les nouvelles positions de disque.
2) si par contre on ne fais pas d'export avant de mélanger les disques. au démarrage ZFS va vous dire "oulà, les données sont corrompues (car il ne va pas allez voir dedans qui est qui). En revanche, si vous lui faites un import -f, alors, il va regarder tous les dev et va reconstituer le pool disques par disques. En fonction de ce qu'il trouve il vous dira si il peut ou pas.
C'est la que ZFS est vraiment bien, car la config se trouve en fait dans le pool. la config liste juste la structure. ZFS, lui va lire cette config et va recoller les éléments pour la mettre en état.
C'est la grande différence avec les autres OS, car celle-ci est figé dans le fstab ou alors monté d'une manière plus ou moins controlé, là avec ZFS, aucune question a ce poser.

Si on veut imager les choses:
ZFS se comporte comme une personne déballant un carton (le carton étant une zone de stockage)
- un pool exporté, est un carton avec les dev dedans et un papier qui dit ce qu'il y a normalement dans le carton, sur le papier il est écrit "à prendre")
- un pool non exporté est la même chose mais avec inscrit sur le papier "est en cours d'utilsation")
La synchro est l'inventaire du carton (elle dit normalement, "Il y a çà dedans")

C'est pour çà que ZFS peut fonctionner sans synchro et sans webgui. Car il sait ouvrir le carton et peut se débrouiller tout seul ... à condition qu'il trouve tout ce qu'il faut.

Pour aller plus loin, voici un exemple de carton dans le carton, je vais créer un pool à partir de fichier dans un pool existant, c'est juste pour montrer les chose.
créons deux disques à partir de simples fichiers
nas6: n6d2000 # dd if=/dev/zero of=./disk1 bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes transferred in 0.125503 secs (835498332 bytes/sec)
nas6: n6d2000 # dd if=/dev/zero of=./disk2 bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes transferred in 0.110337 secs (950341305 bytes/sec)

puis, on en fais un pool en mirroir
nas6: n6d2000 # zpool create test mirror /mnt/n6d2000/disk1 /mnt/n6d2000/disk2
on visualise le pool:
nas6: n6d2000 # zpool status
le premier est mon pool en prod (fais avec de vrais disques)
pool: n6d2000
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
n6d2000 ONLINE 0 0 0
ada1 ONLINE 0 0 0
cache
da0 ONLINE 0 0 0
da2 ONLINE 0 0 0
da3 ONLINE 0 0 0
errors: No known data errors

le suivant, est notre pool fait avec des fichiers)
pool: test
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
test ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
/mnt/n6d2000/disk1 ONLINE 0 0 0
/mnt/n6d2000/disk2 ONLINE 0 0 0
errors: No known data errors

Maintenant, exportons le pool test:
nas6: n6d2000 # zpool export test
et demandons l'import:
nas6: n6d2000 # zpool import
nas6: n6d2000 #

rien, pas de réponse, pourquoi ?, parce que ZFS a regardé sa zone devant lui, mais notre pool test se trouve dans un carton planqué dans le fond de notre gros carton:
Alors, donnons lui le chemin ("va chercher dans ce répertoire"),cela va lui donner une autre aire de jeu.
nas6: n6d2000 # zpool import -d /mnt/n6d2000/
pool: test
id: 7596942184869793794
state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:
test ONLINE
mirror-0 ONLINE
/mnt/n6d2000/disk1 ONLINE
/mnt/n6d2000/disk2 ONLINE
nas6: n6d2000 #

et il a retrouvé notre pool.
Oui, mais il dit juste "J'ai trouvé çà et je peux le monter", donc, si on veut le monter:
nas6: n6d2000 # zpool import -d /mnt/n6d2000/ test
on vérifie:
nas6: n6d2000 # zpool list
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
n6d2000 1.81T 1.30T 522G 71% 5.65x ONLINE -
test 95.5M 146K 95.4M 0% 1.00x ONLINE -


Allons plus loin !
on l'exporte, puis on renomme disk2 en disk3
nas6: n6d2000 # mv disk2 disk3
On dit à ZFS "va cherche dans ce carton !"
nas6: n6d2000 # zpool import -d /mnt/n6d2000/ test
hé hé, on vérifie, et:
nas6: n6d2000 # zpool list
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
n6d2000 1.81T 1.30T 522G 71% 5.65x ONLINE -
test 95.5M 229K 95.3M 0% 1.00x ONLINE -

ZFS a fait les choses tout seul, il a pris en compte les éléments de ce carton et a analysé qu'est-ce qu'il pouvait en faire.

Poussons un peu le bouchon !
On va changer le nom de disk1 en toto pendant que le pool est actif
nas6: n6d2000 # mv disk1 toto
on vérifie:
nas6: n6d2000 # zpool status test
pool: test
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
test ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
/mnt/n6d2000/disk1 ONLINE 0 0 0
/mnt/n6d2000/disk3 ONLINE 0 0 0
errors: No known data errors

Le pool n'a pas changé car le fichier est utilisé, mais lorsqu'il sera exporté, la structure sera modifiée.
On va écrire quelque chose dedans (juste pour le principe).
nas6: n6d2000 # echo "gggggggggggggggggggggg">/test/test.txt
On voit que le pool fonctionne toujours.
nas6: n6d2000 # zpool status test
pool: test
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
test ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
/mnt/n6d2000/disk1 ONLINE 0 0 0
/mnt/n6d2000/disk3 ONLINE 0 0 0
errors: No known data errors

On l'exporte
nas6: n6d2000 # zpool export test
Et on l'importe
nas6: n6d2000 # zpool import -d /mnt/n6d2000/ test
On vérifie:
nas6: n6d2000 # zpool status test
pool: test
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
test ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
/mnt/n6d2000/toto ONLINE 0 0 0
/mnt/n6d2000/disk3 ONLINE 0 0 0
errors: No known data errors

On voit que la structure du pool a changé.
Mais on voit surtout que ZFS sait se débrouiller "comme un grand".
C'est pour cela que je préfère l'utilisation en ligne de commande et que en cas de "choses bizarres", j'exporte et réimporte le pool, car cela remet quelquefois les pendules à l'heure.

J'espère que cette petite démo a été compréhensible et quelle peut donner un aperçu de la puissance de ce FS sur l'import et l'export.

Re: Disques qui passent en "Removed" Régulièrement

Posted: 22 Oct 2014 12:21
by mtiburs
Je viens de faire l'équivalent de votre manip, je prépare çà et je reposte !

Re: Disques qui passent en "Removed" Régulièrement

Posted: 22 Oct 2014 12:51
by mtiburs
Par rapport au message précédent, j'ai fais le ménage dans mon répertoire toto (il est vide et j'ai supprimé le lien, donc, c'est comme si le répertoire était neuf)

Allez ... on y va !
Je construis 4 disques de 100Mo:
nas6: toto # dd if=/dev/zero of=./disk1 bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes transferred in 0.098860 secs (1060667338 bytes/sec)
nas6: toto # dd if=/dev/zero of=./disk2 bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes transferred in 0.099754 secs (1051160856 bytes/sec)
nas6: toto # dd if=/dev/zero of=./disk3 bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes transferred in 0.098603 secs (1063432037 bytes/sec)
nas6: toto # dd if=/dev/zero of=./disk4 bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes transferred in 0.105465 secs (994241353 bytes/sec)


Je crée un raidz1 avec ces 4 disques (qui sont des fichiers)
nas6: toto # zpool create totopool raidz1 /mnt/n6d2000/toto/disk1 /mnt/n6d2000/toto/disk2 /mnt/n6d2000/toto/disk3 /mnt/n6d2000/toto/disk4

Je regarde si tout est OK
nas6: toto # zpool status totopool
pool: totopool
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
totopool ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
/mnt/n6d2000/toto/disk1 ONLINE 0 0 0
/mnt/n6d2000/toto/disk2 ONLINE 0 0 0
/mnt/n6d2000/toto/disk3 ONLINE 0 0 0
/mnt/n6d2000/toto/disk4 ONLINE 0 0 0
errors: No known data errors


Je vais exporter le pool car e suis en fichier (l'offline sur des fichiers çà ne marche pas)
nas6: toto # zpool export totopool

Je détruis le disque4
nas6: toto # rm disk4

J'essaie d'importer
nas6: toto # zpool import -d /mnt/n6d2000/toto/
pool: totopool
id: 16361572819403384910
state: DEGRADED
status: One or more devices are missing from the system.
action: The pool can be imported despite missing or damaged devices. The
fault tolerance of the pool may be compromised if imported.
see: http://illumos.org/msg/ZFS-8000-2Q
config:
totopool DEGRADED
raidz1-0 DEGRADED
/mnt/n6d2000/toto/disk1 ONLINE
/mnt/n6d2000/toto/disk2 ONLINE
/mnt/n6d2000/toto/disk3 ONLINE
14492906704160832275 UNAVAIL cannot open

Il m'informe de l'état du pool

Là je vais créer un autre disk4 mais de 150Mo
nas6: toto # dd if=/dev/zero of=./disk4 bs=1M count=150
150+0 records in
150+0 records out
157286400 bytes transferred in 0.147428 secs (1066868993 bytes/sec)


On va importer quand même parce qu'on est en raidz !
nas6: toto # zpool import -d /mnt/n6d2000/toto/ totopool

On vérifie, l'état de santé de notre pool:
nas6: toto # zpool status totopool
pool: totopool
state: ONLINE
status: One or more devices could not be used because the label is missing or
invalid. Sufficient replicas exist for the pool to continue
functioning in a degraded state.
action: Replace the device using 'zpool replace'.
see: http://illumos.org/msg/ZFS-8000-4J
scan: none requested
config:
NAME STATE READ WRITE CKSUM
totopool ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
/mnt/n6d2000/toto/disk1 ONLINE 0 0 0
/mnt/n6d2000/toto/disk2 ONLINE 0 0 0
/mnt/n6d2000/toto/disk3 ONLINE 0 0 0
14492906704160832275 UNAVAIL 0 0 0 was /mnt/n6d2000/toto/disk4
errors: No known data errors


On fait le remplacement:
nas6: toto # zpool replace totopool 14492906704160832275 /mnt/n6d2000/toto/disk4

Comment va le malade ?
nas6: toto # zpool status totopool
pool: totopool
state: ONLINE
scan: resilvered 40.5K in 0h0m with 0 errors on Wed Oct 22 10:20:43 2014
config:
NAME STATE READ WRITE CKSUM
totopool ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
/mnt/n6d2000/toto/disk1 ONLINE 0 0 0
/mnt/n6d2000/toto/disk2 ONLINE 0 0 0
/mnt/n6d2000/toto/disk3 ONLINE 0 0 0
/mnt/n6d2000/toto/disk4 ONLINE 0 0 0
errors: No known data errors
nas6: toto #


cool non ?

Re: Disques qui passent en "Removed" Régulièrement

Posted: 22 Oct 2014 13:12
by sleid
"je n'ai jamais compris le online, offline, attach, detach, upgrade"

"upgrade" est fait pour upgrader la version ZFS du pool par exemple pour passer de la v28 à la V5000 c'est optionnel .

"attach, detach" sont utilisés uniquement pour un disque simple ou un miroir, si l'on "attach" un disque à un disque simple cela devient un miroir, si l'on "attach" un disque à un miroir celà devient un miroir à 3 disques etc.
De la même façon on peut faire un "detach" sur un miroir à 3 disques, il deviendra un simple miroir etc.

"offline" permet de mettre hors circuit logiciellement un disque du pool afin de faire une opération sur ce disque par exemple un "replace".
Limite: "offline" n'est autorisé que si la redondance du pool permet sont fonctionnement normal en mode dégradé.

"online permet de mettre en circuit logiciellement un disque du pool afin de le remettre en service après une opération sur ce disque par exemple un "replace".
Limite: "online" est toujours suivi d'un "resilver"

Re: Disques qui passent en "Removed" Régulièrement

Posted: 22 Oct 2014 16:09
by mtiburs
Bon pour peaufiner mes essais, je vais utiliser des vrais dev (au lieu des fichiers), le but et de montrer une démarche de remise en état d'un pool, c'est uniquement à titre indicatif, cela montre que les choses ne sont pas compliquées

Je vais donc "piquer mes dev de cache d'un pool en prod et en faire un raidz1
On regarde ce que l'on a au départ
nas6: toto # zpool status
n6d2000 ONLINE 0 0 0
ada1 ONLINE 0 0 0
cache
da0 ONLINE 0 0 0
da2 ONLINE 0 0 0
da3 ONLINE 0 0 0


Je supprime les périphérique de cache de mon pool en prod
nas6: toto # zpool remove n6d2000 /dev/da0
nas6: toto # zpool remove n6d2000 /dev/da2
nas6: toto # zpool remove n6d2000 /dev/da3


Je vérifie si les disques sont bien partis et si le pool est ok
nas6: toto # zpool status
n6d2000 ONLINE 0 0 0
ada1 ONLINE 0 0 0


Je crée un pool "monpool"
nas6: toto # zpool create monpool raidz1 /dev/da0 /dev/da2 /dev/da3
Je vérifie
nas6: toto # zpool status
monpool ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
da0 ONLINE 0 0 0
da2 ONLINE 0 0 0
da3 ONLINE 0 0 0


Je place da3 en offline
nas6: toto # zpool offline monpool /dev/da3
Je vérifie
nas6: toto # zpool status
pool: monpool
state: DEGRADED
status: One or more devices has been taken offline by the administrator.
Sufficient replicas exist for the pool to continue functioning in a
degraded state.
action: Online the device using 'zpool online' or replace the device with
'zpool replace'.
scan: none requested
config:
NAME STATE READ WRITE CKSUM
monpool DEGRADED 0 0 0
raidz1-0 DEGRADED 0 0 0
da0 ONLINE 0 0 0
da2 ONLINE 0 0 0
11039869488796787332 OFFLINE 0 0 0 was /dev/da3


Je "balance" 10Mo de zéro dans le dev
nas6: toto # dd if=/dev/zero of=/dev/da3 bs=1M count=10
10+0 records in
10+0 records out


Je demande l'online du dev "flingué"
nas6: toto # zpool online monpool /dev/da3
On vérifie
nas6: toto # zpool status
scan: resilvered 8K in 0h0m with 0 errors on Wed Oct 22 12:52:58 2014
monpool ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
da0 ONLINE 0 0 0
da2 ONLINE 0 0 0
da3 ONLINE 0 0 0
errors: No known data errors

Le pool s'est remis en état tout seul, c'est normal car on a remis le même dev, ZFS a remarqué les pb et a remis les choses comme elles doivent être.


Cette fois je vais "sauvagement" enlever un disque:
J'enlève un disque
nas6: toto # zpool status
pool: monpool
state: DEGRADED
status: One or more devices are faulted in response to IO failures.
action: Make sure the affected devices are connected, then run 'zpool clear'.
see: http://illumos.org/msg/ZFS-8000-HC
scan: resilvered 8K in 0h0m with 0 errors on Wed Oct 22 12:52:58 2014
config:
NAME STATE READ WRITE CKSUM
monpool DEGRADED 0 6 0
raidz1-0 DEGRADED 0 16 0
da0 ONLINE 0 7 0
da2 ONLINE 0 16 0
11039869488796787332 REMOVED 0 0 0 was /dev/da3


Et j'en mets un autre à la place
Ce qui est un peu "bourrin comme méthode" car j'aurais dû passer le disque en offline.
Bref, j'ai des erreur sur le controleur USB et mon nas est passé en mode "fermé comme une huître", je ne peux plus rien faire (les périphérique USB se sont tous éteints), mais le webgui fonctionne quand même, par contre, il ne voit plus certains disques (gestion/effacer la config courante et ré-importer)

J'arrête le nas (webgui)
*** FINAL System shutdown message from root@nas6.local ***
System going down IMMEDIATELY


Je me reconnecte et je vais voir l'état de mes pools
nas6: ~ # zpool status mon pool
pool: monpool
state: DEGRADED
status: One or more devices could not be opened. Sufficient replicas exist for
the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
see: http://illumos.org/msg/ZFS-8000-2Q
scan: resilvered 8K in 0h0m with 0 errors on Wed Oct 22 12:52:58 2014
config:
NAME STATE READ WRITE CKSUM
monpool DEGRADED 0 0 0
raidz1-0 DEGRADED 0 0 11
3490175715774811312 UNAVAIL 0 0 0 was /dev/da0
da2 ONLINE 0 0 0
da3 ONLINE 0 0 5
errors: No known data errors

Effectivement, lors de l'enlèvement du périphériques ou du redémarrage, les dev ont changé de place, mon dev qui a été enlevé était en da3 alors qu'il est vu désormais en da0.

Bon, ce n'est pas grave, le tout c'est que les disques soient bien retrouvés.
Je passe sur le webgui et fais un gestion/effacer et ré-importer, ce qui fais que certains disques passent du rouge en noir et sont vus correctement.

Passons maintenant, à la remise en état
nas6: ~ # zpool offline monpool 3490175715774811312

On vérifie
nas6: ~ # zpool status monpool
pool: monpool
state: DEGRADED
status: One or more devices has experienced an unrecoverable error. An
attempt was made to correct the error. Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
using 'zpool clear' or replace the device with 'zpool replace'.
see: http://illumos.org/msg/ZFS-8000-9P
scan: resilvered 8K in 0h0m with 0 errors on Wed Oct 22 12:52:58 2014
config:
NAME STATE READ WRITE CKSUM
monpool DEGRADED 0 0 0
raidz1-0 DEGRADED 0 0 11
3490175715774811312 OFFLINE 0 0 0 was /dev/da0
da2 ONLINE 0 0 0
da3 ONLINE 0 0 5
errors: No known data errors

Le disque est bien "OFFLINE"

On invoque le remplacement
nas6: ~ # zpool replace monpool 3490175715774811312 /dev/da0

Et on vérifie
nas6: ~ # zpool status
pool: monpool
state: ONLINE
status: One or more devices has experienced an unrecoverable error. An
attempt was made to correct the error. Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
using 'zpool clear' or replace the device with 'zpool replace'.
see: http://illumos.org/msg/ZFS-8000-9P
scan: resilvered 92.5K in 0h0m with 0 errors on Wed Oct 22 13:27:35 2014
config:
NAME STATE READ WRITE CKSUM
monpool ONLINE 0 0 0
raidz1-0 ONLINE 0 0 21
da0 ONLINE 0 0 0
da2 ONLINE 0 0 0
da3 ONLINE 0 0 9
errors: No known data errors

On peut remarquer que le resilvering a été opéré d'office par ZFS

Comme on a des restes d'erreurs (mais uniquement sur le checksum, on va nettoyer tout çà
nas6: ~ # zpool clear monpool
On vérifie
nas6: ~ # zpool status
monpool ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
da0 ONLINE 0 0 0
da2 ONLINE 0 0 0
da3 ONLINE 0 0 0
errors: No known data errors


Voilà !

Re: Disques qui passent en "Removed" Régulièrement

Posted: 22 Oct 2014 21:55
by velivole18
Bonsoir,

Superbe démonstration !
C'est pratiquement un tuto ... Maître ZFS. ;)
Merci beaucoup pour toutes vos contributions. :P

Cordialement.

Re: Disques qui passent en "Removed" Régulièrement

Posted: 22 Oct 2014 23:15
by CorbeilleNews
Merci pour tout ce temps passé.

Cela éclairci certains points : le fait que l'on ne doive pas forcément mettre le disque offline pour le changer même si j'ai bien compris qu'il est mieux de le faire.

Je vais faire encore deux trois petits essais avant de me lancer.

Merci encore à vous deux vous m'avez énormément appris sur ZFS et sur NAS4Free

Re: Disques qui passent en "Removed" Régulièrement

Posted: 22 Oct 2014 23:21
by CorbeilleNews
Soit on a un port sata de libre et cela devient replace ada3 adaX
Est ce que cela permet bien de garder 2 disques de "redondance" actifs pendant le resilvering : ce qui à mon avis n'est pas le cas quand on doit met le disque à remplacer sur offline ?

Le cas se pose uniquement quand le disque à remplacer n'est pas HS bien entendu :)

Edit : J'ai essayé d'ajouter un disque de remplacement en laissant le prochain disque à remplacer en fonction mais je n'arriva pas à savoir le numéro du disque que je viens d'ajouter

Comment faire ?

Merci

Re: Disques qui passent en "Removed" Régulièrement

Posted: 22 Oct 2014 23:52
by mtiburs
Imaginons que l'on n'aie plus de port sata de disponible et qu'on ne veut pas "piocher dans les disques de secours" :roll:

- on ajoute un disque en UFS temporairement en USB et on fait le replace avec ce dernier en utilisant un fichier (montage hybride ... pas recommandé du tout, juste pour un état transitoire), ceci à condition que le fichier soit de la même taille que le dev a changer

Et si on n'a pas d'USB ? :?

- on le fait en NFS 8-)
... ou en iscsi !

EDIT: l'UFS est un exemple pour dire qu'on peut faire un dev dans un autre FS, il est clair que pour le bon sens, on mettrait le disque aussi en raidz

Re: Disques qui passent en "Removed" Régulièrement

Posted: 23 Oct 2014 01:14
by CorbeilleNews
Merci pour toutes ces idées imaginatives, je vais les garder précieusement en tête quand j'aurais envie de prendre quelques risques sur des données ne craignant rien :D

Actuellement je n'arrive pas à trouver le nom du disque qui doit remplacer le disque en place tout en le laissant en place, de ce fait je ne peut compléter ma ligne replace ... , la complétion ne fonctionne pas dans ce cas :lol:

Pour info en attendant j'ai un resilvering qui tourne ce qui veut dire que les manip ont fonctionné. J'ai même cumulé une erreur (No UFS FS je crois après le POST du BIOS) sur la clé USB entre la mise offline d'un disque et le remplacement : grâce à toutes vos infos je n'ai pas paniqué, j'ai refais la clé et importé le Pool, j'ai remis l'ancien disque et je l'ai remis online pour repartir sur une base sûre, enfi j'ai refait la manip et le resilvering tourne depuis une demi heure :)

Je vous dois une fière chandelle à tous les deux et je bien suis content d'avoir patienté sans me lancer la tête baissée dans les manip hasardeuses, j'y ai appris de nombreuses choses qui me serviront plus tard.

Re: Disques qui passent en "Removed" Régulièrement

Posted: 23 Oct 2014 01:46
by mtiburs
Content que vous ayez pris plus d'assurance ;)
Je voulais surtout que vous ayez justement ce genre de réflexes.
En tout cas, vous vous posez les bonnes questions et vous ne partez pas la tête baissée !
CorbeilleNews wrote:Actuellement je n'arrive pas à trouver le nom du disque qui doit remplacer le disque en place tout en le laissant en place
Je ne vois ce que vous voulez dire.
Vous voulez dire que vous ne savez pas quel est le disque a changer ?

Re: Disques qui passent en "Removed" Régulièrement

Posted: 23 Oct 2014 02:17
by CorbeilleNews
Non le disque que je veux changer je sais lequel c'est mais je ne trouve pas le nom de son remplaçant : je ne sais pas quel ada c'est ?

Re: Disques qui passent en "Removed" Régulièrement

Posted: 23 Oct 2014 06:35
by sleid
"J'ai essayé d'ajouter un disque de remplacement en laissant le prochain disque à remplacer en fonction mais je n'arriva pas à savoir le numéro du disque que je viens d'ajouter"

Disques|Point de montage|Gestion il faut quand même le monter....et il vous donnera son nom.

Ou si cela a été réalisé, allez dans Disques|Gestion puis effacer la configuration actuelle et importer les disques, vous trouverez bien le petit nouveau.

Re: Disques qui passent en "Removed" Régulièrement

Posted: 23 Oct 2014 09:02
by CorbeilleNews
Y aurait-il moyen de limiter le travail des disques lors d'un resilvering : j'ai encore deux disques qui viennent de passer en removed et après extinction et redémarrage je me retrouve avec ces deux disques en cours de resilvering pendant que celui que je viens de changer effectue lui aussi le sien, cela fait donc 3 disques en resilvering. Pas trop bon tout cela ! C'est pour ça que j'aimerai faire le resilvering avec tout les disques en place pour profiter au maximum de la redondance des disques

Merci

Re: Disques qui passent en "Removed" Régulièrement

Posted: 23 Oct 2014 11:57
by mtiburs
Il faut toujours aller dans gestion|disques et voir si il n'y pas de disques en rouge ou absent (pour l'absence c'est plus dur a détecter car il faut compter: par exemple, il y 4 disques alors qu'on en a 5). Sinon, pour le reste, les développeurs ont fait un "truc bien", ils mettent en rouge ce qui ne va pas.
Dans le cas ou il y a quelque chose en rouge, il ne faut pas hésiter a faire "effacer la config et ré-importer" et ce même en plein fonctionnement ... je le fais régulièrement, je n'ai jamais eu de soucis.

Disque|gestion|effacer et ré-importer correspondrait à une "synchro" au niveau "hard" (hors FS)
Disque|ZFS|informations|synchronisé correspond à une synchro du FS ZFS
Donc, il est important que le hard soit en rapport avant le FS, il est impossible de configurer quoique que ce soit si le hard n'est pas correct.
Perso, c'est la première chose que je fais et je le dis (à voix basse) "Bon voyons ce qu'il voit comme disques", je passe ensuite au reste, même sans config a faire, je vais toujours faire un tour dans ce menu.

Donc, dans votre cas, il faut faire la liste des disques avant le changement, et, une fois le hard changé, vite voir ce menu avant toutes autres opérations, c'est le résultat de ce menu qui doit valider la suite.
Si le nouveau disque n'est pas présent, inutile d'aller plus loin !
Si le disque est présent, alors vous aurez son nom.

Pour l'amélioration du resilvering, vous pouvez améliorer "un peu" la machinerie avec un Zcache (soit un gros SSD avec le secondary cache en all, soit un petit SSD avec le secondarycache en metadata, soit quelques clef USB ou carte SD avec le secondarycache en none (les écritures sur ces derniers supports seront très faibles mais peuvent être très rapide)
Dans tous les cas, il faudra surveiller le fonctionnement avec: zpool iostat -v 1 (ctrl-c pour arrêter), le but est de voir des lectures dans les dev de cache, si il n'y a rien du tout, c'est que ZFS n'en veut pas et préfère ses disques. Il est nécessaire quelquefois d'attendre un peu pour que le cache se peuple.

Sinon, je reconnais que cette situation a plusieurs resilvering est stressante.

Est-ce que vous avez fais un snaphot-ZFS de vos données ? çà ne mange pas de pain !

Re: Disques qui passent en "Removed" Régulièrement

Posted: 23 Oct 2014 12:17
by CorbeilleNews
Dans un premier temps je voudrais juste savoir ce qu'est un Snapshot et comment cela se fait, il serait peut être intéressant d'en lancer un avant complications :?:

Pour le reste je vais étudier cela à tête reposée.

Re: Disques qui passent en "Removed" Régulièrement

Posted: 23 Oct 2014 19:27
by CorbeilleNews
Pendant le triple resilvering j'ai le message

errors: Permanent errors have been detected in the following files:

et une liste d'une cinquantaine de fichiers

Que dois-je faire :

Remettre l'ancien disque et faire un scrub (avec des disques en USB comme la dernière fois) ou poursuivre le triple resilvering actuel ?

Merci

Re: Disques qui passent en "Removed" Régulièrement

Posted: 23 Oct 2014 20:48
by mtiburs
C'est sur le petit nas ou le gros ?

Je n'aime pas du tout, mais alors pas du tout ce genre de message.

L'avantage, c'est que les fichiers sont vus, donc on sait ou est le soucis.

Je remettrais l'ancien disque en USB.
Il y a quelque chose de louche dans le montage (pas assez de mémoire ? pool trop remplit ? ... ) Il y a trop de dev qui sortent du champ d'action de ZFS et cela peut devenir une catastrophe, il faut un périphérique hors ZFS, pas plus (maxi 2 et 3 c'est trop)

Re: Disques qui passent en "Removed" Régulièrement

Posted: 23 Oct 2014 20:55
by CorbeilleNews
C'est sur le gros NAS, j'ai remis l'ancien disque et je l'ai remis online, j’attends de voir ça mouline sévère pour avoir le status remis à jour, j'ai même du mal à accéder au WEBGUI

Après j'arrêterais le NAS et mettrais l'ancien disque en USB.

Cela commence à me saouler ... :evil:

Je viens de voir passer le message interrupt storm detected on "irq30:"; throtling interupt source !!!

Qu'est ce que cela veut dire

Je vais finir par tout effacer :twisted: :twisted: :twisted:

Re: Disques qui passent en "Removed" Régulièrement

Posted: 23 Oct 2014 21:17
by mtiburs
Je compatis entièrement à votre sensation.

Ce message signifie que le dev provoque trop d'utilisation sur la même d'interruption et cela le monopolise le processeur, le kernel détecte une suractivité sur cette IRQ ... il se plaint.

Re: Disques qui passent en "Removed" Régulièrement

Posted: 23 Oct 2014 21:21
by CorbeilleNews
moi aussi je me plaint, j'ai rebooté la machine et elle mouline en attendant de pouvoir m'afficher le statut du pool, je vais aller manger cela m'aidera à faire passer le temps qui est interminable dans ces cas là !!! :D

Re: Disques qui passent en "Removed" Régulièrement

Posted: 23 Oct 2014 21:34
by mtiburs
C'est normal qu'elle mouline, ZFS essaie de retrouver "ses petits"

Pour le webgui, c'est normal qu'il soit inaccessible lors de grosse charge.

C'est quoi comme machine le gros nas ? (finissez de manger avant de répondre ! :lol: )

Re: Disques qui passent en "Removed" Régulièrement

Posted: 23 Oct 2014 21:45
by CorbeilleNews
Un core i7 ca devrait aller non ;)

Le soucis c'est que je ne peux même pas savoir si il y a des disques removed ou pas et si l'ancien disque a bien été mis online !

Cela n’embête de le laisser tourner comme ça j'ai peur que s'il y a encore des disques en removed on fasse pire que mieux ...

J'ai des messages :

(ada0:ata2 :0:0:0) : flushcache48. ACB : ...
ada0 cam status command timeout
ada0 retrying command
ad0 et ada1 lost device
ada0 et ada1 removing device entry

ada0 et ada1 seraient en removed ? La commande zpool status ne répond pas et impossible d'acceder au WEBGUI par contre allez comprendre j'accède aux fichier par les services activés ???

Quelle serait la manip pour utiliser un SSD de cache, y a t-il un risque d'usure prématurée de celui ci : exemple SSD de 120 à 240 Go ?