Vinum maintient une base de données de configuration qui décrit les objets connus pour un système individuel. Initialement, l'utilisateur créé la base de données de configuration à partir d'un ou plusieurs fichiers de configuration avec l'aide de l'utilitaire vinum(8). Vinum conserve une copie de sa base de données de configuration sur chaque tranche (que Vinum nomme device) sous son contrôle. Cette base données est mise à jour à chaque changement d'état, aussi un redémarrage reconstitue exactement l'état de chaque objet Vinum.
Le fichier de configuration décrit les objets Vinum. La définition d'un simple volume pourrait être:
drive a device /dev/da3h volume myvol plex org concat sd length 512m drive a
Ce fichier décrit quatre objets Vinum:
La ligne drive une partition disque (drive) et son emplacement relatif par rapport au matériel sous-jacent. On lui donne le nom symbolique a. Cette séparation entre le nom symbolique et le nom du périphérique permet aux disques d'être déplacés d'un emplacement à un autre sans confusion possible.
La ligne volume décrit un volume. Le seul attribut nécessaire est le nom, dans notre cas myvol.
La ligne plex définit une plex. Le seul paramètre requit est l'organisation, dans ce cas concat. Aucun nom n'est nécessaire: le système génère automatiquement un nom à partir du nom de volume en ajoutant le suffixe .px, où x est le nombre de plexes dans le volume. Donc cette plex sera appelée myvol.p0.
La ligne sd décrit un sous-disque. Les spécifications minimales sont le nom du disque sur lequel le stocker et la taille du sous-disque. Comme pour les plexes, aucun nom n'est nécessaire: le système assignera automatiquement des noms dérivés du nom de la plex en ajoutant le suffixe .sx, où x est le nombre de sous-disques dans la plex. Donc Vinum donnera le nom myvol.p0.s0 à ce sous-disque.
Après avoir traité ce fichier vinum(8) affiche ce qui suit:
# vinum -> create config1 Configuration summary Drives: 1 (4 configured) Volumes: 1 (4 configured) Plexes: 1 (8 configured) Subdisks: 1 (16 configured) D a State: up Device /dev/da3h Avail: 2061/2573 MB (80%) V myvol State: up Plexes: 1 Size: 512 MB P myvol.p0 C State: up Subdisks: 1 Size: 512 MB S myvol.p0.s0 State: up PO: 0 B Size: 512 MB
Cette sortie affiche une brève liste du format vinum(8). Elle est représentée graphiquement dans Figure 20-4.
Cette figure, et celles qui suivent, représentent un volume qui contient les plexes, qui à leur tour contiennent les sous-disques. Dans cet exemple trivial, le volume contient une plex, et la plex contient un sous-disque.
Ce volume particulier ne présente aucun avantage spécifique par rapport à une partition de disque conventionnelle. Il contient une seule plex, donc il n'est pas redondant. La plex contient un seul sous-disque, il n'y a donc pas de différence dans l'organisation du stockage des données par rapport à une partition de disque conventionnelle. Les sections suivantes présenteront diverses méthodes de configuration plus intéressantes.
La robustesse d'un volume peut être augmentée par le mode miroir. Quand on implémente un volume en mode miroir, il est important de s'assurer que les sous-disques de chaque plex sont sur des disques différents, de sorte qu'une panne disque ne mette hors service les deux plexes. La configuration suivante place en mode miroir un volume:
drive b device /dev/da4h volume mirror plex org concat sd length 512m drive a plex org concat sd length 512m drive b
Dans cet exemple, il n'était pas nécessaire de spécifier une définition de disque a à nouveau, puisque Vinum garde trace de tous les objets dans sa base de données de configuration. Après le traitement de cette définition, la configuration ressemble à:
Drives: 2 (4 configured) Volumes: 2 (4 configured) Plexes: 3 (8 configured) Subdisks: 3 (16 configured) D a State: up Device /dev/da3h Avail: 1549/2573 MB (60%) D b State: up Device /dev/da4h Avail: 2061/2573 MB (80%) V myvol State: up Plexes: 1 Size: 512 MB V mirror State: up Plexes: 2 Size: 512 MB P myvol.p0 C State: up Subdisks: 1 Size: 512 MB P mirror.p0 C State: up Subdisks: 1 Size: 512 MB P mirror.p1 C State: initializing Subdisks: 1 Size: 512 MB S myvol.p0.s0 State: up PO: 0 B Size: 512 MB S mirror.p0.s0 State: up PO: 0 B Size: 512 MB S mirror.p1.s0 State: empty PO: 0 B Size: 512 MB
Figure 20-5 présente la structure sous forme graphique.
Dans cet exemple, chaque plex contient un espace d'adressage de 512 MO. Comme dans l'exemple précédent, chaque plex contient seulement un seul sous-disque.
Le volume en mode miroir de l'exemple précédent est plus résistant aux pannes qu'un volume sans miroir, mais ses performances sont moindres: chaque écriture sur le volume demande d'écrire sur les deux disques, utilisant alors une plus grande proportion de la bande passante disque totale. Des considérations sur les performances demandent une approche différente: à la place d'un miroir, les données sont segmentées sur autant de disques que possible. La configuration suivante montre un volume avec une plex segmentée sur quatre disques:
drive c device /dev/da5h drive d device /dev/da6h volume stripe plex org striped 512k sd length 128m drive a sd length 128m drive b sd length 128m drive c sd length 128m drive d
Comme précédemment, il n'est pas nécessaire de définir les disques qui sont déjà connus de Vinum. Après traitement de cette définition, la configuration ressemble à:
Drives: 4 (4 configured) Volumes: 3 (4 configured) Plexes: 4 (8 configured) Subdisks: 7 (16 configured) D a State: up Device /dev/da3h Avail: 1421/2573 MB (55%) D b State: up Device /dev/da4h Avail: 1933/2573 MB (75%) D c State: up Device /dev/da5h Avail: 2445/2573 MB (95%) D d State: up Device /dev/da6h Avail: 2445/2573 MB (95%) V myvol State: up Plexes: 1 Size: 512 MB V mirror State: up Plexes: 2 Size: 512 MB V striped State: up Plexes: 1 Size: 512 MB P myvol.p0 C State: up Subdisks: 1 Size: 512 MB P mirror.p0 C State: up Subdisks: 1 Size: 512 MB P mirror.p1 C State: initializing Subdisks: 1 Size: 512 MB P striped.p1 State: up Subdisks: 1 Size: 512 MB S myvol.p0.s0 State: up PO: 0 B Size: 512 MB S mirror.p0.s0 State: up PO: 0 B Size: 512 MB S mirror.p1.s0 State: empty PO: 0 B Size: 512 MB S striped.p0.s0 State: up PO: 0 B Size: 128 MB S striped.p0.s1 State: up PO: 512 kB Size: 128 MB S striped.p0.s2 State: up PO: 1024 kB Size: 128 MB S striped.p0.s3 State: up PO: 1536 kB Size: 128 MB
Ce volume est représenté sur Figure 20-6. La couleur des segments indique leur position dans l'espace d'adresses de la plex: le segment le plus clair vient en premier, le plus sombre en dernier.
Avec suffisamment de matériel, il est possible de créer des volumes qui présenteront une robustesse et des performances accrues comparés aux partitions UNIX™ standards. Un fichier de configuration pourrait être:
volume raid10 plex org striped 512k sd length 102480k drive a sd length 102480k drive b sd length 102480k drive c sd length 102480k drive d sd length 102480k drive e plex org striped 512k sd length 102480k drive c sd length 102480k drive d sd length 102480k drive e sd length 102480k drive a sd length 102480k drive b
Les sous-disques de la seconde plex sont décalés de deux disques par rapport à ceux de la première plex: cela aide à s'assurer que les écritures ne vont pas sur les même sous-disques même si un transfert s'effectue sur les deux disques.
Figure 20-7 représente la structure de ce volume.
Précédent | Sommaire | Suivant |
Objets Vinum | Niveau supérieur | Appellation des objets |
Ce document, ainsi que d'autres peut être téléchargé sur ftp.FreeBSD.org/pub/FreeBSD/doc/.
Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <[email protected]>.
Pour les questions sur cette documentation, contactez <[email protected]>.