Vous n'avez pas besoin de vous inquiéter, je pense.
Une explication courte et rapide
- Le "Disponible" de Get Info est correct, mais la "Capacité" n'est pas ce que vous attendez intuitivement. C'est en fait l'espace utilisé + l'espace disponible de l'ensemble de données ZFS correspondant (pas le pool ! c'est l'ensemble de données dans le pool).
- De plus, Get Info utilise des unités décimales, zfs utilise des unités binaires.
Une explication plus détaillée suit.
Il y a deux choses différentes qui se passent ici.
Unités décimales et unités binaires.
Tout d'abord, la fonction Get Info du Finder permet d'obtenir des kilo-octets, des giga-octets et des téra-octets dans le cadre d'un projet de recherche. base 10 (KB, GB et TB), tandis que les outils de ligne de commande tels que df
, zfs
y zpool
les valeurs de rapport qui utilisent base 2 (KiB, Gib, TiB).
Cela signifie que 1GB = 1000^3 = 10^9
octets, et non pas le même nombre d'octets que celui de la 1GiB = 1024^3 = 2^30
. En effet, 1GB = ~0.931GiB
. Google fournit un outil pratique convertisseur de tailles numériques pour jouer avec ces conversions.
Ceci est vrai pour tous les systèmes de fichiers que vous utilisez sur votre Mac. Sur mon système, j'ai une partition HFS+. Sa taille est indiquée comme telle :
-
60GB
par Get Info ;
-
56G
par df -h
.
La capacité, telle que rapportée par les ensembles de données ZFS au système d'exploitation, n'est pas la taille sous-jacente du pool, mais quelque chose d'autre.
ZFS n'est pas seulement un système de fichiers, mais aussi un gestionnaire de volumes. Vous pouvez avoir n'importe quel ensemble de données ZFS dans votre pool, partageant le même espace disponible, chacun en consommant une partie. Vous commencez avec un jeu de données racine, mais vous pouvez en ajouter autant que vous voulez.
Que rapporte votre "Get Info" ? Ce n'est pas la taille de votre piscine, même si intuitivement, vous vous attendiez probablement à cela. A mon avis, il s'agit d'un nombre concernant votre jeu de données ZFS racine (qui n'est pas le même que votre pool !), et ce nombre devrait être le suivant USED bytes + AVAILABLE bytes
.
Vérifions-le sur un système réel.
J'ai une piscine nommée Tank
sur mon système. zpool list
Le résultat est :
NAME SIZE ALLOC FREE
Tank 1.81T 1.32T 509G
J'y ai trois ensembles de données : le Root, Tank
et deux ensembles de données imbriqués, Tank/DataOne
y Tank/DataTwo
. zfs list
Le résultat est :
NAME USED AVAIL REFER
Tank 1.32T 451G 336K
Tank/DataOne 45.9G 451G 45.8G
Tank/DataTwo 1.27T 451G 1.21T
Notez que je ne conserve aucune donnée réelle dans l'ensemble de données Root. USED
rapporte tout l'espace consommé par l'ensemble de données, ses instantanés, ses ensembles de données imbriqués et leurs instantanés. REFER
rapporte l'espace utilisé par le système de fichiers lui-même à l'heure actuelle (pas d'instantanés, pas de choses imbriquées). Vous pouvez voir que la plupart des données sont dans DataTwo, avec 0.06TiB d'instantanés aussi. Il existe des options plus fines pour zfs list
si vous le souhaitez : zfs list -o space
ajoute également les colonnes USEDSNAP USEDDS USEDREFRESERV USEDCHILD
).
Continuons et voyons ce que disent les outils non-ZFS. df -h
La sortie est :
Filesystem Size Used Avail
/dev/disk2s1 451G 336K 451G
Tank/DataOne 497G 46G 451G
Tank/DataTwo 1.7T 1.3T 451G
Get Info dit :
Name Capacity Available
Tank 483.81GB 483.81GB
DataOne 533.02GB 483.81GB
DataTwo 1.82TB 483.81GB
Conclusions
Vous pouvez facilement voir que les valeurs de df
SIZE " de Get Info et la " capacité " de Get Info sont le même nombre d'octets, avec des unités différentes. On arrondit les résultats : 483.8GB = 451GiB
, 533GB = 497GiB
et 1.82TB = 1.7TiB
.
Plus important encore, voyons si la somme de zfs
Les valeurs DISPONIBLE + REFER de 's sont égales à df
et Get Info, ou non.
NAME AVAIL + REFER
Tank 451G + 336K = 451GiB = 483GB
DataOne 451G + 45.8G = 497GiB = 533GB
DataTwo 451G + 1.21T = 1.65TiB = 1.81TB
La dernière valeur diffère légèrement, mais je pense que c'est dû à des arrondis ici et là qui faussent le résultat. En dehors de cela, tout se vérifie parfaitement.