Les sections suivantes présentent des pratiques recommandées générales et plus spécifiques pour les pools de stockage
Utilisez des disques entiers pour activer la mise en cache et faciliter la maintenance. La création de pools sur des tranches complique la gestion et la récupération des disques.
Utilisez la redondance ZFS pour permettre à ZFS de réparer les incohérences de données.
Le message suivant s'affiche lorsqu'un pool non redondant est créé :
# zpool create tank c4t1d0 c4t3d0 'tank' successfully created, but with no redundancy; failure of one device will cause loss of the pool
Pour des pools mis en miroir, utilisez des paires de disques mis en miroir
Pour des pools RAID-Z, regroupez 3 à 9 disques par VDEV
Ne mélangez pas les composants RAID-Z et mis en miroir dans un même pool. Ces pools sont plus difficiles à gérer et les performances peuvent en souffrir.
Utilisez des disques hot spare pour réduire le temps d'inactivité dû aux pannes matérielles.
Utilisez des disques de taille similaire afin que de répartir les E/S de façon équilibrée entre les périphériques.
Des LUN de petite taille peuvent être étendus en LUN de grande taille
N'étendez pas des LUN de façon excessive, comme par exemple de 128 Mo à 2 To, de manière à conserver des tailles de metaslabs optimales
Envisagez la création d'un petit pool root et de pools de données plus volumineux pour assurer une récupération plus rapide du système
La taille de pool minimale recommandée est de 8 Go. Bien que la taille de pool minimale est de 64 Mo, toute taille inférieure à 8 Go rend l'allocation et la demande d'espace de pool libre plus difficiles.
La taille de pool maximale recommandée doit être adaptée à votre charge de travail ou à la taille de vos données. N'essayez pas de stocker plus de données que vous ne pouvez en sauvegarder régulièrement. Dans le cas contraire, vos données sont vulnérables en cas d'événement imprévu.
Voir aussi Pratiques recommandées pour la création de pool sur une baie de stockage en réseau ou locale.
SPARC (SMI (VTOC)) : créez des pools root comportant des tranches à l'aide de l'identificateur s*. N'utilisez pas l'identificateur p*. Le pool root ZFS d'un système est généralement créé au moment de l'installation du système. Si vous êtes en train de créer un second pool root ou de recréer un pool root, utilisez une syntaxe semblable à la suivante :
# zpool create rpool c0t1d0s0
Sinon, créez un pool root mis en miroir. Par exemple :
# zpool create rpool mirror c0t1d0s0 c0t2d0s0
Solaris 11.1 x86 (EFI (GPT)) : créez des pools root sur des disques complets, au moyen de l'identificateur d*. N'utilisez pas l'identificateur p*. Le pool root ZFS d'un système est généralement créé au moment de l'installation du système. Si vous êtes en train de créer un second pool root ou de recréer un pool root, utilisez une syntaxe semblable à la suivante :
# zpool create rpool c0t1d0
Sinon, créez un pool root mis en miroir. Par exemple :
# zpool create rpool mirror c0t1d0 c0t2d0
Le pool root doit être créé sous la forme d'une configuration en miroir ou d'une configuration à disque unique. Les configurations RAID-Z ou entrelacées ne sont pas prises en charge. Vous ne pouvez pas ajouter d'autres disques mis en miroir pour créer plusieurs périphériques virtuels de niveau supérieur à l'aide de la commande zpool add. Toutefois, vous pouvez étendre un périphérique virtuel mis en miroir à l'aide de la commande zpool attach.
Un pool root ne peut pas avoir de périphérique de journal distinct.
Les propriétés d'un pool peuvent être définies lors d'une installation AI, mais l'algorithme de compression gzip n'est pas pris en charge sur les pools root.
Ne renommez pas le pool root une fois qu'il a été créé par une installation initiale. Si vous renommez le pool root, cela peut empêcher l'initialisation du système.
Ne créez pas de pool root sur une clé USB pour un système de production, car les disques de pools root sont vitaux pour un fonctionnement continu, en particulier dans un environnement professionnel. Envisagez d'utiliser les disques internes d'un système pour le pool root, ou au moins d'utiliser des disques de la même qualité que celle que vous utiliseriez pour vos données non root. De plus, une clé USB peut s'avérer trop petite pour gérer une taille de fichier de vidage équivalente à la moitié de la taille de la mémoire physique.
Au lieu d'ajouter un disque hot spare à un pool root, envisagez de créer une à deux ou un miroir tridirectionnel pool root. Ne partagez pas un disque hot spare entre un pool root et un pool de données.
Thinly, n'utilisez pas ce périphérique VMware pour un pas de privilèges d'accès pour les périphériques de pools root.
Créez des pools non root avec des disques entiers à l'aide de l'identificateur d*. N'utilisez pas l'identificateur p*.
ZFS fonctionne mieux sans logiciel de gestion de volumes supplémentaire.
Pour de meilleures performances, utilisez des disques individuels ou, tout au moins, des LUN constitués d'un petit nombre de disques. En offrant à ZFS un meilleur aperçu de la configuration des LUN, vous lui permettez de prendre de meilleures décisions de planification d'E/S.
Créez des configurations de pools redondants dans plusieurs contrôleurs afin de réduire le temps d'inactivité dû à une panne de contrôleur.
Pools de stockage mis en miroir : consomment davantage d'espace disque mais présentent de meilleures performances pour les petites lectures aléatoires.
# zpool create tank mirror c1d0 c2d0 mirror c3d0 c4d0
Pools de stockage RAID-Z : ces pools peuvent être créés avec 3 stratégies de parité, d'une parité égale à 1 (raidz), 2 (raidz2) ou 3 (raidz3). Une configuration RAID-Z optimise l'espace disque et généralement effectue bien lorsque les données sont écrites et lues en gros blocs (128 Ko ou plus).
Prenons l'exemple d'une configuration RAID-Z à parité simple (raidz) avec 2 périphériques virtuels à 3 disques (2+1) chacun.
# zpool create rzpool raidz1 c1t0d0 c2t0d0 c3t0d0 raidz1 c1t1d0 c2t1d0 c3t1d0
Une configuration RAIDZ-2 améliore la disponibilité des données et offre les mêmes performances qu'une configuration RAID-Z. En outre, sa valeur de temps moyen entre pertes de données MTTDL (Mean Time To Data Loss) est nettement meilleure que celle d'une configuration RAID-Z ou de miroirs bidirectionnels. Créez une configuration RAID-Z à double parité RAID-Z (raidz2) à 6 disques (4+2).
# zpool create rzpool raidz2 c0t1d0 c1t1d0 c4t1d0 c5t1d0 c6t1d0 c7t1d0 raidz2 c0t2d0 c1t2d0 c4t2d0 c5t2d0 c6t2d0 c7t2d
La configuration RAIDZ-3 optimise l'espace disque et offre une excellente disponibilité car elle peut résister à 3 pannes de disque. Créez une configuration RAID-Z à triple parité (raidz3) à 9 disques (6+3).
# zpool create rzpool raidz3 c0t0d0 c1t0d0 c2t0d0 c3t0d0 c4t0d0 c5t0d0 c6t0d0 c7t0d0 c8t0d0
Tenez compte des pratiques recommandées pour la création d'un pool root ZFS sur une baie de stockage connectée localement ou à distance.
Si vous créez un pool sur des périphériques SAN et que la connexion réseau est lente, les périphériques du pool peuvent devenir UNAVAIL pendant un certain temps. Vous devez évaluer si la connexion réseau est adéquate pour fournir vos données de manière continue. En outre, considérez, si vous utilisez des périphériques SAN pour votre pool root, ils peuvent ne pas être disponibles dès l'initialisation du système, et les périphériques du pool root peuvent également être UNAVAIL.
Confirmez avec votre vendeur de baies que la baie de stockage ne vide pas son cache après une demande de mise en cache des enregistrements de vidage par ZFS.
Utilisez des disques entiers, plutôt que des tranches de disque, comme périphériques de pool de stockage afin qu'Oracle Solaris ZFS active les caches des petits disques locaux, qui sont vidés à des moments appropriés.
Pour de meilleures performances, créez un LUN pour chaque disque physique de la baie. Si vous utilisez un LUN unique et volumineux, ZFS risque de mettre trop peu d'opérations d'E/S de lecture en attente pour effectivement assurer des performances optimales de stockage. A l'inverse, l'utilisation de nombreux petits LUN peut entraîner l'inondation du stockage avec un grand nombre d'opérations d'E/S de lecture en attente.
Une baie de stockage qui utilise un logiciel d'approvisionnement dynamique (fin) pour implémenter une allocation d'espace virtuel n'est pas recommandée pour Oracle Solaris ZFS. Quand Oracle Solaris ZFS écrit les données modifiées dans l'espace libre, il écrit sur le LUN entier. Le processus d'écriture d'Oracle Solaris ZFS alloue tout l'espace virtuel depuis le point de vue de la baie de stockage, ce qui annule l'avantage de l'approvisionnement dynamique.
Considérez qu'un logiciel d'approvisionnement dynamique peut s'avérer inutile lors de l'utilisation de ZFS.
Vous pouvez étendre un LUN dans un pool de stockage ZFS existant et il utilisera le nouvel espace.
Un comportement similaire fonctionne quand un LUN plus petit est remplacé par un LUN plus gros.
Si vous évaluez les besoins de stockage pour votre pool et créez le pool avec des LUN plus petits qui correspondent aux besoins de stockage, vous pouvez alors toujours étendre les LUN si vous avez besoin de plus d'espace.
Si la baie peut présenter des périphériques individuels (mode JBOD), envisagez de créer des pools de stockage ZFS redondants (en miroir ou RAID-Z) sur ce type de baie afin que ZFS puisse signaler et corriger les incohérences de données.
Tenez compte des pratiques recommandées pour la création de pools de stockage suivantes lorsque vous créez une base de données Oracle.
Utilisez un pool mis en miroir ou un RAID matériel pour plusieurs pools
Les pools RAID-Z ne sont généralement pas recommandés pour les charges de travail en lecture aléatoire
Créez un petit pool distinct avec un périphérique de journalisation distinct pour les fichiers de journalisation de la base de données
Créez un petit pool distinct pour le journal d'archivage
Pour plus d'informations sur le réglage ZFS d'une base de données Oracle, reportez-vous à la section Réglage du ZFS pour une base de données Oracle du manuel Manuel de référence des paramètres réglables d’Oracle Solaris 11.2 .
Virtual Box est configuré pour ignorer des commandes de vidage de cache à partir du stockage sous-jacent par défaut. Cela signifie que dans le cas d'un blocage système ou d'une défaillance matérielle, les données peuvent être perdues.
Activez le vidage du cache dans Virtual Box à l'aide de la commande suivante :
VBoxManage setextradata vm-name "VBoxInternal/Devices/type/0/LUN#n/Config/IgnoreFlush" 0
vm-name : le nom de la machine virtuelle
type : le type de contrôleur, piix3ide, si vous utilisez le contrôleur virtuel IDE habituel, ou ahci, si vous utilisez un contrôleur SATA
n – ne numéro de disque