V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
nonozone
V2EX  ›  Linux

请教个网站服务器的备份方案,单台服务器包含大量网站的。

  •  
  •   nonozone ·
    nonozone · 2012-08-30 16:25:21 +08:00 · 5531 次点击
    这是一个创建于 4468 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前有一台服务器,里面几十个网站,文件可能有十几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
    25 条回复    1970-01-01 08:00:00 +08:00
    saturn
        1
    saturn  
       2012-08-30 16:41:20 +08:00
    试过 rsync 没?
    nonozone
        2
    nonozone  
    OP
       2012-08-30 16:58:26 +08:00
    @saturn 没有欸...
    aoyoo
        3
    aoyoo  
       2012-08-30 17:00:18 +08:00
    我只知道,有大量磁盘IO时,系统的确会卡的动不了。。。
    halfbloodrock
        4
    halfbloodrock  
       2012-08-30 17:00:26 +08:00
    你是每次都做全备的?这种情况增量备份不应该啊。
    nonozone
        5
    nonozone  
    OP
       2012-08-30 17:05:11 +08:00
    @saturn 不过看了下,感觉确实比cp要好一些,研究研究。
    nonozone
        6
    nonozone  
    OP
       2012-08-30 17:07:00 +08:00
    @halfbloodrock 确实要全备份...并且cp之后,还要tar... 这个问题好头痛啊... 如果增量备份的到也没关系,因为只要定期打包应该就没多大问题吧...
    nonozone
        7
    nonozone  
    OP
       2012-08-30 17:08:06 +08:00
    @aoyoo cp命令之后,就动不了了,你也不知道到底是复制完了还是只复制了一半...再开一个终端倒是没问题。
    eric_q
        8
    eric_q  
       2012-08-30 17:08:06 +08:00
    rsync, 或者 lftp mirror
    kgen
        9
    kgen  
       2012-08-30 17:38:40 +08:00
    用crontab放到凌晨执行,你观察一下哪个时间段服务器的访问量最低。
    feiandxs
        10
    feiandxs  
       2012-08-30 17:54:16 +08:00
    普通磁盘遇到cp自然这样。
    rsync是王道
    rsync一是实现增量备份,减少传输文件的磁盘IO
    然后找个不那么卡的时段自动tar就可以。效果和全备又没差。。
    dhysum
        11
    dhysum  
       2012-08-30 22:35:45 +08:00
    为什么没人想到用GIT呢?

    在源那里做一个repository, 定期的commit;
    在目的位置定期的pull, 简单好用。GIT用的资源不多。
    sophy
        12
    sophy  
       2012-08-30 23:15:17 +08:00
    ls这个好啊。。
    kernel1983
        13
    kernel1983  
       2012-08-30 23:40:07 +08:00
    AWS S3
    s3cmd sync . s3://your_bucket/path/
    dianso
        14
    dianso  
       2012-08-30 23:51:12 +08:00
    如果有2台服务器了,NC开TCP端口同步吧
    404
        15
    404  
       2012-08-31 01:41:22 +08:00
    @kernel1983 qrsync,比 aws/s3 好用多了,谁用谁知道!https://github.com/qiniu/devtools/tree/master/qrsync
    nonozone
        16
    nonozone  
    OP
       2012-08-31 10:02:23 +08:00
    @404 国内的服务不敢使用...尤其是涉及到大量数据的,安全不安全是一回事,网站能做多久又是一回事。
    nonozone
        17
    nonozone  
    OP
       2012-08-31 10:02:58 +08:00
    @dhysum 这个可以跟dropbox配合么...
    HowardMei
        18
    HowardMei  
       2012-08-31 10:05:43 +08:00
    @dhysum 根据经验,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.
    dhysum
        19
    dhysum  
       2012-08-31 11:00:05 +08:00
    @HowardMei 这个体积不应该会很大。

    我们有个项目有十年的历史, .git目录也不过200M+, 这里的commit一两天就会有, 频繁的每天都几个。 这个应该赶不上文件增加的速度。

    关于大文件, 不太清楚网站服务器, 会有很多大文件吗?

    只是觉得GIT可以用于备份, 而且简单方便, 学习成本应该也不高吧,如果LZ会的话?

    刚看了下, rsync是个不错的选择。


    @nonozone
    dropbox在这里可以只是个目录,如果目的位置是dropbox这个目录自然就可以了。 不过dropbox自身的文件差异检查是会重命名保存冲突文件,这个会很麻烦。可能dropbox本身已经有解决办法,但我不知道, 我对它不熟。
    avenger
        20
    avenger  
       2012-08-31 11:03:31 +08:00
    rsync +1
    一定要用 3.0 以后的版本,尤其好用… 增量备份,速度那是嗖嗖的…
    nonozone
        21
    nonozone  
    OP
       2012-08-31 11:11:12 +08:00
    @avenger rsync是自己可以设定定时运行,还是需要自己添加个任务?
    dworld
        22
    dworld  
       2012-08-31 11:17:29 +08:00
    自己添加任务吧,rsync不能设置定时运行的
    hzlzh
        23
    hzlzh  
       2012-08-31 11:17:32 +08:00
    avenger
        24
    avenger  
       2012-08-31 14:39:36 +08:00
    @nonozone 通过 cron 定时运行
    fanweixiao
        25
    fanweixiao  
       2012-09-05 18:55:14 +08:00
    rsync + cron
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2642 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 11:17 · PVG 19:17 · LAX 03:17 · JFK 06:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.