En informática , la fusión de páginas del núcleo ( KSM ), también conocida como memoria compartida del núcleo , fusión de memoria , deduplicación de memoria y deduplicación de páginas , es una característica del núcleo que permite que un sistema de hipervisor comparta páginas de memoria que tienen contenidos idénticos entre múltiples procesos o invitados virtualizados . Si bien no están directamente vinculadas, la máquina virtual basada en núcleo (KVM) puede usar KSM para fusionar páginas de memoria ocupadas por máquinas virtuales .
Desduplicación
KSM realiza la deduplicación de memoria escaneando la memoria principal en busca de páginas físicas que tengan contenido idéntico e identifica las páginas virtuales que están asignadas a esas páginas físicas. Deja una página sin cambios y vuelve a asignar cada página duplicada para que apunte a la misma página física, después de lo cual libera las páginas físicas adicionales para su reutilización. También marca ambas páginas virtuales como " copia en escritura " (COW), de modo que el núcleo reasignará automáticamente una página virtual para que tenga su propia página física separada tan pronto como cualquier proceso comience a escribir en ella. [1]
KSM fue originalmente pensado para ejecutar más máquinas virtuales en un host compartiendo memoria entre procesos y máquinas virtuales. Una implementación experimental de KSM por parte de Red Hat descubrió que 52 instancias virtuales de Windows XP con 1 GB de memoria podían ejecutarse en un equipo host que tenía solo 16 GB de RAM. [2] Tras su implementación , los usuarios descubrieron que KSM también era útil para entornos no virtualizados en los que la memoria es un bien escaso. [3] [4]
KSM se fusionó con la línea principal del núcleo Linux en la versión 2.6.32, que se lanzó el 3 de diciembre de 2009. [3] [2] Para ser eficaz, el núcleo del sistema operativo debe encontrar páginas de memoria idénticas en poder de diferentes procesos. El núcleo también necesita predecir si es probable que las páginas se actualicen con la suficiente poca frecuencia como para que la fusión sea un uso eficiente de los recursos del procesador. [4] Una preocupación es que, aunque se reduce el uso de la memoria, se aumenta el uso de la CPU, anulando así los posibles aumentos en el rendimiento. [1]
Riesgos de seguridad
La seguridad también es una preocupación:
- Permite eludir la aleatorización del diseño del espacio de direcciones (ASLR) [5] [6]
- Expone información a través de ataques de tiempo [7] [8]
- Permite la contaminación de recursos criptográficos en otros huéspedes virtualizados a través del ataque de martillo de fila de memoria [9]
Véase también
- Desduplicación de datos : reducción de los requisitos de almacenamiento al compartir archivos duplicados
- Almacenamiento de instancia única
Referencias
- ^ ab "KSM lo intenta de nuevo". lwn.net . kernel.org . Consultado el 21 de agosto de 2010 .
- ^ ab "Linux kernel 2.6.32, Sección 1.3. Fusión de páginas del kernel (deduplicación de memoria)". KernelNewbies.org . 3 de diciembre de 2009 . Consultado el 12 de agosto de 2015 .
- ^ ab "Anatomía de la memoria compartida del núcleo de Linux". IBM Developer . IBM. Archivado desde el original el 9 de julio de 2016 . Consultado el 21 de agosto de 2010 .
- ^ ab "Aumento de la densidad de memoria mediante el uso de KSM" (PDF) . Kernel.org . Consultado el 21 de agosto de 2010 .
- ^ Kuniyasu Suzaki; Kengo Iijima; Toshiki Yagi; Cirilo Artho. "La deduplicación de memoria como una amenaza para el sistema operativo invitado" (PDF) . Archivado desde el original (PDF) el 5 de enero de 2013 . Consultado el 16 de septiembre de 2013 .
- ^ Barresi, Antonio; Razavi, Kaveh; Payer, Mathias ; Gross, Thomas R. (agosto de 2015). "CAIN: Silently Breaking ASLR in the Cloud" (PDF) . USENIX . Consultado el 12 de agosto de 2015 .
- ^ Red Hat; Polyakov, Andy. "Todo es cuestión de tiempo: ataques de sincronización de AES en OpenSSL". access.redhat.com . Red Hat . Consultado el 4 de agosto de 2016 .
- ^ Schwarzl, Martin; Kraft, Erik; Lipp, Moritz; Gruss, Daniel (2021). "Ataques de deduplicación de memoria remota". Simposio sobre seguridad de redes y sistemas distribuidos . Consultado el 2 de abril de 2022 .
- ^ "Nuevo ataque de Rowhammer de FFS secuestra máquinas virtuales Linux". 14 de agosto de 2016. Consultado el 17 de agosto de 2016 .
Enlaces externos
- Documentación del kernel de Linux
- Página de KSM de Fedora
- Sitio de máquina virtual basado en kernel - KSM