Как сжать виртуальную машину vmware
Очистка жёсткого диска виртуальной машины VMware
Средства виртуализации операционных систем в хостовой Windows от компании VMware дают нам возможность работать с дисками виртуальных машин как фиксированного типа, так и динамического. Фиксированные – это виртуальные диски, которые сразу занимают на реальном носителе информации, т.е. физическом жёстком диске, тот объём, который мы указали при создании таких дисков. Фиксированные диски немногим более быстродейственны, чем динамические.
Но, в отличие от последних, они не дают нам свободу оперирования неограниченными размерами виртуального дискового пространства. У такой свободы, правда, есть своя цена в виде разрастания динамического диска до невероятных объёмов по мере использования его виртуальной машины. Но в VMware есть решения на этот счёт – функции сжатия и очистки дисков виртуальных машин. Что это за функции, и как они работают?
Динамический тип диска задаётся нами при создании машины, если на этапе указания размера диска мы не активируем опцию выделения всего места на диске.
И тогда после создания машины для такого диска нам становятся доступны функции его сжатия и очистки. Но чтобы обе они были доступны нам, виртуальная машина должна быть в выключенном состоянии. Посмотрим, как эти функции справятся с нашей показательной ситуацией. Есть машина VMware с динамическим диском, он состоит из двух файлов, их общий объём составляет более 62 Гб.
Насколько этот объём уменьшится после проведённых нами операций сжатия и очистки диска машины?
Сжатие диска
Попадём в его параметры. И здесь в дисковых утилитах жмём кнопку «Сжать».
Несколько секунд будет происходить сжатие диска.
Очистка диска
Функция очистки диска более эффективна, чем функция сжатия, она высвобождает больше объёма, занимаемого файлом динамического диска. Но доступна она только в VMware Workstation. В этой программе идём в меню «Виртуальная машина», далее – «Управление», далее – «Очистить диски».
После непродолжительного анализа нам будет показано, сколько очистка сможет высвободить места. В нашем показательном случае это весомый объём – более 25 Гб. Жмём «Очистить сейчас».
Ожидаем завершения операции. Поскольку это более эффективная функция, чем сжатие диска, то и её выполнение длиться по времени будет дольше.
Теперь посмотрим на результат. По итогу выполнения обоих операций по сжатию и очистке диска его файл стал занимать на физическом диске немногим более 33 Гб. Эффект от проведённых операций, что называется, на лицо.
Чем ещё примечательна полнофункциональная реализация гипервизора VMware Workstation, так это возможностью настроить очистку диска в автоматическом режиме. В параметрах машины есть раздел «Дополнительно», здесь мы можем активировать опцию очистки диска после каждого завершения работы виртуальной машины.
И, соответственно, каждый раз, как только мы выключим машину, её диск будет очищаться. Таким образом файл динамического диска не будет сильно разрастаться в объёме и захламлять место на реальном жёстком диске.
Как уменьшить виртуальную машину VMware и освободить дисковое пространство
По умолчанию VMware создает «растущие» диски, размер которых увеличивается по мере добавления данных. К сожалению, они не сжимаются автоматически при удалении данных. Вам нужно будет почистить или сжать диски, чтобы освободить место на жестком диске.
Процесс немного отличается в разных версиях VMware. Мы рассмотрим процесс для VMware Player, VMware Fusion и VMware Workstation здесь.
Во-первых, убедитесь, что вы не используете предварительно выделенный диск
Ваша виртуальная машина, вероятно, имеет растущий диск. VMware Player может создавать только растущие диски, VMware Fusion всегда использует растущие диски, если вы не выделите дисковое пространство в настройках виртуальной машины после его создания, а VMware Workstation создает растущие диски, если вы не зайдете в пользовательские настройки и не отметите «Выделить все дисковое пространство сейчас». »При создании новой виртуальной машины.
На VMware Workstation или VMware Player щелкните правой кнопкой мыши виртуальную машину и выберите «Настройки». Проверьте, отображается ли «Предварительно выделено» рядом с размером диска в представлении «Сводка» или нет.
В VMware Fusion выберите виртуальную машину и нажмите Виртуальная машина> Настройки> Жесткий диск> Дополнительные параметры. Проверьте, установлен ли флажок «Предварительное выделение дискового пространства» в разделе «Дополнительные параметры» или нет.
VMware Player
У VMware Player нет удобной кнопки «Очистить диск», которую вы можете увидеть в платных продуктах VMware, но вы все равно можете сделать это с помощью нескольких опций в своем интерфейсе.
В VMware Player сначала выключите виртуальную машину. Вы не можете сжать его диск, если он включен или приостановлен.
Когда виртуальная машина выключена, выберите ее и нажмите «Изменить настройки виртуальной машины» или щелкните ее правой кнопкой мыши и выберите «Настройки».
Выберите опцию «Жесткий диск» в списке устройств на вкладке «Оборудование».
Сначала нажмите кнопку «Дефрагментация» в разделе «Дисковые утилиты», чтобы выполнить дефрагментацию диска виртуальной машины.
Когда VMware завершит процесс дефрагментации, нажмите кнопку «Компакт» в разделе «Дисковые утилиты». VMware сжимает файлы виртуального жесткого диска (.vmdk), чтобы освободить место.
VMware Player не поддерживает снимки, поэтому у вас не будет снимков, занимающих дополнительное место на вашем компьютере.
VMware Fusion
В VMware Fusion сначала отключите виртуальную машину. Вы не можете сделать это, когда виртуальная машина включена или приостановлена.
В главном окне VMware Fusion выберите виртуальную машину и щелкните значок «Обновить дисковое пространство» справа от его использования в правом нижнем углу окна. Вы не увидите актуальную информацию об использовании диска для виртуальной машины, пока не сделаете это.
Желтые данные «Reclaimable» — это количество места, которое вы можете освободить, очистив виртуальную машину. Если на вашей виртуальной машине есть свободное место, которое вы можете восстановить, в нижней части окна появится сообщение «Рекомендуется очистить». Нажмите, чтобы продолжить.
Нажмите кнопку «Очистить виртуальную машину» в появившемся окне. VMware автоматически очистит вашу виртуальную машину, и вы освободите ее, как бы много места здесь не показывалось как «Исправимо».
VMware Fusion также позволяет создавать моментальные снимки, которые фиксируют состояние виртуальной машины в определенный момент времени. Если они используют много места в соответствии с информацией об использовании диска, вы можете удалить снимки, чтобы освободить место, если они вам больше не нужны.
Чтобы просмотреть снимки, выберите виртуальную машину в главном окне библиотеки виртуальных машин и нажмите кнопку «Снимки» на панели инструментов. Выберите снимок и нажмите «Удалить», чтобы удалить его.
Конечно, после удаления снимка вы не сможете восстановить свою виртуальную машину до этого момента времени.
Рабочая станция VMware
В VMware Workstation сначала отключите виртуальную машину, которую вы хотите сжать. Вы не можете завершить этот процесс, если он включен или приостановлен.
Выберите виртуальную машину, которую вы хотите сжать, в главном окне и нажмите ВМ> Управление> Очистить диски.
Инструмент проанализирует диск выбранной виртуальной машины и покажет, сколько места можно восстановить. Чтобы освободить место, нажмите «Очистить сейчас».
Если пространство не может быть освобождено, вместо этого вы увидите сообщение «Очистка не нужна».
VMware Workstation также позволяет создавать моментальные снимки, которые содержат полный «моментальный снимок» состояния виртуальной машины в момент их создания. Это может занять много места, если виртуальная машина значительно изменилась с тех пор. Вы можете освободить дополнительное пространство, удалив снимки, которые вам больше не нужны.
Чтобы просмотреть снимки для виртуальной машины, выберите виртуальную машину в VMware Workstation и нажмите VM> Snapshot> Snapshot Manager.
Чтобы удалить снимок, который вам больше не нужен, щелкните его правой кнопкой мыши в окне диспетчера снимков и выберите «Удалить». Он будет удален с вашего компьютера.
Конечно, после удаления снимка вы не сможете восстановить свою виртуальную машину до того предыдущего момента времени.
Уменьшение размера виртуального диска на ESXi
В этой статье мы рассмотрим, как уменьшить размер виртуального диска (vmdk) в VMWare ESXi. В отличии от процедуры расширения диска виртуальной машины VMWare, которую можно выполнить на-лету без выключения ВМ, процедура уменьшения размера vmdk файла на гипервизоре VMWare ESXi задача более сложная, и выполнить ее непосредственно через графический интерфейс vSphere Client в принципе нельзя. Клиент vSphere не позволяет вам указать меньший размер виртуального диска.
Перед тем, как уменьшить размера виртуального диска на хосте VMWare ESXi необходимо:
Процедура уменьшения размера виртуального диска состоит из двух этапов:
Уменьшение раздела внутри гостевой ОС
В первую очередь необходимо уменьшить размер дискового раздела внутри гостевой операционной системы. Если у вас в ВМ запущена Windows, воспользуйтесь диспетчером управления дисков diskmgmt.msc (операция Shrink Volume доступна во всех поддерживаемых версиях Windows, для старых версий Windows для уменьшения размера раздела используется утилита sdelete) или используйте сторонние утилиты (например, Acronis Disk Director). Если этого не сделать, то после уменьшения размера виртуального диска можно получить неработоспособную файловую систему.
Допустим, вы хотите хотим уменьшить размер диска на 40 Гб. Значит размер тома должен быть уменьшен на 40960 Мб (40 Гб x 1024). Именно это значение нужно ввести в поле мастера Shrink Volume. После уменьшения размера раздела на диске справа от вашего основного раздела останется некоторое количество неразмеченного (Unallocated) пространства (в нашем примере 40 Гб).
Уменьшение размера VMDK файла виртуальной машины VMware
Теперь нужно уменьшить размера VMDK файла на файловой системе VMWare VMFS.
Итак, мы рассмотрели один из вариантов выполнения операции уменьшения размера виртуального vmdk диска в VMWare ESXi. Если требует уменьшить размер тонкого диска VMWare за счет неиспользуемого места, рекомендуем воспользоваться этой инструкцией.
Уменьшение размера виртуального диска с помощью VMware vCenter Converter Standalone
Еще один способ уменьшения размера виртуальных дисков у ВМ на VMWare с помочью GUI — воспользоваться бесплатным конвертером — VMware vCenter Converter Standalone.
Укажите адрес ESXi хоста.
Выберите исходную ВМ.
Укажите параметры новой ВМ.
Выберите режим копирования: Select volumes to copy.
Укажите новый размер диска в новой ВМ. Как вы видите, на диске в гостевой занято 48 гб, а размер самого диска – 150. Мы уменьшим размер виртуального диска до 60 Гб.
Запустите процесс конвертирования ВМ. После окончания отключите исходную ВМ и включите новую. Проверьте, что размер диска уменьшился. После этого исходную ВМ можно удалить.
Уменьшение образов виртуальных машин в VMware Workstation/Fusion
При использовании виртуальных машины с дисками типа Thin Provision (которые создаются с минимальным размером и увеличиваются по мере наполнения их данными) диски сильно разрастаются со временем, но при этом фактическое количество данных не всегда сильно возрастает. Это происходит в связи с тем, что в виртуальном диске появляются сектора которые были использованы гостевой операционной системой и потом освобождены, но фактически там остаются данные, которые уже не нужны но место на виртуальном диске занимают. Эти данные можно перезаписать нулями с дальнейшим уменьшением размера «тонкого» диска. Как это сделать — описано в нашей статье.
Очистка дисков
Для виртуальных машин под управлением Windows есть функция Clean Up Disks.
Для VMware Workstation:
Выделяем нужную, выключенную, виртуальную машину и переходим в меню:
VM->Manage->Clean Up Disks
В появившемся окне нажимаем Clean un now.
Для VMware Fusion:
Выделяем нужную, выключенную, виртуальную машину и в панели меню нажимаем Settings.
Далее выбираем раздел General и нажимаем Clean Up Virtual Machine.
Для виртуальных машин под управлением Linux очистка делается из консоли самой виртуальной машины, соответственно виртуальная машина должна быть запущена и должны быть установлены утилиты VMware Tools.
Я предпочитаю пользоваться пакетом open-vm-tools. Как его установить, описано в статье Установка Open VMware Tools.
После установки этих утилит, запускаем из консоли гостевой ОС команду:
vmware-toolbox-cmd disk shrink /
Процесс очистки занимает некоторое время. После его окончания мы получим очищенную виртуальную машину.
Заказать создание и поддержку безопасной IT-инфраструктуры любой сложности
Быть уверенным в своей IT-инфраструктуре — это быть уверенным в завтрашнем дне.
Дефрагментация и сжатие дисков VMware Workstation
В течение многих лет я использовал VMware Workstation для тестирования программного обеспечения, технической поддержки и виртуализации приложений. Выяснилось, что в результате большого количества циклов использования, особенно после обновлений операционной системы, реальное дисковое пространство, занятое виртуальным диском, намного превышает по объему виртуальное пространство, что порой приводит к снижению производительности. Потерянное пространство не всегда удается вернуть с помощью графических инструментов VMware Workstation, но очистить диски можно с использованием специальных процедур и загружаемого инструментария VMware
Алекс Ангелопулос (aka@mvps.org) — старший ИТ-консультант, специализируется на технологиях автоматизации административных задач
Без моментальных снимков и связанных клонов
Начнем с важной оговорки. Не следует применять описанные в статье методы, если в VMware Workstation используются моментальные снимки или связанные клоны. Виртуальные машины, запускаемые с моментального снимка или связанного клона, выполняются с виртуальных дисков, которые являются оверлеями исходной виртуальной машины. Если попытаться дефрагментировать исходную виртуальную машину или клон, уровень сложности значительно повышается, а производительность неизбежно падает. Оверлеи уже уменьшают размер пространства, занимаемого виртуальными дисками; скорее всего, место, использованное для клонированного диска, увеличится.
Обратите внимание, что методы, описанные в статье, вполне применимы для очистки полных клонов (full clone) VMware. Полный клон создается из точной копии первоначальной исходной виртуальной машины, но не привязан к ней. Если нет уверенности, является ли определенная машина VMware клоном, моментальным снимком или исходной машиной, то посмотрите сведения о машине в VMware Workstation. У клонов и моментальных снимков явно указан источник клона или моментального снимка, как показано на рисунке 1. Машина на рисунке 2 не связана и просто показывает версию VMware Workstation.
Рисунок 1. Детали описания клонированной виртуальной машины |
Рисунок 2. Детали описания несвязанной виртуальной машины |
Определение необходимости дефрагментации виртуальных дисков
Проблемы производительности и размера виртуального диска, вызванные фрагментацией, зависят от многих факторов. Я пользуюсь двумя простыми практическими правилами.
Во-первых, если наблюдается значительное снижение производительности виртуальной машины, то машину, вероятно, следует почистить. Во-вторых, я сравниваю размер файла Virtual Machine Disk Format (VMDK), в котором содержится диск, с данными об использованном пространстве самой виртуальной машины. Это сравнение неправомерно, если пространство дисков VMware выделено заранее. Дефрагментация полезна и для дисков фиксированного размера, но размер VMDK-файла всегда будет максимально возможным для диска виртуальной машины.
Чтобы напрямую определить пространство, используемое файлом, щелкните правой кнопкой мыши на виртуальной машине в списке VMware Favorites и выберите пункт Settings из контекстного меню. В открывшемся окне Virtual Machine Settings (как показано на приведенном экране) выберите жесткий диск в столбце Device слева (на вкладке Hardware). Затем обратитесь к области Capacity в правой половине окна. Значение Current size показывает текущий размер файла на диске. Далее загрузите гостевую операционную систему и посмотрите ее данные о размере используемого пространства. Если гостевая операционная система сообщает о гораздо меньшем используемом пространстве, чем указано для VMDK-файла, то рекомендуется дефрагментировать и сжать диск.
Экран. Настройки виртуальной машины |
Шаг 1. Очистка из гостевой операционной системы
Первый шаг — дефрагментация диска из гостевой операционной системы. Это удобный момент для общего обслуживания, в том числе обновления операционной системы и приложений. После обновления немедленно увеличиваются дефрагментация и используемое пространство. После дефрагментации закройте виртуальную машину.
Шаг 2. Используйте инструменты VMware для дефрагментации и сжатия
В VMware Workstation предусмотрены функции для подключения и сжатия виртуального диска, доступные при нажатии кнопки Utilities в окне Virtual Machine Settings, но они редко существенно влияют на размер виртуального диска. Например, у меня был VMDK-файл Windows 2000 Professional с большим излишком пространства. Гостевая операционная система Windows 2000 сообщила, что использует только 2,31 Гбайт, но размер файла на диске был 6,6 Гбайт. В результате применения инструментов графического интерфейса уменьшить требования к пространству на диске не удалось. Вместо этого я рекомендую использовать загружаемые средства командной строки VMware, vmware-vdiskmanager и vmware-mount, для радикального сжатия дисков.
Сначала получите инструменты с сайта VMware. Необходимо зарегистрироваться, а затем выполнить поиск инструмента для загрузки. В среде Windows 7 с VMware Workstation 7.1 я использовал комплект VMware Virtual Disk Development Kit (VDDK), в состав которого входят оба инструмента. Установите VDDK и обязательно запомните, в какую папку. В 32-разрядных системах Windows это обычно папка с именем вроде C:\program files\vmware\vmware virtual disk development kit\bin; в 64-разрядных системах Windows — C:\program files (x86)\vmware\vmware virtual disk development kit\bin. Теперь все готово к началу работы.
чтобы сделать папку VDDK текущим каталогом (исходный текст фрагмента A в листинге). Таким образом, инструменты VMware (а самое главное, вспомогательные DLL-библиотеки) находятся в начале пути поиска команды. Владельцам 64-разрядной Windows настоятельно рекомендуется выполнить этот шаг, как описано, даже если вам известен более удобный способ. Если поиск выполняется в первую очередь по другим путям, часто происходят сбои инструмента подключения виртуальных дисков VMware, vmware-mount.
3. Дефрагментируйте файл виртуального диска с помощью инструментария VMware. В командной строке выполните команду
4. На данном этапе нужно сопоставить файл как диск с использованием команды vmware-mount. Необходимо указать неиспользованный символ диска и путь к файлу VMDK. Исходный текст фрагмента C в листинге сопоставляет диск Z файлу W2kProDisk1.vmdk.
5. Чтобы подготовить диск к сжатию, используйте команду
6. Затем отключите диск с помощью команды
как показано в исходном тексте фрагмента E листинга. В этой команде параметр «d» означает «снять».
7. Наконец сожмите файл VMDK с использованием команды
как показано в исходном тексте фрагмента F в листинге. Здесь «k» — мнемоническое сокращение слова «shrink» (сократить); другой вариант — буква «s».
На этом операция завершается. Эффективность данного метода может быть чрезвычайно высокой. Упомянутый ранее файл диска Windows 2000 (занимавший 6,65 Гбайт в то время как гостевая операционная система использовала только 2,3 Гбайт пространства) был сжат до всего лишь 2,32 Гбайт. Этот процесс можно повторить для каждой гостевой операционной системы, занимающей слишком много места.
Шаг 3. Дефрагментация хост-диска
В качестве завершающего шага для улучшения производительности из основной операционной системы дефрагментируйте физический диск, на котором расположены виртуальные машины. Если причиной снижения производительности или слишком большого занимаемого пространства была фрагментация дисков, этот шаг должен устранить проблему.
Автоматизация сжатия диска
Проще всего выполнять обслуживание гостевой операционной системы вручную по мере необходимости, но операции дефрагментации и сжатия диска VMware легко автоматизировать. Они все равно запускаются из командной строки.
Пакетный файл ShrinkVmdk.cmd можно загрузить, чтобы автоматизировать шаг 2 описанного выше процесса. В этом файле предполагается, что диск Z не используется; если это не так, то следует изменить строку
в начале пакетного файла, чтобы указать незанятый символ диска.
После установки VDDK можно открыть окно командной строки с расширенными полномочиями и выполнить сценарий с полным путем к VMDK-файлу, который нужно дефрагментировать. С использованием пакетного файла можно дефрагментировать тестовый файл виртуального диска, применив команду
По моему опыту, проблемы с виртуальными дисками VMware редки, и регулярной серьезной чистки не требуется. Но если выясняется, что виртуальный диск занимает слишком много места, с помощью описанного метода можно быстро решить проблему.