none
Не сжимается динамический vhd-диск. RRS feed

  • Общие обсуждения

  • Добрый день.

    Есть хост на Server 2012 R2. На нем ВМ с динамическим виртуальным ЖД. (Максимальный размер 900 Гб)

    На ВМ тоже стоит Server 2012R2 + MS SQL

    Накопилось на ВМ информации на 650 Гб. Соответственно сам vhd-файл тоже около этого.

    Стало не хватать быстродействия харда. Купили 2 SSD, сделали из них "зеркало" (500 Гб).

    Думаю, сейчас почистим место на виртуалке, сожмем vhd до хотя-бы 300Гб, спокойно перемещу vhd на новый SSD-рейд и всё полетит.

    Не тут-то было.

    Место на ВМ почистили - было занято 650Гб, стало 220Гб.

    Пытаюсь сжать диск внутри ВМ оснасткой "Управление дисками" - говорит, что могу сжать только до 480Гб.

    Странно. Ладно, думаю, может дефрагментация поможет.

    Запускаю анализ, показывает эффективность использования пространства 53%.

    Запускаю дефрагментацию, говорит, что ОК, но 53% как были, так и остались.

    В логах:

    Том "(C:)" не был оптимизирован из-за ошибки: Ни оптимизация памяти, ни анализ слоев не будут выполняться, если слои менее 8 МБ. (0x8900002D)

    Всё это делалось внутри ВМ.

    Отключил на ночь ВМ. Запустил из оснастки Hyper-V дефрагментацию диска, файл vhd уменьшился до 492Гб.

    Но ведь реально занято только 220Гб!

    Что дальше может помочь: Optimize-VHD, Resize-VHD или что-то другое? (главное не испортить дальнейшую работу).

    Копии конечно делаются.

    Мне кажется, что это не поможет. Ведь из оснастки "Управление дисками" диск должен сжиматься до минимума, а он сжимается только до 480Гб. (Неперемещаемые данные???)

    P.S. Да, чуть не забыл: был сделан один снимок. При этом vhd-файл был 400Гб, avhd 260Гб. Удалил снимок, слияние прошло успешно. И все вышеописанные действия проводились после этого, конечно.

    28 сентября 2015 г. 11:31

Все ответы

  • Если вдруг надо. Вот лог дефрагментации диска:

    Вызов оптимизация памяти на (C:)...
    Выполнение прохода 1:
            Повторная оптимизация:  выполнено на 100%.

    Операция успешно завершена.

    Post Defragmentation Report:

            Сведения о томе:
                    Размер тома                 = 799,89 ГБ
                    Размер кластера                = 4 КБ
                    Используемое место                  = 204,47 ГБ
                    Свободное место                  = 595,42 ГБ

            Консолидация слоев:
                    Эффективность использования пространства            = 53%
                    Потенциально доступные для очистки слои    = 0
                    Неперемещаемые слои      = 0
                    Успешно очищенные слои   = 0
                    Восстановленное пространство             = 0 байт

            Повторная оптимизация:
                    Резервированные выделения           = 799
                    Оптимизированные выделения          = 87920
                    Общее оптимизированное пространство = 588,24 ГБ

    Можно как-то дефрагментировать?

    28 сентября 2015 г. 12:41
  • Попробуйте использовать командлет

    Resize-VHD –Path %path%\.vhd –ToMinimumSize

    для приведения файла диска к минимальному объёму.

    1 октября 2015 г. 9:50
    Модератор
  • Пробовал.

    И Resize-VHD и Optimize-VHD.

    Прежде чем их использовать надо сжать диск внутри ВМ.

    Т.е. на настоящий момент в консоли Управления дисками (внутри ВМ) диск С размером 800 Гб.

    (Максимальный размер самого динамического диска).

    Занято на диске С 210 Гб. Анализ сжатия показывает, что может сжать только до 500 Гб.

    А ещё почти 300Гб?

    Опытным путем обнаружилось, что можно сжать диск до 300 Гб., если отключить ВМ от сети (т.е. удалить сетевой адаптер).

    Это, хоть что-то. Пусть и не до 210, но всё же. А дальше, я так понимаю, идут неперемещаемые файлы.

    И их уже никак не переместить.

    Хотя какие неперемещаемые файлы? Теневых копий нет, архивация ведётся посредством DPM, файл подкачки даже перенёс на другой диск.

    Всё равно только до 300Гб.

    1 октября 2015 г. 12:33
  • Добрый день!

    Если позволите, задам свой вопрос в этой же ветке.

    Была схожая ситуация, решил следующим способом:
    Выключил гостевую систему и подключил vhd диск к хосту, сделал дефрагментацию, затем

    diskpart 
    select vdisk file="z:\my.vhd"
    compact vdisk
    detach vdisk
    exit
    

    после этого vhd файл стал примерно равным занимаемому месту файлами внутри него.

    Собственно вопрос: а правильно ли так делать ?

    1 октября 2015 г. 13:54
  • Цитата:

    "Выключил гостевую систему и подключил vhd диск к хосту, сделал дефрагментацию" -

    Немного не понятно: как подключили vhd-диск к хосту?

    Mount-VHD –Path c:\test\testvhdx.vhdx -ReadOnly - так?

    А где и как делали дефрагментацию?

    Я пытаюсь сделать дефрагментацию внутри гостевой ОС, но результата нет.

    "Том "(C:)" не был оптимизирован из-за ошибки: Ни оптимизация памяти,

    ни анализ слоев не будут выполняться, если слои менее 8 МБ. (0x8900002D)"

    А Вы где и как делали дефрагментацию?

    1 октября 2015 г. 15:11
  • Цитата:

    "Том "(C:)" не был оптимизирован из-за ошибки: Ни оптимизация памяти, 

    ни анализ слоев не будут выполняться, если слои менее 8 МБ. (0x8900002D)"

    А Вы где и как делали дефрагментацию?

    Дефрагментацию делал на vhd из хостовой системы. Но в правильности этого у меня большие сомнения.

    А по поводу этой ошибки посмотрите  https://support.microsoft.com/en-us/kb/2964429

    1 октября 2015 г. 15:33
  • Спасибо, но это я читал. Обновления все стоят.

    А как "Дефрагментацию делал на vhd из хостовой системы"? Т.е делали дефрагментацию харда, где лежит vhd-файл?

    А по поводу правильности - я думаю, если работает без ошибок и проблем, то все правильно.

    2 октября 2015 г. 12:19
  • Проблема решается проще:

    diskpart 
    select vdisk file="путь к vhd" 
    detach vdisk
    attach vdisk readonly 
    compact vdisk 
    detach vdisk

    Затем делайте с диском всё что хотите. 

    2 декабря 2019 г. 7:41