Как синхронизировать файл 100Гб ?

123 4
Andreyka
На сайте с 19.02.2005
Offline
822
#11

Тогда стоит посмотреть в иную сторону - не бекапить образы с хоста, а бекапить из самих виртуалок.

Есть отличная штука для этого - cdp от r1soft

Не стоит плодить сущности без необходимости
P
На сайте с 08.03.2007
Offline
250
#12
Andreyka:
Тогда стоит посмотреть в иную сторону - не бекапить образы с хоста, а бекапить из самих виртуалок.
Есть отличная штука для этого - cdp от r1soft

Мне нужно как раз образы виртуалок.

Я посмотрел статистику по дисковым и сетевым операциям - rsync показыает в --progress какую-то непонятную цифру, не сильно связанную с реальностью. Во всяком случае это точно не скорость передачи по сети и не скорость чтения с диска. Возможно, на гигабитных каналах ему надо какие-то параметры выставлять специфические. Интернет ответа не дал. Но процессор всё равно используется один и на 100%, так что думаю что проблема именно в нём.

N
На сайте с 06.05.2007
Offline
419
#13

Ну он же контрольную сумму md5 считает. Для этого нужно последовательно обработать файл. Это как бы нельзя распараллелить.

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

А что, файл совсем один ? Если это виртуалки, то их обычно много.

Вот я нагуглил как для обработки каталогов запускают несколько rsync : https://wiki.ncsa.illinois.edu/display/~wglick/Parallel+Rsync. И таких решений масса.

Проверьте у себя, может слегка получше будет.

Кнопка вызова админа ()
P
На сайте с 08.03.2007
Offline
250
#14
netwind:
Ну он же контрольную сумму md5 считает. Для этого нужно последовательно обработать файл. Это как бы нельзя распараллелить.
Вообще-то для определения разности совсем не важно посчитать сумму всего файла, но как смогли так и написали . Могли бы в программе делить файл на участки и считать параллельно, но, скорее всего, на практике такой непоследовательный доступ невыгодно нагружает диск.

А что, файл совсем один ? Если это виртуалки, то их обычно много.
Вот я нагуглил как для обработки каталогов запускают несколько rsync : https://wiki.ncsa.illinois.edu/display/~wglick/Parallel+Rsync. И таких решений масса.
Проверьте у себя, может слегка получше будет.

Как раз контрольная сумма для всего файла rsync'ом не считается, а он делится на участки (65536 участков максимум, если не ошибаюсь). А вот почему нет параллельного просчёта - непонятно. Сервера обычно ставят на рейд, например raid10 - там скорость доступа может сильно не проседать. Или сейчас вообще на SSD модно.

У виртуалок на базе образа диска (KVM, VMWare) есть несколько больших файлов. С OpenVZ ситуация другая.

Parallel Rsync в основном нужен когда несколько миллионов файлов синхронизируется. Для одного он неприменим.

N
На сайте с 06.05.2007
Offline
419
#15
Pilat:
У виртуалок на базе образа диска (KVM, VMWare) есть несколько больших файлов.

Нууу. Причем, не очень больших файлов, если специально не испортить настройку. То есть, частично вы выиграете от этих решений тоже. Почему бы нет?

Переразбейте эти 100 гб.

Часто программисты такие же идеалисты как и математики. Изучат задачу, придут к выводу что им нужно привести уравнение к идеальному нерешаемому "значит мне нужно найти параллельный rsync" и сидят курят.

P
На сайте с 08.03.2007
Offline
250
#16

Как раз файлы очень большие - размером с виртуальный диск. Диск 100 гигабайт - значит 100. У меня 30+70. Но теперь накатила задача 500 гигабайт перенести :)

Ну как можно переразбить файл-образ? Ну можно, при некотором желании - LVM2 позволит собрать из них один том, но это не типовой сценарий.

Рещение я, конечно, найду. Но интересно иметь рабочее тупое решение - как rsync.

N
На сайте с 06.05.2007
Offline
419
#17

Pilat, а, извините qcow2 так и не поддерживает разбивку на части. Так vmware или KVM ? vmware таки поддерживает.

P
На сайте с 08.03.2007
Offline
250
#18
netwind:
Pilat, а, извините qcow2 так и не поддерживает разбивку на части. vmware таки поддерживает.

qcow2 вообще формат не для практического использования. vmdk в варианте proxmox не разбивается на маленькие файлы - это просто не делается из его интерфейса и, скорее всего, не поддерживается сервисными утилитами. Сейчас я на raw перехожу. Мне нужно не ломать работающую систему, а думать как справиться с проблемай.

Z
На сайте с 06.09.2012
Offline
129
#19
Pilat:
Как раз контрольная сумма для всего файла rsync'ом не считается, а он делится на участки (65536 участков максимум, если не ошибаюсь). А вот почему нет параллельного просчёта - непонятно.

Потому что у него для rolling checksum используется и без того очень быстрый алгоритм Adler32 и если процессор перегружен, то скорее всего чем-то другим.

Черный список врунов и обманщиков: ua-hosting.company, riaas.ru, takewyn.ru, yahoster/cadedic, Andreylab
P
На сайте с 08.03.2007
Offline
250
#20
zzzit:
Потому что у него для rolling checksum используется и без того очень быстрый алгоритм Adler32 и если процессор перегружен, то скорее всего чем-то другим.

Adler32 используется на sender (MD5 тоже, но не для каждого блока), recipient использует MD5+Adler32. Узнал я это из статьи https://en.wikipedia.org/wiki/Rsync#Algorithm , но материал для размышлений есть. ДЕйствительно чистого времени на вычисление контрольных сумм получается меньше чем в результате раза в два-три.

123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий