Как сохранить небольшой дифференциальный жесткий диск Virtualbox

8

Я пытаюсь использовать виртуальный жесткий диск на нескольких компьютерах с помощью синхронизации Dropbox (популярный облачный инструмент). Я предполагаю, что никакие две машины не будут открывать один и тот же диск одновременно.

Чтобы сократить объемы передачи данных, я хотел бы использовать только дифференциал моего жесткого диска, который будет хранить только небольшой объем «документов», а не синхронизировать весь жесткий диск (я не верю, что дифференциальная синхронизация Dropbox будет очень эффективной) , Используя эту официальную документацию VirtualBox , я сделал следующий трюк, который удовлетворяет меня лишь частично.

  • Создайте дифференциальный привод с помощью хитрости:
    • Сделайте диск multiattach (см. Документацию выше)
    • Сделайте простое изменение на диске на гостевой, который создаст файл diff
  • Восстановите (с помощью VBox Media Manager, File> Virtual Media Manager) базовый диск в «нормальном» режиме (мне нужно это, чтобы иметь возможность подключить его к нескольким машинам)
  • Отсоедините основной диск от машины и вместо этого установите дифференциал
    • Это требует дополнительного трюка при подключении к новой машине: присоедините, затем отсоедините основной, затем подключите diff, иначе VirtualBox не распознает GUID диска.

Этот трюк делает свою работу: поскольку я работаю только с диском diff, база никогда не изменяется и, следовательно, никогда не синхронизируется по сети. Плохая часть , хотя в том , что, даже если очень мало растет количество хранимых данных , то разница диск будет расти в пространстве на VDI (файл виртуального хранения диск на хосте) принимает на хосте из - за того , как фрагменты гостевой ОС и перемещает файлы , И поэтому я начинаю синхронизировать постоянно растущий жесткий диск различий, теряя преимущества наличия различий.

Проблема в том, что я хочу - это способ регулярно «объединять» или «дефрагментировать изменения» в diff vdi, чтобы поддерживать синхронизацию небольшой. Я могу позволить себе (хотя и не хочу) делать полную синхронизацию основных vdi каждый раз, когда я делаю это слияние. Но единственный способ, которым я могу воспользоваться, - это воссоздать diff vdi, используя тот же процесс, и восстановить файлы на этом диске с помощью какого-либо резервного копирования. Не очень удобно. У кого-нибудь есть идея получше?

Конечно, есть другой способ работать только с общим каталогом (между хостом и гостем), но для этого потребуется дополнительная настройка (множество символических ссылок на госте), и я не хочу, чтобы пользователи хоста связывались с ним гостевые файлы.

Я был достаточно ясен?

КПП
источник
Немного дополнительной информации: Моя гостевая система - это минимальный winXP с неизменяемой частью ~ 5 ГБ и частью для документов ~ 500 МБ. Хостами являются несколько компьютеров с ОС Windows и Linux, некоторые из них представляют собой небольшие дисковые ноутбуки с нестабильным подключением
КПП
Вы говорите, что «не доверяете дифференциальной синхронизации DropBox как очень эффективной». Вы действительно проверяли это?
Colin 't Hart
@ Colin'tHart: не очень тщательное тестирование, но я внес небольшие изменения в виртуальный диск (несколько новых файлов и изменил несколько старых) в процессе производства, и для загрузки всего файла потребовалось примерно время. Возможно, Dropbox не виноват (это может быть NTFS, которая вносит большие изменения, чем ожидалось), но результат таков: на это уходит много времени
PPC

Ответы:

3

VBoxManage modifyhd --compact будет вырезать любые блоки, которые вы обнулили с помощью соответствующего инструмента (см. Руководство). Не уверен, будет ли для вас лучше подключать отдельный диск для документов (возможно, сквозной ).

обманчивая надежда
источник
Похоже, хорошая идея для расследования. Не уверен, что он на самом деле сохранит пропускную способность (если он работает на diff), так как такое изменение, вероятно, сильно испортит алгоритм «интеллектуальной синхронизации» dropbox. Я должен попытаться сделать такое изменение как можно более систематическим (каждый раз, когда пользователь закрывает свою виртуальную машину?). Отличная идея в любом случае.
КПП
0

Если все ваши хост-системы Mac OS 10.5+, вы можете использовать механизм Sparse Bundle, который хорошо подходит для инкрементной синхронизации / резервного копирования с такими инструментами, как Time Machine или rsync: http://en.wikipedia.org/wiki/Sparse_image# Sparse_Bundle

Я использую его поверх Dropbox объемом 3 ГБ, и он работает хорошо. Конечно, ваш виртуальный диск занимает, по крайней мере, 10-20 ГБ, поэтому первая синхронизация будет очень медленной. Это может быть ускорено Dropbox с синхронизацией LAN.

Кроме того, afaik, вы должны быть осторожны, чтобы монтировать его только один раз в данный момент (как вы сказали) и разрешить синхронизацию после того, как виртуальная машина остановлена ​​/ находится в режиме ожидания.

norz
источник
Не удалось проверить ваше решение, мои хосты - win7 и Ubuntu Natty :(
КПП