Instantanés LVM et instantanés du système de fichiers

32

Autant que je sache, LVM permet de prendre des instantanés d'un volume. Il existe également un certain nombre de systèmes de fichiers (ZFS, Btrfs, reiserfs, ...) qui prennent en charge les instantanés.

Cependant, je n'ai jamais compris la différence entre les instantanés LVM et les instantanés du système de fichiers. S'il est possible de prendre des instantanés avec LVM, pourquoi est-ce que quelqu'un prend son temps pour l'implémenter dans un système de fichiers?

Edit: Certains d’entre eux sont-ils préférés dans certaines situations? Pourquoi?

nip3o
la source

Réponses:

25

La plupart de ces instantanés sont des copies instantanées de copie sur écriture, qui sont très rapides et très économiques (en termes de stockage) sur des systèmes rarement mis à jour. Les instantanés LVM sont des instantanés COW, ZFS / BTRFS ont tous deux un mode COW pour les instantanés, reiserfs ne possède pas d'instantanés de manière native, le système de fichiers NSS de Novell est également COW, tout comme les volumes de clichés instantanés pour les volumes Windows NTFS.

Les instantanés de copie sur écriture prennent une copie des métadonnées du volume cible dans le pool d'instantanés. Ensuite, selon le mode de COW utilisé, ils copient les données qui seraient écrasées par les nouvelles écritures dans le pool d'instantanés avant d'écrire les nouvelles données.

ZFS et (éventuellement si ce n’est déjà fait) BTRFS disposent de fonctionnalités de capture instantanée, ce qui est utile pour la capture sur un support séparé, ce qui est très pratique pour les systèmes de sauvegarde utilisant des supports amovibles. ZFS n'appelle pas cela un "instantané", mais il exploite la capacité de ZFS à utiliser zfs sendet zfs recvà copier des volumes et des instantanés sur le réseau vers un hôte distant (ou un tableau local).

Je préfère les capacités de capture instantanée au niveau du système de fichiers à celles de LVM car je ferais mieux de faire confiance au système de fichiers lui-même pour gérer le processus proprement. Cependant, faute de prise en charge directe du système de fichiers, LVM devrait fonctionner correctement dans la plupart des cas.

Les clichés instantanés COW sont utiles si vous avez besoin d'une sauvegarde ponctuelle prise très rapidement pour les besoins de récupération à court terme. Tels que faire un snap quotidien, ou 4x tous les jours, à conserver pendant une semaine. C'est pratique si vous devez récupérer des fichiers que des utilisateurs suppriment accidentellement, ou si vous devez restaurer un système entier pour une configuration préalable à la mise à jour. Ils peuvent également être utilisés par certains systèmes de sauvegarde en tant que système de fichiers totalement mis au repos, afin que les sauvegardes prises à partir du volume d'instantanés n'aient pas à s'inquiéter de l'ouverture des fichiers ouverts. L'important est de garder à l'esprit que les volumes d'instantané se trouveront sur le même stockage que le volume principal. Par conséquent, ne vous donnez rien en cas de défaillance de la baie.

Les instantanés COMPLETS sont utiles s'ils sont utilisés sur un support amovible ou distant. Si vous avez un stockage en réseau, la cible peut être une baie iSCSI ou Fibre Channel différente de celle sur laquelle la mémoire principale est hébergée. Cela vous donne une protection hors baie pour certains types de pannes. Si vous utilisez un support amovible, tel qu'un lecteur ESATA de 3 To, vous pouvez même l'utiliser comme un simple système de sauvegarde sur disque. Ces instantanés PEUVENT être sur du matériel différent de celui de leurs frères COW, ils sont donc utiles pour la résilience aux catastrophes.


Sur les instantanés Full vs COW.

Le terme "instantané" a légèrement dérivé au fil des ans. Cette année, je suis à peu près sûr que cela signifie "une copie avec copie sur écriture des données d'origine en utilisant la relocalisation par bloc". Selon cette définition, l'instantané "complet" présenté ci-dessus n'est pas réellement un instantané, c'est une réplication. Certains fournisseurs de stockage utilisaient auparavant différentes définitions du terme "instantané" pour décrire leurs différentes opérations au niveau du bloc. Cela crée de la confusion chez les systèmes qui utilisent des instantanés dans le cadre du processus de réplication.

sysadmin1138
la source
«Un instantané au niveau du système de fichiers est préférable à un via LVM pour le simple fait que le système de fichiers sait comment rester cohérent pendant le processus d’instantané, où LVM peut" - en fait, il s’est avéré inexact. Découvrez-le: serverfault.com/questions/300961/…
poige
1
«ZFS et (éventuellement si ce n’est déjà le cas) BTRFS ont des capacités d’instantané complet» - Vous devez expliquer ce que vous voulez dire par instantané «complet». Autant que je sache, il n'y a pas de choix "VACHE / complet" pour les instantanés avec ZFS. Tous les instantanés sont en COW mais peuvent néanmoins être sauvegardés ultérieurement sur un support séparé en tant que système de fichiers complet ou volume.
jlliagre
5

LVM nécessite une planification préalable. J'ai tendance à ne pas l'utiliser parce que c'est aussi une autre couche d'abstraction et qu'elle est rarement disponible quand j'en ai besoin. Il existe cependant d'autres options pour cloner au niveau du système de fichiers (sous Linux) sans LVM. Vous pouvez utiliser Hot Copy de R1Soft pour ce faire. C'est un module de noyau, mais vous permet d'ajouter cette fonctionnalité à la volée.

ewwhite
la source
3

Problème très clair: il n’est pas garanti que les instantanés de LVM aient un contenu cohérent dans FS, car LVM ne sait rien du système FS dans lequel il se trouve.

Edité (voir les commentaires): - true à moins que le service de maintenance ne dispose de la prise en charge de .freeze_fs, sinon il devrait être géré par le service de stockage de manière élégante.

poige
la source
2
Faux; LVM demande au système de fichiers de se synchroniser avant de prendre l'instantané.
Womble
1
@womble: même après sync, l'instantané est une copie exacte d'un système de fichiers déjà monté; Ainsi, lorsque vous le montez, il apparaît comme «non démonté proprement» (car il ne l'était pas) et doit prendre des mesures correctives avant qu'il ne soit cohérent. Bien sûr, il ne s’agit en général que d’une relecture de journal et, après la sync, cela devrait être une relecture vide; il n'y a donc aucun danger de perte de données.
Javier
1
@womble, 1) La synchronisation ne suffit pas , car il y aurait une fenêtre pour les nouvelles demandes d'E / S juste entre la synchronisation et la gestion des instantanés de LVM. Cela nécessite une sorte de blocage. 2) XFS a une fonctionnalité spéciale appelée "freeze" ( xfs_freeze is intended to be used with volume managers and hardware RAID devices that support the creation of snapshots.) - chose spéciale pour les instantanés, est-ce que LVM-2 le sait et l’utilise déjà? 3) Indiquez-moi où, dans l'espace utilisateur ( sources.redhat.com/cgi-bin/cvsweb.cgi/LVM2/?cvsroot=lvm2 ) ou dans les sources du noyau, je peux prouver que vous avez raison de nous dire que LVM envoie FS à sync.
poige
9
ok, j'ai fait mes devoirs et je peux maintenant répondre à la troisième partie de ma question - en fait, LVM utilise freeze_bdev () du noyau, ce qui, comme son titre l'indique, est lock a filesystem and force it into a consistent state. Donc, au moins, je peux dire que j'avais probablement tort de dire "pas garanti d'avoir un système de fichiers cohérent", puisqu'il s'agit de la méthode du support freeze_fs dans la mise en œuvre de FS - certains FS ont certainement un tel support (EXT3, Reiser3, XFS), et certains non (EXT2, par exemple). En outre, cela répond à la deuxième question: le gel de XFS sera probablement géré automatiquement par LVM.
poige
1

En complément d'autres réponses. Dans les instantanés FS, vous pouvez bénéficier de fonctionnalités FS telles que la compression et la déduplication pour tous les instantanés.

Rufo El Magufo
la source