3

В настоящее время я пытаюсь переместить довольно пустое, свежее изображение qcow2 из одной системы в другую, которая находится далеко. Я в основном получил свежую установку Ubuntu LTS (реальный размер 6 ГБ, очевидный размер 200 ГБ). Большинство методов передачи файлов (rsync через ssh) и sftp с утиной попыткой передачи более 200 ГБ.

Это неэффективно, поскольку образ диска на самом деле не использует 200 ГБ (просто так, в конце концов). Что мне нужно сделать, чтобы передать только то, что используется виртуальной машиной?

На обоих концах передачи запущена Fedora 22, и в идеале я бы не хотел переключать форматы образов дисков, хотя это было бы возможным вариантом. Скорость была бы хороша - я не хочу обменивать время передачи на время обработки.

2 ответа2

4

rsync самом деле обрабатывает разреженные файлы. Когда вы говорите, что реальный размер 6 ГБ, а видимый - 600 ГБ, вы имеете в виду, что du -h IMAGE.qcow2 показывает « 6G », а du -h --apparent-size IMAGE.qcow2 показывает « 200G »?

Если это так, вы можете добавить флаг -S к rsync чтобы он передавал файлы редко, а это означает, что вы будете отправлять более 6 ГБ данных вместо 200 ГБ.

Это также звучит так, как будто ваше изображение qcow2 не сжато. Если у вас есть ресурсы ЦП, которые вы можете сэкономить, и ваша пропускная способность меньше, чем скорость, с которой ваш GZIP- процессор может gzip , вы также можете передать флаг -z в rsync , который rsync сжимает передачу файлов.

У меня есть горячая клавиша "забыл и забыл" для rsync основанная на этом вопросе о супер-пользователе, и она делает эффективную и консервативную передачу файлов большую часть времени: rsync -avzHXShPs

1

scp -C использует сжатие, которое должно быть достаточно эффективным для такого разреженного файла. Одним из преимуществ является то, что вы получите готовый файл в месте назначения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .