我怎样才能加快我的Duplicity备份?

我需要从几台Xen虚拟机到同一networking的专用服务器上的几千兆字节的现场备份,并使用千兆连接。 数据主要是MySQL数据 – 我使用的是Percona XtraDB集群 – 用Xtrabackup在本地备份服务器,所以我猜这个数据应该是高度可压缩的。

目前我正在使用口令encryption(我没有使用密钥)的密码0.6.08b,因为我也rsync备份卷创build的副本到一些非现场存储。 压缩级别目前是6,volsize是250.备份需要比一天更长的时间,这就是我正在寻找build议的重复设置的原因,这会导致在不占用太多空间的情况下快速备份到本地networking共享存储。

任何想法?

您在评论中说,在这些备份中您看到的吞吐量大约为50 MB / s。

使用单个旋转盘(即没有镜像或条带化的RAID,允许读取分散在磁盘上以提高吞吐量),半个随机磁盘的吞吐量达到50 MB / s。 请注意,某些RAIDconfiguration可以有效地限制最慢的驱动器的最佳吞吐量。 是的,许多硬盘的额定容量高达200 MB / s,但请记住,这些数字是最好的顺序存取数字。 50 MB / s也是大约400 Mbit / s,在IPnetworking开销等方面有一些欺骗行为,在networking线路上达到500-600 Mbit / s,所以当你没有饱和千兆链路时,正在相当接近碰撞可能的领土。

在备份正在运行时,您不会提供CPU利用率的任何数字,除非说“有三个pipe理程序,每个虚拟机上有一堆虚拟机,或多或less都是忙碌的”。 但是复制数据和压缩数据并不是CPU密集型的,如果在备份运行的时候你有任何CPU时间可用,那么你就不是CPU限制的。 真正回答这个问题的唯一方法就是找出哪些因素限制了吞吐量 ,然后把重点放在那里。

我的猜测是你是I / O绑定,无论是读取或写入,并且你可能是networking绑定。 你谈的是一个千兆以太网连接的专用备份存储服务器,但是你不会说这个连接的性质。 物理主机之间的备份networking连接是共享的还是专用的? (如果每次只有一个VM或HV推送备份数据,则将每个HV连接到备份服务器的独立物理networking是可接受的。)

如果到备份服务器的物理networking连接与其他networking通信共享,则可以转到专用的连接体系结构。 从中得到的好处很大程度上取决于数据压缩的位置以及当前实际看到的冲突数量,但是如果您这样做,而没有别的方法,则可能会使networking吞吐量翻倍,因此,如果您是networking将备份时间减半。

如果您在读取和/或写入时遇到I / O限制,那么移动到允许将磁盘I / O分散到多个磁盘的镜像或条带化设置可能有助于提高吞吐量; 这会增加总的磁盘总线吞吐量。 当然,这有它自己的缺点。 根据您在任何时候推送多less数据,向备份存储服务器添加更快速的磁盘caching也可能有所帮助,但是我的怀疑是,如果您是I / O绑定,它在读取方面,因为写入可能或多或less的顺序,在这种情况下添加caching不会有什么帮助。

您也可以考虑移动到虚拟机或HV上的文件系统,和/或备份存储服务器上,将数据写入磁盘时进行即时压缩,或者在支持的情况下启用压缩。 这会花费CPU时间,但会增加有效的磁盘数据传输速率,因为对于存储的相同数量的用户空间数据,在物理盘片上移动和移出的数据较less。 在任何一种情况下,这是否是一个净收益,基本上是一种硬币抛售,需要根据具体情况进行评估,但对于特别是I / O限制的情况,这当然是一种可能性如果数据是高度可压缩的开始。 即使数据只能被压缩20%(相当于1.25:1的压缩比率,并且可以用例如自然语言文本完全实现),为了比较,使用gzip-9压缩的ZFS在采样时给出了1.20:1的压缩比包括图像在内的互联网站点),假设主机CPU能够跟上压缩和解压缩的速度,那么相同的50 MB / s盘片传输速率突然会使您传输超过60 MB / s的有用数据。 请注意,encryption数据应该压缩得非常差,因为它应该类似随机噪声; 如果你打算encryption数据,你通常会在encryption之前进行压缩,在这种情况下,encryption端的文件系统级压缩对你来说不会有任何好处。