Comment configurer les caches de stockage des machines virtuelles pour un datastore NAS domestique

Eva Wong est la rédactrice technique et bricoleuse résidente chez ZimaSpace. Geek depuis toujours, passionnée par les homelabs et les logiciels open source, elle se spécialise dans la traduction de concepts techniques complexes en guides accessibles et pratiques. Eva croit que l’auto-hébergement doit être amusant, pas intimidant. À travers ses tutoriels, elle donne à la communauté les moyens de démystifier les configurations matérielles, depuis la construction de leur premier NAS jusqu’à la maîtrise des conteneurs Docker.

Utilisez cache=none ou des paramètres par défaut compatibles avec les E/S directes comme référence, puis ne modifiez ces paramètres qu’après avoir compris le chemin de durabilité de l’invité, de l’hôte et du NAS.

Cette décision est importante lorsque les disques des machines virtuelles résident sur NFS, iSCSI, ZFS ou un autre datastore adossé à un NAS, et que l’hôte risque sinon de mettre les écritures en cache deux fois. Les deux états en concurrence sont une mise en cache sûre par l’hôte et l’invité, et une mise en cache des écritures dupliquée ou dangereuse. Commencez avec une configuration enregistrée et des données jetables, observez une seule branche à la fois et arrêtez-vous si le test accroît le risque de perte de données, de problème de permissions ou d’indisponibilité.

Définir la référence sûre pour les modes de cache du stockage des VM

Notez l’environnement avant toute modification : versions des logiciels et des micrologiciels, identités des périphériques, chemin de montage ou réseau, espace libre, permissions et symptôme observable. La référence doit conserver suffisamment de détails pour reproduire la situation où les disques des machines virtuelles résident sur NFS, iSCSI, ZFS ou un autre datastore adossé à un NAS, et où l’hôte risque sinon de mettre les écritures en cache deux fois.

Le premier scénario candidat est une mise en cache sûre par l’hôte et l’invité. Le second est une mise en cache des écritures dupliquée ou dangereuse. Les options de cache des disques des VM Proxmox actuelles définissent le mécanisme ou la limite de commande utilisés pendant le test ; elles ne remplacent pas l’observation effectuée depuis ce serveur domestique précis.

Écrivez la condition d’acceptation et la condition d’arrêt avant d’exécuter le test discriminant. Une réussite doit modifier les éléments de preuve prédits par une branche tout en laissant les services sans rapport inchangés ; un échec doit ramener le système à l’état enregistré plutôt que déclencher une série de corrections spéculatives.

Appliquer la configuration par étapes réversibles

Utilisez ce test discriminant : exécutez le même test d’écriture synchrone et de récupération avec un seul mode de cache à la fois. Gardez la charge de travail, le client, le chemin, l’ensemble de fichiers et le calendrier constants afin que le résultat soit attribuable à la variable modifiée.

Utilisez les modes de cache QEMU pour sélectionner le champ qui peut réellement distinguer les branches, puis capturez son horodatage, son état de sortie, le texte de l’erreur, l’identité du périphérique ou de l’instantané, la latence, les octets transférés, les permissions et l’état de récupération. Une sortie de commande sans erreur ne suffit pas lorsque l’identité, la durabilité ou l’état de l’application font partie de l’hypothèse testée.

Répétez le test une fois après un redémarrage, une reconnexion, un remontage ou un cache froid lorsque cet événement fait partie de la condition d’origine. Si la première exécution est destructive ou si l’environnement ne peut pas être restauré, arrêtez-vous et reproduisez le test sur une copie jetable.

scsi0: nas:vm-101-disk-0,cache=none,iothread=1

Interpréter les limites de réussite et d’échec

RÉUSSITE : la latence s’améliore sans perte des écritures confirmées après un redémarrage forcé de l’invité. Notez précisément la version, l’identité et la charge de travail qui ont réussi afin que la conclusion reste conditionnelle et ne devienne pas une affirmation universelle.

ÉCHEC : la latence de fsync augmente, la mémoire vive de l’hôte croît de manière imprévisible ou des données confirmées disparaissent. Un échec ne prouve pas automatiquement la branche opposée lorsque le réseau, la mémoire, les permissions ou la cohérence de la source peuvent influencer les deux ; isolez ces dépendances communes avant d’aller plus loin.

EXCEPTION OU RÉSULTAT AMBIGU : restaurez le dernier mode et vérifiez les systèmes de fichiers de l’invité avant tout nouvel essai. Conservez les journaux et n’exécutez aucune commande de réparation, de nettoyage, de destruction, de repartitionnement ou de modification récursive des propriétaires tant qu’une copie récupérable n’existe pas.

Vérifier la persistance dans les conditions de charge d’origine

Appliquez l’action correspondant à la branche observée, puis répétez la condition d’origine plutôt qu’une version simplifiée. La décision n’est valable que lorsque la latence s’améliore sans perte des écritures confirmées après un redémarrage forcé de l’invité, sur deux cycles ou lors du redémarrage, de la veille, de l’interruption ou de la transition de charge pertinente.

Utilisez les modes de sauvegarde Proxmox pour vérifier le flux de travail dépendant le plus proche, mais conservez le déclencheur d’origine inchangé. Les jeux de données, partages, conteneurs, utilisateurs et points de récupération sans rapport doivent conserver leur accès et leur calendrier précédents.

La limite d’arrêt est explicite : si la latence de fsync augmente, si la mémoire vive de l’hôte croît de manière imprévisible ou si des données confirmées disparaissent, revenez à la dernière configuration vérifiée, conservez les éléments de preuve et ne lancez un test plus approfondi de la plateforme ou du matériel que lorsque la branche est reproductible.

Une fois le résultat cible confirmé, comparez-le avec les délais d’expiration des montages NFS afin que la correction ne déplace pas le risque vers un service voisin. Un test cible réussi accompagné d’une nouvelle défaillance de sauvegarde, d’identité, de délai d’expiration ou de disponibilité reste une modification échouée.

FAQ

Pour les modes de cache du stockage des VM, les recherches restantes portent généralement sur la sécurité du writeback sur un NAS alimenté par onduleur, la question de savoir si cache=none signifie l’absence totale de mise en cache et le choix du même mode pour les bases de données et les postes de travail. Les réponses ci-dessous séparent ces cas limites de la décision principale.

La limite d’acceptation ne change pas : la latence s’améliore sans perte des écritures confirmées après un redémarrage forcé de l’invité. Si une condition de suivi modifie le système de fichiers, l’identité, le chemin réseau ou la version de l’application, répétez uniquement le test discriminant concerné par cette modification.

Arrêtez d’élargir l’expérience lorsque la latence de fsync augmente, que la mémoire vive de l’hôte croît de manière imprévisible ou que des données confirmées disparaissent. À ce stade, restaurez le dernier mode et vérifiez les systèmes de fichiers de l’invité avant tout nouvel essai ; conservez les éléments de preuve avant de solliciter le responsable de la plateforme, du stockage ou du matériel.

Le writeback est-il sûr sur un NAS alimenté par onduleur ?

Un onduleur réduit le risque lié aux coupures de courant, mais ne prouve pas que chaque hôte, réseau, contrôleur et datastore respecte les opérations de vidage des caches.

cache=none signifie-t-il qu’il n’y a aucune mise en cache nulle part ?

Non. L’invité et le NAS utilisent toujours des caches ; ce réglage évite principalement une couche supplémentaire de cache de pages sur l’hôte.

Les bases de données doivent-elles utiliser le même mode que les postes de travail ?

Pas automatiquement. La durabilité des bases de données et leurs schémas d’écriture synchrone nécessitent leur propre test de récupération.

Considérez la modification des modes de cache du stockage des VM comme terminée uniquement après une amélioration de la latence sans perte des écritures confirmées à la suite d’un redémarrage forcé de l’invité. Si la latence de fsync augmente, si la mémoire vive de l’hôte croît de manière imprévisible ou si des données confirmées disparaissent, restaurez le dernier mode et vérifiez les systèmes de fichiers de l’invité avant tout nouvel essai ; conservez la configuration précédente disponible jusqu’à ce que le résultat résiste au redémarrage, à l’interruption ou à la transition de charge pertinente.

Assistance et conseils

Plus à lire

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.