Afin de résoudre ces problèmes, Vinum implémente une hiérarchie d'objets à quatre niveaux:
L'objet le plus visible est le disque virtuel, appelé volume. Les volumes ont essentiellement les mêmes propriétés qu'un disque UNIX™, bien qu'il y ait quelques différences mineures. Ils n'ont aucune limitation de taille.
Les volumes sont composés de plexes, chacune d'entre elles représente l'ensemble de l'espace d'adressable d'un volume. Ce niveau dans la hiérarchie permet ainsi la redondance. Pensez aux plexes comme différents disques dans un ensemble miroir, chacun contenant les mêmes données.
Comme Vinum existe dans le système de stockage disque d'UNIX™, il serait possible d'utiliser les partitions UNIX™ pour construire des blocs pour des plexes à disques multiples, mais en fait cela ne serait pas suffisamment flexible: les disques UNIX™ ne peuvent avoir qu'un nombre limités de partitions. Au lieu de cela Vinum subdivise une simple partition UNIX™ (le disque) en zones contiguës appelées sous-disques, qui sont utilisés comme bloc pour construire les plexes.
Les sous-disques résident sur le disque Vinum, en fait les partitions UNIX™. Les disques Vinum peuvent contenir un nombre quelconque de sous-disque. A l'exception d'une petite zone au début du disque, qui est utilisée pour stocker les informations de configuration et d'état, l'intégralité du disque est disponible pour le stockage des données.
Les sections suivantes décrivent la façon dont ces objets fournissent les fonctionnalités requises pour Vinum.
Les plexes peuvent comprendre de multiple sous-disques répartis sur tous les disques dans la configuration Vinum. Par conséquent, la taille d'un disque ne limite pas la taille d'une plex, et donc d'un volume.
Vinum implémente le mode miroir en attachant de multiples plexes à un volume. Un volume peut contenir entre une et huit plexes.
Bien qu'une plex représente les données complètes d'un volume, il est possible que des parties de la représentation soient physiquement manquantes, soit en raison de la mise en place (en définissant un sous-disque comme ne faisant pas partie de la plex) ou par accident (en raison de la panne d'un disque). Tant qu'au moins une plex peut fournir les données de l'intégralité de la plage d'adresse d'un volume, le volume est totalement fonctionnel.
Vinum implémente la concaténation et la segmentation au niveau de la plex:
Une plex concaténée utilise alternativement l'espace d'adresse de chaque sous-disque.
Une plex segmentée segmente les données sur chaque sous-disque. Les sous-disques doivent avoir la même taille, et il doit y avoir au moins deux sous-disques pour distinguer la plex d'une plex concaténée.
La version de Vinum fournie avec FreeBSD 9.1 implémente deux type de plexes:
Les plexes concaténées sont les plus flexibles: elles peuvent contenir un nombre quelconque de de sous-disques, et les sous-disques peuvent être de taille différentes. La plex peut être étendue en ajoutant des sous-disques supplémentaires. Elles demandent moins de temps CPU que les plexes segmentées, bien que la différence en charge CPU ne soit pas mesurable. D'autre part, elles sont plus susceptibles d'échauffement, là où un disque est très actif et les autres sont au repos.
Le plus grand avantage des plexes segmentées (RAID-0) est qu'elles réduisent les problèmes d'échauffement: en choisissant tailles de segments optimales (environ 256 KO), vous pouvez également réduire la charge des disques. Les inconvénients de cette approche sont un code (infimement) plus complexe et des restrictions sur les sous-disques: ils doivent être de la même taille, et agrandir une plex en ajoutant de nouveaux sous-disques est si complexe que Vinum ne l'implémente pas actuellement. Vinum impose une restriction triviale supplémentaire: une plex segmentée doit avoir au moins deux sous-disques, puisque sinon elle ne serait distinguable d'une plex concaténée.
Tableau 20-1 résume les avantages et inconvénients de chaque type d'organisation de plex.
Tableau 20-1. Organisations de plex Vinum
Type de plex | Nombre minimal de sous-disques | Possibilité d'ajout de sous-disques | Doivent être de même taille | Application |
---|---|---|---|---|
concaténée | 1 | oui | non | Stockage de grandes quantités de données avec le maximum de flexibilité en terme de placement et des performances modérées |
segmentée | 2 | non | oui | Haute performance combinée avec un accès hautement concourant |
Précédent | Sommaire | Suivant |
Intégrité des données | Niveau supérieur | Quelques exemples |
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]>.