LINUX.ORG.RU

Пара вопросов о дисках virtualbox

 ,


1

1

1. Есть dynamically allocated vdi образ. На него случайно скопирован файл в N гигабайт. Образ увеличился на эти N Гб и после удаления файла не уменьшается. Я догадываюсь, что так и должно быть, но хранить мусор глупо. Это ж и в бэкапы пойдёт. Как бы «убрать лишнее» из vdi?

2. Как добиться максимальной скорости работы виртуального диска? Сейчас множество мелких файлов лежит на fat32 разделе в fixed size vdi образе. Сам vdi лежит на ext3. Есть операция, во время которой читают эти файлы. Сейчас на это требуется 5 минут. Не смертельно, но неприятно. Можно как-нибудь ускорить за счёт софта, а не покупки мешков ram/ssd?

★★

Ответ на: комментарий от kto_tama

у виртуалбокса есть специальные драйвера: Devices > Insert Guest Additions CD Image.

Никак не относится к вопросу. На быстродействие IO оно не влияет.

anonymous
()

Сначала вайпаешь всё свободное место на разделе в виртуалке, потом тормозишь виртуалку и

vboxmanage modifyhd образ_диска.vdi --compact

Radjah ★★★★★
()

1. Если файловая система с поддержкой TRIM, можно уговорить VB поддерживать это дело.

2. может помочь кеширование хоста - включается на виртуальном контроллере дисков.

Elyas ★★★★★
()
Последнее исправление: Elyas (всего исправлений: 1)

fat32 разделе в fixed size vdi образе

fat32 потому что — что? В виртуалке винда? Так и сама винда давно уже блюёт разноцветной радугой при использовании fat32. Для объёмов и скоростей там уже ntfs (Или как там по-модному — ReFS). Для безгеморройной простоты — ExtFS.

justAmoment ★★★★★
()
Ответ на: комментарий от kto_tama

https://www.howtogeek.com/124796/the-htg-guide-to-speeding-up-your-virtual-ma...

Авторы жгут. С - скромность: «The Complete Guide to Speeding Up Your Virtual Machines» из десятка советов уровня «отключите антивирус» и «добавьте памяти».

Но там напоминают про дефрагментацию диска, это интересно. Правда, не мой случай: утилита сообщает, что диск не фрагментирован.

А вот, кстати, чего в линуксах дефрагментацией не занимаются?

fffgh ★★
() автор топика
Ответ на: комментарий от anonymous

1) https://superuser.com/questions/529149/how-to-compact-virtualboxs-vdi-file-size

Воооот. Но почему-то не работает.

With a Windows Guest, download SDelete from Sysinternals and run this:

sdelete.exe c: -z

sdelete крутит проценты до 100, потом зависает. Т.е. дело, по идее, сделано, хоть и висит.

Ctrl-C, shutdown vm, vboxmanage modifyhd /path/to/thedisk.vdi --compact

..и никакого эффекта. Странно.

2) fat32... Вообще exfat вроде как побыстрее, но не факт. Скорее всего самое быстрое - это проброс реального раздела в Virtualbox https://www.virtualbox.org/manual/ch09.html#rawdisk

Попробую. Но запуск от рута не радует.

fffgh ★★
() автор топика
Ответ на: комментарий от Elyas

1. Если файловая система с поддержкой TRIM, можно уговорить VB поддерживать это дело.

А этот trim работает именно во время удаления файла?

Википедия пишет, что в линуксе есть trim на fat. https://en.wikipedia.org/wiki/Trim_(computing)

Если я подключу этот vdi к vm с линуксом, то после загрузки что-нибудь произойдёт? Или для эффекта надо было удалять в линуксе?

2. может помочь кеширование хоста - включается на виртуальном контроллере дисков.

Если это про галочку «Use Host I/O Cache», то включено.

Кстати, о контроллерах. Сейчас это IDE PIIX4. Между ними есть разница? Там ещё два типа IDE плюс SATA, SCSI, SAS.

fffgh ★★
() автор топика
Ответ на: комментарий от justAmoment

Для объёмов и скоростей там уже ntfs

Объёмов у меня нет, а какая разница в скорости между fat и ntfs? И в какой винде это можно увидеть?

Для безгеморройной простоты — ExtFS.

В винде появилась ext? Та самая ext, что в линуксе? И об этом не кричат на каждом углу?

fffgh ★★
() автор топика
Ответ на: комментарий от fffgh

В винде появилась ext? Та самая ext, что в линуксе?

Сорян, опечатался. ExFAT, конечно же.

justAmoment ★★★★★
()
Последнее исправление: justAmoment (всего исправлений: 1)

Объясните алгоритм этого «wipe & compact».

Приходится гадать, т.к. sdelete не работает.

«Вайпающие» утилиты (вроде sdelete) затирают диск нулями, просто создавая кучу файлов, состоящих из нулей? И sdelete так же работает? (да, судя по описанию https://docs.microsoft.com/en-us/sysinternals/downloads/sdelete)

Т.е. это всё не отличается от dd if=/dev/zero of=FILE?

И во время работы такой утилиты будут перезаписаны все свободные терабайты динамического vdi? И vdi разрастётся до тех самых терабайт?

А затем мы запускаем vboxmanage modifyhd образ_диска.vdi --compact и ждём, что виртуалбокс хорошенько «сожмёт» все эти нули. Т.е. виртуалбокс просто закодирует нули так, как при создании динамического диска (и места они занимать не будут).

Всё верно?

Если я всё правильно понял, то:

1. Тут явно нужна дефрагментация. А то вместо терабайта сплошных нулей получится куча мелких участков, и она потребует места, как ни сжимай.

2. Надо было не удалять файл, а как-то попытаться «затереть». Т.е. проще будет восстановить удалённый файл какой-нибудь утилитой, а потом «вайпнуть» его — не придётся всё пустое место перезаписывать.

fffgh ★★
() автор топика
Ответ на: комментарий от fffgh

А этот trim работает именно во время удаления файла?

Существует утилита fstrim: - даёт команду накопителю освободить неиспользуемые области. Чтобы срабатывало сразу в момент удаления файла - зависит от fs и опций монтирования.

Elyas ★★★★★
()
Ответ на: комментарий от kto_tama

мне было бы стыдно постить такие «советы» на техническом форуме, хотя о чём это я.

anonymous
()
Ответ на: комментарий от fffgh

Приходится гадать, т.к. sdelete не работает.

Всё оно работает. Недавно тестировал скрипт пакера

https://github.com/joefitzgerald/packer-windows

Как раз после всего выполняется.

fornlr ★★★★★
()
Последнее исправление: fornlr (всего исправлений: 1)
Ответ на: комментарий от anonymous

парагон бесплатно драйвер давал

Но это же сторонний костыль, неужто оно работает лучше встроенных fs?

fffgh ★★
() автор топика
Ответ на: комментарий от fffgh

А вот, кстати, чего в линуксах дефрагментацией не занимаются?

видимо, есть более насущные задачи
к тому же существует вероятность, что дефрагментация - это миф :-)

kto_tama ★★★★★
()
Ответ на: комментарий от robot12

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

https://forums.virtualbox.org/viewtopic.php?f=7&t=22688

anonymous
()
Ответ на: комментарий от anonymous

Выделение по крохам, по требованию будет медленнее

Вы это утверждаете ? То есть есть реальные цифры наверное ?

А про SSD разработчики не слышали ?

Да на тот же форум Вам указать могу https://forums.virtualbox.org/viewtopic.php?f=7&t=55892#p259334

robot12 ★★★★★
()
Последнее исправление: robot12 (всего исправлений: 1)
Ответ на: комментарий от robot12

Ну естественно, аллокация стоит времени. В случае фиксированного выделения оно происходит разом в начале, иначе будет тормозить в процессе записи.

Ну если чтение, то не будет на прямую влиять.

Цифры сам тестируй - не маленький :P

anonymous
()
Ответ на: комментарий от anonymous

В случае фиксированного выделения оно происходит разом в начале

seek то же разом происходит ?

robot12 ★★★★★
()
Ответ на: комментарий от kto_tama

к тому же существует вероятность, что дефрагментация - это миф :-)

В том смысле, что она не ускоряет чтение файлов?

fffgh ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.