В вычислении , ядро же-страницу слияния ( КСМ ), также известный как ядро общей памяти , слияние памяти , устранение дублирования памяти и страницы дубликатов является ядром особенность , которая делает возможным для гипервизора системы на долю страниц памяти , которые имеют одинаковые содержимое между несколькими процессы и / или виртуализированные гости. Виртуальная машина на основе ядра (KVM), хотя и не связана напрямую, может использовать KSM для объединения страниц памяти, занятых виртуальными машинами .
KSM выполняет дедупликацию памяти путем сканирования основной памяти физических страниц с идентичным содержимым и определяет виртуальные страницы, которые сопоставлены с этими физическими страницами. Он оставляет одну страницу без изменений и повторно отображает каждую повторяющуюся страницу так, чтобы она указывала на одну и ту же физическую страницу, после чего освобождает дополнительные физические страницы для повторного использования. Он также помечает обе виртуальные страницы как « копирование при записи » (COW), так что ядро автоматически переназначает виртуальную страницу обратно на ее собственную отдельную физическую страницу, как только какой-либо процесс начинает писать на нее. [1]
KSM изначально предназначался для запуска большего количества виртуальных машин на одном хосте путем разделения памяти между процессами, а также виртуальными машинами. После его внедрения пользователи обнаружили, что KSM также может быть полезен для невиртуализированных сред, в которых память находится в дефиците. [2] [3] Экспериментальная реализация KSM от Red Hat показала, что 52 виртуальных экземпляра Windows XP с 1 ГБ памяти могут работать на главном компьютере, имеющем только 16 ГБ оперативной памяти. [4]
KSM был объединен с основной веткой ядра Linux в версии 2.6.32, выпущенной 3 декабря 2009 года. [2] [4] Чтобы быть эффективным, ядро операционной системы должно находить идентичные страницы памяти, удерживаемые разными процессами. Ядру также необходимо предсказать, будут ли страницы обновляться достаточно редко, чтобы слияние было эффективным использованием ресурсов процессора. [3] Обеспокоенность заключается в том, что, хотя использование памяти уменьшается, загрузка ЦП увеличивается, что сводит на нет потенциальное увеличение производительности. [1]
Угрозы безопасности [ править ]
Безопасность также вызывает беспокойство:
- Позволяет обойти рандомизацию разметки адресного пространства (ASLR) [5] [6]
- Предоставляет информацию с помощью временных атак [7]
- Допускает заражение криптографических ресурсов в других виртуализированных гостевых системах посредством атаки молотком по строкам памяти [8]
См. Также [ править ]
- Дедупликация данных , сокращение требований к хранилищу за счет совместного использования дублирующихся файлов
- Одноэкземплярное хранилище
Ссылки [ править ]
- ^ a b «KSM пытается снова» . lwn.net . kernel.org . Проверено 21 августа 2010 года .
- ^ a b «Анатомия разделяемой памяти ядра Linux» . Разработчик IBM . IBM. Архивировано 9 июля 2016 года . Проверено 21 августа 2010 года .CS1 maint: неподходящий URL ( ссылка )
- ^ a b «Увеличение плотности памяти с помощью KSM» (PDF) . kernel.org . Проверено 21 августа 2010 года .
- ^ a b «Ядро Linux 2.6.32, раздел 1.3. Объединение одинаковых страниц ядра (дедупликация памяти)» . kernelnewbies.org . 3 декабря 2009 . Проверено 12 августа 2015 года .
- ^ Куньяж Suzaki; Кенго Иидзима; Тошики Яги; Сирил Арто. «Дедупликация памяти как угроза для гостевой ОС» (PDF) .
- ^ Баррези, Антонио; Разави, Кавех; Плательщик, Матиас ; Гросс, Томас Р. (август 2015 г.). «CAIN: автоматическое прерывание ASLR в облаке» (PDF) . USENIX . Проверено 12 августа 2015 года .
- ^ Red Hat; Поляков, Энди. «Это все вопрос времени - атаки AES по времени на OpenSSL» . access.redhat.com . Красная шляпа . Проверено 4 августа 2016 года .
- ^ «Новая атака FFS Rowhammer перехватывает виртуальные машины Linux» . Проверено 17 августа 2016 года .
Внешние ссылки [ править ]
- Документация ядра Linux
- Использование KSM (архивировано 2 июля 2014 г.)
- Страница Fedora KSM
- Сайт виртуальной машины на основе ядра - KSM