Linux поддерживает горячее добавление памяти при работе в качестве гостевой виртуальной машины, в VMware например. (Иногда вам нужно вручную сообщить гостевой ОС.)
Есть ли безопасный способ выполнить обратную операцию - уменьшить объем памяти, выделенной виртуальной машине, и если да, нужно ли вручную информировать гостя Linux перед такой операцией? (Если да, то эта процедура специфична для инструментов VMware или является общей для любого механизма виртуализации?)
ESXi не поддерживает горячее удаление памяти или процессоров из виртуальной машины. Кто-то, кого я встретил в пабе пару месяцев назад, сказал мне, что сестра друга его двоюродного брата * кашляет * получила ответ, что практически ни один клиент не требует этой функции. Другими словами: не стоит беспокоиться о внедрении горячего удаления.
Если вы хотите, чтобы ESXi поддерживал это, перейдите в VMware и сообщите им. Чем больше людей это сделают, тем выше шансы, что они это осуществят.
В vmware точно сказать не могу, но при использовании kvm уменьшение памяти работающей виртуальной машины работает нормально. Конечно до предела, но софт подскажет. При его уменьшении объем памяти виртуальной машины будет постепенно уменьшаться до тех пор, пока ее нельзя будет уменьшить. Если вы установите меньшее количество памяти, чем было остановлено, вам нужно будет перезагрузить виртуальную машину, чтобы она полностью опустилась.
Я недавно сделал это в системе, в которой запущен kvm примерно с 20 виртуальными машинами, где кто-то посчитал целесообразным чрезмерное выделение памяти, в результате чего некоторые виртуальные машины будут работать в свопинге (да!) Чтобы исправить это, я уменьшил память примерно на 20-40% на 2/3 виртуальных машин, и большинство из них смогли полностью уменьшить ее во время работы. Некоторым потребовалась перезагрузка, чтобы новые настройки памяти полностью вступили в силу.
Исходя из этого, я предполагаю, что виртуальная машина vmware также может допускать такое поведение. Однако быстрый тест в проигрывателе vmware говорит мне, что для вступления в силу потребуется перезагрузка (более модное программное обеспечение vmware может вести себя лучше). В противном случае это безопасно сделать в работающей системе. Конечно, другой вопрос, достаточно ли оставшегося объема памяти для его корректной работы.