6 votes

ZFS Equivalent de lvdisplay snap_percent

J'ai utilisé des instantanés LVM pour sauvegarder des bases de données MySQL.

FLUSH TABLES WITH READ LOCK est émis et ensuite lvcreate --snapshot --size 4G etc. Puisque la base de données est active pendant que l'instantané est actif, l'outil de gestion de l'instantané peut être utilisé. snap_percent (quantité de stockage de l'instantané utilisée pour suivre les deltas avec l'état original du système de fichiers au moment où l'instantané a été pris) commence à augmenter. Ce snap_percent est suivi jour après jour et le --size est augmenté au cas où il atteindrait 80%.

Ma question est de savoir si oui ou non il y a une statistique ou une propriété équivalente en ZFS pour déterminer l'espace consommé par un instantané en tant que pourcentage de l'espace restant dans le pool ? De toute évidence, je n'ai pas besoin de passer un --size pour zfs snapshot mais comment puis-je déterminer si le clone basé sur cet instantané approche les limites du pool.

J'espère que cela a du sens, car la question semble bien compliquée maintenant que je la lis.

4voto

ewwhite Points 193555

L'espace d'instantané ZFS se reflète dans la consommation du système de fichiers. Vous pouvez déduire ce que vous demandez en contrôlant les champs les plus appropriés ci-dessous.

Au final, vous surveillerez l'espace "disponible" de votre système de fichiers... Vous voyez comment "used "+"avail" est inférieur à "size".. :

root@deore:~# df -h /volumes/vol1/LA_Specialty
Filesystem             size   used  avail capacity  Mounted on
vol1/LA_Specialty      800G   391G   254G    61%    /volumes/vol1/LA_Specialty

J'ai filtré la sortie de zfs get all pool/filesystem ci-dessous pour montrer les propriétés pertinentes. Ci-dessous, j'ai un système de fichiers de 800 Go (quota) dont 545 Go sont utilisés. 391 Go sont référencé ce qui signifie que c'est la taille des données réelles. 154GB sont utilisés par les snapshots.

root@deore:/volumes# zfs get all vol1/LA_Specialty
NAME               PROPERTY              VALUE                       SOURCE
vol1/LA_Specialty  type                  filesystem                  -
vol1/LA_Specialty  creation              Sat Sep 24 18:44 2011       -
vol1/LA_Specialty  used                  545G                        -
vol1/LA_Specialty  available             255G                        -
vol1/LA_Specialty  referenced            391G                        -
vol1/LA_Specialty  compressratio         2.96x                       -
vol1/LA_Specialty  quota                 800G                        local
vol1/LA_Specialty  reservation           none                        default
vol1/LA_Specialty  recordsize            16K                         local
vol1/LA_Specialty  mountpoint            /volumes/vol1/LA_Specialty  inherited from vol1
vol1/LA_Specialty  usedbysnapshots       154G                        -
vol1/LA_Specialty  usedbydataset         391G                        -
vol1/LA_Specialty  usedbychildren        0                           -
vol1/LA_Specialty  usedbyrefreservation  0                           -

Puis en regardant les instantanés... Il est possible de voir la taille individuelle des snapshots et la taille totale des données qu'ils référencent.

root@deore:/volumes# zfs list -t snapshot      
NAME                                               USED  AVAIL  REFER  MOUNTPOINT
vol1/LA_Specialty@snap-daily-1-2013-09-07-020003  57.6G      -   389G  -
vol1/LA_Specialty@snap-daily-1-2013-09-08-020003  1.95G      -   391G  -
vol1/LA_Specialty@snap-daily-1-2013-09-09-020008  3.42G      -   392G  -
vol1/LA_Specialty@snap-daily-1-2013-09-10-020003  3.05G      -   391G  -
vol1/LA_Specialty@snap-daily-1-2013-09-11-020003  2.81G      -   391G  -
vol1/LA_Specialty@snap-daily-1-2013-09-12-020004  2.65G      -   391G  -
vol1/LA_Specialty@snap-daily-1-2013-09-13-020003  2.70G      -   391G  -
vol1/LA_Specialty@snap-daily-1-2013-09-14-020003    25K      -   391G  -
vol1/LA_Specialty@snap-daily-1-latest               25K      -   391G  -

Et un du liste du répertoire de l'instantané...

root@deore:/volumes/vol1/LA_Specialty/.zfs/snapshot# du -skh *
 389G   snap-daily-1-2013-09-07-020003
 391G   snap-daily-1-2013-09-08-020003
 392G   snap-daily-1-2013-09-09-020008
 391G   snap-daily-1-2013-09-10-020003
 391G   snap-daily-1-2013-09-11-020003
 391G   snap-daily-1-2013-09-12-020004
 391G   snap-daily-1-2013-09-13-020003
 391G   snap-daily-1-2013-09-14-020003
 391G   snap-daily-1-latest

1voto

vikarjramun Points 363

Les instantanés ZFS contiennent beaucoup de données cachées. En général, je vous renvoie à

zfs list -ro space

Ce qui montre une sortie similaire à :

NAME                                 AVAIL   USED  USEDSNAP  USEDDS  USEDREFRESERV  USEDCHILD
rootpool/export/home                 6.37G  11.7G     2.80G   8.87G              0          0
rootpool/export/home@weekly.2            -   134M         -       -              -          -
rootpool/export/home@weekly.1            -   320M         -       -              -          -
rootpool/export/home@weekly.0            -   251M         -       -              -          -
rootpool/export/home@daily.6             -  1.02M         -       -              -          -
rootpool/export/home@daily.5             -  1.04M         -       -              -          -
rootpool/export/home@daily.4             -   850K         -       -              -          -
rootpool/export/home@daily.3             -   747K         -       -              -          -
rootpool/export/home@daily.2             -   326K         -       -              -          -
rootpool/export/home@daily.1             -   454K         -       -              -          -
rootpool/export/home@daily.0             -   319K         -       -              -          -

Cela vous indiquera que j'utilise un TOTAL de 11.7G sur cet ensemble de données particulier et que 2.8G est utilisé par les snapshots et 8.87 est utilisé par le système de fichiers réel (données actives). Cependant, la taille utilisée à côté de chaque snapshot est très trompeuse.

Si vous additionnez tous les chiffres de la colonne "utilisé" pour l'instantané, vous verrez qu'ils ne s'approchent pas du total de USEDSNAP. Cela s'explique par le fait que la valeur USED correspond à la quantité d'espace de stockage utilisé. unique l'espace que chaque instantané détient.

Par exemple :

Si j'ai un pool nommé "newpool" et qu'il contient 2 fichiers de 1G (fileA et fileB) :

 NAME                       AVAIL   USED    USEDSNAP  USEDDS  USEDREFRESERV  USEDCHILD
 newpool                    11.0G    2.0G     0.00G   2.0G              0          0

Maintenant, je le casse :

 NAME                       AVAIL   USED    USEDSNAP  USEDDS  USEDREFRESERV  USEDCHILD
 newpool                    11.0G    2.0G     0.00G   2.0G              0          0
 newpool@snap1              11.0G    0.0G     0.00G   2.0G              0          0

Maintenant je supprime 1 des fichiers de 1G (fileA) :

 NAME                       AVAIL   USED    USEDSNAP  USEDDS  USEDREFRESERV  USEDCHILD
 newpool                    11.0G    2.0G     1.00G   1.0G              0          0
 newpool@snap1                  -    1.0G         -      -              -          -

Maintenant, je crée un nouveau fichier de 1G (fichierC) :

 NAME                       AVAIL   USED    USEDSNAP  USEDDS  USEDREFRESERV  USEDCHILD
 newpool                    10.0G    3.0G     1.00G   2.0G              0          0
 newpool@snap1                  -    1.0G         -      -              -          -

Maintenant, je le casse à nouveau.

 NAME                       AVAIL   USED    USEDSNAP  USEDDS  USEDREFRESERV  USEDCHILD
 newpool                    10.0G    3.0G     1.00G   2.0G              0          0
 newpool@snap1                  -    1.0G         -      -              -          -
 newpool@snap2                  -    0.0G         -      -              -          -

Maintenant, je supprime le fichier B (qui se trouve dans les deux instantanés) :

 NAME                       AVAIL   USED    USEDSNAP  USEDDS  USEDREFRESERV  USEDCHILD
 newpool                    10.0G    3.0G     2.00G   1.0G              0          0
 newpool@snap1                  -    1.0G         -      -              -          -
 newpool@snap2                  -    0.0G         -      -              -          -

Remarquez comment la colonne de l'instantané USED a fait no reflètent le changement ? C'est parce que le fichier B a été référencé par les deux snapshots et comme il n'est pas unique, il n'est pas indiqué dans le compte USED pour un snapshot particulier. La colonne USEDSNAP indique que l'espace a été utilisé par les instantanés, mais elle ne l'associe pas à un instantané particulier.

Maintenant, si vous retirez snap1 :

 NAME                       AVAIL   USED    USEDSNAP  USEDDS  USEDREFRESERV  USEDCHILD
 newpool                    11.0G    2.0G     1.00G   1.0G              0          0
 newpool@snap2                  -    1.0G         -      -              -          -

snap2 montre maintenant qu'il a 1.0G utilisé car ces données sont maintenant uniques à cet instantané.

La colonne USED vous montre l'espace que vous pouvez récupérer si vous supprimez cet instantané individuel, mais ne vous montre pas vraiment l'espace que cet instantané réserve.

Maintenant que j'ai dit tout ça

Si vous prévoyez de ne conserver qu'un seul instantané d'un ensemble de données particulier, alors l'option zfs list -ro space devrait vous donner ce que vous recherchez.

Si vous avez plusieurs instantanés en même temps, ces données peuvent être trompeuses. Ne faites pas ce qui vous semble naturel et ne supposez pas que la colonne USED signifie quelque chose lorsque vous avez affaire à plusieurs instantanés. Aussi, du est un mauvais choix sur les répertoires d'instantanés puisque cela vous montre seulement ce qui est référencé par l'instantané, pas l'espace que l'instantané utilise réellement.

La page de manuel de zfs aborde certaines de ces questions, mais elle n'est pas très efficace pour montrer ces relations.

0voto

Anjum Kaiser Points 1016

Il n'y a pas d'équivalent direct dans ZFS. L'équivalent le plus proche est l'espace libre dans le pool, que vous pouvez obtenir à partir de zfs list . Sur ZFS, vos instantanés peuvent croître jusqu'à ce que le pool entier manque d'espace.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X