Стоит ли сжимать файл жесткого диска на виртуальной машине?

Стоит ли сжимать файл жесткого диска на виртуальной машине?

У меня есть виртуальная машина с установленной Windows 7 32-bit, а хост — Windows 7 64-bit. Я выбрал динамически изменяемый размер образа диска VDI. После установки Windows на образ диска его размер составляет около 5 ГБ.

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

  1. Не сжимайте. Это может слишком сильно ухудшить производительность, или VDI может быть уже сжатым форматом, а мое собственное сжатие — пустая трата времени.
  2. Сожмите файл .vdi в хост-системе Windows через свойства файла.
  3. Внутри виртуальной машины перейдите в свойства ее жесткого диска и выберите команду «Сжать диск».

Какой вариант вы считаете лучшим?

Спасибо.

решение1

Выбирайте вариант 1 - Вам определенно стоитнетсжать VDI.

Вариант 2 - Открытие, закрытие и работа со сжатым образом диска объемом 5 ГБ будет заметно медленнее. Это может быть даже мучительно медленно. И это будет усугубляться динамически изменяемым размером диска.

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

решение2

Сжатие NTFS внутри виртуальной машины (у меня был такой опыт) — действительно плохая идея.

Это сильно нагружает ЦП, а выигрыш в уменьшении размера файла VDI невелик, всего 1/1,13, максимум 20%, который я видел (речь идет о гостевой NTFS с включенным сжатием на всех системных разделах).

Для сжатия VDI я использую инструмент под названием «CloneVDI» версии 2.51 (не помню, где скачал). Он создает еще один файл VDI из существующего и имеет возможность «сжать» его (т. е. уменьшить).

С помощью такого инструмента все неиспользуемое пространство внутри гостевых разделов не займет место на созданном VDI. Убедитесь, что вы не изменили UUID, затем переместите СТАРЫЙ во временную папку, переместите/переименуйте НОВЫЙ туда, где он был, попробуйте загрузиться и, если все пойдет хорошо (в руководстве к инструменту говорится, что он может дать сбой, но я ни разу не видел, чтобы это происходило), удалите СТАРЫЙ.

Пример: После установки на свежую версию Windows 7 всех обновлений (с использованием WSUS + OnLine) размер VDI превышает 15 ГБ; после «cleanmgr» и других настроек раздел показывает, что занято 9,5 ГБ, но размер VDI по-прежнему составляет 15 ГБ; после использования CloneVDI файл уменьшается до 9,5 ГБ.

О, да, активируя сжатие NTFS, этот VDI после использования CloneVDI становится размером 8,4 ГБ, да, всего на 1 ГБ меньше, но время загрузки увеличивается в 10 раз.

Я в основном использую CloneVDI с неизменяемыми VDI и когда мне нужно «скопировать» VDI на другой ПК в другом месте (перенося его на USB 3.1 Stick емкостью 64 ГБ)... поскольку теперь я хочу / мне нужно иметь (для целей тестирования программного обеспечения) все XP, 7, 8, 8.1 и 10 (как HOME, так и PRO) (как 32-битные, так и 64-битные), это создает 5*2*2=20 файлов VDI, в худшем случае они мне также нужны как «чистое» недавнее состояние установки, только до последнего пакета обновления и со всеми обновлениями... это число умножается на 3, так что 60 файлов VDI... этих 64 ГБ недостаточно... мне нужен USB HDD емкостью 300 ГБ, поэтому я ношу с собой 500-гигабайтный Sata III 2.5 HDD в корпусе 3.1 USB Type C, и я все еще использую CloneVDI для их сжатия.

Если вам повезло, у вас есть порт USB 3.1 на компьютере и 2,5-дюймовый жесткий диск Sata III с приличной скоростью (1 ТБ или 500 ГБ), этого будет достаточно, корпуса 3.1 Type C действительно дешевы (менее 20 евро на AliExpress) и работают отлично, помещаются в карман и т. д. Я ненавижу разъем USB Type B (microUSB), он имеет тенденцию терять стабильность (он сам отключается, когда вам это не нужно), так как я использую разъем Type C, у меня не было такой проблемы (разъем miniUSB тоже очень хорош, но не позволяет получить скорость 3.1, и даже 3.0, только 2.0).

Примечание: Некоторые ошибочно называют USB 3.1 USB 3.0... убедитесь, что USB 3.1 Gen 2 (для действительно высокой скорости жесткого диска) и да, Gen 2 работает только с разъемами Type C, если разъем корпуса не имеет типа C, то максимальной скорости на самом деле не будет.

Скорость USB 3.0 и плохого USB 3.1 (Gen 1) составляет всего 5 Гбит/с (гигабит), в то время как USB 3.1 Gen2 (только с разъемом Type C) может работать со скоростью 10 Гбит/с, что в хосте Windows составляет немного больше одного гигабайта в секунду (1 Гбит/с), поэтому копирование файла VDI размером 10 Гбит заняло менее 10 секунд.

Предупреждение: USB 3.1 Gen 2 потребляет много энергии, поэтому будьте осторожны (особенно если это карта памяти) с нагревом... USB 3.1 Gen 2 объемом 64 ГиБ от SanDisk нагревается так сильно, что вы можете почувствовать то же самое, что и прикоснувшись к разогретой духовке... поэтому после отключения от сети подождите немного, пока он остынет, или обдуйте его воздухом и т. д.

Если вы можете заплатить приличные 50 евро, купите USB 3.1 Gen 2 Type C + 3-1 кабель USB C - USB A + 500GiB Sata III 2.5"... вы увидите, что вам больше не нужно "сжатие" (не забудьте использовать инструмент CloneVDI после внесения важных гостевых изменений), вы увидите, что такого сжатия / компактности будет достаточно.

Примечание: Лучшая практика... при использовании CloneVDI используйте два разных высокоскоростных диска (чтение с одного и параллельная запись на другой)... внутренний HDD и такой внешний 3.1 Gen2 Type C... после этого скопируйте обратно с одного на другой. Это действительно занимает меньше времени, чем чтение и запись на одном диске, а затем копирование на другой диск (гораздо меньше движений головки)... если только вам не очень повезло с SSD-диском... в таком случае поместите во внешний корпус еще один SSD.

У меня на руках действительно было (в качестве тестирования) хранилище на 1 ГиБ (подключенное к контроллеру PCI Express 3.0 x16), способное достигать постоянной скорости записи 35 ГиБ/с, да, 35 гигабайт в секунду... вы можете полностью заполнить хранилище за 1/35=0,029 секунды (быстрее, чем большинство современных банков памяти ПК); очевидно, это было "доказательство концепции" с охлаждением жидким азотом, бла-бла-бла. Идея в том, что это аннулирует обычную "концепцию" памяти ПК... и ПК будет загружаться как старый КПК (мгновенно), поскольку для хранения памяти не потребуется питание... понятия не имею, когда и поднимет ли это рынок (цена? лучше не думать об этом, прототип стоил более 13 миллионов долларов).

До тех пор самым дешевым способом будет Sata III 2.5 1TiB (или 1,5TiB) на корпусе USB 3.1 Gen 2 Type C... а если у вас нет портов USB 3.1, купите дешевую карту PCI Express USB 3.1 Gen 2 Type C и USB-кабель CC для передачи данных со скоростью 10 ГиБ/с.

Если вы не можете позволить себе такую ​​«скорость» и хотите остаться на USB 2.0, то у меня есть два лучших предложения: включите сжатие гостевой ОС NTFS, если вас это не смущает (скорость гостевой ОС значительно снизится), а после важных изменений используйте CloneVDI для уменьшения размера VDI.

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

Пропустить CloneVDI с использованием очень «медленного» жесткого диска (30 МБ/с) на файле VDI размером 15 ГБ и получить 9 ГБ (на том же разделе) заняло чуть больше 25 минут... в то время как перенос с одного корпуса USB 3.1 Gen 2 Type C на другой занял менее 30 секунд; вот почему я так много говорю о USB 3.1 Gen 2 Type C (10 ГБ/с)... ждать полминуты вместо почти получаса.

Я всегда размещаю все свои VDI в двух корпусах USB 3.1 Gen 2 Type C (по 500 ГБ 2,5-дюймовых жестких дисков в каждом), поэтому у меня есть резервное копирование и действительно «быстрая» производительность гостевого ввода-вывода... не занимающая места на внутреннем жестком диске ОС.

Я расскажу о таких жестких дисках (мои действительно дорогие, я использую их только для коротких тестов), они могут записывать со скоростью около 6 Гбайт/с (Sata III — узкое место), они не SDD, но имеют несколько плеч, поэтому могут записывать на несколько пластин одновременно, оптимизацию NCQ, внутренний кэш объемом 1 Гбайт (а не те, что всего 8 Мбайт или 16 Мбайт)... цена... ну, около одного доллара за штуку... мне не очень нравятся SSD и у них мало циклов «стирания»... больше для интенсивного использования (виртуальная машина VDI).

Я бы никогда не поставил виртуальную машину на SSD, через два-три года SSD может выйти из строя (циклы «стирания» достигнут максимума). Я обычно использую два действительно дешевых 500-гигабайтных быстрых Sata III 2.5", каждый из которых находится в своем собственном корпусе USB 3.1 Gen 2 Type C, поэтому я получаю скорость записи около 200 МБ/с; это позволяет CloneVDI сжимать 15 ГиБ до 9 Гиб примерно за 3 минуты. Достаточно дешево и быстро.

Надеюсь, я вам помог... иногда лучше использовать два маленьких HDD (500 ГБ), чем USB-накопитель или большой HDD (1,5 ТБ), достаточно места для всех VDI и выше скорость... в сочетании с cloneVDI (чтение с одного, запись на другой) это идеальный вариант.

Моя главная идея: изменить способ мышления... если проблема в «пространстве», хорошо, проделайте небольшую работу (без влияния на скорость гостевой системы), например, CloneVDI для Compact/Shrink, и возьмите два почти быстрых внешних портативных HDD, которые поместятся в кармане, чтобы вы также могли хранить два последних известных состояния VDI; и, конечно, используйте такие внешние HDD только для VDI, чтобы гарантировать, что у вас будет достаточно места на будущее... а также иметь еще одну копию VDI на внутренних HDD (если более одного ПК), так вы получите... скорость, малое время ожидания при передаче с одного ПК на другой и 4 резервные копии (если только два ПК, два внутренних, два внешних) и дополнительные 2 резервные копии «старого состояния» на внешних HDD.

В моем случае 60 VDI никогда не будут использовать более 300 ГБ (максимальный размер внутреннего гостевого жесткого диска, который я использую, составляет 20 ГБ), на самом деле они занимают всего около 200 ГБ, среди которых я не могу хранить старое состояние, так как использую все из них как неизменяемые, поэтому у меня есть еще около 280 ГБ для роста (на жестком диске объемом 500 ГБ). Представьте, если я использую 1 ТБ или 1,5 ТБ (какая пустая трата места) только для будущих версий Windows.

Я вижу, что в гостевых системах Windows файлы VDI обычно не становятся больше 10 ГБ (помните, у меня они установлены по умолчанию и только Windows, без приложений и т. д.), а если я устанавливаю все обновления Windows (после cleanmgr и т. д. и прохождения CloneVDI), они вырастают до 13 ГБ или 15 ГБ (а рост ограничен 20 ГБ, так как я определил 20 ГБ для системного раздела).

Таким образом, я могу протестировать установщик приложений на всех ОС, недавно установленных ОС, ОС с обновлениями, 32-битных / 64-битных ОС, версиях Windows XP, 7, 8, 8.1 и 10... и посмотреть, какие из них работают, а какие нет и т. д. Поскольку я настроил их как неизменяемые, после выключения питания при следующем включении первое, что делает VirtualBox, — это отменяет изменения, чтобы я мог протестировать другой установщик приложений и т. д.

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

решение3

Просто проверьте Pismo File Mount — отличный инструмент для сжатия «на лету» с высокой степенью сжатия и низкой загрузкой ЦП.

У меня все файлы .vdi находятся внутри файлов .pfo (со включенным сжатием), это сжимает чистую установку Windows (даже если с обновлениями) до менее чем 50%, так что вы получаете более 50% дискового пространства.

Такие файлы .pfo монтируются в "C:\Volumes\bla_bla_bla.pfo", поэтому для их размещения достаточно отредактировать пути к файлам .vbox.

Я говорю о хосте Windows, на хосте Linux я до сих пор не использовал монтирование файлов Pismo.

Файлы .pfo монтируются в режиме чтения и записи как папка, и вы можете поместить внутрь все, что захотите (файлы и папки).

Предупреждение: Я не знаю, как сжать файл .pfo

Для чего я его в основном использую?: Для неизменяемых машин VirtualBOX main .VDI, но не для vdis, находящихся в папке Snapshot, то есть с autoReset="true" (так как они увеличиваются и уменьшаются).

Надеюсь, поможет!

Связанный контент