Nous avons un tableau 12 TB RAID 6 qui est censé être configuré comme une seule partition avec un système de fichiers XFS Lors de la création du nouveau système de fichiers, il indique qu'il dispose de 78 Go, mais il n'y a aucun fichier sur le lecteur.
[root@i00a ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 32G 11M 32G 1% /run
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sdb3 154G 3.9G 150G 3% /
/dev/sdb2 1014M 153M 862M 16% /boot
/dev/sdb1 599M 6.7M 593M 2% /boot/efi
/dev/sdc1 187G 1.6G 185G 1% /var
tmpfs 6.3G 0 6.3G 0% /run/user/0
/dev/sda1 11T 78G 11T 1% /export/libvirt
Est-ce que j'ai fait quelque chose de mal? Est-ce par conception?
Il semble que le journal du système de fichiers ne prenne que 2 Go environ, et je ne peux pas comprendre ce qui pourrait être utilisé d'autre.
[root@i00a ~]# xfs_info /export/libvirt/
meta-data=/dev/sda1 isize=512 agcount=11, agsize=268435455 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=2929458688, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=521728, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
Informations sur la partition:
[root@irb00a ~]# parted /dev/sda1
GNU Parted 3.2
Using /dev/sda1
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Model: Unknown (unknown)
Disk /dev/sda1: 12.0TB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:
Number Start End Size File system Flags
1 0.00B 12.0TB 12.0TB xfs
Il s'agit d'un Dell FX2 avec quatre nœuds de calcul FC430 et deux nœuds de stockage FD332, exécutant Red Hat Enterprise Linux 8 ( Ootpa ).
Pour XFS, le système de fichiers vide "Taille utilisée" comme indiqué par df -h
semble dépendre beaucoup des fonctionnalités de métadonnées que vous activez dans mkfs.xfs
temps.
Test avec un fichier vide de 12 To:
# truncate -s 12TB xfstest.img
Paramètres par défaut (sur mon système ArchLinux actuel):
# mkfs.xfs xfstest.img
meta-data=xfstest.img isize=512 agcount=11, agsize=268435455 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=0
data = bsize=4096 blocks=2929687500, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=521728, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
# mount -o loop xfstest.img loop/
# df -h loop/
Filesystem Size Used Avail Use% Mounted on
/dev/loop0 11T 12G 11T 1% /dev/shm/loop
# umount loop/
En utilisant reflink=1
:
# mkfs.xfs -m reflink=1 -f xfstest.img
meta-data=xfstest.img isize=512 agcount=11, agsize=268435455 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=2929687500, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=521728, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
# mount -o loop xfstest.img loop/
# df -h loop/
Filesystem Size Used Avail Use% Mounted on
/dev/loop0 11T 78G 11T 1% /dev/shm/loop
En utilisant crc=0
, reflink=0
: (pour une raison quelconque, cela transforme également finobt=0
, sparse=0
)
# mkfs.xfs -m reflink=0 -m crc=0 -f xfstest.img
meta-data=xfstest.img isize=256 agcount=11, agsize=268435455 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0, sparse=0, rmapbt=0
= reflink=0
data = bsize=4096 blocks=2929687500, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=521728, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
# mount -o loop xfstest.img loop/
# df -h loop/
Filesystem Size Used Avail Use% Mounted on
/dev/loop0 11T 33M 11T 1% /dev/shm/loop
En bref:
# df -h loop/
Filesystem Size Used Avail Use% Mounted on
/dev/loop0 11T 78G 11T 1% /dev/shm/loop (reflink=1, crc=1)
/dev/loop0 11T 12G 11T 1% /dev/shm/loop (reflink=0, crc=1)
/dev/loop0 11T 33M 11T 1% /dev/shm/loop (reflink=0, crc=0)
Ainsi, l'espace "utilisé" sur un nouveau système de fichiers de 12 To est 78G, 12G ou aussi bas que 33M selon les fonctionnalités de métadonnées que vous activez au moment mkfs.
Tous les systèmes de fichiers ont une surcharge pour leurs propres structures de données internes. Ces informations internes sont utilisées par le système de fichiers pour créer des fichiers et des répertoires à l'avenir et pour savoir où tout est alloué. Ces données sont collectivement appelées "métadonnées". Ce sont des données "sur" les données du système de fichiers. Les métadonnées sont considérées comme des frais généraux, car elles occupent de l'espace mais ne sont pas des données utilisateur. Cette surcharge est un effet secondaire inévitable de l'utilisation de tout système de fichiers.
Selon ce billet de blog , XFS a une surcharge d'environ 0,5% de l'espace disque total. (Notez que ce post date de 2009, mais il n'y a aucune raison pour que cela ait radicalement changé). Il a obtenu ce résultat en testant la surcharge du système de fichiers de plus d'une douzaine de systèmes de fichiers différents en utilisant guestfish
.
0,5% de votre espace de 12 To est de 60 Go, il semble donc que cela soit assez proche de l'utilisation attendue. Je soupçonne que son nombre aurait dû être légèrement supérieur à 0,5%, mais qu'il a été arrondi.