Pull to refresh

Comments 9

Когда-то во времена ESX v3, а может и v4 написал себе подобный скриптик для подобных целей. На современных версиях — не проверял, но думаю, что мало что изменилось.

#!/bin/sh

E_BADARGS=85

if [ $# -ne 1 ]
then
 echo "usage : $0 VMname"
 echo "       VMname - name of VM"
 exit $E_BADARGS
fi

VM=$1
VMDK=$VM.vmdk
FLAT=$VM-flat.vmdk
VMDKTHIN=$VMDK-thin
FLATTHIN=$FLAT-thin
vmkfstools -i $VMDK -d thin $VMDKTHIN
rm -rf $VMDK
rm -rf $FLAT
mv $VMDKTHIN $VMDK
mv $FLATTHIN $FLAT
sed -i -e "s/$FLATTHIN/$FLAT/g" $VMDK
Если не ошибаюсь, этот скрипт создает меньшую копию файла виртуального диска с последующим удалением оригинала. Мне такой способ вряд ли подошел бы, так как локальный storage был забит под завязку практически. Но надо будет протестировать.
Да, если сторадж доведён до такого состояния, то данный скрипт вас не спасёт, а вот сделать хуже, например, «обломиться» на vmkfstools и при этом удалить оригинальные файлы VM — запросто может, т.к. никаких проверок, как видите, не предусмотрено.

Т.е. вы просто потеряете свою виртуалку. Вообще, не скажу за локальный сторадж, никогда им в vmware толком не пользовался, но на всяких netapp/emc/etc одна из рекомендаций — на нём должно оставаться порядка 20-40% свободного пространства для обеспечения производительности.
Поправьте, если ошибаюсь. Но, насколько я помню, vmkfstools -K так же копирует сначала данные в новый vmdk-файл а затем удаляет старый.
Нее, копирования там не происходит. Просто удаляются нулевые блоки из существующего файла. Удаление происходит налету, то есть можно наблюдать за постепенным уменьшением файла. Причем, если внутри виртуалки это пространство было заполнено какими-то файлами, файлы удалены, но свободное пространство не было перезаписано нулями, никакого уменьшения размера vmdk-файла не произойдет.
Не использую Thin Provisioning, но сторадж умеет дедупликацию. Для возврата стораджу места, занятого неиспользуемыми данными, достаточно любым вайпером забить всё свободное место на диске нулями. После больших чисток очень помогает.
Для thin provisioning тоже самое, только не дедупликация а удаление нулевых блоков. Плохо только, что на включенной машине этого не сделаешь.
Всегда делал гораздо проще (и быстрее):
1. В vSphere Client редактировал свойства машины:
— менял размер диска на необходимый
— подключал CD/DVD и указывал загрузку из образа (там встроенных штук 7, но я использовал Ubuntu 12)
2. Перезагружал виртуальную машину и при загрузке входил в настройки BIOS (кнопка F2), где менял порядок загрузки, поднимая загрузку с CD на первое место
3. Загружал Ubuntu в режиме «Попробовать» и запускал в терминале (Cntrl+Alt+T) «sudo gparted»:
— выбирал свой раздел и по выпадающему меню делал «Resize» до нужного объема
— применял эти изменения (Edit / Apply
— ждал минуты 3.
4. Выключал Ubuntu
5. Отключал образ CD/DVD в свойствах виртуальной машины и возвращал загрузку с HDD на первое место

P.S.
Предвижу «некошерность» графического интерфейса. Консолью пользуюсь, но когда без нее никак (например, подключить сетевые карты или настроить USB-клавиатуру через KVM, чтобы не висла, зараза, при загрузке)
Понимаю, что тема уже старая — но вдруг кому пригодится. Только что озадачился уменьшением размера дисков (правда, не тонких) на серверах W2008R2 на ESXi6, стал гуглить — нашёл, кроме этого поста, ещё утилиту VMware vCenter Converter Standalone, сделал с её помощью. Действия по шагам:
  • Уменьшил размер диска в ВМ средствами Винды (было 300 гигов, сделал 120), выключил ВМ
  • В утилите (предварительно скачанной, поставленной и запущенной, ессно) выбрал конвертацию выключенной ВМ, при этом предлагает подключится либо к ESXi, либо сразу к VCenter, на котором и выбираешь машину
  • Затем указал, куда именно буду её конвертировать — пришлось выбирать тот-же VCenter (могли бы добавить галку, чтобы класть туда-же, где и исходная была), имя машины пришлось поменять
  • И вот при конвертации то и появилась возможность указать размер диска. Указал 130 гигов, с запасом.
  • Включил новую машину — новый диск стал ровно 130 гигов, гостевая Винда сама расширилась, похоже.

Sign up to leave a comment.

Articles