技术解析

请教个网站服务器的备份方案,单台服务器包含大量网站的。
0
2021-07-28 06:58:50
idczone
目前有一台服务器,里面几十个网站,文件可能有十几G,数据库备份好说,关键是网站文件备份,本来打算使用Dropbox的自动备份脚本的,这个也没问题,问题在于:使用cp命令把这么多网站文件复制到另外一个备份目录的时候,服务器会卡住,有时候连网站都访问不了。 但是服务器的CPU和内存占用正常,比较低的水平。唯一不同的貌似IO上升的很快,达到50%上下。

请教这个问题要如何解决呢?

顺便贴个服务器的硬件配置


System hostname 909A6.securedservers.com (127.0.1.1)
Operating system Debian Linux 6.0
Webmin version 1.590
Time on system Thu Aug 30 01:18:17 2012
Kernel and CPU Linux 2.6.32-5-amd64 on x86_64
Processor information Intel(R) Xeon(R) CPU E3-1270 V2 @ 3.50GHz, 8 cores
System uptime 0 hours, 46 minutes
Running processes 193
CPU load averages 4.48 (1 min) 5.23 (5 mins) 4.59 (15 mins)
CPU usage 0% user, 0% kernel, 42% IO, 57% idle
Real memory 15.68 GB total, 2.12 GB used

Virtual memory 18.87 GB total, 0 bytes used

Local disk space 439.88 GB total, 71.31 GB used

Package updates All installed packages are up to date
试过 rsync 没?

没有欸...

我只知道,有大量磁盘IO时,系统的确会卡的动不了。。。

你是每次都做全备的?这种情况增量备份不应该啊。

不过看了下,感觉确实比cp要好一些,研究研究。

确实要全备份...并且cp之后,还要tar... 这个问题好头痛啊... 如果增量备份的到也没关系,因为只要定期打包应该就没多大问题吧...

cp命令之后,就动不了了,你也不知道到底是复制完了还是只复制了一半...再开一个终端倒是没问题。

rsync, 或者 lftp mirror

用crontab放到凌晨执行,你观察一下哪个时间段服务器的访问量最低。

普通磁盘遇到cp自然这样。
rsync是王道
rsync一是实现增量备份,减少传输文件的磁盘IO
然后找个不那么卡的时段自动tar就可以。效果和全备又没差。。

为什么没人想到用GIT呢?
在源那里做一个repository, 定期的commit;
在目的位置定期的pull, 简单好用。GIT用的资源不多。

ls这个好啊。。

AWS S3
s3cmd sync . s3://your_bucket/path/

如果有2台服务器了,NC开TCP端口同步吧

qrsync,比 aws/s3 好用多了,谁用谁知道!https://github.com/qiniu/devtools/tree/master/qrsync

国内的服务不敢使用...尤其是涉及到大量数据的,安全不安全是一回事,网站能做多久又是一回事。

这个可以跟dropbox配合么...

根据经验,GIT文件夹体积膨胀很快,打包速度很慢,并不适用于备份。
增量备份,基于git packfile的 https://github.com/apenwarr/bup 更适合,python写的.
采用 rolling checksum algorithm (similar to rsync) 分割大文件.
直接写packfile,避免git的repacking过程,速度更快.
支持ssh远程拷贝,增量备份,par2冗余备份,fuse访问等.
就是命令行很丑,文档太少。。。
Bup里面也提到: Unfortunately, git itself doesn't actually behave very well for bup's use case (huge numbers of files, files with huge sizes, retaining file permissions/ownership are important), so we mostly don't use git's code except for a few helper programs. For example, bup has its own git packfile writer written in python.

这个体积不应该会很大。
我们有个项目有十年的历史, .git目录也不过200M+, 这里的commit一两天就会有, 频繁的每天都几个。 这个应该赶不上文件增加的速度。
关于大文件, 不太清楚网站服务器, 会有很多大文件吗?
只是觉得GIT可以用于备份, 而且简单方便, 学习成本应该也不高吧,如果LZ会的话?
刚看了下, rsync是个不错的选择。


dropbox在这里可以只是个目录,如果目的位置是dropbox这个目录自然就可以了。 不过dropbox自身的文件差异检查是会重命名保存冲突文件,这个会很麻烦。可能dropbox本身已经有解决办法,但我不知道, 我对它不熟。

rsync +1
一定要用 3.0 以后的版本,尤其好用… 增量备份,速度那是嗖嗖的…

rsync是自己可以设定定时运行,还是需要自己添加个任务?

自己添加任务吧,rsync不能设置定时运行的

看看这个思路
http://zlz.im/mt-vps-maintainence-and-godaddy-online-storage/

通过 cron 定时运行

rsync + cron

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服