У меня есть образ VirtualBox, использующий VDI и гибкий размер. Щас физический файл DVI 94Гб. Хост - это сервер Ubuntu, а гость - CentOS 6.4 с разделом ext4. Хост использует обычный диск sata емкостью 1 ТБ.
Скорость чтения с диска:
sudo hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 23330 MB in 2.00 seconds = 11679.09 MB/sec
Timing buffered disk reads: 420 MB in 3.01 seconds = 139.49 MB/sec
Скорость записи с диска:
sudo dd if=/dev/zero of=output bs=8k count=128k; sudo rm -f output
131072+0 records in
131072+0 records out
1073741824 bytes (1.1 GB) copied, 4.91353 s, 219 MB/s
Итак ... Я думаю, что копирование 100 ГБ должно занять гораздо меньше времени. Фактически, простой cp
занимает намного меньше времени. В моем примере это занимает 30 минут по сравнению с 2 часами clonehd
.
Я знаю, что clonehd также выполняет сжатие, так что это может иметь большое значение. Теперь ... скажите, что я хочу сжать только один раз явно, а затем просто клонировать.Есть ли другая более быстрая альтернатива? Я где-то читал, что могу сделать простой cp
, а затем изменить UUID созданного клонированного изображения. Кто-нибудь это делал? Это безопасно? Поскольку я делаю это для резервных копий ... мне нужен безопасный процесс.
Обратите внимание, что я уже очистил свободное место в гостевой ОС Cent, используя dd
или zerofree
. Но это не тема этой ветки.
На самом деле, у меня не было бы такой большой проблемы, если бы я мог запустить clonehd
, продолжая работать с виртуальной машиной, но я читал, что это невозможно / рекомендуется, поскольку клонированные / скопированные файлы vdi могут быть повреждены, если он был одновременно изменен.
Заранее спасибо,
Вы писали, что «хост использует обычный диск sata емкостью 1 ТБ». Это наводит меня на мысль, что вы говорите о вращающемся жестком диске, возможно, даже о диске настольного уровня (например, SATA 7200 об / мин вместо диска SAS 10 или 15 000 об / мин, не говоря уже о твердотельных накопителях).
Имейте в виду, что 7200 Скорость вращения дисков обычно достигает 100-120 МБ / с. Это устанавливает верхнюю границу того, что вы должны ожидать, если не полагаетесь на кеширование. (Обратите внимание, что команда dd
в вопросе, скорее всего, сильно зависит от кеширования и, таким образом, дает неточное представление о производительности ввода-вывода. Вы можете добавить conv = sync
, чтобы принудительно использовать синхронный ввод-вывод. Также, как указано в комментариях, при чтении из / dev / zero вы устраняете одну сторону уравнения.)
Вполне возможно, что, поскольку файл образа диска вашей виртуальной машины тонко подготовлен, это он фрагментирован на диске. В зависимости от того, насколько сильно он фрагментирован, у вас может быть даже ограничение на количество операций ввода-вывода в секунду. У накопителей 7200 об / мин теоретическая максимальная производительность составляет 120 операций ввода-вывода в секунду
Односторонний (чтение или запись) 100 ГБ со скоростью 110 МБ / с займет около 900 секунд. Удвойте это, потому что вы оба читаете и и смотрите на 1800–2000 секунд, или полчаса.
Если добавить к этому фрагментацию, два часа определенно звучат так, как будто они были бы в приблизительный.