Я использую vmware fusion для создания прототипа и моделирования корпоративной инфраструктуры. Этот вопрос предназначен для поиска оптимального метода резервного копирования (предпочтительно инкрементного) виртуальных машин.
Моя папка виртуальной машины теперь имеет размер около 250 гигабайт, смонтирована на моем встроенном твердотельном накопителе, и мне нужно время от времени выполнять ее резервное копирование, но это занимает вечность, поскольку vmware, похоже, затрагивает все файлы в каталоге .vmwarevm, так что любое разумное решение для резервного копирования будет считать их грязный. Я также прочитал, что они редкие файлы, поэтому должны быть доступны оптимизации. я пытался
1) rsync -azP --exclude-from=xlist.lst /Users/pcarr01/VM/ /Volumes/SD128GB
rsync для локального SSD Thunderbolt - без сжатия и слишком медленно, IO, похоже, не соответствует цифрам, указанным для оборудования
2) rsync rsync -aP * admin@persistence::VMs
rsync для Netgear ReadyNAS duo - NAS очень быстро использует максимальную нагрузку на процессор NAS, и ничего особенного не происходит, для полного резервного копирования требуется более 24 часов
3) решения на основе смолы
#!/bin/bash
# backup tars to target ignoring vms that are older than backups
# args target where target is name of volume [/Volumes/???]
[[ -z $1 ]] && {
"No target specified"
exit 1
}
target=$1
dst_path="/Volumes/${target}/vmtar/"
path="/Users/pcarr01/VM/"
ls -d /Users/pcarr01/VM/*.vmwarevm | grep -vf ${path}/xlist.lst | while read file
do
dst=${file/$path/$dst_path}.tgz
echo backing up $file to $dst
[[ ! -e "$dst" ]] && echo creating new tar && tar -czf "$dst" "$file" &
sleep 3
[[ `stat -f "%m" "$dst"` -lt `stat -f "%m" "$file"` ]] && echo updating tar && tar -czf "$dst" "$file" &
done
это резервное копирование одновременно и занимает менее 2 часов только потому, что bsdtar на Mac кажется однопоточным и узкое место является одним потоком @ 100% для каждого tar, поэтому он никогда не приближается к IO для резервного SSD на Thunderbolt
Есть идеи получше?