Comment obtenir de l'espace libre à partir du lecteur monté Redhat 7

14

Dans notre infrastructure de machine virtuelle, nous avons des hôtes en cluster allant vers un SAN.

Ce que j'essaie de comprendre, c'est combien d'espace "blanc" est laissé lors de la suppression de fichiers sur nos serveurs Redhat. Sur notre serveur Windows, nous utilisons sdelete et cela résout ce problème, mais avec Linux, j'ai du mal à trouver une solution.

Je définis "l'espace blanc" comme les secteurs? les restes qui ne sont pas remis à zéro que les disques SSD doivent d'abord mettre à zéro avant de pouvoir y écrire.

Une chose que je soulignerai, c'est qu'en ce qui concerne Linux, j'en sais assez pour être dangereux mais je ne suis pas un super utilisateur.

Regarder les disques et les partitions:

[root@rhserver1-DATA10 /]# fdisk -l

Disk /dev/sda: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0005d52e

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048   104857599    51915776   8e  Linux LVM

Disk /dev/sdb: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/mapper/rhel_rhserver1--data10-root: 51.0 GB, 50964987904 bytes, 99540992 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/mapper/rhel_rhserver1--data10-swap: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Examinons maintenant l'utilisation du disque:

[root@rhserver1-DATA10 /]# df -h
Filesystem                              Size  Used Avail Use% Mounted on
/dev/mapper/rhel_rhserver1--data10-root   48G  6.1G   42G  13% /
devtmpfs                                906M     0  906M   0% /dev
tmpfs                                   921M  340K  920M   1% /dev/shm
tmpfs                                   921M   90M  831M  10% /run
tmpfs                                   921M     0  921M   0% /sys/fs/cgroup
/dev/sdb                                 50G  3.5G   44G   8% /ACMS01Backup
/dev/sda1                               497M  210M  288M  43% /boot
tmpfs                                   185M   20K  185M   1% /run/user/1000
tmpfs                                   185M     0  185M   0% /run/user/1002

Après plusieurs heures de recherche sur Google, j'ai trouvé cela, je pense que cela me montre combien "d'espace blanc" est disponible pour être nettoyé.

[root@rhserver1-DATA10 /]#  parted /dev/sda unit MB print free | grep 'Free Space' | tail -n1 | awk '{print $3}'
1.02MB
[root@rhserver1-DATA10 /]#  parted /dev/sda unit '%' print free | grep 'Free Space' | tail -n1 | awk '{print $3}'
0.00%

Je pense qu'une sortie raisonnable pour une partition 497M.

Alors maintenant, je veux faire la même chose uniquement sur mon lecteur monté (je pense que c'est monté.)

 parted /dev/mapper/rhel_rhserver1--data10-root unit MB print free | grep 'Free Space' | tail -n1 | awk '{print $3}'
 parted /dev/mapper/rhel_rhserver1--data10-root unit '%' print free | grep 'Free Space' | tail -n1 | awk '{print $3}'

Ce qui ne me donne rien.

Mon / etc / fstab /:

[root@rhserver1-DATA10 /]# cat /etc/fstab
/dev/mapper/rhel_rhserver1--data10-root /                       xfs     defaults        0 0
UUID=2f97a17c-a6d5-4904-ad5c-7c16b4510201 /boot                   xfs     defaults        0 0
/dev/mapper/rhel_rhserver1--data10-swap swap                    swap    defaults        0 0
/dev/disk/by-uuid/be4c45cf-5d72-4b97-b647-2e585947041f /ACMS01Backup auto nosuid,nodev,nofail,x-gvfs-show 0 0

Ma question est donc: suis-je sur la bonne voie?

Ai-je bien expliqué ce que je cherchais?

Y a-t-il un terme pour "espace blanc" qui pourrait aider mon googler?

J'ai trouvé que je peux exécuter "fstrim -v /" sur la racine mais je voudrais vraiment savoir combien d'espace est là.

J'essaie également de comprendre que le système de production est très intensif en E / S, doit-il fonctionner en dehors des heures de pointe?

Y a-t-il une chance de perte de données en exécutant "fstrim -v /"?

Anthony Fornito
la source
Vous pouvez également définir l' discardoption de montage sur les systèmes de fichiers.
Michael Hampton
Peut-être en utilisant l'UUID du lecteur monté plutôt que / dev / mapper? Essayez de courir blkidet voyez si vous pouvez obtenir l'UUID et réexécutez la partedcommande.
Wilbo

Réponses:

12

Être capable d'exécuter fstrim sur les partitions / serait la meilleure solution mais avec la façon dont votre ESXi est configuré, ce ne serait pas possible.

Vous devez être en mesure d'activer les rejets sur la machine virtuelle et le périphérique de stockage.

Essayer de réduire la taille d'une partition ou d'un volume logique avec le système de fichiers xfs ne peut pas être fait. C'est un bogue connu avec fedora. Si vous êtes intéressé par cette fonctionnalité, veuillez contacter le support Red Hat et faire référence à Red Hat bugzilla 1062667, et fournir votre cas d'utilisation pour avoir besoin d'une réduction / réduction XFS.

Comme contournement possible dans certains environnements, les volumes LVM à allocation dynamique peuvent être considérés comme une couche supplémentaire sous le système de fichiers XFS.

Si les VM sont des VMDK provisionnés avec impatience, cela signifie qu'il n'y a rien à récupérer lorsque vous essayez de couper (techniquement parlant; SCSI UNMAP) vos volumes.

Si le stockage back-end exécute un provisionnement fin, vous devez également utiliser des fichiers VMDK à mise à zéro paresseux afin de réduire le stockage et permettre au backend de mettre en cache / dédoubler les données chaudes.

Deux options possibles:

  1. Lorsque le stockage est fourni par un serveur distant sur un SAN, vous ne pouvez supprimer les blocs que si le stockage est alloué de manière dynamique.

    1. VMotion toutes les machines virtuelles vers un magasin de données différent et utiliser les outils VMWare intégrés
    2. Connectez-vous à l'hôte ESXi avec SSH
    3. Accédez au dossier de la machine virtuelle
    4. Vérifier l'utilisation du disque avec du
    5. Exécutez vmkfstools -K [disque]
    6. Vérifier l'utilisation du disque avec du
  2. dd if = / dev / zero of = BIGFILE bs = 1024000 rm -f BIGFILE

D'après ce que je peux dire, cela fait la même chose que sdelete, mais cela peut provoquer un pic dans les E / S disque et prendre un certain temps à s'exécuter.

Quelque chose à essayer du jour au lendemain

Les deux options ne sont pas les meilleures, mais le reformatage de chaque machine virtuelle pour obtenir ext3 ou ext4 ne semble pas faisable.

Ce que vous pourriez faire est de configurer une règle d'affinité pour toutes les machines virtuelles Linux et d'utiliser l'option 1 ci-dessus.

Brian Curless
la source
12

J'essaie de faire la même chose il y a quelques semaines et je ne trouve pas comment. Je partage la déclaration officielle sur le portail d'assistance Redhat.

Il n'est actuellement pas possible de réduire la taille d'une partition ou d'un volume logique avec le système de fichiers xfs. Si vous êtes intéressé par cette fonctionnalité, veuillez contacter le support Red Hat et faire référence à Red Hat bugzilla 1062667, et fournir votre cas d'utilisation pour avoir besoin d'une réduction / réduction XFS. Comme solution de contournement possible dans certains environnements, les volumes LVM à provisionnement fin peuvent être considérés comme une couche supplémentaire sous le système de fichiers XFS.

Bonne chance!!

BennyBoy
la source
Merci pour le commentaire cependant, je n'essaye pas de réduire la taille de l'espace disponible à la VM. Les disques SSD ont un (défaut) qui est que lorsque les données sont supprimées, le secteur doit d'abord être mis à zéro, puis il peut être écrit dans vs si le secteur n'a jamais été écrit dessus, il est déjà mis à zéro. J'essaie de comprendre un peu comme dans Windows avec sdelete je peux utiliser "fstrim -v /". Avant de lancer cela, j'essaie de savoir si je peux voir combien de secteurs seront affectés et quel impact cela aurait sur le système.
Anthony Fornito du