- Se incorporó
- 15 Enero 2004
- Mensajes
- 11.880
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
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