Разное

Сжать vhdx: Как в Hyper-V уменьшить размер диска

04.06.1973

Содержание

Как в Hyper-V уменьшить размер диска

Обновлено 13.08.2016

Всем привет сегодня я хочу вам рассказать, о очень полезной функции которой к сожалению нет у VMware ESXI 5.5, а есть у Hyper-V начиная с Windows Server 2012. Это функция уменьшения размера виртуального диска. Сделано очень удобно, так как это может спасти администратора виртуализации он неправильно спланированной инфраструктуры виртуальной машины.

Как уменьшить виртуальный диск hyper v

Напомню, что VMware тоже давал некоторые методы по уменьшению vmdk файлов, но там это делалось не очень удобно через конвертер. В MS как ни странно данный процесс сделали в виде удобного мастера.

Итак как же уменьшить виртуальный диск hyper v, для этого логинимся в свою виртуальную машину, у меня на ней установлен Windows Server 2012 R2, но это не принципиально. Вам нужно зайти в оснастку Управление дисками.

Выбираем диск который следует уменьшить, щелкаем по нему правым кликом и нужна нажать Сжать.

Задаете размер сжимаемого пространства и жмете сжать.

в итоге у вас появится не размеченное пространство на вашем локальном диске, за счет него мы и уменьшим диск hyper-v.

Теперь выключаем виртуальную машину и заходим в ее свойства.

Выбираем нужный виртуальный диск, и запускаем пункт правка.

Откроется мастер изменения виртуального жесткого диска

Как видите, тут тоже есть функция Сжать, она то и позволит в hyper-v уменьшить размер диска, жмем далее.

Мастер вам подскажет до какого минимума можно сжать диск.

Готово.

Осталось только проверить, запускаем виртуалку и открываем Мой компьютер. И как видите, все успешно сжалось.

Как увеличить виртуальный диск hyper v

Для увеличения виртуального жесткого диска, следует в мастере изменения виртуального жесткого диска, выбрать пункт развернуть, перевод конечно очень корявый. Так, что увеличить диск hyper v, ни чуть не сложнее.

Уменьшить с помощью Powershell

давайте тоже самое проделаем из командной строки сильного языка:) Первым делом у нас есть виртуальная машина dc1, давайте ее закинем в переменную и посмотрим ее свойства.

$vm = Get-VM -Name DC1
Get-VHD -VMId $vm.VMId



Мы будем рассматривать вот такие вот значения
  • File Size > по сути это нынешний размер файла VHD. Отображает, сколько реально используется.
  • Size > нынешний размер виртуального диска. Если VHD динамический, то вам отобразят максимальный размер, до которого он может увеличиться
  • Minimum Size > отображает до какого размера можно уменьшить VHD.
    Имеем динамически расширяемый VHD — размером 40Gb, из которых занято > 20Gb. Как видите свободное пространство имеется, но оно практически одинаково с минимальным, и уменьшить диск, не выйдет.

Как и в графическом варианте, виртуальная машина должна быть потушена.

$vm.State
$vm | Stop-VM -Force

Берем и монтируем данный виртуальный диск к нашей системе на физическом компьютере, ее еще называют родительской. Посмотрим свойства данного виртуального диска

Mount-VHD -Path $vm.HardDrives.Path -Passthru | Get-Disk

Запоминаем номер диска и поглядим все разделы на нем с помощью команды

Get-Partition -DiskNumber 3

Нас интересует раздел, имеющий букву диска. Уменьшим его до 30Gb и проверим:

Resize-Partition -DriveLetter E -Size 30GB
Get-Partition -DriveLetter E

Как видите команда прошла успешно, давайте отмантируем данный VHD:

Dismount-VHD -Path $vm.HardDrives.Path

И уменьшим его до минимально значения:

Resize-VHD -VMId $vm.HardDrives.Path -ToMinimumSize


Все мы с вами уменьшили VHD виртуальный диск на Hyper-V.

Материал сайта pyatilistnik.org

Нюансы сжатия виртуальных и физических дисков – Вадим Стеркин

У меня стало заканчиваться место на диске, и я первым делом проверил размеры VHDX-файлов своих виртуальных машин, где используются динамически расширяемые диски. На самой ненужной ВМ с экспериментальной Windows 10 размер файла составлял 51GB, что примерно соответствовало занятому пространству в гостевой ОС.

👉 Пошаговые инструкции по устранению препятствий к сжатию системного раздела

Я выполнил в ВМ очистку диска, удалив 25GB Windows.old и прочего мусора, что сократило занятое пространство до 22GB. Затем я выключил ВМ, в ее настройках перешел к редактированию диска и выбрал сжатие.

Но по завершении операции размер файла сократился всего на 3GB.

Тогда я отключил в гостевой ОС файл подкачки, перезагрузился, выполнил в командной строке

defrag c: /u /v

и повторил сжатие. На сей раз оно достигло результата, уменьшив размер VHDX до ожидаемых 23GB.

На хосте можно применять такой же подход, отключив наряду с подкачкой еще и гибернацию, когда не получается толком сжать (shrink) раздел в оснастке управления дисками или diskpart.

Зачастую ОС позволяет сжать лишь около половины раздела, а то и меньше, потому что не может подвинуть системные файлы. Описанный выше метод занимает не так много времени, и лучше начать с него, чем быстро накосячить сторонним (и никогда не подводившим) инструментом, а потом всю ночь метаться в поисках решения 🙂

В этом контексте остается вопрос дефрагментации физического SSD. Казалось бы, он изъезжен в блоге вдоль и поперек. Ан нет! Но об этом в следующий раз 😉

В комментариях напишите, сталкивались ли вы с тем, что невозможно сжать раздел средствами ОС до нужного размера, как решали задачу, случались ли косяки.


Для тех, кто не осилил пять абзацев, добавлю шестой 🙂

Проблема: невозможно сжать раздел с ОС (уменьшить его размер) до желаемого значения в оснастке управления дисками. Это не про сжатие NTFS или ZIP.

Решение: отключите гибернацию (powercfg /h off) и файл подкачки → перезагрузитесь → в командной строке от имени администратора выполните defrag c: /u /v


Upd. По разным каналам читатели советуют такие варианты решения задачи для виртуальных дисков Hyper-V и VirtualBox. Впрочем, два первых для Hyper-V могут споткнуться о системные файлы, которые нельзя переместить (для чего я и задействовал дефраг).

  • Командлет PowerShell Move-VM с параметром -IncludeStorage (Денис Дягилев)
  • Утилита sdelete с ключом -z (Дмитрий Кирушев)
  • Руководство по сжатию виртуальных дисков в VirtualBox на англ. (Александр Белоглинцев)

Какой тип диска вы используете для экспериментальных ВМ?

  • Динамически расширяемый
    (59%, голосов: 177)
  • Не пользуюсь ВМ / Другое (17%, голосов: 52)
  • Фиксированный, и поменьше (15%, голосов: 46)
  • Фиксированный, и побольше (6%, голосов: 18)
  • Не знаю (2%, голосов: 5)

Проголосовало: 298 [архив опросов]

 Загрузка …

Конвертация, изменения размеров и оптимизация VHD и VHDX файлов с помощью PowerShell

В этой небольшой статье я покажу, как можно использовать PowerShell для сжатия и оптимизации VHD и VHDX файлов виртуальных машин. Все примеры будут выполнятся на компьютере с Windows 10 с установленной ролью Hyper-V.

Полный список командлетов PowerShell для работы с VHD файлами можно вывести так:

Get-Command -Noun VHD* -Module Hyper-V

Командлет Convert-VHD используется для смены формата виртуального диска (с VHD на VHDX и обратно), типа диска (фиксированный, динамический или разностный) и размера блока файла.

Следующая команда запустит процесс преобразования VHD файла в формат VHDX

Convert-VHD -Path 'D:\Hyper-V\Virtual Hard Disks\nano2.vhd' -DestinationPath 'D:\Hyper-V\Virtual Hard Disks\nano2.vhdx'

У командлета Convert-VHD есть несколько полезных ключей. Например,

BlockSizeBytes используется для изменения размера блока, DeleteSource для удаления исходного файла после окончания конвертации, и VHDType для указания типа виртуального диска (фиксированный, динамический или разностный).

Следует помнить, что процесс конвертации выполняется в офлайн режиме (виртуальная машина, использующая данный диск должна быть выключена).

Командлет Optimize-VHD используется для оптимизации места на диске, используемого файлом динамического виртуального жесткого диска. При запуске этого командлета выполняется сжатие VHD файла.

Optimize-VHD -Path 'D:\Hyper-V\Virtual Hard Disks\srv1e.vhd'

Согласно справке, командлет не только высвобождает неиспользуемые блоки, но и перестраивает блоки для более эффективного использования дискового пространства, что также уменьшает размер VHD/VHDX файлов.

В том случае, если оптимизация не требуется, команда может завершиться без изменения размера файла на диске. Параметр Mode можно использовать для изменения режима сжатия (по умолчанию используется режим Full для VHD файлов и Quick для VHDX дисков).

Командлет Resize-VHD используется для сжатия VHDX файлов или увеличения размеров дисков VHD и VHDX. Операция уменьшения размера не будет выполнена, если указан размер, меньший значения параметра MinimumSize.

Get-VHD -Path 'D:\Hyper-V\Virtual Hard Disks\srv1e.vhd'

Ключ ToMinimumSize можно использовать для автоматического уменьшения размера VHDX диска до минимально допустимого значения.

Resize-VHD -Path 'D:\Hyper-V\Virtual Hard Disks\srv1.vhdx' -ToMinimumSize

NTFS-сжатие виртуальных дисков PC (на хосте и / или ГОСТе)



Я надеюсь, что кто-то здесь сможет ответить на эти вопросы окончательно:

  • Улучшает ли размещение файла VHD в сжатой папке NTFS на хосте производительность виртуальной машины, снижает ли производительность или нет?
  • Как насчет использования сжатия NTFS внутри гостя?
  • Приводит ли использование Compression на хосте или госте к каким-либо проблемам, таким как ошибки чтения или записи?
  • Если бы я поместил VHD в сжатую папку на хосте, выиграл бы я от ее сжатия?

Я видел ссылки на использование сжатия NTFS в довольно многих сообщениях блога VPC «tips and tricks», и кажется, что половина из них говорит, что никогда этого не делать, а другая половина говорит, что это не только экономит дисковое пространство, но и действительно может повысить производительность, если у вас есть быстрый CPU и Ваше основное узкое место в производительности-это диск.

compression virtual-pc vhd
Поделиться Источник nlawalker     15 апреля 2010 в 04:21

2 ответа




2

Вы не увидите ошибок на диске, но вы можете увидеть замедление с течением времени или во время интенсивной записи диска с помощью VM. Причина, по которой вы не будете сжимать VM на месте, та же, по которой вы не будете сжимать базу данных на месте: виртуальный диск-это блочное устройство, и VM обращается к нему с помощью смещения блоков. Он предполагает, что все блоки имеют одинаковый размер. Если они сжаты, это уже не так. Файловая система хоста должна выполнить перевод между предполагаемым местоположением блока и реальным (сжатым) местоположением блока. Это было бы довольно тривиальными накладными расходами, если бы вещь была доступна только для чтения, но блоки меняются, как и их сжимаемость. Переписывание сжатого блока может означать, что он не соответствует тому, где он был.

Хост FS должен будет переместить его, что является дополнительным шагом и фрагментирует виртуальный диск.

Конечно, всегда существует фрагментация, когда ваш VM записывает в новые местоположения, которые еще не имеют физического местоположения. Вы можете победить это только с помощью (несжатых) полноразмерных виртуальных дисков (полных пустых заполнений, т. Е. Без автоматического роста) и дефрагментации как хоста, так и гостя.

В твердотельном хранилище фрагментация не имеет значения, а сжатие поможет сократить время записи, что продлит срок службы вашего диска. Но вы все еще застряли с CPU и накладными расходами памяти при переводе блоков.

Также имейте в виду, что ваш контроллер диска может выполнять дедупликацию и / или сжатие данных, поэтому ваши усилия на уровне OS могут быть избыточными.

Для VMs, которые в основном читают, сжатие может оказаться полезным. К сожалению, современные OSs делают так много домашнего хозяйства, ведения журнала и самообновления, что они постоянно пишут, но вы можете ограничить эту деятельность моментальным снимком.

Поэтому сожмите базовое изображение на месте, но не снимки. Производительность записи не будет затронута. Предостережение: моментальные снимки могут легко вырасти до размера исходного диска. Вам все равно придется часто объединять или удалять их, поэтому поместите их так, чтобы вы могли их видеть.

Вывод: будьте проще.

Поделиться Ant Evans     21 августа 2012 в 09:17



1

Все дело в компромиссах. Диску требуется определенное количество времени, чтобы прочитать определенное количество байтов. Если вы можете сжать данные таким образом, чтобы сумма уменьшенного времени, которое требуется диску для их чтения, в сочетании с временем, которое требуется CPU для их распаковки, была меньше, чем потребовалось для чтения несжатых данных с диска, то вы выиграете perf.

Проблема в том, что в этом так много переменных, и, скорее всего, в любом случае все будет хорошо. Ваш диск может читать небольшие блоки медленнее, или ваши данные не могут быть очень сжимаемыми, или ваш CPU может быть очень быстрым, или (и так далее, и так далее). Единственный способ узнать, имеет ли это значение, — это попробовать и измерить его. Ответы, которые вы получите для разных данных/машин, скорее всего, будут разными.

Поделиться Stewart     15 апреля 2010 в 05:38


Похожие вопросы:


VMWare игрок-выполнение команды на госте от хоста

Я запускаю сервер linux на VMWare плеере. Операционная система хоста-Windows7. Можно ли выполнить команду из командной строки (на хосте), которая будет выполняться на госте?


Virtual PC ( XPMode) — как получить доступ к Webserver на госте с хоста

У меня есть Windows XP, работающий внутри Windows 7 через Virtual PC (XPMode) и установленный Zend Server CE на виртуальном ГОСТе XP. webserver работает и может быть доступен на ГОСТе, но я не могу. ..


Сжатие папки с помощью сжатия NTFS в .NET

Я хочу сжать папку с помощью сжатия NTFS в .NET. Я нашел этот пост , но он не работает. Он выдает исключение (недопустимый параметр). DirectoryInfo directoryInfo = new DirectoryInfo( destinationDir…


Почему приложение .NET 4.0 WPF должно иметь гораздо лучшую производительность пользовательского интерфейса на VMWare ГОСТе, чем на хосте?

При тестировании нашего приложения C#/.NET4.0/WPF на свежем Win 7 Enterprise x64 в гостевой рабочей станции VMWare 7.1.2, настроенной на 2 ГБ RAM, время запуска и производительность UI были намного…


XNA игровая сеть на хосте PC и виртуальная

Я относительно новичок в c# и XNA, но с помощью нескольких учебников и книг мне удалось создать простую игру. Проблема в том, что у меня есть только один компьютер, и я хочу проверить сетевые…


Импорт модулей Python на Linux из общего ресурса NTFS

Моя проблема заключается в разнице в том, как Python ищет модули на Windows/Linux. У меня есть каталог foo на машине Windows 7 (NTFS), который я mount в виртуальном ГОСТе Ubuntu 10.04, работающем на…


Delphi-перечисление дисков и других дисков на Windows PC

Возможный Дубликат : Получите информацию о диске (свободное место и т. д.) для дисков на Windows и заполните поле памятки Я совершенно новичок в программировании (особенно Delphi) и не смог найти…


Перечисление отключенных сетевых дисков — NTFS форматов дисков

Я наткнулся на эту замечательную статью, которая решает проблему перечисления отключенных дисков в C#: Подключенные сетевые диски не могут быть перечислены в C# Проблема в том, что кажется, что этот…


Идентификация хоста из vmware

Я знаю программное обеспечение, которое может идентифицировать меня как хост, даже когда оно работает внутри виртуальной машины (используя vmware под управлением Windows 7 x64, хост-это Windows 10…


Как получить список всех подключенных виртуальных дисков в Windows?

Есть ли способ получить список всех виртуальных дисков, подключенных к машине Windows? Я имею в виду все пути к VHD/VHDX, смонтированные диспетчером дисков. Существует недокументированная функция…

Оперативная настройка размера виртуального жесткого диска Hyper-V Server

1. Технический обзор:

Начиная с Windows Server 2012 R2, администраторы могут использовать Hyper-V для увеличения или уменьшения размера виртуальных жестких дисков во время работы виртуальных машин. Администраторы хранилищ могут избежать дорогостоящих простоев, выполняя операции обслуживания работающих виртуальных жестких дисков. Больше нет необходимости выключать виртуальные машины, что позволяет избежать прерывания работы пользователей, обращающихся к этим виртуальным машинам, и помогает снизить затраты на обслуживание. До запуска Windows Server 2012 R2, если виртуальная машина была подключена к сети или виртуальный жесткий диск уже использовался, виртуальный жесткий диск нельзя было поддерживать без временного выключения виртуальной машины.

2. Технические требования:

Когда администратор использует онлайн-настройку размера виртуального жесткого диска, требуются следующие функции:

1) Сервер, на котором может работать Hyper-V. Сервер должен иметь процессор, поддерживающий аппаратную виртуализацию. Должна быть установлена ​​роль Hyper-V.

2) Учетная запись пользователя, которая является членом локальной группы администраторов Hyper-V или группы администраторов.

3) VHDX-Функция расширения и сжатия виртуального жесткого диска может быть выполнена только на виртуальном жестком диске с использованием формата файла .vhdx. Типы дисков VHDX (включая фиксированный диск, дифференциальный диск и динамический диск) поддерживают изменение размера в оперативном режиме. Операция изменения размера не поддерживает виртуальные жесткие диски, использующие формат файла .vhd.

4) SCSI Контроллер-Функция расширения или сжатия виртуального жесткого диска может быть выполнена только для файла .vhdx, прикрепленного к контроллеру SCSI. Файлы VHDX, прикрепленные к контроллерам IDE, не поддерживаются.

Демонстрация настройки конфигурации размера виртуального жесткого диска онлайн. Текущая конфигурация виртуального диска виртуальной машины «BJ-AP-01» составляет 100 ГБ, вот онлайн-настройка до 150 ГБ.

а) Выберите виртуальную машину, виртуальный жесткий диск которой вы хотите расширить;

б) Щелкните жесткий диск, выберите файл VHD, который используется в данный момент, и нажмите «Изменить»;

c) Найдите страницу жесткого диска виртуальной машины, прочтите соответствующую предупреждающую информацию и нажмите Далее.

г) Выберите страницу операции, в это время вы можете выбрать сжатие и расширение, здесь выберите «развернуть»;

Если виртуальная машина выключена, вы также можете выбрать преобразование виртуального диска в это время, например преобразование файлов VHD в файлы VHDX.

e) На странице «Расширить виртуальный диск» введите новый размер виртуального жесткого диска. Размер указан в ГБ, а максимальный размер любого виртуального жесткого диска составляет 64 ТБ;

f) Нажмите «Готово» на странице «Завершение работы мастера редактирования виртуального жесткого диска»;

g) Введите учетные данные и войдите в виртуальную машину расширенного виртуального жесткого диска;

з) Откройте «Управление дисками»;

i) Щелкните правой кнопкой мыши диск C и выберите «Расширить том»;

j) Разверните страницу мастера тома, выберите неиспользуемый том

k) Нажмите «Готово» на странице «Завершение увеличения объема».

Сжать размер виртуального жесткого диска:

Возможность расширять или сжимать емкость виртуального диска во время работы виртуальной машины позволяет клиентам получить большую гибкость и снизить вероятность простоя нагрузки из-за изменения требований к емкости. Такая функция не только обеспечивает большую гибкость для виртуальных машин, которым требуется больше места для хранения данных, но также позволяет ИТ-администраторам освобождать пространство, которое было выделено виртуальным машинам, но больше не используется. Это особенно важно для поставщиков услуг или хостинговых сред.Клиенты могли приобрести виртуальную машину на 100 ГБ, но использовали только 30 ГБ, надеясь уменьшить емкость диска до 50 ГБ для снижения затрат. Теперь этот вид операций можно выполнять в режиме онлайн без отключения нагрузки.

Администратор может сначала сжать емкость тома в гостевой операционной системе, а затем использовать инструмент управления Hyper-V или PowerShell для сжатия виртуального диска. Сжимаемая емкость виртуального диска равна сжатой емкости тома виртуальной машины. Обратите внимание, что сжатие возможно только на VHDX.

Онлайн-сжатие размера виртуального жесткого диска здесь больше не демонстрируется.

Эта статья перенесена из блога Xu Ting 51CTO, исходная ссылка: http://blog.51cto.com/ericxuting/1588909, Пожалуйста, свяжитесь с первоначальным автором, если вам нужно перепечатать

Как увеличить размер диска / пространство виртуальной машины Hyper-V?

В этой статье рассказывается, как увеличить размер диска виртуальной машины Hyper-V без потери данных, а также 2 способа увеличения дискового пространства vm с помощью Hyper-V Manager и PowerShell.

Относится к: Windows 10, Windows 8, Windows 7, Windows Server 2019, Windows Server 2016, Windows Server 2012 (R2), Windows Server 2008 (R2), Windows Server 2003 (R2).

По сравнению с физическим сервером и персональными компьютерами, виртуальная машина имеет много преимуществ, например: гораздо дешевле построить несколько серверов с 1 копией оборудования, легко добавлять, редактировать и удалять компоненты. Когда физический жесткий диск заполняется, копирование или восстановление на другой большой диск занимает много времени, но на виртуальный жесткий диск вы можете расширить его, не теряя данных быстро и легко. Эта статья представляет подробные шаги для увеличить размер диска / пространство для Hyper-V виртуальная машина с 2 нативными утилитами.

Как увеличить размер виртуального диска с помощью Hyper-V Manager

Менеджер Hyper-V может помочь вам сжать, преобразовать, сжать и расширить виртуальный диск. Лучше, чем другой инструмент, он может динамически увеличивать размер диска VM без выключения или перезагрузки гостевая виртуальная машина. Это полезно для виртуального сервера.

Действия по увеличению размера / пространства виртуального диска с помощью диспетчера Hyper-V (для VHD и VHDX):

Шаг 1: Откройте диспетчер Hyper-V, нажмите Редактировать диск in Действия панель сверху справа.

Шаг 2: Нажмите Далее во всплывающем окне Мастер редактирования виртуального жесткого диска окно.

Шаг 3: Нажмите Приложения на вершине, чтобы найти свой VHD / VHDX виртуальный диск, а затем нажмите Далее, Обратите внимание на предупреждение.

Шаг 4: Выберите Расширять вариант и нажмите Далее.

Шаг 5: Введите количество нового размера диска и затем нажмите Далее.

Шаг 6: Просмотрите операцию расширения и нажмите Завершить продолжать.

Вскоре оригинальный виртуальный жесткий диск будет увеличен, а дополнительное дисковое пространство будет показано как Нераспределенный в конце.

Если вы продолжаете Windows Управление дисками, Диспетчер серверов Службы хранения или NIUBI Partition Editor работает при расширении виртуального диска, вам нужно нажать обновление загрузить последние параметры раздела диска. В некоторых Windows версии, вам нужно заново открыть Управление дисками.

Как увеличить размер виртуального диска в Hyper-V с помощью PowerShell

Если вы считаете, что с помощью Hyper-V Manager сложно увеличить пространство на диске, есть более простой способ с PowerShell. Однако, прежде чем сделать это, вы должны закрывать Гостевая виртуальная машина Hyper-V и удалять Контрольные точки, связанные с диском, который вы хотите увеличить размер.

Чтобы увеличить размер виртуального диска Hyper-V с помощью PowerShell:

  1. Откройте PowerShell с правами администратора на панели быстрого запуска, в меню Пуск или в другом месте.
  2. Тип Resize-VHD -Path ‘D: \ vm.vhdx’ -SizeBytes 500 ГБ

Примечание:

  1. D: \ vm.vhdx означает абсолютный путь и имя виртуального диска с кавычками.
  2. 500 ГБ означает увеличение объема жесткого диска до 500 ГБ, а не добавление 500 ГБ.

Как увеличить размер виртуального раздела после расширения диска

После получения дополнительного нераспределенного пространства в конце, как добавить его в другие разделы? Вам нужно стороннее программное обеспечение для разделов диска, такое как NIUBI Partition Editor, который является самым безопасным и быстрым Windows менеджер разделов

Скачать NIUBI Partition Editor и следуйте инструкциям в видео:

Примечание: Существует потенциальный риск повреждения системы и потери данных при перемещении и изменении размера раздела, поэтому вам лучше создать контрольную точку или сначала сделать независимое резервное копирование. Лучше, чем другие инструменты, NIUBI Partition Editor имеет инновационные технологии Виртуальный режим, Отмена при скважине и откат в 1 секунду для защиты системы и данных Это намного быстрее из-за продвинутого алгоритма перемещения файла. Это также помогает выполнять многие другие операции по управлению дисками и разделами.

Как преобразовать физические машины в виртуальные с помощью Disk2VHDD

Как превратить физический сервер в ВМ на платформе Hyper-V

Уверен, вы уже не раз слышали про виртуализацию. И еще я уверен, что, где бы вы ни работали, вы хотели бы использовать преимущества виртуальной среды. Если вы ищете инструкцию, как превратить свой физический сервер в виртуальную машину на платформе Hyper-V (P2V), просто прочитайте эту статью: я расскажу, как выполнить эту операцию всего за несколько минут!

Для преобразования можно использовать один из нескольких конвертеров. Я расскажу о самом простом и удобном способе создания ВМ для платформы Hyper-V. Для этого вам потребуется установленный и работающий сервер Hyper-V, на котором можно развернуть ВМ. Если вы еще не установили сервер, прочитайте сначала это руководство.

Когда не стоит выполнять преобразование?

Я не рекомендую виртуализовать физический сервер, если он используется как контроллер домена. Вместо этого вам необходимо создать новую ВМ, назначить ее контроллером домена, синхронизировать с основным контроллером, а затем передать ей роль FSMO. На эту тему есть много полезных статей.

Можно также выполнить преобразование с учетом транзакций — этот вариант следует использовать, если на машине работает SQL Server, Exchange, SharePoint и тому подобные приложения. Лучше всего выбрать время для запланированного выключения соответствующего сервера, остановить работу указанных выше служб перед началом преобразования и/или отключить сетевой адаптер.

Никаких других ограничений для преобразования сервера нет. Можно приступать!

Руководство по преобразованию P2V с помощью Disk2VHD

Из всех конвертеров P2V для Hyper-V самым удобным для этой операции мне представляется Disk2VHD. Он создан инженерами Microsoft, имеет размер всего 0,9 МБ, и скачать его можно с официальной страницы Windows Sysinternals. К делу!

Шаг 1. Скачайте программу Disk2vhd

Перейдите на страницу Windows Sysinternals и скачайте программу.

Программа Disk2vhd v2.01.

Шаг 2. Запустите Disk2vhd на физическом сервере, который необходимо преобразовать

Просто распакуйте ее и запустите на сервере. Как показано на рисунке, интерфейс программы очень простой. Чтобы создать диск VHDX, поставьте флажок Use Vhdx (Использовать Vhdx).

ПРИМЕЧАНИЕ. VHDX — это формат диска, появившийся в Windows Server 2012. По сравнению с традиционным VHD, в VHDX был внесен ряд изменений: появился специальный внутренний журнал, снижающий вероятность повреждения данных, увеличилась емкость (до 64 ТБ), добавлены некоторые другие функции. Я рекомендую по возможности использовать формат VHDX.

Выберите Use VSS (Использовать VSS), если вы хотите получить копию диска, согласованную на уровне транзакций, а не сбоев. Выберите место, где будет находиться файл VHDX (если оно будет расположено на том же диске, возможно «поглощение», поэтому для хранения образа лучше использовать другой жесткий диск). Выберите любой диск/том, который нужно виртуализовать. Если вы хотите сделать этот диск загрузочным, необходимо включить туда системный диск и область загрузки (поставьте флажок System Reserved (Зарезервировано системой)). Нажмите Create (Создать), чтобы начать преобразование.

Запустите Disk2vhd на физическом сервере, который необходимо преобразовать.

Шаг 3. Преобразуйте диск(и) в формат VHDX и скопируйте на хост Hyper-V

Во время этой операции вы увидите примерное время, оставшееся до ее завершения.

Преобразуйте диск(и) в формат VHDX и скопируйте на хост Hyper-V.

После ее завершения вы получите файл/диск VHDX, который можно скопировать на сервер Hyper-V и поместить в папку, где находятся диски ВМ.

Преобразуйте диск(и) в формат VHDX и скопируйте на хост Hyper-V.

Шаг 4. Создайте новую ВМ на хосте Hyper-V

Чтобы использовать созданный диск, необходимо создать ВМ. Запустите мастер (New → Virtual Machine (Создать → Виртуальная машина)) в Менеджере Hyper-V и настройте ее в соответствии со своими требованиями. Параметры настройки очень просты, за исключением выбора поколения ВМ (появился только в Windows Server 2012 R2).

Создайте новую ВМ на хосте Hyper-V.

ПРИМЕЧАНИЕ. Необходимо внимательно подойти к выбору поколения ВМ. Начиная с Windows 2012 R2, в Hyper-V появился новый параметр:
Generation 2 virtual machine (Виртуальная машина 2 поколения). Речь идет о втором поколении встроенного ПО для ВМ с обновленным набором виртуального аппаратного обеспечения и новыми возможностями для пользователей, такими как загрузка с устройства, подключенного по iSCSI.   Но ВМ 2 поколения имеют существенные ограничения, например, они поддерживают гостевые ОС, только начиная с Windows 8, а семейство Unix не поддерживают совсем. Таким образом, на практике этот вариант следует выбирать только для Windows 8/8.1 или Windows Server 2012/2012 R2 и только для 64-разрядных версий.

Поэтому к выбору поколения ВМ нужно отнестись внимательно, и если вы не уверены на 100%, что вам необходимо Поколение 2, выбирайте поколение 1.

Создайте новую ВМ на хосте Hyper-V.

Шаг 5. Подключите созданный диск

Дойдя до шага Connect Virtual Hard Disk (Подключение виртуального жесткого диска), необходимо настроить виртуальный жесткий диск. Найдите уже созданный диск и выполните оставшиеся действия с помощью мастера.

Подключите виртуальный жесткий диск.

Шаг 6. Запустите ВМ и приступайте к работе

Щелкните правой кнопкой мыши на ВМ, выберите Run (Запустить), затем еще раз щелкните правой кнопкой и подключитесь к ней.

Запустите ВМ.

Загрузка ВМ может занять некоторое время, поскольку конфигурация аппаратного обеспечения будет отличаться. Но через несколько минут вы увидите экран приветствия и сможете войти в систему. Готово!

Запустите ВМ.

Вот и все!
Наслаждайтесь преимуществами своих ВМ и не забудьте их защитить, используя бэкап виртуальной инфраструктуры с помощью Veeam!

Также вас могут заинтересовать:

Почему следует сжимать виртуальные диски Hyper-V

Динамически расширяемые виртуальные жесткие диски (VHD / VHDX)

Hyper-V предоставляют множество преимуществ. Я подозреваю, что большинство из нас использует их для эффективного использования физического хранилища. Однако их удобство требует затрат на обслуживание. Они растут по мере необходимости, но они никогда не освободят место, если вы не вмешаетесь вручную (это может быть написано сценарием, если вы того пожелаете). В этой статье мы расскажем о причинах, предпосылках и действиях, необходимых для освобождения неиспользуемого пространства на динамически расширяемых дисках VHDX.

«Компактные» или «усадочные» виртуальные жесткие диски Hyper-V?

Иногда определения «компактный» и «сжатый» пересекаются, когда говорят о VHDX. Они не означают одно и то же, и для их достижения вы используете совершенно разные операции.

Каждый тип виртуального жесткого диска (фиксированный, динамически расширяемый и разностный) имеет фиксированный верхний предел размера. «Сжатие» VHDX снижает этот предел. Любой из типов можно уменьшить. «Уплотнение» никак не меняет верхний предел.Вместо этого он уменьшает физическое дисковое пространство, используемое динамически расширяющимся или разностным VHDX, путем удаления пустых блоков. Я объясню, что означает «блок» для этих VHDX в следующем разделе. Вы можете выполнить компактную операцию для любого из типов, но она никогда не повлияет на фиксированный VHDX (экраны графического интерфейса не позволят вам даже попробовать). Дополнительные сведения о процессе усадки см. В нашей предыдущей статье по этой проблеме.

Что означает «компактность» для виртуальных жестких дисков Hyper-V

Функция динамического расширения VHDX — это простой процесс.При создании каждый из них имеет определенный, постоянно установленный «размер блока». Когда гостевая операционная система или какое-либо внешнее действие пытается записать информацию в VHDX, драйвер VHDX сначала проверяет, содержит ли файл достаточно места в невостребованных блоках для этих данных. Если да, то запись продолжается. В противном случае драйвер VHDX расширяет физический файл на минимальное количество блоков, необходимых для записи.

Однако, когда процесс удаляет файл (или использует какой-либо другой метод для очистки данных), драйвер VHDX ничего не делает с блоком.Что наиболее важно, он не удаляет автоматически пустые блоки из файла. Я читал по этому поводу довольно много жалоб, но в них нет оснований. Поддерживать такую ​​вещь было бы опасно по своей природе и непомерно дорого с точки зрения операций ввода-вывода в секунду.

Вместо этого мы вручную запускаем процесс compact . Система сканирует область данных VHDX в поисках полностью пустых блоков. Когда он его находит, он удаляет его из файла. Я не знаю точного механизма, который он использует, но подозреваю, что он просто находит следующий использованный блок и сдвигает его назад, в конечном итоге отсекая конец файла.

Почему я должен сжимать виртуальные жесткие диски Hyper-V?

Физические системы редко используют все свое дисковое пространство. То же самое можно сказать и о виртуальных системах. В этом заключается основная причина использования динамически расширяемых виртуальных жестких дисков. Мне особенно они нравятся для VHDX, которые содержат операционные системы, когда вы будете размещать данные на разных VHDX. У меня есть несколько VHDX, возраст которых приближается к пяти годам, максимальный объем которых составляет 60 ГБ, но при этом используется только около 25 ГБ на диске. Со многими виртуальными дисками VHDX с ОС это быстро увеличивает объем сохраненного хранилища.Однако это только один пример; Я обычно использую динамически расширяемый VHDX в любом случае, когда я знаю, что это не вызовет проблем (системы баз данных с большим оттоком будут для них плохим использованием).

Однако иногда происходят операции, которые занимают чрезмерно много места на диске. Иногда пространство просто используется, и с этим ничего не поделать. В других случаях использование носит временный характер. Например, вы можете скопировать несколько файлов ISO на диск C: гостя, чтобы выполнить локальную установку программного обеспечения.Если вы выполняете обновление операционной системы на месте, они сделают копию существующей установки, чтобы вы могли выполнить откат. Система может начать жизнь с слишком большого файла подкачки, который позже вы переместите на другой VHDX, оставив после себя гигабайты неиспользуемого пространства. Я всегда сжимаю VHDX-файлы с помощью подготовленных к работе операционных систем, которые я буду использовать в качестве шаблонов.

Почему я должен

НЕ Compact Hyper-V виртуальных жестких дисков?

«Преждевременная оптимизация — корень всех зол.»- Дональд Кнут

Я часто жалуюсь на администраторов, которые произвольно предполагают, что их потребности в производительности дисков будут настолько велики, что все, кроме фиксированного (или, например, сквозного), неприемлемо. С другой стороны, некоторые администраторы были взволнованы, когда их VHDX потребляли даже на несколько гигабайт сверх установленного минимума. Большинство динамически расширяемых VHDX в конечном итоге обнаруживают какое-то «нормальное состояние», в котором они могут повторно использовать пространство удаленных данных (пример: обновления Windows).

Я не могу дать вам точного описания того, когда компактная операция становится жизнеспособной, но не используйте ее, чтобы выжать все до последней капли места из вашей системы. В конце концов, вы так или иначе проиграете эту битву. Не сжимайте незначительные выгоды. Не сжимайте диски VHDX, которые никогда не найдут приемлемого устойчивого состояния (например, файловые серверы). Не уплотняйте в рамках планового цикла технического обслуживания. Если вы настроили автоматический сценарий, потому что ваши системы постоянно приближаются к жестким ограничениям вашего хранилища, потратьте деньги на расширение хранилища.Уплотнение требует простоев и износа оборудования, поэтому это не бесплатно.

Как использовать PowerShell для сжатия VHDX?

Вы можете сжать, используя инструменты графического интерфейса, но PowerShell предоставляет полный метод. Запомните две вещи:

  • Невозможно сжать VHDX, подключенный к работающей виртуальной машине.
  • В компьютерной системе, которая запускает командлет Optimize-VHD , должна быть установлена ​​полная роль Hyper-V. Сам по себе модуль PowerShell не содержит необходимых системных служб.Если вы должны запустить компактную операцию в системе, в которой нет Hyper-V, вы можете вместо этого использовать diskpart.

Процесс сосредоточен вокруг командлета Optimize-VHD. Как правило, для достижения наилучших результатов вам нужно подключить VHDX к операционной системе управления. Например:

 Mount-VHD .dyndisk.vhdx -ReadOnly
Optimize-VHD .dyndisk.vhdx -Mode Full
Dismount-VHD .dyndisk.vhdx 

Имейте в виду, что даже для очень маленьких файлов это может занять некоторое время.Количество времени в основном зависит от доступного вам цикла ЦП и скорости вашей дисковой подсистемы.

Инструмент PowerShell для сжатия файлов VHDX

Вы можете легко преобразовать указанные выше три строки в утилиту многократного использования:

 функция Compact-VHD
{
<#
.СИНОПСИС
Полностью оптимизирует файл Hyper-V VHD / X.

.ОПИСАНИЕ
Монтирует целевой файл VHD / X как доступный только для чтения, выполняет полную оптимизацию, а затем отключает его.

.ПРИМЕЧАНИЯ
v1.0 28 января 2018 г.
(c) 2018 Эрик Сирон
#>
#requires -Модуль Hyper-V
[CmdletBinding ()]
парам (
[Параметр (обязательный = $ true, ValueFromPipeline = $ true)] [String] $ Path,
[Параметр ()] [Microsoft.Vhd.PowerShell.VhdCompactMode] $ Mode = [Microsoft.Vhd.PowerShell.VhdCompactMode] :: Full
)
пытаться
 {
$ Path = (Resolve-Path -Path $ Path -ErrorAction Stop). Путь
if ($ Path -notmatch '.a? vhdx? $') {бросить}
}
поймать
 {
throw ('{0} не является допустимым файлом VHDX.' -f $ Path)
}
Mount-VHD -Path $ Path -ReadOnly -ErrorAction Stop
Optimize-VHD -Path $ Path -Mode $ Mode -ErrorAction Продолжить
Dismount-VHD -Path $ Path
} 

Вы можете использовать точечный источник или добавить его в свой профиль PowerShell, чтобы использовать его в любое время.

Что означают различные режимы VHDX Compact?

Если вы прочтете справку или вкладку с параметрами для параметра -Full, вы увидите несколько вариантов.Мне кажется, что встроенная справка описывает это достаточно хорошо, но многие люди запутались в терминах с похожими значениями. Немного ясности:

  • Пустой блок означает непрерывную длину пространства внутри VHDX, которое его заголовок обозначил как блок и содержит все нули. Единственная 1 в любом месте всего блока означает, что драйвер VHDX будет рассматривать его как использованный.
  • Неиспользуемый блок может иметь несколько единиц, но файловая система гостевой операционной системы пометила пространство как неиспользуемое.Это обычное явление после удаления файла; Некоторые операционные системы фактически удаляют биты с диска. Они просто помечают его как неиспользуемый в своей таблице (ах) файлов. Два момента по этому поводу:
    • В настоящее время драйвер VHDX наиболее надежно работает с файловой системой NTFS. На ReFS пока не тестировал. Он не распознает файловые системы Linux. Чтобы система могла наилучшим образом обнаруживать неиспользуемые блоки, VHDX должен быть установлен в режиме только для чтения.
    • Драйвер VHDX также распознает команды Trim и Unmap.Это позволяет ему работать с вашим оборудованием, чтобы определить, какие блоки не используются.

Надеюсь, это поможет сгладить объяснения режимов:

  • Полная : Полная оптимизация требует больше всего времени и ресурсов. Он удалит как пустых , так и неиспользуемых блоков. Чтобы обнаружить неиспользуемые блоки, VHDX должен быть установлен в режиме только для чтения. Если VHDX не смонтирован, он не сможет найти пустых блоков так же легко (предположим, что он не найдет их вообще).
  • Quick : система ищет только неиспользуемых блоков , используя метаданные содержащейся файловой системы. Если сначала не смонтировать VHDX, ничего не изменится.
  • Pretrimmed : Использует информацию из команд обрезки / отмены отображения для обнаружения неиспользуемых блоков . Не ищет пустые блоки и не запрашивает неиспользуемые блоки в содержащейся файловой системе.
  • Предварительно обнулено : если драйвер VHDX перехватил нулевые записи для существующих блоков (например, из таких инструментов, как sdelete, то он уже записал в свои собственные таблицы, что они пусты.Используйте этот режим для удаления только этих блоков.
  • Retrim : Retrim считывает из метаданных файла VHDX блоки, помеченные как пустые, и сообщает о них как о командах обрезки или отмены сопоставления базовому оборудованию.

Только в полном режиме выполняется поиск пустых блоков в файле. Остальные работают только с метаданными VHDX и / или гостевой файловой системы.

Как использовать диспетчер Hyper-V для сжатия VHDX?

Hyper-V Manager может сжать отключенный VHD / X или подключенный к выключенной виртуальной машине.Однако он не выполняет очень тщательную работу. Я не знаю, какой метод он использует, но вы очень быстро обнаружите, что это не эквивалент PowerShell «Полный». Какой бы метод он ни использовал, он не смонтирует VHDX автоматически.

Вы можете получить доступ к функции Edit непосредственно на странице свойств диска виртуальной машины или перейдя по ссылке Edit Disk в главном интерфейсе. Используйте основной интерфейс для VHDX, у которых нет виртуальной машины.

Оба способа вызывают одного и того же мастера.

  1. На первом экране вы выбираете целевой файл VHDX. Если вы начали со страницы свойств виртуальной машины, строка Location будет заполнена и затенена.
  2. Далее мастер спросит, что вы хотите сделать с диском. Выберите Compact . Если параметр «Компактный» не отображается, виртуальная машина включена или вы выбрали фиксированный диск.
  3. Щелкните Finish на последнем экране. Вы увидите небольшое диалоговое окно, показывающее прогресс.

Можно ли сжать VHDX, у которого есть различающиеся дочерние элементы?

Система не помешает вам сжать VHDX, у которого есть дочерние элементы, если один из дочерних элементов не используется. Если вам удастся сжать родительский VHDX, вы нарушите родительско-дочерние отношения.

А как насчет VHDX, содержащих файловые системы сторонних производителей?

Полный режим обнаруживает полностью пустые блоки, но не может взаимодействовать с метаданными файловой системы сторонних разработчиков для поиска неиспользуемых блоков.Однако большинство современных файловых систем теперь поддерживают обрезку / отмену сопоставления. Если вы можете выполнить эту операцию в гостевой операционной системе, вы можете затем выполнить этап полной оптимизации, чтобы сжать VHDX. Я написал статью о сжатии VHDX с файловыми системами Linux, в которой есть дополнительная информация.

Почему компактная работа ничего или очень мало экономит?

Простой ответ — блоки не пустые. Если блок содержит единственный ненулевой бит, тогда должен быть сохранен весь блок. Вы не можете видеть блоки VHDX из гостевой системы.Если не считать какого-то сканера файлов, я не знаю другого способа просматривать блоки, кроме шестнадцатеричного редактора.

Несколько советов по очистке места:

  • Удалите как можно больше файлов
  • Очистить корзины гостя
  • Используйте утилиты, записывающие нули в свободное место
  • Используйте инструмент дефрагментации, который объединит свободное пространство

Если вы действительно застряли, вы можете использовать такие инструменты, как robocopy или rsync, чтобы переместить файлы на совершенно новый VHDX.

Какие размеры блоков допустимы для динамически расширяемого VHDX?

По умолчанию все VHDX-диски имеют размер блока 32 мегабайта. Вы можете изменить это только во время создания при использовании New-VHD. Установите желаемый параметр BlockSizeBytes . К сожалению, они не перечисляют возможные значения, поэтому это метод проб и ошибок. Я успешно попробовал размеры 1 МБ, 8 МБ, 16 МБ, 64 МБ и 256 МБ в дополнение к 32 МБ по умолчанию. 512 байт не удалось, как и 512 МБ.

Как найти размер блока динамически расширяющегося VHDX?

Только Get-VHD PowerShell может показать размер блока.

Какой размер блока мне использовать?

У вас есть базовый компромисс: небольшие размеры блоков приводят к большему количеству операций записи с меньшим количеством неиспользуемого пространства. Большие размеры блока приводят к меньшему количеству операций записи с потенциально большим неиспользуемым пространством.

При небольших размерах блоков вероятность того, что разбросанные небольшие файлы будут в результате VHDX с большим количеством почти, но не совсем пустых блоков, будет меньше. Для различных файловых систем ext *, имеющихся в Linux, размер блока в 1 МБ может значительно уменьшить размеры VHDX.Самым большим недостатком является то, что физический VHDX может сильно фрагментироваться. Опять же, вы не можете. Это зависит от того, как происходит запись. Редкие небольшие записи приведут к еще большей фрагментации. Если вы используете надежное современное хранилище, фрагментация обычно не является серьезной проблемой.

Большие блоки мало что могут предложить. Если бы вы хранили редко используемую архивную базу данных на динамически расширяемом VHDX с размерами блоков, которые соответствуют размеру единицы размещения вашей гостевой ОС, теоретически вы могли бы увидеть что-то улучшение.Хотя, наверное, нет.

Я рекомендую вам придерживаться размера блока по умолчанию 32 МБ для любого гостя, которое не использует файловую систему ext. Если помните, используйте для них блоки размером 1 МБ.

Optimize-VHD (Hyper-V) | Документы Microsoft

Оптимизирует распределение пространства, используемого файлами виртуального жесткого диска, за исключением фиксированных виртуальных жестких дисков.

В этой статье

Синтаксис

  Оптимизировать-VHD
        [-Path] 
        [-Mode ]
        [-AsJob]
        [-Пройти]
        [-CimSession ]
        [-ComputerName ]
        [-Credential ]
        [-Что если]
        [-Подтверждать]
        []  

Описание

Командлет Optimize-VHD оптимизирует выделение пространства в одном или нескольких файлах виртуального жесткого диска, за исключением фиксированных виртуальных жестких дисков.Операция Compact используется для оптимизации файлов. Эта операция восстанавливает неиспользуемые блоки, а также переупорядочивает блоки для более эффективной упаковки, что уменьшает размер файла виртуального жесткого диска.

Чтобы использовать Optimize-VHD, виртуальный жесткий диск не должен быть подключен или должен быть подключен в режиме только для чтения.

Компактная операция может быть успешной без уменьшения размера файла, если оптимизация невозможна.

Примеры

Пример 1

  PS C: \> Оптимизировать-VHD-Путь c: \ test \ dynamic.vhdx -Mode Full  

Выполняет компактную работу в полном режиме. (Если файл в формате VHDX не прикреплен как доступный только для чтения до операции, по умолчанию будет установлен режим с предварительным обнулением.)

Пример 2

  PS C: \> Optimize-VHD -Path c: \ test \ dynamic.vhdx -Mode Retrim  

Выполняет компактную операцию в режиме Retrim. (Если диск формата VHDX не смонтирован как доступный только для чтения до операции, выполнение командлета вернет ошибку.)

Пример 3

  PS C: \> Оптимизировать-VHD-Путь c: \ test \ dynamic.vhdx - режим Quick  

Выполняет компактную работу в быстром режиме. (Если файл в формате VHDX не прикреплен как доступный только для чтения до операции, по умолчанию используется режим предварительной обрезки.)

Параметры

-AsJob

Выполняет командлет в качестве фонового задания.

Ложный подстановочный знак 902
Тип: SwitchParameter
Позиция: Именованный
Значение по умолчанию: Нет
Принять ввод конвейера: Ложный

-CimSession

Запускает командлет в удаленном сеансе или на удаленном компьютере.Введите имя компьютера или объект сеанса, например выходные данные командлета New-CimSession или Get-CimSession. По умолчанию это текущий сеанс на локальном компьютере.

Ложь
Тип: CimSession []
Позиция: Именованный
Значение по умолчанию: Нет
Принять ввод конвейера: Ложный символ

-ComputerName

Задает один или несколько хостов Hyper-V, на которых должна быть оптимизирована виртуальная машина.Допускаются имена NetBIOS, IP-адреса и полностью определенные доменные имена. По умолчанию это локальный компьютер. Используйте localhost или точку (.), Чтобы явно указать локальный компьютер.

Тип: Строка []
Позиция: Именованный
Значение по умолчанию: Нет
Принять конвейерный ввод: Ложные символы подстановки: Ложные Ложь

-Подтвердить

Запрашивает подтверждение перед запуском командлета.

Тип: SwitchParameter
Псевдонимы: cf
Позиция: Именованный
Значение по умолчанию: Ложь 902 902 Ложный 902 902 Принимать подстановочные знаки: Ложь

-Credential

Задает одну или несколько учетных записей пользователей, у которых есть разрешение на выполнение этого действия.По умолчанию это текущий пользователь.

Тип: PSCredential []
Позиция: Именованный
Значение по умолчанию: Нет
Принять ввод конвейера: Ложный Ложь

— Режим

Определяет режим, в котором должен быть оптимизирован виртуальный жесткий диск. Для диска VHD режим по умолчанию — Full .Для диска VHDX режим по умолчанию — Quick . Допустимые режимы:

  • Полный сканирует нулевые блоки и восстанавливает неиспользуемые блоки. (Допустимо, только если виртуальный жесткий диск установлен только для чтения.)
  • Pretrimmed работает как режим Quick , но не требует монтирования виртуального жесткого диска только для чтения. Обнаружение неиспользуемого пространства менее эффективно, чем режим Quick (в котором виртуальный жесткий диск был смонтирован только для чтения), поскольку сканирование не может запросить информацию о свободном пространстве в файловой системе NTFS на виртуальном жестком диске.Полезно, когда файл формата VHDX использовался экземплярами операционной системы, которые относятся как минимум к Windows 8 или Windows Server 2012, или когда этот командлет уже был запущен для файла .vhdx в режиме Retrim .
  • Prezeroed работает как режим Quick , но не требует монтирования виртуального жесткого диска только для чтения. Обнаружение неиспользуемого пространства будет менее эффективным, чем если бы виртуальный жесткий диск был смонтирован только для чтения, поскольку сканирование не сможет запросить информацию о свободном пространстве в файловой системе NTFS на виртуальном жестком диске.Полезно, если ранее был запущен инструмент для обнуления всего свободного пространства на виртуальном диске, поскольку этот режим уплотнения может затем освободить это пространство для последующего выделения блоков. Эта форма сжатия также может быть полезна при работе с виртуальным жестким диском, содержащим файловые системы, отличные от NTFS.
  • Quick восстанавливает неиспользуемые блоки, но не выполняет поиск нулевых блоков. (Допустимо, только если виртуальный жесткий диск установлен только для чтения.)
  • Retrim отправляет ретриммы вниз без сканирования нулевых блоков или восстановления неиспользуемых блоков.(Допустимо, только если виртуальный жесткий диск установлен только для чтения.)
Тип: VhdCompactMode
Допустимые значения: Full, Quick, Retrimmed, Pretrimmed, Pretrimmed, Prezeroed
Position: Named Принять ввод конвейера: Ложно
Принимать подстановочные знаки: Ложно

-Passthru

Указывает, что объект должен быть передан конвейеру, представляющему виртуальный жесткий диск для оптимизации.

Ложный подстановочный знак 902
Тип: SwitchParameter
Позиция: Именованный
Значение по умолчанию: Нет
Принять ввод конвейера: Ложный

— путь

Задает один или несколько путей к файлам динамического или разностного виртуального жесткого диска, которые необходимо оптимизировать.

Тип: Строка []
Псевдонимы: FullName
Позиция: 0
Истинное значение: Нет Принять Принять 902
Принимать подстановочные знаки: Ложь

-WhatIf

Показывает, что произойдет, если командлет будет запущен.Командлет не запущен.

Тип: SwitchParameter
Псевдонимы: wi
Позиция: Именованный
Значение по умолчанию: False 902 902 902 902 Ложь 902 Принимать подстановочные знаки: Ложь

Выходы

Microsoft.Vhd.PowerShell.VirtualHardDisk

Изменение размера и оптимизация файла VHDX в Hyper-V

Существуют различные задачи, которые администратор Hyper-V может выполнять для обеспечения оптимальной работы среды Windows Server Hyper-V.Одна из задач, связанных с обслуживанием и оптимизацией среды Hyper-V, — убедиться, что сами виртуальные диски работают оптимально и имеют эффективный размер. В более поздних поколениях Hyper-V новый формат виртуального диска VHDX обеспечивает действительно отличные новые функции с этой точки зрения. Формат файла VHDX является усовершенствованием устаревшего формата файла виртуального диска VHD и включает мощные функциональные возможности и функции, которые позволяют виртуальным средам Hyper-V быть гораздо более эффективными, безошибочными и масштабируемыми, чем в предыдущих поколениях.

В этом посте мы рассмотрим оптимизацию и изменение размера диска Hyper-V VHDX, а также функции и возможности, полученные при использовании формата файла VHDX, включая возможности оптимизации.

Зачем нужен формат файла Hyper-V VHDX?

Для начала давайте сделаем шаг назад и посмотрим на основные функции, которые предоставляет VHDX, и на то, почему администраторы Hyper-V предпочли бы использовать новый формат файла VHDX, а не виртуальный диск VHD.

Формат файла виртуального диска VHDX был представлен в Windows Server 2012 и обеспечивает гораздо более мощный формат виртуального диска, который помогает решить некоторые ограничения масштабируемости и производительности, существующие с форматом файла VHD.

Каковы новые максимумы конфигурации для формата файла VHDX?

  • Поддерживает размер виртуального жесткого диска 64 ТБ
  • Улучшены механизмы регистрации в VHDX
  • Автоматическое выравнивание диска
  • Динамическое изменение размера
  • Совместное использование виртуального диска

Новые размеры дисков

Размер виртуального жесткого диска 64 ТБ открывает некоторые довольно интересные варианты использования. Однако для большинства не будет диска, который не попадает в границы этого нового размера диска, и большинство даже не приблизятся к этому максимуму новой конфигурации.Это также избавит от необходимости выполнять сквозное выделение хранилища, если это было необходимо по причинам размера.

Улучшенное ведение журнала

Благодаря улучшенным функциям ведения журнала, содержащимся в метаданных виртуального диска VHDX, виртуальный диск VHDX дополнительно защищен от повреждения, которое может произойти из-за непредвиденного сбоя или потери питания. Это также открывает возможность хранить собственные метаданные о файле. Пользователи могут захотеть записывать заметки о конкретном файле VHDX, например о содержащейся операционной системе или примененных исправлениях.

Автоматическое выравнивание дисков

Согласование формата виртуального жесткого диска с размером сектора диска обеспечивает повышение производительности. Файлы VHDX автоматически выравниваются по структуре физического диска. Файлы VHDX также используют большие размеры блоков как для динамического, так и для разностного форматов дисков. Это значительно улучшает производительность файлов VHDX динамического размера, делая незначительную разницу в производительности между фиксированными и динамическими. Параметр динамического изменения размера является предпочтительным при создании файлов VHDX.

Общий VHDX

В Windows Server 2012 появилась новая опция для совместного использования виртуальных жестких дисков VHDX между виртуальными машинами.

Зачем вы это делаете?

Гостевая кластеризация — это интересный вариант для запуска кластерной конфигурации Windows Server поверх физического кластера Hyper-V, чтобы обеспечить высокую доступность приложений поверх высокой доступности виртуальных машин. Если виртуальная машина выходит из строя, вы по-прежнему страдаете от простоя, необходимого для перезапуска виртуальной машины на другом узле Hyper-V.При запуске кластера внутри кластера Hyper-V, когда одна виртуальная машина выходит из строя, вторая виртуальная машина в кластере берет на себя роль обслуживания приложения. Общий VHDX позволяет использовать виртуальный диск VHDX в качестве общего диска кластера между узлами гостевого кластера.

Оптимизация файлов виртуального диска VHDX

Оптимизация файлов виртуального диска VHDX позволяет оптимизировать пространство в файле виртуального жесткого диска динамического размера. Это достигается с помощью командлета optimize-vhd .Операция Compact используется для оптимизации файлов. Эта опция восстанавливает неиспользуемые блоки и переупорядочивает блоки для более эффективной упаковки, что уменьшает общий размер файла виртуального жесткого диска VHDX.

Операция optimize-vhd может выполняться только с отключенным виртуальным жестким диском или подключенным в режиме только для чтения, если виртуальная машина работает.

Если диск не подключен должным образом для указанной операции или используется, вы увидите следующее:


Ошибка при попытке оптимизировать используемый файл VHDX

вариантов PowerShell, доступных с командлетом optimize-vhd :

  • Optimize-vhd -Path -Mode Full — Эта опция запускает компактную операцию в полном режиме, который сканирует нулевые блоки и восстанавливает неиспользуемые блоки.Это разрешено только в том случае, если виртуальный жесткий диск смонтирован в режиме только для чтения.
  • Optimize-vhd -Path -Mode Pretrimmed — Выполняет те же функции, что и в быстром режиме, но не требует монтирования жесткого диска в режиме только для чтения.
  • Optimize-vhd -Path -Mode Quick — виртуальный жесткий диск монтируется в режиме только для чтения и восстанавливает неиспользуемые блоки, но не выполняет поиск нулевых блоков.
  • Optimize-vhd -Path -Mode Retrim — отправляет ретрим без сканирования нулевых блоков или восстановления неиспользуемых блоков.
  • Optimize-vhd -Path -Mode Prezeroed — работает в быстром режиме, но не требует, чтобы виртуальный диск был доступен только для чтения. Обнаружение неиспользуемого пространства будет менее эффективным, чем сканирование только для чтения. Это полезно, если он был запущен для обнуления всего свободного пространства на виртуальном диске, поскольку этот режим затем может освободить пространство для последующего выделения блоков.

Изменение размера файлов виртуального диска Hyper-V VHDX

Начиная с Windows Server 2012 R2, вы не можете выполнять операцию изменения размера на виртуальном жестком диске работающей виртуальной машины в Hyper-V.Это было невозможно с предыдущими версиями Hyper-V, поскольку виртуальная машина должна была быть отключена. Новая функция называется с динамическим изменением размера , которая позволяет увеличивать и уменьшать размер файла во время работы виртуальных машин, что открывает множество возможностей для организаций выполнять операции по обслуживанию во время работы производственных виртуальных машин.

Каковы требования для изменения размера файлов VHDX?

  • Должен быть VHDX, это недоступно для файлов VHD
  • Должен быть подключен к контроллеру SCSI

Это можно сделать через графический интерфейс с помощью диспетчера Hyper-V или с помощью PowerShell.

Выберите опцию Edit для файла виртуального диска, а затем вы можете выбрать Expand, Shrink или Compact.


Выберите «Редактировать» виртуальный диск, чтобы развернуть или сжать файл VHDX.

В PowerShell вы запускаете командлет Resize-vhd для изменения размера. Вы можете легко просмотреть информацию о виртуальном жестком диске с помощью командлета get-vhd .


Использование командлета get-vhd для просмотра размера файла, размера и минимальных параметров виртуального диска

Ниже мы используем командлет resize-vhd , чтобы изменить размер файла до минимального.Вы можете увидеть, что размер файла действительно изменился, сравнив информацию, возвращенную приведенным выше командлетом, с информацией о размере файла, возвращенной ниже. Параметр минимального размера изменит размер VHDX до минимально возможного. Опять же, это можно сделать, когда виртуальная машина включена.


Изменение размера виртуального диска до минимально возможного размера с помощью параметра -to minimum size

Заключительные мысли

В новой версии Microsoft Hyper-V появилось довольно много новых возможностей в отношении виртуальных жестких дисков, которыми администраторы Hyper-V могут воспользоваться.Виртуальные жесткие диски VHDX открывают новые возможности как для оптимизации, так и для изменения размера виртуального жесткого диска. Динамические виртуальные жесткие диски являются предпочтительной конфигурацией, поскольку VHDX не снижает производительность, освобождение свободного места и блоков — это процесс, который администраторы Hyper-V могут добавить в список задач, которые они могут выполнять, чтобы оптимизировать свои среды Hyper-V и освободить пространство. .

Кроме того, с новой возможностью изменять размер файлов VHDX на работающих виртуальных машинах, увеличивая или уменьшая их, администраторы имеют возможность освобождать или добавлять пространство на лету без периода обслуживания.Все эти новые функции и возможности позволяют средам Microsoft Windows Server Hyper-V быть еще более мощными, масштабируемыми и эффективными для выполнения производственных рабочих нагрузок.

Следите за нашими новостями в Twitter и Facebook, чтобы получать информацию о новых выпусках, обновлениях, содержательных сообщениях и многом другом.

Как наиболее эффективно сжать файлы VHDX

Вы когда-нибудь запускали «компактное» действие средства Hyper-V «Редактировать диск…», чтобы обнаружить, что файл вашего VHD или VHDX диска не сжался? В этой статье обсуждается, как оптимизировать шансы на успех при сжатии виртуальных жестких дисков на Windows Server.

Почему файлы Compact VHDX?

Сжатие файлов виртуальных дисков — это действие, которое большинство администраторов Hyper-V делают редко. В большинстве случаев экономия места будет номинальной и перевешивает преимущества. Хорошо спроектированное развертывание Hyper-V обеспечит учет будущей оптимизации / загрузки хранилища на этапе планирования емкости; на этом этапе также учитываются соображения по масштабному проектированию.

Уплотнение не является исправлением плохой конструкции.

Если вы на техническом уровне не знакомы с тем, что происходит при уплотнении, у Alataro есть хорошее руководство.

Вид: Altaro «Почему следует сжимать виртуальные диски Hyper-V»

На практике уплотнение может помочь в двух сценариях:

  1. Повышение скорости и использования дискового пространства для блочных резервных копий без VSS
  2. Уменьшение объема данных, передаваемых во время динамической миграции

Почему не работает «Редактировать диск…»?

Инструмент Hyper-V Manager Compact обычно не позволяет уменьшить размер файла VHDX, из-за чего многие администраторы не тратят время на его запуск.

Две проблемы существуют с мастером уплотнения графического интерфейса пользователя:

  1. Файл VHDX не находится в предварительно оптимизированном состоянии перед уплотнением, что снижает вероятность успеха
  2. Из соображений производительности. При выполнении с помощью мастера не используется весь набор инструментов уплотнения, доступных в системе. К ним можно получить доступ (в настоящее время) только через PowerShell.

Итак, как правильно сжать виртуальный диск?

Оптимизируйте свою виртуальную машину

Неизбежно внутри виртуальной машины будут какие-то данные, которые не нужно сохранять.Удаление этого перед уплотнением автоматически увеличит объем сэкономленного места.

Оптимизация Windows

Под Windows запуск инструмента очистки диска — хорошее место для начала. Дополнительные места для расчистки включают:

  1. C: \ Windows \ Temp
  2. C: \ Windows \ SoftwareDistribution \ Download
    Папка SoftwareDistribution \ Download обычно экономит более 1 ГБ места, поскольку она содержит источники установки для обновлений Windows. Центр обновления Майкрософт повторно загрузит файлы, если они потребуются при следующем сканировании обновлений.
  3. C: \ Users \ <пользователь> \ AppData \ Local \ Temp

Вы можете запустить дефрагментацию из виртуальной машины, однако, если вы находитесь в положении, когда вы можете автономно сжать виртуальный диск, будет более эффективно дефрагментировать VHDX в автономном режиме.

Оптимизация Linux

Оптимизация также должна выполняться в системах Linux. В отличие от Windows, Linux самостоятельно очищает собственное временное пространство при перезапуске. Вы также можете освободить место от процесса обновления с помощью диспетчера пакетов.Приведенный ниже пример можно использовать для освобождения места с помощью apt :

.
 sudo apt-get update
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get clean 

В файловых системах Linux нет концепции запуска дефрагментации. ext4 выполняет это автоматически от имени системы. Эта оптимизация не освобождает «физическое» пространство на жестком диске. Если это «физическое» пространство не будет освобождено (обнулено), Hyper-V не сможет сжать диск.

К счастью, можно заставить Linux обнулить неиспользуемое дисковое пространство на виртуальной машине. Это можно сделать с помощью следующей команды

 вс
компакт диск /
cat / dev / zero> zero.dat; синхронизация; сон 1; синхронизация; rm -f zero.dat 

Эта команда создает файл на диске, смонтированном в строке « cd / ». Затем он записывает 0 в этот файл до тех пор, пока в системе буквально не закончится дисковое пространство. Затем новый файл 0 удаляется. Если вы уплотняете VHDX, который не является корневым разделом, вы должны изменить строку « cd / », чтобы она представляла правильный диск e.г. « cd / mnt / myDisk ».

Примечание: Вы полностью заполните объем за несколько секунд. Это повлияет на другие операции записи, происходящие на диске, и поэтому может считаться опасным процессом.

Сжатие онлайн-VHDX

Можно выполнить онлайн-сжатие виртуального диска. Сам Hyper-V автоматически выполняет легкую оптимизацию фона. Если вы не можете выключить виртуальную машину и можете оптимизировать только онлайн-VHDX, вам необходимо:

  1. Удалить временные файлы
  2. Внутренняя дефрагментация диска из самой виртуальной машины
  3. Используйте Управление дисками или diskpart, чтобы уменьшить размер подключенного раздела, который в настоящее время используется на VHDX
 дисковая часть
список том
sel vol #
усадка 
  1. Выполните компактную работу с помощью Hyper-V Manager или PowerShell

    Optimize-VHD <путь к VHDX> -Mode Full

  2. Обратное уменьшение размера раздела с помощью управления дисками или diskpart
 дисковая часть

список том
sel vol #
продлить 

Сжатие автономного VHDX

Самый эффективный способ освободить место из файла VHDX — выполнить сжатие в автономном режиме.Недостаток автономного уплотнения заключается в том, что виртуальную машину необходимо отключить перед операцией. Время, в течение которого виртуальная машина не работает, прямо пропорционально объему работы, необходимой для завершения процесса оптимизации. Вы можете улучшить это с помощью оперативной дефрагментации перед запуском, однако это требует значительных дополнительных административных усилий.

Следующие шаги описывают процесс, который я использую для наибольшего эффекта. Я использую X: \ в качестве примера буквы диска в этом сценарии, и ожидается использование PowerShell.

  1. Получить исходный размер VHDX
    $ sizeBefore = (Get-Item <путь к файлу VHDX>). Length
  2. {опционально} Дефрагментация ВМ при подключении к сети
  3. Выключение VM
  4. Смонтируйте VHDX в режиме чтения / записи (не в режиме только чтения)
    Mount-VHD <путь к файлу VHDX>
  5. Очистить временные файлы и содержимое X: \ Windows \ SoftwareDistribution \ Download
  6. Дефрагментация VHDX при подключении к системе управления
    1. Если VHDX хранится на SSD-дисках
      defrag x: / x
      defrag x: / k / l
      defrag x: / x
      defrag x: / k
    2. Если VHDX хранится на жестких дисках (/ x / k / l сохраняются для SAN с поддержкой обрезки)
      defrag x: / d
      defrag x: / x
      defrag x: / k / l
      defrag x: / x
      defrag x: / k / l

      Примечание: Defrag / d может занять особенно много времени
  7. Демонтировать VHDX
    Dismount-VHD <путь к файлу VHDX>
  8. Выполнить полную оптимизацию файла VHD
    Optimize-VHD <путь к файлу VHDX> -Mode Full
  9. Получите новый размер VHDX
    $ sizeAfter = (Get-Item <путь к файлу VHDX>).длина
  10. Запустить ВМ
  11. Узнайте, сколько места на диске вы сэкономили (если есть)
    Write-Host "Общее сэкономленное дисковое пространство: $ (($ sizeBefore - $ sizeAfter) / 1 МБ) МБ" -Foreground Yellow

Вы заметите, что я повторяю шаги запуска defrag / x и defrag / k / l. При экспериментировании это происходит потому, что повторение позволяет освободить небольшое количество дополнительного места в некоторых ситуациях, как показано в таблице ниже.

Результаты

КПД Очищаемые плиты
Размер в начале 73,991,716,864 100% 11
/ к Укрепление перекрытий 69 965 185 024 100% 11
/ л Retrim 69 965 185 024 100% 11
/ х Консолидация свободного пространства 69 965 185 024 100% 9
/ х / л / к (повтор) 69 898 076 160 100% 9

В таблице показана первая операция восстановления / l, уменьшающая количество очищаемых пластин, после чего освобождаются еще 67 108 864 байта (64 МБ) — две пластины по 32 МБ.

Почему бы не запустить Defrag / d на SSD?

Дефрагментация, также известная как «традиционная дефрагментация», физически перемещает данные файла в конец его домашнего раздела, восстанавливает файл в непрерывной серии блоков и перемещает файл обратно в начало диска. Этот процесс не требуется для SSD. Здесь практически отсутствует вероятность того, что данные будут храниться непрерывно на флэш-памяти SSD NAND. Также нет преимущества в производительности для файла, который хранится непрерывно.Хотя вы можете выполнить defrag / d на SSD. На самом деле, вы напрасно сокращаете срок его службы для записи в ячейку, и этот шаг следует пропускать.

Заключение

К сожалению, процесс сжатия файла VHDX не является плавным. Чтобы получить максимальную отдачу, необходимо выключить виртуальную машину; что может оказаться непрактичным во многих сценариях. Точно так же количество времени, необходимое для выполнения автономных компактных операций, масштабируется с учетом размера использования VHDX, количества файлов и количества задач, выполняемых в рамках обслуживания.

Если все сделано правильно, то с помощью автоматизации сценариев это может стать важной задачей — особенно перед запланированным перемещением виртуальных машин. Я регулярно экономлю в общей сложности более 130 ГБ при сливе гипервизора для обслуживания в моей домашней лаборатории — примерно на 25–30 минут меньше времени на копирование файлов по Ethernet 1 Гбит / с. Стоит сэкономить, так как выполнение сценария автоматизации, выполняющего всю работу за меня, занимает всего 20 секунд.

[решено] Как остановить или отменить diskpart compact — Virtualization

Сначала я расскажу немного о своей среде.Если вы уже знакомы с diskpart, просто прокрутите вниз до полужирного шрифта, чтобы я не тратил ваше время зря …

Я использую сервер Hyper-V (2012) и мне нужно сжать некоторые из моих файлов VHDX чтобы убрать на них пустое место.

Я перестал использовать метод диспетчера отказоустойчивого кластера в разделе «Настройки»> «Правка»> «Сжать» и т. Д. И начал использовать метод diskpart (который, кстати, работает в 10 раз лучше).

Итак, я запускаю CMD
Diskpart
Выберите vdisk file = «c: \ folder \ file.vhdx»
Прикрепите виртуальный диск только для чтения
Компактный виртуальный диск
Отсоедините виртуальный диск

По какой-то причине мне обычно приходится проходить этот процесс дважды для каждого VHDX файл, потому что по какой-то причине кажется, что первый раз не имеет значения в размере, а если да, то он незначителен.Но как только я запустил его во второй раз, он оказывает огромное влияние.

Теперь вот моя проблема / вопрос.
Самый большой (динамически расширяющийся) файл VHDX, который у меня есть, имеет максимальный размер 1,09 ТБ, а его текущий размер — 1,04 ТБ. Однако в настоящее время используется только 647 ГБ, а все остальное — пустое пространство, потому что я удалил много на этом диске. Этот диск находится на нашем файловом сервере / сервере печати, поэтому данные на нем очень важны. Я бы хотел сжать этот диск на выходных в автономные часы, но я не знаю, сколько времени это займет с таким большим диском.Если это закончится в воскресенье вечером , могу ли я остановить или отменить процесс , чтобы пользователи могли работать в понедельник утром? При сжатии он показывает процент завершения, поэтому я не знаю, могу ли я ввести команду, чтобы убить его. Какой у меня вариант? И не повредит ли это данные, если процесс будет остановлен?

Я знаю, что если я сжимаю диск с помощью диспетчера отказоустойчивого кластера или диспетчера Hyper-V, есть кнопка, которую вы можете нажать, чтобы остановить / отменить, но как остановить ее, когда вы запускаете ее через CMD?

Любой совет приветствуется.


Булава

OP

Mike400

Этот человек — проверенный профессионал.

подтвердите ваш аккаунт чтобы ИТ-специалисты увидели, что вы профессионал. 19 мая 2017 г., 20:33 UTC

Запустив процесс, вы не можете остановить его, не подвергая риску данные на диске. В общем, я бы использовал что-то вроде PerfectDisk для дефрагментации диска и обнуления неиспользуемого дискового пространства.PerfectDisk имеет возможность подготовить файл VHDX для сжатия, что делает это. Затем я бы сжал диск.

Невозможно сжать .vhdx гостевой системы CentOS 8, работающей на Hyper-V: HyperV

Привет, ребята,

В настоящее время я настраиваю среду виртуализации на основе Hyper-V. Цель состоит в том, чтобы запустить машины на Windows Server 2019. В настоящее время машины работают на машине с Windows 10.

У меня одна машина, на виртуальном жестком диске которой используется более 150 ГБ, но нет, она использует только около 5 ГБ.Проблема в том, что файл .vhdx остается таким большим и его нужно сжать. Я уже провел много исследований по этому поводу. По-видимому, мне нужно обнулить свободное пространство на гостевой системе, чтобы иметь возможность сжать диск со стороны хоста.

На гостевой стороне я пробовал обнулить с помощью fstrim и dd, но оба не работали.

Команда fstrim не выдает ошибок, но немедленно «завершается». Так что я сомневаюсь, что он что-то делает.

  fstrim --all --verbose
/ загрузка: 787.3 MiB (825569280 байт) обрезано
/: 249,7 ГиБ (268061769728 байт) обрезано
  

Вот команды, которые я использовал для метода dd

  [root @ docker01 ~] # dd if = / dev / zero of = ~ / zeroes
dd: запись в '/ root / zeroes': на устройстве не осталось места
5191 + 0 записей в
5190 + 0 записей
266193633280 байт (266 ГБ, 248 ГиБ) скопировано, 1239,57 с, 215 МБ / с
[root @ docker01 ~] # синхронизация
[root @ docker01 ~] # rm ~ / нули
rm: удалить обычный файл '/ root / zeroes'? да
  

На гостевой стороне я запускаю следующие команды в PowerShell

  gci -File -Filter *.vhd * -Recurse | % {Mount-VHD $ _. FullName -ReadOnly; Оптимизировать-VHD $ _. FullName -Mode full; Dismount-VHD $ _. FullName}
  

Я также пробовал режим «Prezeroed», который рекомендуется для файловых систем Linux, но все же .vhdx не сжимает ни одного байта.

На гостевой стороне я также попытался добавить значение discard в / etc / fstab, а также установить issue_discards = 1 в /etc/lvm/lvm.conf. Кажется, ничего не помогает …

Виртуальные жесткие диски на хосте:

  Режим LastWriteTime Длина Имя
---- ------------- ------ ----
-a ---- 04.05.2020 20:34 155025670144 docker01.vhdx
-a ---- 04.05.2020 20:34 837812224 docker01_4D02E6F6-4284-4BAD-9BFE-F155BE288737.avhdx
  

Конфигурация хранилища на гостевой системе:

  [root @ docker01 ~] # lsblk -f
НАЗВАНИЕ FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 vfat FFB7-287D / boot / efi
├─sda2 ext4 4a406d20-0d13-46e0-b188-56e9228b50ac / boot
└─sda3 LVM2_member D3VfuJ-pe9e-oG47-epnk-E1xJ-kwc0-XenoYC
  ├─cl-корень xfs 6979c61b-3e01-4441-b014-69f3cbcdabdb /
  └─cl-swap swap 8a23cea4-16a3-4ecc-b7b7-68f49bf3e87c [SWAP]
sr0
[root @ docker01 ~] # df -Th
Тип файловой системы Размер Используется Доступность Использование% Установлено на
devtmpfs devtmpfs 866M 0 866M 0% / dev
tmpfs tmpfs 883M 0 883M 0% / dev / shm
tmpfs tmpfs 883M 17M 866M 2% / запуск
tmpfs tmpfs 883M 0 883M 0% / sys / fs / cgroup
/ dev / mapper / cl-root xfs 253G 4.5G 248G 2% /
/ dev / sda2 ext4 976M 186M 723M 21% / загрузка
/ dev / sda1 vfat 599M 6,8M 593M 2% / boot / efi
[root @ docker01 ~] # ур.
  LV VG Attr LSize Исходные данные пула% Meta% Move Log Cpy% Sync Convert
  корень cl -wi-ao ---- <252,41 г
  swap cl -wi-ao ---- 2.00g
  

Любая помощь приветствуется.

Обновление утилиты восстановления пользовательского уровня

Чуть более года назад я создал служебную программу, которая упрощает управление файлами восстановления пользовательского уровня Citrix App Layering для клиентов.Утилита восстановления пользовательского уровня поддерживает автоматизацию копирования выбранных файлов восстановления в выбранные папки пользовательского уровня. Вы можете найти исходное сообщение в блоге здесь.

Затем, в сентябре прошлого года, я добавил возможность увеличивать размер выбранных пользовательских слоев, что сложно сделать с помощью одного продукта. Я рассмотрел эту функцию в этом сообщении в блоге о расширении пользовательских слоев.

Недавно я работал над возможностью сжатия пользовательских слоев. Несколько клиентов спросили, могу ли я также добавить возможность сброса пользовательских слоев, чтобы служба поддержки могла делать это при необходимости.

Я потратил некоторое время на обновления, которые включают в себя эти изменения, а также возможность использовать параметры расширения, сжатия и сброса на полных пользовательских уровнях, а также на уровнях персонализации пользователей, профилях FSLogix и контейнерах Office. Учитывая все эти новые функции, я переименовал эту утилиту в User Layer Management Utility , потому что теперь это гораздо больше, чем просто копирование файлов восстановления.

Утилита управления пользовательским уровнем

В утилите доступны вкладки «Сброс», «Восстановить», «Развернуть» и «Сжать».Восстановление можно использовать только с обычными полными пользовательскими уровнями, в то время как остальные также могут использоваться с пользовательскими уровнями персонализации или контейнерами FSLogix.

  • Сброс: Используется для переименования пользовательского слоя. Это означает, что пользователь создает новый пользовательский уровень при следующем входе в систему. Старый слой переименовывается, а не удаляется. См. Раздел «Сброс» ниже для получения более подробной информации.
  • Исправление: Используется для копирования выбранных файлов восстановления приложения в выбранные папки пользовательского уровня. Это можно использовать только с полным пользовательским уровнем Citrix App Layering.Файлы восстановления используются для удаления файлов и параметров реестра с пользовательского уровня. См. Исходное сообщение в блоге для подробного объяснения.
  • Развернуть: Уровни пользователя, уровни персонализации пользователя. и все контейнеры FSLogix основаны на монтировании файлов VHD или VHDX, созданных с определенным размером. Иногда вам нужно увеличить размер файла VHD / VHDX. И App Layering, и FSLogix предоставляют возможность делать это для всех пользователей через GPO или изменение реестра, но не для подмножества пользователей.Здесь вы можете выборочно выбрать, какие виртуальные жесткие диски расширять, и сценарий будет использовать diskpart для увеличения размера файла VHD / VHDX.
  • Сжатие: VHD-файлы обычно создаются с тонкой подготовкой, и они растут по мере того, как в файле используется больше места. Однако при удалении большого количества файлов пространство не восстанавливается. Кроме того, поскольку NTFS предпочитает свободные блоки удаленным блокам, размер файла будет продолжать увеличиваться, даже если есть удаленные блоки, которые можно было бы использовать. Эта функция сжатия будет использовать diskpart для сжатия файла VHD / VHDX для удаления удаленных блоков.

В раскрывающемся списке Уровни ОС были добавлены уровень персонализации пользователя, Профиль FSLogix и ODFC FSLogix, поскольку они не считаются уровнями ОС. При выборе любого из них извлекаются все файлы VHD / VHDX в определенных общих путях на вкладке настройки. Кроме того, дизайн был изменен таким образом, что пользовательские уровни и уровни приложений извлекаются отдельно от выбора уровня ОС и сохраняются локально для каждого уровня ОС. Это значительно ускоряет работу с утилитой и фильтрацию списков.Фильтрация позволяет вводить поиск с использованием подстановочных знаков. Если ввести «ez», это похоже на ввод «* ez *». Нажатие Enter после добавления фильтра приведет к доступу к фильтрации, так же как и нажатие стрелки. На вкладке ремонта, где есть два блока фильтров, при нажатии введите , будут включены оба фильтра. Дата и время последнего получения пользовательских слоев указаны в заголовке таблицы. Это специфично для каждого уровня ОС или уровней / контейнеров UPL, профиля или ODFC.

Еще одна новая функция - это журнал работы в правой части утилиты, в котором отображаются сообщения о состоянии на протяжении всего сеанса.Большинство сообщений перемещено в область журнала, где самые новые записи всегда отображаются вверху.

Наконец, для интерфейса полностью обновлена ​​справка.

Теперь давайте рассмотрим новые функции более подробно.

Сброс

Используйте вкладку «Сброс», чтобы переименовать выбранного пользователя.

Reset используется для предоставления пользователям нового пользовательского уровня или контейнера FSLogix. Сброс переименует старый VHD / VHDX, используя формат vhdname-REN-DateTime.vhd (например, rzylowski.vhd-REN-5-23-2021-13-51-50.vhd).

Для использования функции сброса:

  1. Щелкните Получить уровни ОС, чтобы получить список уровней ОС от устройства.
  2. Выберите уровень ОС. Это загрузит LayerId уровня ОС.
  3. Щелкните Получить пользовательские слои, чтобы получить список пользовательских слоев или контейнеров FSLogix.
  4. Выберите нужные файлы VHD / VHDX для сброса
  5. Щелкните «Переименовать пользовательские слои Sel». Это переименует все выбранные слои, если они не используются.
  6. Также возможно восстановить ранее сброшенный пользовательский уровень, проверив его, а затем щелкнув «Restore Sel User Layers». Это также переименует существующий пользовательский уровень, если он есть, как если бы он был сброшен.

Обратите внимание, что поля поиска могут использоваться для поиска по шаблону. Например, чтобы найти только переименованные пользовательские слои, введите «ren» в строку поиска «Пользовательский слой» и нажмите стрелку или введите. При использовании поиска вы должны выполнять действие, пока поиск определен.Вы не можете выполнять несколько поисков, выбирая разные слои по ходу дела.

Удаление пользовательских слоев не входит в состав утилиты и требует отдельной обработки.

Сжать

Другой новой функцией в этой версии является сжатие, которое используется для удаления удаленных блоков с VHD / VHDX для уменьшения размера, используемого в хранилище.

Для использования функции сжатия:

  1. Выберите уровень ОС. Это загрузит LayerId уровня ОС.Вы также можете выбрать UPL или любой тип слоя FSLogix.
  2. Выберите нужные пользовательские уровни / контейнеры FSLogix. При необходимости сначала запустите «Получить пользовательские слои».
  3. Щелкните «Получить размер пользовательского слоя», чтобы прикрепить слой и получить текущий размер в МБ.
  4. Щелкните «Сжать пользовательские слои Sel», чтобы сжать файлы VHD / VHDX.

Результаты операции сжатия будут добавлены в таблицу, как показано выше.

Утилита использует PowerShell для запуска сценариев diskpart для сжатия так же, как и для расширения.Операция компактного виртуального диска удаляет пространство, используемое удаленными файлами. PowerShell для этого выглядит следующим образом:

Сначала мы выбираем виртуальный диск, затем подключаем его к машине консоли только для чтения, уплотняем, а затем отсоединяем. Затем сценарий запускает аналогичную команду, чтобы получить новый размер и обновить таблицу с новым размером, чтобы вы знали, сработало ли это.

Существует также сценарий, который сжимает все определенные пользовательские уровни, которые можно запускать в рамках запланированной задачи или по запросу с помощью кнопки «Сжать все пользовательские уровни».Это будет искать любые файлы VHD / VHDX в любом из общих ресурсов, определенных в разделе настройки, и пытаться их сжать. Если вы все же запускаете это как запланированное задание, оно должно запускаться с наивысшими привилегиями и должно быть настроено для работы от имени пользователя, имеющего доступ для чтения и записи для всех определенных общих ресурсов.

Для любого из сценариев сброса, расширения или сжатия, если используется VHD / VHDX, они выдадут ошибку, и никакого вреда не будет. Удаление и / или удаление переименованных слоев в настоящее время не является частью утилиты.

Настройка

Важными полями для этих новых функций в программе настройки являются поля, перечисленные в разделе D. Запись общего доступа пользовательского уровня может использоваться либо для полных пользовательских уровней, либо для пользовательских уровней персонализации. Записи FSLogix можно использовать или оставить пустыми, в зависимости от ваших потребностей. Если вы используете только FSLogix, оставьте A, B, C и User Layer Share пустыми.

Надеюсь, эта утилита окажется для вас полезной.

Не забывай!

Это новая функция, добавленная к утилите, которая не тестировалась за пределами лабораторной среды.Пожалуйста, начните с использования этого в непроизводственной установке. Относитесь к нему как к любому сценарию, который вы бы разработали самостоятельно, и хорошо протестируйте его, прежде чем добавлять в свою производственную среду.

Помните, что это должно использоваться по вашему усмотрению и не поддерживается Citrix. Вы можете скачать утилиту внизу оригинального сообщения в блоге и сообщать о любых проблемах в комментариях.


Это программное приложение предоставляется вам «как есть», без каких-либо заявлений, гарантий или условий.Вы можете использовать и распространять его на свой страх и риск. CITRIX ОТКАЗЫВАЕТСЯ ОТ ВСЕХ ГАРАНТИЙ, ЯВНЫХ, ПОДРАЗУМЕВАЕМЫХ, ПИСЬМЕННЫХ, УСТНЫХ ИЛИ ЗАКОННЫХ, ВКЛЮЧАЯ БЕЗ ОГРАНИЧЕНИЯ ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ, ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ, НАЗВАНИЯ И НЕИНФОРМИРОВАНИЯ. Не ограничивая общность вышеизложенного, вы признаете и соглашаетесь с тем, что (а) в программном приложении могут быть ошибки, конструктивные недостатки или другие проблемы, которые могут привести к потере данных или повреждению имущества; (b) может оказаться невозможным сделать программное приложение полностью функциональным; и (c) Citrix может без уведомления или каких-либо обязательств прекратить предоставлять текущую версию и / или любые будущие версии программного приложения.Ни в коем случае нельзя использовать код для поддержки сверхопасных видов деятельности, включая, но не ограничиваясь, жизнеобеспечение или взрывные работы. ПРИ НАРУШЕНИИ КОНТРАКТА ИЛИ ЛЮБЫХ ДРУГИХ ОБЯЗАТЕЛЬСТВ ЗА ЛЮБЫЕ УБЫТКИ, ВЫЗВАННЫЕ ИСПОЛЬЗОВАНИЕМ ПРОГРАММНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ВКЛЮЧАЯ БЕЗ ДОПОЛНИТЕЛЬНЫХ УСЛОВИЙ, ДРУГИХ УСЛОВИЙ, ДОПОЛНИТЕЛЬНЫХ УСЛОВИЙ, НЕОБХОДИМЫЕ УСЛОВИЯ ДАЖЕ ПРИ СООБЩЕНИИ О ВОЗМОЖНОСТИ ТАКИХ УБЫТКОВ. Вы соглашаетесь освободить и защитить Citrix от любых претензий, связанных с использованием, изменением или распространением кода.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *