Статьи

Éléments de base de la plateforme de virtualisation Flash (FVP), partie 2. Utilisation de votre propre plate-forme ou système de fichiers

L'un des sujets dont j'ai discuté avec Satyam et Murali Vilayannur était le système de fichiers utilisé pour stocker les données sur des périphériques flash. Il convient de garder à l’esprit les faits suivants: Satyam a créé VMFS3, Murali était le principal développeur de VMFS5. De ce point de vue, l’utilisation de VMFS semblerait évidente. Cependant, la grande surprise pour moi a été le fait que pour les périphériques flash, nous n’utilisons pas VMFS, une surprise encore plus grande est que nous n’utilisons pas du tout le système de fichiers.

Pourquoi pas VMFS?
Les systèmes de fichiers fournissent des fonctionnalités non requises et parfois même en conflit avec les exigences de la plate-forme qui traite les E / S actives sur les périphériques flash. L'un des plus gros problèmes liés à l'utilisation d'un système de fichiers similaire à VMFS sur un périphérique flash est qu'il est optimisé pour les systèmes de stockage SAN et leurs modèles de gestion de données. Satyam a écrit un article à ce sujet pour ACM alors qu'il travaillait dans VMware. Malheureusement, cela fait du système de fichiers un outil inapproprié pour les tâches FVP.

Les systèmes de fichiers à adresse directe surchargent les périphériques flash, ce qui réduit leur durée de vie, ne traite pas de manière optimale les opérations d’entrées / sorties arbitraires, ne teste pas non plus leurs algorithmes de récupération de place (souvent très fragiles), et leurs objets (fichiers et répertoires) conviennent moins bien. gestion des machines virtuelles et de la qualité de service extrêmement importante pour les tâches FVP. La section suivante détaillera le problème de la gestion des données sur des périphériques Flash, mais pour l’instant, une conclusion rapide: si votre périphérique Flash vous coûte cher, ne placez pas de système de fichier à adressage direct sur celui-ci.

Les systèmes de fichiers offrent également des fonctionnalités qui dépassent largement les besoins de FVP. Par exemple, les verrous de disque. VMFS dispose d'un gestionnaire de verrouillage distribué avancé qui contrôle l'accès des différents hôtes ESXi aux disques. FVP gère les disques locaux de l'hôte et n'exige pas de verrous sur d'autres hôtes. Par conséquent, le gestionnaire de verrouillage distribué devient complètement superflu. On peut en dire autant de la compatibilité POSIX et des transactions distribuées. Et ainsi de suite.

Opérations de flash de bas niveau
Voici un exemple de la différence fondamentale entre l’écriture sur un périphérique flash et l’enregistrement sur disque dur. Flash ne peut pas écraser les données existantes. Les données en mémoire flash ne peuvent être écrites que sur une page vierge. Une caractéristique de la mémoire flash est que l'enregistrement peut être effectué par pages et que l'effacement ne peut être effectué que par blocs. Qu'est-ce qu'une page et qu'est-ce qu'un bloc? Flash stocke les données dans des cellules; les cellules sont combinées en pages (4 Ko); les pages sont regroupées en blocs. La plupart des fabricants combinent 128 pages en un bloc. Si vous souhaitez effacer la page, vous devez alors effacer tout le bloc. Toutes les données nécessaires des autres pages doivent être enregistrées ailleurs. Il est bien connu que les périphériques flash ont un nombre limité de cycles d’écriture et d’effacement.

Par conséquent, une écriture d'E / S aléatoire peut avoir un impact plus important que vous ne le pensiez. Le problème est que la plupart des systèmes de fichiers ont été développés dans les années 80 et 90 et n'ont pas progressé depuis ce temps. Les systèmes de fichiers ne prennent pas en compte la dégradation des performances qu’ils entraînent pour les périphériques Flash à l’aide d’opérations de bas niveau conçues pour les disques durs; La plupart des fabricants de périphériques flash implémentent divers mécanismes pour prendre en compte la dégradation progressive des performances. À l'aide de plusieurs schémas, nous examinons ces mécanismes et cherchons à déterminer pourquoi la fragmentation a un tel effet sur les périphériques flash.

Gestion de l'usure
Remarque, pour des raisons de simplicité, j'ai décidé d'afficher 9 pages dans un bloc au lieu de 128 pages par bloc.

Commençons par le processus de gestion de l'usure. Dans cet exemple, l'application a déjà créé les données et les a enregistrées aux pages A, B et C du bloc 1 (étape 1). Les nouvelles données arrivent (étape 2) et sont écrites sur les pages D, E et F. L'application met à jour les données précédentes (AC) et au lieu d'utiliser les pages précédentes, le périphérique flash continue d'utiliser les nouvelles pages. Ces nouvelles données sont étiquetées A-1, B-1 et C-1. La distribution des archives aussi uniformément que possible s'appelle «gestion de l'usure». Les anciennes pages sont maintenant marquées comme expirées.

Collecte des ordures et entrée multiple
Dans cet exemple, le bloc A est plein, que se passe-t-il si l'espace disponible pour l'enregistrement est épuisé et que de nouvelles données arrivent?

Flash copiera les données actuelles dans des cellules vides. Les données réelles dans le bloc sont lues et écrites dans un autre bloc. Les données en retard resteront dans ses pages et seront effacées avec le reste des pages de blocage. Ce processus s'appelle "ramasse-miettes".

La récupération de place est correcte, mais les entrées multiples qui se produisent au cours de son fonctionnement endommagent considérablement les périphériques Flash. Pour enregistrer 3 pages, le périphérique flash doit lire 6 pages et les écrire à un autre endroit avant de pouvoir écrire de nouvelles données. Et n'oubliez pas le cycle d'effacement. Supposons un scénario dans lequel le disque est plein, où déplacerons-nous (temporairement) les données avant d'enregistrer de nouvelles données? Dans mon schéma, j'ai ajouté le bloc B pour cette option. Pour ce faire dans une situation réelle (lors de l'utilisation du système de fichiers), vous devez allouer un espace excédentaire réservé par le contrôleur flash.

Espace excédentaire
La capacité de mémoire flash peut être réservée aux processus gérés par un contrôleur de mémoire flash. Cela peut être fait à la fois par le fabricant du périphérique flash et par l'utilisateur. Par exemple, lorsque vous achetez un accélérateur flash PCIe de 160 Go, vous obtenez une carte de 192 Go. L'utilisateur dispose de 160 Go et de 32 Go réservés aux opérations de niveau contrôleur, telles que la récupération de place, la correction d'erreur et le microprogramme de contrôleur. Lorsque vous achetez un lecteur SSD non industriel, vous obtenez généralement un peu d'espace en réserve. Lorsque vous formatez ce périphérique flash dans n’importe quel système de fichiers, vous devez connaître ces fonctionnalités et éventuellement réserver de l’espace supplémentaire en dehors de la capacité disponible. Il n’existe actuellement aucune recommandation normalisée en matière de mise à l’échelle. Vous devez donc choisir en fonction de votre propre expérience. Dans le pire des cas, vous vous retrouverez avec un disque fragmenté et le SSD devra transférer en permanence les données pour en écrire de nouvelles. Imaginez les enfants qui jouent au tag, seul le schéma de mouvement est un peu plus compliqué.

Reconsidérer la gestion des données sur les périphériques flash
Les ingénieurs de PernixData ont développé un nouveau format pour la gestion des données sur des périphériques flash pour FVP. Les détails seront divulgués dans les articles suivants, et maintenant quelques points fondamentaux.

Optimisé pour le flash
Le format est conçu pour stocker des données d'E / S temporaires avec le minimum de métadonnées possible, et pour fonctionner avec un périphérique flash offrant les performances maximales possibles. Il convertit les entrées aléatoires en entrées consécutives afin de tirer parti des performances de flash supérieures en mode d’écriture séquentielle. Cela réduit le nombre de remplacements de données redondants et de cycles d'effacement. Et l'algorithme ne contient pas les limitations héritées des systèmes de fichiers, telles que les blocs de grande taille, les répertoires, les fichiers, les transactions longues, les gestionnaires de verrous, etc.

Capacité partagée dynamiquement entre machines virtuelles
Merci beaucoup intégration profonde Avec VMkernel, FVP peut suivre les blocs de données et déterminer si leur machine virtuelle lit ou écrit. Indépendamment du suivi de ces opérations, la plate-forme peut mettre à l'échelle les mémoires de lecture et d'écriture dans l'espace alloué à la machine virtuelle. FVP peut mettre en cache ou supprimer un ensemble arbitraire de données de machine virtuelle du cache. En revanche, la politique d'évacuation des données sur le système de fichiers traditionnel d'un périphérique flash sera sous-optimale et donnera lieu à plusieurs réécritures, car le système de fichiers peut uniquement écrire des données à la fin du fichier ou supprimer des blocs à la fin.

Cela signifie également qu'il n'est pas nécessaire d'affecter une configuration d'espace de cache statique à chaque machine virtuelle, contrairement à ce qui se passerait si vous utilisiez un système de fichiers avec un adressage direct. Ce fut une excellente décision pour nous; l'expérience utilisateur du produit doit être aussi intuitive que possible.

Je cite notre chef de produit Bala: "À mon avis, l’élégance du produit réside dans le fait qu’il exécute des tâches de base, ne requérant aucune action nouvelle ou inhabituelle de la part de l’utilisateur."

En termes de travail quotidien, c’est excellent: vous n’avez pas besoin de pré-redimensionner le cache pour chaque machine virtuelle. Cela signifie que vous n'avez pas besoin de connaître ni de prédire l'utilisation future du flash - FVP fera tout pour vous. L'absence d'allocation de ressources matérielles signifie l'absence de sous-utilisation de la mémoire flash par les machines virtuelles déchargées et l'apparition de cycles de nettoyage de blocs redondants pour les machines virtuelles actives dont la taille du cache flash est insuffisante. Cela minimise le problème des enregistrements multiples et garantit des performances et une fiabilité maximales des périphériques flash.

Article original .

Depuis 2016, FVP s'est retirée de la vente.

Pourquoi pas VMFS?
Qu'est-ce qu'une page et qu'est-ce qu'un bloc?
Supposons un scénario dans lequel le disque est plein, où déplacerons-nous (temporairement) les données avant d'enregistrer de nouvelles données?
2011.11.19
Карта