Présentation et guide de ZFSDon Turnbull, mars 2007 (mis à jour en mars 2009)
ZFS est la toute dernière méthode de gestion du stockage de Sun Microsystems dans le système d'exploitation Solaris 10. ZFS intègre un gestionnaire de volumes avec un système de fichiers conforme POSIX et disposant d'un large éventail d'outils de gestion. Du point de vue des applications, le système de fichiers se comporte comme un système de fichiers classique, mais offre des performances et une capacité nettement accrues. Enfin, le système ZFS met à la disposition de l'administrateur système une large gamme d'outils comparables aux meilleures solutions de gestion du volume et de sauvegarde. Ce guide est destiné à fournir une présentation qui soit utile aux personnes effectuant une configuration ZFS pour la première fois. ZFS intègre de nombreuses fonctions et options non traitées dans ce guide. Ces fonctions s'avèrent utiles dans certaines circonstances qui ne se prêtent pas à figurer dans cette vue d'ensemble. Veuillez vous reporter aux pages de manuels Concepts générauxPools de stockage ZFS organise les périphériques physiques dans des pools logiques appelés pools de stockage. Les numéros d'unités logiques (LUN, Logical Unit Number) des disques individuels ainsi que des baies de disques visibles par le système d'exploitation peuvent être inclus dans un pool ZFS. ZFS peut également se baser sur des structures de stockage moins conventionnelles, mais ces fonctions ne sont pas traitées dans ce guide. Les pools de stockage peuvent être des ensembles de disques entrelacés sans redondance (RAID 0), des disques en miroir (RAID 1), des ensembles de miroirs entrelacés (RAID 1 + 0), ou entrelacés avec parité (RAID Z). Des disques supplémentaires peuvent être ajoutés aux pools à tout moment, mais doivent être ajoutés avec le même niveau RAID. Par exemple, si un pool est configuré avec des volumes RAID 1, des disques peuvent uniquement être ajoutés au pool dans des ensembles en miroir dans le même nombre que celui défini lors de la création du pool. À partir du moment où des disques sont ajoutés aux pools, le stockage supplémentaire est automatiquement utilisé. Remarque : l'ajout de disques à un pool entraîne l'écriture de données sur les nouveaux disques lorsque des écritures sont effectuées dans le pool. Les données existantes ne sont pas redistribuées automatiquement, mais le sont après modification. Lors de l'organisation de disques en pools, les problèmes suivants doivent être pris en compte :
Remarque : RAID-Z est une implémentation spéciale de RAID-5 pour ZFS permettant aux volumes entrelacés d'être plus faciles à étendre avec des performances et une disponibilité supérieures. Conseil 1 :
Les pools de stockage sont plus performants à mesure que l'on y ajoute des disques. Ajoutez dans chaque pool autant de disques que possible et créez dans chaque pool plusieurs systèmes de fichiers.
Système de fichiers ZFS ZFS offre au système d'exploitation une interface de système de fichiers conforme POSIX. En bref, un système de fichiers ZFS ressemble et agit exactement comme un système de fichiers UFS, excepté que les fichiers et systèmes de fichiers ZFS peuvent être bien plus grands et que le système ZFS fonctionnera beaucoup mieux s'il est correctement configuré. Remarque : Il n'est pas nécessaire de connaître la taille que fera un système de fichiers pour le créer. Les systèmes de fichiers ZFS s'étendront automatiquement à la taille de leurs pools de stockage.Les systèmes de fichiers ZFS doivent être créés dans un et un seul pool de stockage, mais un pool de stockage peut avoir plus d'un système de fichiers défini. Chaque système de fichiers dans un pool de stockage peut accéder à tout l'espace non utilisé du pool de stockage. Lorsqu'un système de fichiers utilise de l'espace disque, cet espace lui est réservé jusqu'à ce que l'espace soit rendu au pool, lorsque le ou les fichiers occupant l'espace sont supprimés. Pendant ce temps, l'espace disponible pour tous les systèmes de fichiers présents dans le même pool sera réduit. Les systèmes de fichiers ZFS ne sont pas nécessairement gérés dans le fichier Enfin, le point de montage par défaut pour un système de fichiers ZFS est basé sur le nom du pool et le nom du système de fichiers. Par exemple, un système de fichiers nommé L'interface de ligne de commandeL'interface de ligne de commande se compose principalement des commandes Par exemple, supposons qu'un nouveau serveur nommé Planification pour ZFS Conseil 2 :
Utilisez la commande
format afin de déterminer la liste des périphériques disponibles et pour adresser des problèmes de configuration avec ces périphériques.
Cette procédure doit être effectuée avant de configurer ZFS sur un nouveau système. Toutes Les commandes doivent être exécutées par l'utilisateur root ou par un utilisateur possédant des privilèges superutilisateur :
Des informations supplémentaires de planification peuvent être trouvées sur docs.sun.com. Dans l'exemple en cours, deux corps de simples concaténations de disques non RAID (JBOD, "Just a bunch of disks") sont connectés au serveur. Bien qu'il n'y ait aucune raison d'éviter les systèmes RAID matériels lors de l'utilisation de ZFS, cet exemple est plus clair sans système RAID matériel. Vous trouverez ci-dessous la liste des périphériques physiques obtenue à partir des disques connectés.
En se basant sur la nécessité de séparer les index des données, on décide d'utiliser deux pools nommés respectivement Création d'un pool de stockage Les groupes de stockage sont créés avec la commande # zpool create <pool_name> [<configuration>] <device_files> La commande demande à l'utilisateur de fournir un nom pour le nouveau pool, ainsi que les noms de fichiers des périphériques de disques, sans chemin ( Conseil 3 :
Jetez un oeil à l'option
-m pour définir un point de montage spécifique, ou à l'option -R pour redéfinir le chemin d'accès racine relatif au point de montage par défaut.
Dans notre exemple, la commande # zpool create indexes raidz c2t0d0 c2t1d0 c2t2d0 \ c2t3d0 c4t0d0 c4t1d0 c4t2d0 c4t3d0 # zpool create tables raidz c3t0d0 c3t1d0 c3t2d0 \ c3t3d0 c5t0d0 c5t1d0 c5t2d0 c5t3d0 Ces commandes auront pour effet de créer deux pools, nommés respectivement Création de systèmes de fichiers Si le système de fichiers par défaut qui est créé n'est pas suffisant pour s'adapter aux besoins du système, d'autres systèmes de fichiers peuvent être créés en utilisant la commande Supposons que dans notre exemple, deux bases de données doivent être configurées sur le nouvel élément de stockage et, qu'à des fins de gestion, chaque base de données requiert son propre point de montage dans les pools # zfs create indexes/db1 # zfs create indexes/db2 # zfs create tables/db1 # zfs create tables/db2 Remarque : Faites preuve de prudence lorsque vous nommez les systèmes de fichiers. Il est possible de réutiliser le même nom pour différents systèmes de fichiers situés dans des pools différents, ce qui peut se révéler problématique. Ceci a pour effet d'ajouter un point de montage distinct pour
L'espace disponible pour Conseil 4 :
Jetez un oeil à l'option
set de la commande zfs pour manipuler le point de montage et les autres propriétés de chaque système de fichiers.
Affichage des informations Les informations concernant les pools et les systèmes de fichiers peuvent être affichées à l'aide des commandes # zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT indexes 240M 110K 240M 0% ONLINE - tables 240M 110K 240M 0% ONLINE - # zfs list NAME USED AVAIL REFER MOUNTPOINT indexes 107K 208M 25.5K /indexes indexes/db1 24.5K 208M 24.5K /indexes/db1 indexes/db2 24.5K 208M 24.5K /indexes/db2 tables 107K 208M 25.5K /tables tables/db1 24.5K 208M 24.5K /indexes/db1 tables/db2 24.5K 208M 24.5K /indexes/db2 Contrôle Bien qu'une discussion détaillée sur le contrôle sorte de la portée de ce document, une présentation de ZFS serait incomplète sans aborder le contrôle intégré de ZFS. Comme pour la gestion, la commande de contrôle du système est simple : # zpool iostat <pool_name> <interval> <count> Cette commande fonctionne de façon très similaire à la commande Le résultat de la commande est le suivant :
# zpool iostat test_pool 5 10
capacity operations bandwidth
pool used avail read write read write
---------- ----- ----- ----- ----- ----- -----
test_pool 80K 1.52G 0 7 0 153K
test_pool 80K 1.52G 0 0 0 0
test_pool 80K 1.52G 0 0 0 0
test_pool 80K 1.52G 0 0 0 0
test_pool 80K 1.52G 0 0 0 0
test_pool 80K 1.52G 0 0 0 0
test_pool 80K 1.52G 0 0 0 0
test_pool 80K 1.52G 0 0 0 0
test_pool 80K 1.52G 0 0 0 0
test_pool 80K 1.52G 0 0 0 0
D'autres commandes peuvent être utilisées pour contribuer à une meilleure compréhension de la part de l'administrateur, concernant le statut, les performances, les options et la configuration des pools ZFS et des systèmes de fichiers en cours d'exécution. Veuillez lire les pages de manuels Récapitulatif A l'aide de seulement deux commandes, Notons qu'il n'est pas nécessaire dans ZFS que les disques soient séparés par des contrôleurs, soient des lecteurs autonomes, soient internes ou externes, soient gérés par des contrôleurs matériels RAID, ou soient reliés à l'aide d'une technologie particulière. ZFS gérera n'importe quel périphérique de stockage qui se représente, tout ou partie, en tant que fichier de périphérique dans le système d'exploitation Solaris. Cet exemple est destiné à fournir un contexte pour les informations figurant dans ce guide ; il ne fournit en aucun cas une démonstration complète des capacités de ZFS. Exemple de scriptVoici un exemple de script qui peut être copié et collé pour exécuter l'exemple présenté dans ce guide. Assurez-vous de modifier dans le script tout ce qui est présenté en gras afin de l'adapter à vos besoins : #!/bin/sh # This script must be run as root or as a user with appropriate # role-based access control (RBAC) privileges. ################################################################## # # Create pools # # Creating pools also creates mount points. If you do not need # more mount points than pools and the pool names are acceptable # for mount points, you need not do more than create the pools. # # Create as many pools as you want. Pools define the groups of # disks under management. All disks in a pool must be managed # in the same way (RAID-Z, mirrored, and so on), but each pool # may have a different raid level. Use pools in the same way # traditional RAID manager LUNs are used. # # Create first pool. Change the pool name (indexes), the raid flag # (raidz), and the disk names (c#t#d#) to suite your local # requirements. Read the zpool man page to determine the available # options for the raid flag. zpool create indexes raidz c2t0d0 c2t1d0 c2t2d0 c2t3d0 c4t0d0 c4t1d0 c4t2d0 c4t3d0 # Create second pool. Change the pool name (tables), the raid flag # (raidz), and the disk names (c#t#d#) to suite your local # requirements. Read the zpool man page to determine the available # options for the raid flag. zpool create tables raidz c3t0d0 c3t1d0 c3t2d0 c3t3d0 c5t0d0 c5t1d0 c5t2d0 c5t3d0 ################################################################## # # Create mounts # # Creating mounts may not be necessary as each pool forms a mount # by default. However, if you need more than one mount point per # pool, use the following commands to provide distinct mount # points based on the pools created above. All mount points have # access to the full amount of free space in the mount point's # designated pool. As any one mount point uses space, available # space for all mount points decreases. # # Create the first mount point. The mount will be in the path # shown from root unless changed later. Be sure to change the # pool name (indexes) to suit the pools created previously and the # file system name (db1) to suit your local needs. Please see # the zfs man page for information on options and settings. zfs create indexes/db1 # Create the first mount point. The mount will be in the path # shown from root unless changed later. Be sure to change the # pool name (indexes) to suit the pools created previously and the # file system name (db2) to suit your local needs. Please # see the zfs man page for information on options and settings. zfs create indexes/db2 # Create the first mount point. The mount will be in the path # shown from root unless changed later. Be sure to change # the pool name (tables) to suit the pools created previously # and the file system name (db1) to suit your local needs. # Please see the zfs man page for information on options and # settings. zfs create tables/db1 # Create the first mount point. The mount will be in the path # shown from root unless changed later. Be sure to change the # pool name (tables) to suit the pools created previously and # the file system name (db2) to suit your local needs. Please # see the zfs man page for information on options and settings. zfs create tables/db2 Pour en savoir plus
Mars 2009 :
Unless otherwise licensed, code in all technical manuals herein (including articles, FAQs, samples) is provided under this License. |
BigAdmin SubscriptionsBigAdmin Areas
BigAdmin Sun Center
BigAdmin Topics | ||||||||||||||||||||