Слияние одной страницы ядра
В вычислительной технике объединение одной страницы ядра ( KSM ), также известное как общая память ядра , объединение памяти , дедупликация памяти и дедупликация страниц , — это функция ядра , которая позволяет системе гипервизора совместно использовать страницы памяти с идентичным содержимым между несколькими процессы или виртуализированные гости. (KVM) не связана напрямую, Хотя виртуальная машина на основе ядра она может использовать KSM для объединения страниц памяти, занимаемых виртуальными машинами .
Дедупликация [ править ]
KSM выполняет дедупликацию памяти путем сканирования основной памяти на наличие физических страниц с идентичным содержимым и определяет виртуальные страницы, сопоставленные с этими физическими страницами. Он оставляет одну страницу неизмененной и повторно отображает каждую дублирующую страницу, чтобы она указывала на одну и ту же физическую страницу, после чего освобождает дополнительные физические страницы для повторного использования. Он также помечает обе виртуальные страницы как « копирование при записи » (COW), так что ядро автоматически переназначит виртуальную страницу обратно на отдельную физическую страницу, как только какой-либо процесс начнет писать в нее. [1]
Изначально KSM предназначался для запуска большего количества виртуальных машин на одном хосте за счет совместного использования памяти между процессами и виртуальными машинами. Экспериментальная реализация KSM от Red Hat показала, что 52 виртуальных экземпляра Windows XP с 1 ГБ памяти могут работать на главном компьютере, имеющем всего 16 ГБ ОЗУ. [2] После внедрения пользователи обнаружили, что KSM также полезен для невиртуализированных сред, в которых память имеет большое значение. [3] [4]
KSM был объединен с основной веткой ядра Linux в версии 2.6.32, выпущенной 3 декабря 2009 года. [3] [2] Чтобы быть эффективным, ядро операционной системы должно находить одинаковые страницы памяти, занимаемые разными процессами. Ядру также необходимо предсказать, будут ли страницы обновляться достаточно редко, чтобы слияние было эффективным использованием ресурсов процессора. [4] Проблема заключается в том, что хотя использование памяти снижается, загрузка ЦП увеличивается, что сводит на нет потенциальное увеличение производительности. [1]
Риски безопасности [ править ]
Безопасность также вызывает беспокойство:
- Позволяет обойти рандомизацию расположения адресного пространства (ASLR). [5] [6]
- Раскрывает информацию посредством тайминговых атак [7] [8]
- Позволяет заразить криптографические ресурсы других виртуализированных гостей посредством «молоток строк памяти». атаки [9]
См. также [ править ]
- Дедупликация данных – сокращение требований к хранилищу за счет совместного использования дубликатов файлов.
- Единое хранилище
Ссылки [ править ]
- ^ Jump up to: а б «КСМ пытается еще раз» . lwn.net . ядро.орг . Проверено 21 августа 2010 г.
- ^ Jump up to: а б «Ядро Linux 2.6.32, раздел 1.3. Объединение одной страницы ядра (дедупликация памяти)» . KernelNewbies.org . 3 декабря 2009 года . Проверено 12 августа 2015 г.
- ^ Jump up to: а б «Анатомия общей памяти ядра Linux» . Разработчик IBM . ИБМ. Архивировано из оригинала 9 июля 2016 года . Проверено 21 августа 2010 г.
{{cite web}}
: CS1 maint: неподходящий URL ( ссылка ) - ^ Jump up to: а б «Увеличение плотности памяти с помощью KSM» (PDF) . Кернел.орг . Проверено 21 августа 2010 г.
- ^ Куниясу Сузаки; Кенго Иидзима; Тошики Яги; Сирил Арто. «Дедупликация памяти как угроза гостевой ОС» (PDF) . Архивировано из оригинала (PDF) 5 января 2013 года . Проверено 16 сентября 2013 г.
- ^ Баррези, Антонио; Разави, Каве; Пайер, Матиас ; Гросс, Томас Р. (август 2015 г.). «CAIN: Бесшумный взлом ASLR в облаке» (PDF) . УСЕНИКС . Проверено 12 августа 2015 г.
- ^ Красная шляпа; Поляков, Энди. «Это все вопрос времени — атаки по времени AES на OpenSSL» . access.redhat.com . Красная шляпа . Проверено 4 августа 2016 г.
- ^ Шварцль, Мартин; Крафт, Эрик; Липп, Мориц; Грусс, Дэниел (2021). «Удаленные атаки с дедупликацией памяти» . Симпозиум по безопасности сетей и распределенных систем . Проверено 2 апреля 2022 г.
- ^ «Новая атака FFS Rowhammer захватывает виртуальные машины Linux» . 14 августа 2016 г. Проверено 17 августа 2016 г.