Blog

Espacio usado por snapshots en ZFS

Espacio usado por snapshots en ZFS

El espacio usado mostrado por los snapshots en ZFS es un poco confuso. Veamos: Con un sólo snapshot, está todo claro:
NAME                                                                  AVAIL   USED  USEDSNAP  USEDDS  USEDREFRESERV  USEDCHILD
pool/pro_stream                                                       38.4G  1.61G      708M    936M              0          0
pool/pro_stream@manual-20170322_centos                                    -   708M         -       -              -          -
1.61GB usados por el dataset pro_stream, de ellos 708M en snapshots y 936M en datos en uso. Sin embargo, para varios snapshots es más confuso:
NAME                                                                  AVAIL   USED  USEDSNAP  USEDDS  USEDREFRESERV  USEDCHILD
...

pool/pro_bdd                                                          56.3G  3.73G     1.09G   2.64G              0          0
pool/pro_bdd@manual-20170203_centos                                       -  34.0M         -       -              -          -
pool/pro_bdd@manual-20170206_oracle_xe_instalado                          -  20.3M         -       -              -          -
pool/pro_bdd@manual-20170206_dns_manual                                   -  23.6M         -       -              -          -
pool/pro_bdd@manual-20170215_ok_video                                     -  88.3M         -       -              -          -
pool/pro_bdd@manual-20170223_ok_video_subida                              -  55.4M         -       -              -          -
pool/pro_bdd@manual-20170224_ejabberd_dominio_couchdb_compactado          -  40.3M         -       -              -          -
pool/pro_bdd@manual-20170228_bdd_inicializada                             -  14.8M         -       -              -          -
pool/pro_bdd@manual-20170228_tabla_mcp_format_ok_ws                       -  17.0M         -       -              -          -
pool/pro_bdd@manual-20170301_cuentas_creadas                              -  15.1M         -       -              -          -
pool/pro_bdd@manual-20170303_cuentas_ingesta                              -  8.49M         -       -              -          -
pool/pro_bdd@manual-20170303_players_creados                              -  7.40M         -       -              -          -
pool/pro_bdd@manual-20170306_ingesta_usuario_url                          -  10.6M         -       -              -          -
pool/pro_bdd@manual-20170309_antes_cambio_manual_usuarios                 -  77.2M         -       -              -          -
pool/pro_bdd@manual-20170322_golden                                       -  96.8M         -       -              -          -
pool/pro_bdd@PARA_CLONAR__2017831142634                                   -   124M         -       -              -          -
dataset pro_bdd ha utilizado en total 3.73GB, 1.09GB por snapshots y el resto en datos en uso (2.64 GB). Sin embargo, la columna USED para snapshots es más confusa. La suma (34.0M + 20.3M + … + 124M) no da como resultado 1.09GB. En realidad, es espacio que ganaríamos si se eliminase. Depende de snapshots anteriores y posteriores. Aquí he visto una buena explicación:
USED isn’t reliable for determining «consumed» space. For example: 1) Create file A as 100k 2) Create file B as 200k 3) Create snapshot-1 4) Create file C as 300k 5) Create snapshot-2 6) Delete file A 7) Create snapshot-3 snapshot-1 contains A and B snapshot-2 contains A, B, and C snapshot-3 contains B and C The USED column for all three will be zero because there is no data that is unique to a single snapshot. 8) Delete snapshot-2 snapshot-1 contains A and B, USED is 100k snapshot-3 contains B and C, USED is 300k USED is only the unique data. If you want to see which files have been added, deleted, or modified use ‘zfs diff’
En resumen, son datos que son únicos a ese snapshot, que no están en otros.