Présentation de FlexCache

Cette page présente la fonctionnalité FlexCache.

À propos de FlexCache

NetApp FlexCache accélère l'accès aux données, réduit la latence du WAN et diminue les coûts de bande passante du WAN pour les charges de travail intensives en lecture, en particulier lorsque les clients accèdent de manière répétitive aux mêmes données. Lorsque vous créez un volume FlexCache, il sert de cache distant pour un volume (d'origine) existant. Ce cache ne stocke que les données chaudes fréquemment consultées du volume d'origine.

Lorsqu'un volume FlexCache reçoit une demande de lecture pour des données actives qu'il contient, il répond plus rapidement que le volume d'origine, car les données ont une distance plus courte à parcourir jusqu'au client. Si un volume FlexCache reçoit une demande de lecture de données froides rarement consultées, il récupère les données requises à partir du volume d'origine, les stocke, puis répond à la demande du client. Les requêtes de lecture suivantes pour ces données sont ensuite traitées directement à partir du volume FlexCache. Après la première requête, les données n'ont plus besoin de transiter sur le réseau ni d'être diffusées à partir d'un système surchargé.

Bien que les applications puissent écrire dans un volume FlexCache, ces écritures sont envoyées au volume d'origine pour maintenir la cohérence du cache.

L'intégration de FlexCache à Google Cloud NetApp Volumes vous permet de provisionner des volumes de cache dans votre réseau Google pour améliorer les performances des environnements de cloud hybride. Cette fonctionnalité permet de transférer des charges de travail vers le cloud hybride en mettant en cache les données d'un centre de données sur site vers le cloud.

Les volumes NetApp Volumes ne peuvent pas servir de volumes d'origine.

FlexCache présente les caractéristiques suivantes :

Comportement d'écriture

FlexCache garantit que les données que vous lisez à partir de l'origine ou de l'un de ses caches sont toujours à jour. Pour gérer les écritures dans les environnements où les données peuvent être écrites dans l'origine ou dans n'importe quel cache, FlexCache fournit les stratégies suivantes pour gérer ces opérations d'écriture.

Écrire autour

Le write-around est le paramètre de cache par défaut. Il est recommandé pour les environnements avec des charges de travail nécessitant une lecture intensive ou dans lesquels seuls de petits fichiers sont écrits.

Lorsque des données sont écrites dans un volume FlexCache, l'opération d'écriture est transmise au volume d'origine. Le cache reconnaît l'écriture une fois que l'origine l'a confirmée. L'écriture dans un fichier invalide sa copie mise en cache, et le cache la récupère lors du prochain accès.

Cette stratégie offre une latence de lecture de type LAN pour les données mises en cache. Toutefois, le débit d'écriture dépend de la connexion réseau à l'origine. Si le réseau entre l'origine et un cache échoue, les utilisateurs peuvent toujours accéder aux données du cache.

Écriture différée

Le réécriture n'est adapté qu'à des charges de travail spécifiques. Elle offre une vitesse d'écriture rapide pour les écritures intensives dans des fichiers volumineux. L'écriture différée n'est pas recommandée pour les charges de travail comportant de nombreuses petites écritures dans plusieurs fichiers, car la surcharge liée à la gestion de la cohérence des données entre l'origine et tous les caches réduit considérablement les performances.

Avant d'activer l'écriture différée pour FlexCache, consultez d'abord les consignes d'écriture différée ONTAP FlexCache, comprenez les implications de l'architecture et vérifiez si votre environnement correspond au profil de charge de travail documenté. L'option "Write-around" est recommandée, sauf si vous pouvez vérifier que votre charge de travail est adaptée à l'option "Write-back".

Les utilisateurs peuvent éventuellement activer la prise en charge de l'écriture différée. Lorsque l'écriture différée est activée, les clients peuvent écrire de grandes quantités de données dans un cache avec des performances similaires à celles d'un réseau local. Le cache envoie ensuite ces modifications à l'origine. Étant donné que la vitesse d'écriture d'un client dans le cache peut dépasser la vitesse à laquelle les données sont envoyées à l'origine, le cache stocke temporairement les modifications jusqu'à ce qu'elles soient complètement vidées vers l'origine. Pendant la période où un client écrit dans un fichier, l'origine et tous les autres caches bloquent les appels de lecture pour ce fichier jusqu'à ce que l'opération d'écriture soit terminée.

La stratégie de réécriture offre des performances de lecture et d'écriture de type LAN pour les données mises en cache. Toutefois, si les caches ou l'origine perdent la connectivité, toutes les opérations de lecture et d'écriture sont bloquées.

Invalidation du cache en raison de la mise à jour des heures d'accès

ONTAP fournit un champ au niveau du volume appelé -atime-update pour gérer les mises à jour de l'heure d'accès aux fichiers et aux répertoires qui sont lus à l'aide de READ, READLINK et READDIR.

Les mises à jour des temps d'accès sur les volumes d'origine ou de cache peuvent déclencher des invalidations de fichiers qui réduisent l'efficacité du cache et entraînent des performances lentes et une latence élevée pour l'accès aux fichiers. Pour éviter cela, désactivez les mises à jour de l'heure d'accès sur le volume d'origine à l'aide de la commande ONTAP volume modify -atime-update. Dans les scénarios où vous avez besoin que le temps d'accès reflète les lectures récentes, utilisez la commande volume modify -atime-update-period pour définir une période pendant laquelle les mises à jour du temps d'accès sont arrêtées. Par exemple, si vous le définissez sur 86400 secondes, les heures d'accès ne seront mises à jour qu'une fois par jour.

Les volumes FlexCache dans NetApp Volumes héritent du paramètre -atime-update de l'origine, ce qui peut augmenter les invalidations du cache. Par conséquent, nous vous recommandons de désactiver les mises à jour de l'heure d'accès sur le volume d'origine.

Verrouillage global des fichiers

Le verrouillage global des fichiers applique des verrouillages de plage d'octets exclusifs et de refus de lecture aux fichiers dans tous les caches et le volume d'origine. Si ces verrouillages doivent être strictement appliqués dans votre workflow pour maintenir la cohérence des données ou éviter les conflits d'accès, activez le verrouillage global des fichiers.

Remarques

N'activez le verrouillage global des fichiers que si la connectivité entre le cache et l'origine est fiable. Les connexions instables peuvent retarder ou suspendre les modifications, ou entraîner des délais d'attente si les volumes FlexCache sont hors connexion.

  • Impact sur les performances : l'activation du verrouillage global des fichiers augmente la latence, car chaque lecture du cache déclenche une demande à l'origine pour la validation du verrouillage, ce qui augmente le délai aller-retour (DAR).

  • Impact sur la disponibilité : si un volume de cache est hors connexion, la lecture de ses fichiers est bloquée sur tous les autres volumes de cache, et les modifications apportées au volume d'origine sont suspendues jusqu'à ce que tous les volumes FlexCache soient de nouveau en ligne.

Comme le verrouillage global des fichiers peut affecter les performances et la fiabilité du système, laissez-le désactivé, sauf si votre workflow l'exige explicitement.

Notifications de modification CIFS

Le protocole SMB fournit un mécanisme permettant d'informer les clients SMB des modifications apportées à un volume par d'autres clients. Cela permet aux applications, telles que l'explorateur de fichiers Windows, de mettre à jour leurs vues sans interroger le volume. Cette fonctionnalité facultative est utile pour les caches où les utilisateurs interactifs accèdent aux fichiers sur les volumes SMB via l'Explorateur Windows. Sinon, il doit être désactivé pour réduire la charge de notifications.

Préremplissage du cache

FlexCache accélère l'accès en lecture en mettant en cache les données lors de la première lecture à partir d'une origine. Il permet également d'assurer la cohérence du cache en synchronisant l'origine et tous les caches. Par conséquent, l'accès initial aux fichiers offre des performances de lecture semblables à celles d'un réseau étendu, mais les lectures suivantes sont aussi rapides que les lectures locales.

Si vous savez quelles données spécifiques sont requises dans votre cache, vous pouvez utiliser le préremplissage du cache. Le préremplissage vous permet d'indiquer au cache d'extraire des fichiers et des dossiers spécifiques avant leur première utilisation, afin d'accélérer les lectures lors du premier accès.

Pour démarrer un job de préremplissage, vous devez fournir au cache une liste de chemins d'accès aux fichiers ou aux répertoires. Vous pouvez également activer la récursivité, qui permet de récupérer tout le contenu des sous-répertoires.

La durée d'exécution d'un job de préremplissage peut varier en fonction de la quantité de données à préremplir et de la vitesse du réseau entre le cache et l'origine. FlexCache vous permet de surveiller l'état d'un job de préremplissage, qu'il soit toujours en cours d'exécution ou terminé.

Étape suivante

Planifier les volumes FlexCache