Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Se incorporó
15 Enero 2004
Mensajes
11.784
Buenas

Uno de los problemas que tenemos con el uso de máquinas virtuales es el procedimiento de "reclamación de espacio". ¿Qué es esto?

Cuando se crea una máquina virtual, se le asigna un "datastore" que es un disco duro lógico. En nuestro caso (y en el de muchas instalaciones) este disco duro lógico está asociado a un volumen definido en un storage externo tipo EMC, Compellent, etc.

Aún cuando un server tenga definido un disco duro lógico de 300GB, en el storage externo se va "gastando" únicamente lo que va consumiendo, esto porque el disco es caro y no tiene sentido marcar como usado algo que no está usado. Entonces, el server al inicio gasta en el storage externo 1GB (o lo que ocupe la instalación inicial del sistema operativo), y si le copias un archivo ISO de 4GB pues el gasto de espacio utilizado en el storage externo será de 5GB.

Hasta ahí vamos bien, no? El problema viene cuando quiero borrar archivos, no se borran del storage externo. La situación sería la siguiente:

Tienes un servidor de archivos que por una razón excepcional se llenó en 3TB. Esos 3TB se "gastaron" en el storage externo. Luego, borras 1 TB de archivos y el sistema operativo te dice ahora que sólo tienes utilizados 2TB, pero en el storage externo sigue marcado como "gastado" 3TB.

En la configuración por defecto, Así tal cual, como diría el hombre que se lo llevaron engañao pa Chillán, efectivamente VMware no le va a decir al storage que libere el espacio utilizado. Googleando y leyendo artículos me encontré con que moviendo perillas en Vmware 6 y tocando configuraciones en Windows 2012 R2 se puede informarle al storage externo que libere el disco ocupado.

http://blog.purestorage.com/direct-guest-os-unmap-in-vsphere-6-0-2/

pero googleando y googleando no veo nada de Linux así de preciso.


En lo que respecta a servidores físicos, que están conectados directamente al storage externo yo hice pruebas y realicé implementaciones con RedHat 6 y ext4 en que se gastaba 1TB por un respaldo de base de datos y cuando ese respaldo se elimina también se libera en el storage Compellent (discard era el flag), pero cuando reiniciaba el servidor ese volumen pedía remontar y escanear los bloques y p'ta, no me gustó así que lo deshabilité. Pero de que se puede se puede. Mi problema es con servers Linux en Vmware...


Leí que con RedHat 7 viene el Kernel 3.0 y el filesystem por defecto es XFS, y ya en esta versión hace "discard" en tiempo real.

http://www.techopsguys.com/2012/03/20/storage-reclamation-under-linux/

http://xfs.org/index.php/FITRIM/discard


¿Alguno de ustedes tiene este problema? ¿Cómo lo resuelven? Yo igual voy a hacer pruebas con RedHat 7 y XFS y si funciona lo documento acá como guía, pero agradecería de ustedes sus experiencias o conocimiento teórico al respecto.

Mi storage es Compellent, pero acá EMC tiene una guía super buena.

http://www.emc.com/collateral/softw...virtual-provisioning-space-reclamation-wp.pdf
 

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Se incorporó
15 Enero 2004
Mensajes
11.784
Guenas.
Nah, que me fui a la casa por eso no comenté...

En VMware hay un flag que le dice si libera automáticamente los bloques desocupados o no. En VMware 5 ese flag está deshabilitado y para que la cosa funcione hay que habilitarlo. Pero yo tengo Vmware 6 así que el flag estaba habilitado...

La huea es que voy a seguir revisando por qué el fstrim no funka. La opción parece ser lo del bug que puse más arriba.
 
Upvote 0

yakko

pingüino mal genio
Se incorporó
24 Agosto 2004
Mensajes
16.883
La otra opción y se puede programar para que lo haga automático es hacer un respaldo con ghetto en modo thin , y reemplazar la vm original por ese respaldo
 
Upvote 0

Miguelwill

I am online
Miembro del Equipo
MOD
Se incorporó
23 Febrero 2004
Mensajes
12.295
La otra opción y se puede programar para que lo haga automático es hacer un respaldo con ghetto en modo thin , y reemplazar la vm original por ese respaldo
Eso sería casi similar a hacer una migración de datastore de la vm a otro datastore usando el almacenamiento en thin, por lo menos con eso e sacado errores que evitaban poder consolidar snapshots
Eso y que de esa forma la imagen resultante solo usará el espacio de bloques en uso, aunque no se cuanto se ahorre si el fs esta fragmentado

Enviado desde mi XT1058 mediante Tapatalk
 
Upvote 0

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Se incorporó
15 Enero 2004
Mensajes
11.784
Upvote 0
Subir