Cómo obtener espacio libre de la unidad montada Redhat 7

14

En nuestra infraestructura de VM, tenemos hosts agrupados que van a una SAN.

Lo que estoy tratando de averiguar es cuánto "espacio en blanco" queda al eliminar archivos dentro de nuestros servidores Redhat. En nuestro servidor de Windows usamos sdelete y eso soluciona ese problema, sin embargo, con Linux me cuesta encontrar una solución.

¿Estoy definiendo el "espacio en blanco" como los sectores? sobra que no se ponen a cero que las unidades SSD tienen que poner a cero primero antes de que puedan escribir en él.

Una cosa que señalaré es que cuando se trata de Linux, sé lo suficiente como para ser peligroso, pero no soy un súper usuario.

Mirando por encima de las unidades y particiones:

[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

Ahora mirando el uso del disco:

[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

Después de muchas horas de búsqueda en Google, encontré esto, creo que me muestra cuánto espacio en blanco está disponible para ser eliminado.

[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%

Creo que una salida razonable para una partición 497M.

Así que ahora quiero hacer lo mismo solo en mi unidad montada (creo que está montada).

 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}'

Lo que no me da nada.

Mi / 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

Entonces mi pregunta es ¿estoy en el camino correcto?

¿Te expliqué bien lo que estoy buscando?

¿Existe algún término para "espacio en blanco" que pueda ayudarme a buscar en Google?

He descubierto que puedo ejecutar "fstrim -v /" en la raíz, pero realmente me gustaría saber cuánto espacio hay.

También estoy tratando de descubrir que estos sistemas de producción requieren una gran cantidad de E / S, ¿deberían ejecutarse en las horas pico?

¿Alguna posibilidad de pérdida de datos al ejecutar "fstrim -v /"?

Anthony Fornito
fuente
También puede configurar la discardopción de montaje en los sistemas de archivos.
Michael Hampton
¿Quizás usando el UUID de la unidad montada en lugar de / dev / mapper? Intente ejecutar blkidy ver si puede obtener el UUID y volver a ejecutar el partedcomando.
wilbo

Respuestas:

12

Ser capaz de ejecutar fstrim en las particiones / sería la mejor solución, sin embargo, con la forma en que está configurado su ESXi, no sería posible.

Debe poder habilitar los descartes tanto en la VM como en el dispositivo de almacenamiento.

Intentar reducir el tamaño de una partición o volumen lógico con el sistema de archivos xfs no se puede hacer, este es un error conocido con fedora. Si está interesado en esta funcionalidad, póngase en contacto con el soporte de Red Hat y haga referencia al bugzilla 1062667 de Red Hat, y proporcione su caso de uso para necesitar la reducción / reducción de XFS.

Como posible solución en algunos entornos, los volúmenes LVM aprovisionados delgados se pueden considerar como una capa adicional debajo del sistema de archivos XFS.

Si las máquinas virtuales están ansiosas por el VMDK aprovisionado, lo que significa que no hay nada que reclamar cuando intenta recortar (técnicamente hablando; SCSI UNMAP) sus volúmenes.

Si el almacenamiento de back-end está ejecutando un aprovisionamiento delgado, entonces también debe usar archivos VMDK con puesta a cero diferida para reducir el almacenamiento y hacer posible que el backend guarde en caché / dedupta los datos cálidos.

Dos posibles opciones:

  1. Cuando un servidor remoto proporciona almacenamiento a través de una SAN, solo puede descartar bloques si el almacenamiento es de aprovisionamiento reducido.

    1. VMotion todas las máquinas virtuales a un almacén de datos diferente y utilice las herramientas integradas VMWare
    2. Conéctese al host ESXi con SSH
    3. Navegue a la carpeta de la máquina virtual
    4. Verifique el uso del disco con du
    5. Ejecute vmkfstools -K [disco]
    6. Verifique el uso del disco con du
  2. dd if = / dev / zero of = BIGFILE bs = 1024000 rm -f BIGFILE

Por lo que puedo decir, esto hace lo mismo que sdelete, sin embargo, puede causar un pico en la E / S del disco, así como también demorar un tiempo en ejecutarse.

Algo para probar durante la noche

Cualquiera de las opciones no es la mejor, pero reformatear cada VM para obtener ext3 o ext4 no parece factible.

Lo que puede hacer es configurar una regla de afinidad para todas las máquinas virtuales de Linux y usar la opción 1 de arriba.

Brian Curless
fuente
12

Intento hacer lo mismo hace un par de semanas y no encuentro cómo hacerlo. Comparto la declaración oficial en el portal de soporte de Redhat.

Actualmente no es posible reducir el tamaño de una partición o volumen lógico con el sistema de archivos xfs. Si está interesado en esta funcionalidad, póngase en contacto con el soporte de Red Hat y haga referencia al bugzilla 1062667 de Red Hat, y proporcione su caso de uso para necesitar la reducción / reducción de XFS. Como una posible solución en algunos entornos, los volúmenes LVM aprovisionados delgados pueden considerarse como una capa adicional debajo del sistema de archivos XFS.

¡¡Buena suerte!!

BennyBoy
fuente
Gracias por el comentario, sin embargo, no estoy tratando de reducir el tamaño del espacio disponible para la VM. Las unidades SSD tienen una (falla) que es cuando los datos se eliminan, el sector primero se pone a cero y luego se puede escribir en vs si el sector nunca se ha escrito en él ya se pone a cero. Estoy tratando de resolverme como en Windows con sdelete, puedo usar "fstrim -v /". Antes de ejecutar eso, estoy tratando de averiguar si puedo ver cuántos sectores se verán afectados y qué impacto tendría en el sistema.
Anthony Fornito