- Изменяем размер виртуального раздела vdi в Virtualbox
- Как уменьшить размер файла VDI VirtualBox?
- Что ж, после всего этого я попробовал инструмент CloneVDI, и он отлично справился с задачей за гораздо меньшее время и одним щелчком мыши.
- Гость Debian на хосте Windows с использованием discard / TRIM.
- Конфигурация хоста
- Гостевая конфигурация
- Уменьшить размер vdi диска linux
- KVM: Как увеличить/уменьшить размер диска виртуальной машины?
- KVM: Как увеличить/уменьшить размер диска виртуальной машины?
- Увеличение диска виртуальной машины KVM
- Расширение виртуального диска со стороны KVM
- Расширение раздела в виртуальной машине с Linux CentOS
- Увеличение диска в гостевой Windows Server
- Как уменьшить размер виртуального диска в KVM?
- Уменьшение KVM диска с помощью утилиты qemu
- Уменьшение виртуального диска с подменой образа
- Форматы дисков KVM и сжатие диска в qcow2 формате
Изменяем размер виртуального раздела vdi в Virtualbox
Многие серьезные вещи, который приходится настраивать в боевой корпоративной сети на боевых серверах, сначала до блеска шлифуется на виртуальной машине. Если нужна целая локальная сеть, то для этих целей отлично подойдет целый парк таких виртуальный машин. Отлично, что клонировать такую машину проще простого. Дело 2 минут.
Единственное, что иногда приходится делать – это изменять размер виртуального жесткого диска, так как задачи на виртуальном сервере могут быть обширные.
Для своих экспериментальных целей я использую VirtualBox, так как он бесплатный, кроссплатформенный и так сложилось уже на протяжении долгого времени, когда рабочий компьютер не поддерживал аппаратную виртуализацию, а кроме VirtualBox запускаться без нее никто не умеет.
Лично я считаю, что очень серьезным достоинством VirtualBox является возможность управлять его работой через консоль. Есть универсальная команда – VBoxManage, которая позволяет сделать абсолютно все с уже созданной виртуальной машиной.
К примеру, чтобы увеличить размер виртуального жесткого диска VDI -формата до 20 Gb, необходимо выполнить команду:
/VirtualBox VMs/название_жесткого_диска.vdi” —resize 20000
Соответственно название_жесткого_диска – это название файла, который является у подопытной виртуальной машины жестким диском. Вроде все просто.
Единственное, что нужно знать наперед это то, что если Вы увеличиваете виртуальный жесткий диск, то добавленное “место” будет определено операционной системой, как неразмеченная область. Нужно использовать какое-нибудь стороннее приложение, которое позволит добавить это неразмеченное место к основному разделу. Если Вы наоборот, уменьшаете размер диска, то дополнительных проблем это не вызовет.
Если хотите поразить свою девушку своим изысканным кинематографическим вкусом, то Вы должны остановить свой выбор на фильме — «Калейдоскоп любви». Тем более, что Калейдоскоп любви (2012) смотреть онлайн можно на сайте kino-max.com. Красивое и доброе кино, которое понравиться любому взрослому и думающему человеку.
- Секрет #
26 августа, 22:36
Секрет: Не работает
Аналогично. Искал инфу, но проблему так и не решил…
C:\Users\Nesh>CD C:\Program Files\Oracle\VirtualBox
C:\Program Files\Oracle\VirtualBox>VBoxManage modifyhd “D:/VM/XP/XP.vdi” —resiz
e 20000
0%…10%…20%…30%…40%…50%…60%…70%…80%…90%…100%
Все работает на 100%. Тип виртуального жесткого диска должен быть динамическим. С фиксированным типом виртуального жесткого диска не работает. И еще, машина, на которой изменяется объем HDD , должна быть выключена.
Источник
Как уменьшить размер файла VDI VirtualBox?
У меня есть виртуальная машина VirtualBox, в которой настроен очень большой размер жесткого диска (больше, чем у хоста). По моей ошибке программа на виртуальной машине генерировала множество файлов журналов, и размер файла VDI продолжает расти до тех пор, пока на хосте не останется свободного места.
Теперь я удалил файлы журналов, но размер файла VDI не уменьшается после использования VBoxManage.exe modifyhd «C:\Virts\mybox-i386.vdi» compact
Есть ли способ действительно сжать размер файла VDI? Спасибо!
Вы должны сделать следующие шаги:
- Запустите дефрагментацию в гостевой системе (только для Windows)
Обнулить свободное пространство:
С гостем Linux запустите это:
С гостем Windows загрузите SDelete от Sysinternals и запустите это:
(замените C: буквой диска VDI)
Отключение гостевой ВМ
Теперь запустите modifymedium команду VBoxManage с —compact параметром:
С хостом Linux запустите это:
С хостом Windows запустите это:
С хостом Mac запустите это:
Это уменьшает размер VDI.
Я на хосте Windows 7 с гостями Windows. Вот пакетный файл, который я записал в Compact все VDI в дереве папок.
Я оставил ссылки в комментариях, чтобы вы могли (вроде) рассказать, как это работает.
Что ж, после всего этого я попробовал инструмент CloneVDI, и он отлично справился с задачей за гораздо меньшее время и одним щелчком мыши.
Гость Debian на хосте Windows с использованием discard / TRIM.
Это не прямой ответ сам по себе, так как я решаю проблему, а не вопрос. Вместо того, чтобы периодически сжимать образ, это решение использует Discard для автоматического удаления неиспользуемых блоков в образе диска виртуальной машины.
Это решение требует гостевой файловой системы, которая поддерживает непрерывную TRIM. Вики Linux Arch содержит список файловых систем, поддерживающих операции TRIM .
FDE и cryptoroot конкретно не рассматриваются, так как существуют проблемы безопасности, и ни одно из других решений этого вопроса также не позволит сжать. Вики Linux Arch содержит информацию об устройствах TRIM и dm-crypt .
Теоретически, это будет работать для всех гостей Linux на хостах VBox, использующих хранилище VDI.
Конфигурация хоста
Когда VBox завершен, а виртуальные машины не запущены, добавьте поддержку Discard на свои диски, указав оба discard и nonrotational каждый диск в файле конфигурации для VM. В настоящее время discard отсутствует в графическом интерфейсе, но nonrotational отображается как флажок «Твердотельный накопитель». (ссылка: форумы vbox, поддержка отмены )
Загрузите виртуальную машину и убедитесь, что включена поддержка TRIM:
Гостевая конфигурация
Если LVM используется, измените настройку сброса в /etc/lvm/lvm.conf . (ссылка: Debian Wiki, пример lvm.conf )
В fstab добавьте discard опцию к файловым системам, которые вы хотите автоматически отбрасывать (ref: debian wiki, пример fstab )
Перемонтируйте файловые системы, чтобы они выбрали новые опции.
Вручную обрезать свободные блоки теперь с fstrim . fstrim использует смонтированную файловую систему, а не блочное устройство, поддерживающее ее. Вместо установки непрерывного сброса fstab это можно сделать в еженедельном кроне. (Еженедельный cron рекомендуется для физических твердотельных накопителей, которые могут иметь сомнительную поддержку TRIM, но здесь это не актуально, поскольку базовые твердотельные накопители обрабатываются операционной системой хоста. См .: предупреждение об ssd trim ).
На этом этапе размер файловых систем внутри ВМ и размер образов ВМ должны быть довольно близки по значению.
- Гость1: Debian 8.7, ядро: linux 4.8 grsec от backports, файловая система: ext4
- Гость 2: Debian 9 RC2, ядро: linux 4.9, файловая система: ext4
- Host1: VBox 5.1.14, Win7, образ fmt: VDI
- Host2: VBox 5.1.14, Win8.1, образ fmt: VDI
Для гостя MacOS сделайте это:
Обнулить свободное место в гостевой системе:
(замените / Volumes / Macintosh HD на имя вашего диска)
Отключение гостевой ВМ
Запустите эту команду, чтобы уменьшить размер образа диска VDI
Я использую это для моего образа VDI, подключенного к виртуальному Debian в Windows VirtualBox. Это не общее решение, но оно должно по крайней мере дать вам представление о том, что я делаю.
Команды в Debian:
Команды в Windows:
Надеюсь, это поможет 🙂
Я не хочу включать поддержку TRIM в ОС, потому что каждое удаление данных вызывает сжатие данных в файле VDI, делая гостевую систему непригодной для использования, когда файл VDI находится на классическом ротационном диске. Для меня лучше выполнять сжатие вручную, например, раз в месяц.
При обычном сжатии содержимое файла VDI копируется в новый файл. Это требует некоторого (иногда большого) свободного места на диске хоста.
У меня есть решение, аналогичное указанному Эндрю Домашек. Это работает очень хорошо даже с NTFS (Windows10).
- создайте новую виртуальную машину, которая загружается с GParted Live CD (вы можете использовать ваш любимый дистрибутив Linux).
- Отредактируйте настройки машины и установите контроллер диска SATA
- Добавьте существующие файлы VDI, которые вы хотите сжать
Измените диски на основе VDI, чтобы они отображались как SSD с поддержкой TRIM:
Очень приятный трюк в дополнение к принятому ответу заключается в том, что вы можете обойтись без какого-либо уплотнения после обнуления гостевого пространства, используя сжатую файловую систему на хосте (например, выбрав сжатие папки виртуальных дисков в свойствах NTFS на Хост Windows). На самом деле это дает преимущество, позволяющее сэкономить гораздо больше места, поскольку операционные системы, как правило, содержат много повторяющихся текстовых или двоичных файлов (например, гостевой диск объемом 30 ГБ с обнуленным 15 ГБ пространства может превратиться в 4 ГБ на главном диске).
Предостережения включают в себя то, что доступ к диску на реальном оборудовании может увеличиться, а загрузка ЦП несколько увеличивается.
ВАЖНОЕ ПРИМЕЧАНИЕ ДЛЯ LEGACY (
1997-2007) ОПЕРАЦИОННЫЕ СИСТЕМЫ
В целом, методы в приведенных ранее ответах являются действительными; ОДНАКО, есть очень важный особый случай.
В течение нескольких лет — возможно, 1997-2007 гг. Или около того — 32-разрядные операционные системы оставались нормой, но жесткие диски объемом более 2 ГБ уже использовались. В результате, при попытке использовать все свободное пространство путем записи файла нулей (который всегда должен выполняться как root, чтобы включить привилегированное свободное пространство root, которое никто больше не может коснуться), вы можете увидеть:
Файл слишком большой
вместо того, что вы ожидаете:
На устройстве нет свободного места.
В этом случае вы, скорее всего, столкнулись с ограничением размера файла 2 ГБ. В то время это было распространено, потому что многие файловые операции возвращали результаты в виде 32-разрядных целых чисел со знаком, так что отрицательные значения могли сообщать коды ошибок. Это фактически означало, что результаты смещения были ограничены 2 ^ 31 байтами без специальных мер.
Обходной путь прост: продолжайте создавать отдельные файлы обнуления с разными именами до тех пор, пока на диске фактически не останется свободного места.
Если вы являетесь инструктором, желающим продемонстрировать эту ситуацию для класса, достаточно образа диска объемом 4 ГБ со старой копией Red Hat Linux 7.0.
Источник
Уменьшить размер vdi диска linux
Со временем файлы динамичиских виртуальных дисков *.vdi увеличиваются в размерах. Даже если вы удаляете данные в гостевых ОС, динамические диски не уменьшаются в размерах автоматически. Для уменьшения их размера в VirtualBox начиная с версии 2.2 используется команда VboxManager modifyhd uuid|filename —compact . Где — код, а — файл виртуального диска vdi. Данная команда удаляет свободные блоки на диски которые заполнены нулями. Если мы удаляем файлы в гостевой ОС то эти блоки содержат разный «мусор», поэтому мы их должны заполнить нулями. Для гостевых машин windows можно использовать утилиту sdelete(с опцией -c, а в последней версии -z (читайте справку)) , а для linux возможно несколько вариантов:
использовать команду: dd if=/dev/zero of=/tmp/zerofile; rm /tmp/zerofile . Данная операция создает файл размером с пустое пространство на виртуальном диске и затем его удаляет. Данный процесс может занять довольно много времени.
использовать утилиту zerofile
Эти действия необходимо выполнять в гостевой ОС. После, чего выключаем гостевую виртуальную машину и выполняем команду в терминале (консоле) хоста:
VBoxManage modifyhd .vdi —compact .
Учтите что при выполнении первого шага — обнуления блоков, размер виртуального динамического «диска» вырастает до максимального размера. Убедитесь, что у вас достаточно места для данной операции — иначе гостевая ОС может «зависнуть» и данные в ней могут быть повреждены.
PS: Важно! Данная возможность является экспериментальной в версии 2.2, поэтому рекомендуется создать резервную копию файла vdi перед первым использованием.
Источник
KVM: Как увеличить/уменьшить размер диска виртуальной машины?
KVM: Как увеличить/уменьшить размер диска виртуальной машины?
В этой статье мы поговорим об изменении размера дисков виртуальной машины KVM, рассмотрим используемые форматы виртуальных дисков. Покажем, как правильно увеличить диск виртуальной машины в гипервизоре KVM на Linux без потери данных, а также обсудим варианты уменьшения размеров дисков.
Увеличение диска виртуальной машины KVM
Расширение виртуального диска со стороны KVM
Для того, чтобы проводить работы с диском, виртуальная машина должна быть отключена, иначе мы не сможем что-либо сделать. Рассмотрим пример с увеличением диска размер которого изначально был 20Гб.
Чтобы посмотреть параметры диска виртуальной машины KVM, воспользуйтесь командой:
qemu-img info /путь_до_диска
Вывод команды будет примерно такой:
Мы видим, что у нас есть два поля которые указывают на размер, это virtual_size и disk_size:
- virtual_size – размер виртуального диска, указанный при создании или расширении диска (в этом примере максимальный размер диска – 20 Гб);
- disk_size — размер файла диска в текущий момент, т.е. сколько сейчас занимает образ диска места на физическом сервере (относится только к формату qcow). В нашем пример виртуальный диск занимает всего 1,6 Гб на хранилище.
И сразу о форматах. Я рекомендую при создании виртуальных машин на KVM использовать формат диска qcow2, а не raw. Чуть позже я объясню почему.
Следующим шагом расширим диск виртуальной машины, на 5Gb (для корректного расширения диска у виртуальной машины не должно быть снапшотов!).
# qemu-img resize /путь до диска +5G
Если сразу проверить вывод информации об образе диска, мы увидим, что он расширился:
# qemu-img info /путь_до_диска
Часть работы мы сделали, но требуется и проведение работ со стороны виртуальной машины в гостевой ОС. Далее мы покажем, как увеличить размер диска в гостевых CentOS 7 и Windows Server 2012.
Расширение раздела в виртуальной машине с Linux CentOS
После расширения диска со стороны сервера, нужно запустить виртуальную машину и подключиться к ней по ssh. Все работы будут проводиться с помощью утилиты управления разделами жестких дисков fdisk.
После подключения к серверу, проверяем наличие нашего дополнительно подключенного места:
На скриншоте видно, раздел /dev/vda2 имеет размер 20Gb, а доступное место на диске у нас больше.
Подправим этот момент и расширим раздел /dev/vda2 до максимального объема:
После чего нам нужно сделать рестарт виртуальной машины и выполнить команду для применения расширения диска:
В итоге мы получили расширенный раздел /dev/vda2. Теперь по порядку, что именно мы сделали:
- fdisk /dev/vda — запустили утилиту fdisk подключившись к разделу /dev/vda
- /d — удаляем раздел, по умолчанию это раздел 2 который нам и нужен, поэтому в следующем пункте жмем просто Enter
- /n – создаем новый раздел, в следующем пункте так же просто жмем Enter или вводим p, далее Enter так как создаваемый раздел по умолчанию будет 2.
- При указании первого и последнего сектора так же жмем просто Enter, если мы хотим расширить раздел до максимума, если вы хотите указать конкретный размер, в последнем секторе указывайте размер диска как указано в меню +size
Размер не может быть меньше, чем был ранее! - /w — применяем наши настройки.
После перезагрузки проверим диск командой:
В некоторых источниках для выполнения данной процедуры указывают команду:
Но с файловой системой xfs это не работает!
Работы по расширению диска на виртуальной машине с ОС CentOS 7 закончены.
Увеличение диска в гостевой Windows Server
Подключаемся к виртуальной машине через rdp или VNC и выполняем работы по расширению диска.
Откройте Server Manager -> Tools -> Computer Management;
В открывшемся окне выбираем в меню Disk Management, после чего у вас должны отобразиться все ваши диски и неразмеченное пространство, которые мы добавили со стороны гипервизора KVM;
Выбираем нужный диск и нажимаем Extended Volume;
По умолчанию для увеличения размера диска будет предложено все доступное место;
Нажимаем «далее» и завершаем расширение. После данной процедуры, ваш раздел в системе должен будет расшириться;
Хотелось бы добавить, что перед процедурой расширения диска для виртуальной машины, я советую выполнять резервное копирование самого диска. Остановите виртуальную машину и скопируйте образ диска в директорию для бэкапа или в любую директорию, в которой есть свободное место. Если в ходе работ, что-то пойдет не так, вы всегда сможете вернуть образ виртуального диска из бэкапа.
Как уменьшить размер виртуального диска в KVM?
В своей работе, ранее я довольно часто сталкивался с данным вопросом, но к сожалению, безболезненно уменьшить диск на виртуальной машине в KVM нельзя! Единственный приемлемый размер уменьшения размер диска виртуальной машины KVM на физическом хранилище – его сжатие через конвертацию.
В интернете фигурирует много статей, якобы благодаря которым вы можете уменьшить размер диска на виртуальной машине, но это не работает.
Я приведу несколько примеров, на которые я натыкался и которые лично мною были проверены.
Уменьшение KVM диска с помощью утилиты qemu
На ряде ресурсов описаны действия, выполняемые с помощью утилиты qemu. В них предлагается уменьшить размер диска виртуальной машины с помощью команды:
qemu-img resize /путь_до_диска -5G — уменьшаем диск на 5G
Или такой вариант с указанием конкретного размера:
qemu-img resize /путь_до_диска 25G — указываем размер диска в 25G
Что происходит после выполнения данной команды? Запускаем сервер и конечно система не грузится:
Я пробовал сначала уменьшить раздел из-под системы с помощью утилиты fdisk, но в таком случае, система так же перестает загружаться, даже если вы пропустите шаг уменьшения диска с физического сервера и это логично. Раздел который мы уменьшаем, системный и соответственно ОС перестает загружаться, так как при уменьшении диска, информация по всей видимости уничтожается.
Уменьшение виртуального диска с подменой образа
Уже не такой распространенный в инструкциях вариант — это уменьшение диска, с подменой на старый. То есть, вы создаете новую виртуальную машину с нужным вам размером диска. После чего, подменяете старый образ диска в новый образ и судя по описанию статей в разных источниках, это работает. Я так же сделал проверку и это сломало файловую систему, как и в первом варианте. Я приведу пример команды:
virt-resize /старый_образ_диска /новый_образ_диска
Приводились так же варианты, с конвертацией диска с формата raw в формат qcow2, НО я изначально создаю машины в данном формате и объясню почему.
Форматы дисков KVM и сжатие диска в qcow2 формате
В самом начале статьи, я упомянул про эти два формата.
raw – в переводе «сырой». Преимущество формата, максимальная производительность, универсальность формата. Минусов масса, основные это:
- Диск занимает все дисковое пространство на физическом сервере, которое ему выделили;
- Нельзя создать снапшоты.
Qcow2 – это родной формат гипервизора QEMU, а так же QEMU-KVM. Это максимально удобный формат виртуального диска из всех поддерживаемых в KVM. Образ диска увеличивается по мере накопления данных на виртуальной машине, поддерживаются снапшоты.
Чем хорош формат qcow2? Вам в принципе не нужно уменьшать размер виртуального диска, так как диск занимает на сервере, ровно столько, сколько места там занято. Если же у вас данные на сервере постоянно перезаписываются и бывает такое, что диск «распух», его можно с легкостью сжать. Рассмотрим такой вариант. Я забью нулями некоторое дисковое пространство и после чего удалю файл:
dd if=/dev/zero of=/mytempfile
rm -rf /mytempfile
При проверке с сервера, образ диска сначала весил 2.4G после чего расширился до 5.9G:
# du -sh /путь_образа
# du -sh /путь_образа
То есть после удаления информации на виртуальной машине, диск обратно не сжался. Чтобы файл диска получил актуальный размер, я использую следующий метод:
Бэкапим файл диска, останавливаем виртуальную машину и после чего выполняем следующие действия:
qemu-img convert -O qcow2 /старый_образ /новый_образ
После чего можно проверить размеры двух дисков:
# du -sh /новый_диск
# du -sh /старый_диск
Как видим, размер сжатого диска 1.6G. Переименуем новый образ диска в нужный нам и запустим виртуальную машину:
Контрольная проверка с сервера:
# du -sh /образ_диска
Способ рабочий. За все время его использования, ни разу файловая система на виртуальной машине не умирала. Но настоятельно рекомендую перед подобными работами, создавать копию диска, если не хотите потерять данные.
Это все, что я хотел в данной статье рассказать. Если у кого-то из посетителей сайта есть рабочий способ по уменьшению диска на KVM, именно уменьшения (не сжатие) и именно рабочий, предлагайте свои варианты и я обязательно их протестирую.
Источник