Bonnes pratiques dans l'organisation des disques ? Panachage stripe miroir raidz ? [Résolu]

Status
Not open for further replies.
Joined
Jun 23, 2012
Messages
92
Bonsoir @ tous,

J'avoue avoir encore un peu de mal avec les notions de dataset, pool, Zpool, vdev, stripe miroir...
Je vous demande toute votre indulgence et votre aide afin d'y voir un peu plus clair.

Je vous livre mes questions en espérant que quelqu'un puisse venir éclairer ma lanterne. Vos réponses me permettront de mieux m'y retrouver car pour moi cela est plus concret par l'exemple.

Je vous précise que mon projet se place dans un environnement familiale constitué par 5 users, 1 user KODI (ex XBMC), dossiers partagés à tous les users : Vidéos- Photos- Musiques- Livres, et 6 users extérieures.

- Pour l'organisation générale, est ce qu'il vaut mieux créer 1 pool par users/pour kodi/dossiers partagés et users extérieurs ? Chaque entité dispose entièrement de tout son pool sans qu'il y est de dataset.

- ou 1 pool unique de la plus grande taille possible et le découper par autant de dataset qu'il y a d'entité ?

- Vaut il mieux créer plusieurs pool (un par "theme"), qui seraient alors découpés par des datasets ?
par exemple:
1 pool "user" découpé par autant de dataset que de user local
1 pool "commun" découpé par autant de dataset que de dossiers à mettre en commun
1 pool "user extérieur" découpé par autant de dataset que de user extérieurs

Au niveau des dataset et pool, quels sont les bonnes pratiques a mettre en oeuvre ?


J'ai beau lire et relire les différentes explications trouver sur internet et tout particulièrement le site de "Durindel" qui ma permis de me mettre le pied à l'étrié, je n'arrive pas comprendre précisément les différents agencements possible entre les disques/pool ou vdev. J'ai également lu l'article sur Wikipédia concernant les RAID.

Je pense que cela est certainement du à un problème de vocabulaire.

Voici ce que je crois comprendre :

Raid 0 : c'est du stripe. capacité totale=sommes de la capacitité de chaque disque.
Raid 1 : c'est du miroir. Pour 2 disques de même capacité, capacité total= capacité d'un disque.

Raid Z se situe au niveau du Raid 5 voire Raid 6 mais en mieux (entre autre le write whole)

Raid Z1 : 1 redondance
RaidZ2: 2 redondances
RaidZ3: 3 redondances

La ou je suis perdu, c'est quand il s'agit de combiner tout ça.
Quelqu'un peut il m'expliquer ce qu'il est possible de faire mais surtout concrètement me dire ce que cela donne dans la pratique ?


Question subsidiaire :

Dans le cas d'un RaidZ 1, lorsqu'un disque tombe en panne, il suffit de le remplacer par un neuf pour que l'ensemble se reconstruise par calcul.

Mais pour ce qui est du RaidZ2 ou RaidZ3, quand un disque tombe en panne cela donne :
RaidZ2 fonctionne comme un RaidZ1 jusqu’à l'échange du disque défaillant
RaidZ3 fonctionne comme une RaidZ2 " " "

Que se passe t il lorsque qu'un RaidZ2 est "dégradé" en RaidZ1 à cause d'un disque défaillant et qu'il est remplacé par un neuf ? (même question dans le cas d'un RaidZ3" dégradé")
Le système reconstruit il par calcul l'ensemble ou est ce qu'il copie tout simplement le disque redondant restant sur le disque neuf venant d'être installé ?

Merci @ tous pour votre aide.
 
Last edited:

durdur

Patron
Joined
Aug 22, 2012
Messages
284
Salut Christophe,

Il y a beaucoup de points dans ton message, essayons de les traiter dans l'ordre :

Au niveau philosophie d'utilisation : l'idée de ZFS est d'agréger tous les disques physiques en un seul pool. Ce pool peut ensuite grossir à volonté et c'est cet espace unique que l'on segmente en datasets pour organiser les données selon les besoins, les utilisateurs, etc, ... Sans se préoccuper de l'emplacement réel des données sur les disques physiques.

Partant de là, tu as donc compris qu'il y a plusieurs façons d'organiser les disques durs dans un pool pour avoir plus ou moins de redondance, c'est l'équivalent des RAID.
En ZFS on parle de stripe, miroir, raidZ (ou raidz1), raidz2 et raidz3. Tu as bien compris :
- stripe = raid 0
- miroir = raid 1
- raidz1 = raid 5
- raidz2 = raid 6

Enfin, pour être très complet c'est même un tout petit peu plus compliqué : un pool n'est en fait pas constitué de disques durs mais de vdev (pour virtual device). Ces vdevs sont eux composes des disques physiques organisés selon les schémas que l'on vient de voir. Donc en vrai, quand tu regroupes 2 disques pour faire un pool en miroir, en fait tu fais un vedv Miroir avec tes 2 disques et un pool avec ton vdev. C'est le cas le plus simple et le plus courant du pool composé d'un seul vdev.

Parce que ensuite tu peux combiner les vdevs dans ton pool, les vdevs se combinent entre eux en stripe. Donc en reprenant l'exemple précédent, tu as un pool avec un vdev en miroir, tu manques de place, tu peux l'agrandir en créant un second vdev de 2 disques en miroir que tu agrèges au premier en stripe. Et te voilà avec un pool de 2 vdev miroir ( équivalent d'un RAID 10 ou 1+0)
Et pour finir sur la théorie ZFS, 2 points très important : on ne peux pas retirer un vdev d'un pool, et si un vdev est défaillant, le pool est perdu.



On comprend rapidement que le choix de l'organisation des disques va directement influer sur la sécurité des données stockées dans le pool. Ainsi un stripe est très risqué car si un disque tombe en panne, tout le pool est perdu. Alors que le RAIDZ2 par la double redondance supporte la panne de 2 disques simultanément.

Pour la question subsidiaire si un disque d'un RAIDZ2 tombe en panne, le pool continu de fonctionner en mode dégradé, avec effectivement le même niveau de sécurité qu'un RAIDZ et lorsque tu remplaces le disque défaillant le pool se reconstruit par un recalcul des parités. Il n'y a pas un disque spécial sur lequel seraient stockées les parités, tout est reparti sur l'ensemble des disques. Il y a des morceaux de données et de parités sur chacun.


Revenons à ton cas concret. Donc tu cherches comment organiser au mieux ton stockage. Le choix du pool va déterminer la sécurité de tes données, sachant que dans ce domaine tout est relatif : ne jamais oublier que tu peux faire un magnifique RAIDZ3, te sentir en sécurité et voir le tout détruit par un bête court-circuit de l'alimentation qui aura fait cramer tous les disques durs...

A mon sens le raid et tout ce genre de moyens doivent plutôt être vu comme des systèmes permettant d'assurer la disponibilité des données en cas de panne que comme des sauvegardes proprement dites. Un miroir ne remplace. pas une sauvegarde sur disque externe.

Sans vouloir faire de promo j'ai aussi écrit un petit article là dessus : http://www.durindel.fr/informatique/philosophie-de-sauvegarde-informatique


A mon sens, clairement dans ton cas je ferais un gros pool, typiquement soit 3 disques en RAIDZ soit 6 en RAIDZ2 et ensuite tu as toute la liberté pour créer des datasets :
- un dataset par utilisateur
- un dataset commun pour les médias accessible de tous

Ça me semble être le schéma familial typique et ça permet de régler finement ensuite les droits d'accès de chacun, l'espace alloué, les sauvegardes, les snapshots, etc.... Et de moduler en fonction des besoins. C'est tout l'intérêt de la chose.


Une raison de créer plusieurs pool peut être de vouloir différents niveau de protection ou plutôt de disponibilité des données.
Pour ma part j'ai fais l'exemple précédent avec un RAIDZ1. A côté de ça j'ai un second pool, constitué d'un disque unique et qui sert de sauvegarde distante à un ami. Pourquoi un second pool ? Car pour cette sauvegarde il n'y a pas besoin de redondance spécifique, c'est simplement l'équivalent du disque externe.


Voilà, j'espère avoir éclairé ta lanterne un peu plus sans avoir tout embrouillé.
 
Joined
Jun 23, 2012
Messages
92
Bonsoir Mickaël, !!

Je ne savais pas que le site "Durindel" c'était toi !!! Félicitation pour cet énorme et excellent travail !
C'est à cause de toi que j'ai ce projet en tête ;) . De plus nous partageons la même passion....

Grand merci pour ta réponse, tu m'as beaucoup aidé a comprendre. Bon j'avoue j'y ai quand même passé l’après-midi.

En fait, mon incompréhension venait du fait que pour moi, les associations (raidZ 1 2 3, stripe, mirroir) se faisaient au niveau du pool.
Mais en fait, c'est au niveau des vdev que cela se passe.

Je te remercie également pour m'avoir fait part de ta façon de concevoir "les bonnes pratiques quant à l'organisation des disques". Cela m'a permis de comprendre la philosophie du système en général et de ZFS en particulier.

Je pense que je suis maintenant prêt à passer en phase d'expérimentation sur une machine virtuelle avec virtualbox. Histoire de ne pas faires d'énormes bêtises lors de la création du vrai NAS sur une vrai machine....!

Merci.
 
Last edited:

durdur

Patron
Joined
Aug 22, 2012
Messages
284
De rien !

Finalement, tes questions m'ont motivé, ça faisait un moment que je me disais qu'il faudrait écrire un article la dessus car c'est un sujet qui revient régulièrement sur le forum et des questions que beaucoup de gens se posent alors c'est chose faite :

http://www.durindel.fr/informatique/zfs-presentation-philosophie-vocabulaire
http://www.durindel.fr/informatique/zfs-presentation-philosophie-vocabulaire
Oui ça fait un peu de pub, mais ça devrait être utile, enfin j'espère. Par contre ce n'est pas garanti sans fautes de français :)
 
Joined
Jun 23, 2012
Messages
92
Sans vouloir m'autoproclamer porte parole de la communauté je te dirais qu'une seule chose :

Grand merci de notre part à tous.

Christophe.
 
Status
Not open for further replies.
Top