Categories: VMware

Сжимаем тонкий (thin) диск в ESXi 5

Тонкие (thin) диски VMWare позволяют существенно сэкономить место на файловой системе VMFS хранилища при создании виртуальной машине. Такие vmdk диски при создании практически не занимают место на файловой системе и постепенно разрастаются до максимального размера по мере накопления информации. Однако основная проблема при использовании thin диски заключается в том, что они со временем разрастаются даже в том случае, если вы освободили место внутри гостевой операционной системы.

Примечание . При удалении данных в ОС Windows (и Linux это также касается) система не заполняет освоившееся место нулями, а просто помечает области как удаленные в метаданных раздела (их можно использовать для записи). Получается, что ESXi сервер не может самостоятельно определить какие из отданных ей блоков на самом деле свободны

Стандартного средства сжатия тонких дисков в ESXi нет, а сама система виртуализации ничего не знает об особенностях хранения данных внутри гостевой ОС.

В этой статье мы опишем простой способ сжатия тонкого vmdk диска в ESXi.

  1. На первом этапе необходимо помочь гипервизору, заполнив все свободное место на дисках внутри гостевой ОС нулями.Обнулить свободные блоки в Windows можно с помощью утилиты Марка Русиновича SDelete (на момент написания статьи последняя доступная версия SDelete v1.61, если вы используете более раннюю версии SDelete, имейте в виду, в ней могут использоваться немного другие параметры). Скачать SDelete можно тут: http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx.Распакуйте архив на диск, откройте командную строку (естественно, с правами администратора) и выполните следующую команду
    Sdelete –z c:

    В данном случае c: — это виртуальный тонкий vmdk диск, который мы планируем сжать.

    В Linux эту операцию можно выполнить с помощь dd

    dd if=/dev/zero bs=64k of=zero.temp ; rm zero.temp
  2. Выключаем гостевую ОС (Shutdown).
    Примечание . Сжать диск можно и с помощью миграции виртуальной машины на другое хранилище (Storage VMotion). Однако отметим, что данный способ не является универсальным и работает только при соблюдении определенных условий.
  3. Подключаемся к ESXi серверу по SSH под root –ом (не забудьте включить службу SSH и разрешить входящий трафик на файерволе ESXi). Переходим в каталог c файлами виртуальной машины:
    cd vmfs/volumes/storage1/vm1

    где storage1 – имя хранилища, а vm1 – каталог, в котором хранятся файлы с vmdk дисками виртуальной машины

  4. Выведем «полный» размер виртуального диска.
    ls -lh *.vmdk

    “Реальный” размер виртуального диска, который он занимает на файловой системе можно узнать так:

    du –h *.vmdk

    Как вы видите, thin диск занимает на хранилище 33 Гб (максимальный его размер 40 Гб). Причем внутри гостевой ОС Windows занято всего 15 Гб.

  5. Сжимаем vmdk диск с помощью vmkfstools. Команда сжатия диска thin будет выглядеть так:
    vmkfstools --punchzero /vmfs/volumes/storage1/vm1/vm1.vmdk

    Процедура сжатия в нашем примере заняла около 5 минут (скорость от размера диска и скорости и загруженности хранилища и сети SAN). После окончания процедуры сжатия проверим текущий размер vmdk файла.

    Как вы видите vmdk диск сжался до 15 Гб!

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

К счастью расширить виртуальный диск гораздо проще

admin

Share
Published by
admin

Recent Posts

Настройка Mercurial по HTTPS

Иногда mercurial, при скачивании и комитах ругается на https. Особенно на самоподписанные сертификаты. Чтобы заработал…

1 неделя ago

Компиляция libvirt в Ubuntu

Компиляция libvirt Подробнее

1 неделя ago

Ошибка libvirt permission denied: решение

Если возникает ошибка libvirt destroy lxc permission denied , при попытке остановить контейнер: _x000D_# virsh…

1 неделя ago

Настройка редиректа в NGINX

Файлы с примерами редиректа для nginx Подробнее

1 неделя ago

Включение gzip в NGINX

Как включить gzip сжатие в Nginx ? Подробнее

1 неделя ago

Удаление postinst-скрипта в Linux

Иногда возникает ситуация, когда криво настроенные пакеты не устанавливаются в системе. У меня это произошло…

1 неделя ago