资讯专栏INFORMATION COLUMN

记一次企业级存储规划及重大事故

leap_frog / 1506人阅读

摘要:存储规划是企业必须考虑到的因素,无限增大的资源不但需要管理维护,还需要考虑容灾备份的机制。这是一个致命的导火索月日过后一周,没有发现任何异常。

存储规划是企业必须考虑到的因素,无限增大的资源不但需要管理维护,还需要考虑容灾备份的机制。我公司在存储变化上,发现磁盘使用率马上超标的情况,发起了数据存储迁移的规划方案

一、静态资源架构 ①实施前节点架构:

res1-res10为10个静态资源节点,数据目录于/data/下挂载有2TB数据盘,通过nfs挂载32TB共享存储块位于/mnt下,数据通过rsync+sersync同步于/mnt目录,与32TB共享存储块保持实时状态

②实施后节点架构:

单数res节点为nfs-master,双数res节点为nfs-slave,每两节点共享一块32T的存储块,2T SSD数据盘依旧为程序目录,将以前静态资源目录/data/webapps/nginx/res/upload/cdn/node*变更为新路径/resource_nginx/res/upload/cdn/node*10个节点依旧为db共享存储的nfs-slave,实时同步静态资源

二、实施操作
①购入5块共享存储块
②10个实例每两个实例挂载一块共享存储,一共5块,采用nfs
③以前备份用了16T的共享存储块依旧做备份
④更改res静态目录,将2T中静态资源对拷入新存储块路径中,node1和node2节点的静态数据导入新块存储,将node3和node4的静态数据导入新块存储,将node5和node6的静态数据导入新块存储,每两个节点数据导入一新块,以此类推
⑤确认新数据同步到5块存储后开始实施更新
⑥将nginx中静态根路径更改为新res路径,更改中心配置config项目中resource项目的目录参数为新res路径
⑦逐调权重为0,重启项目平滑升级,重载nginx使得新路径生效
⑧确认项目输出日志是否异常
⑨测试功能上传与访问
⑩恢复权重,更改fstab,与备份块rsync+sersync路径
三、发生的问题

①8月1日更新过后,8月2日任务是需要恢复静态资源的备份方案,重新调整rsync+sersync的配置文件。由于运维过程中的疏忽,10台res节点少更改了res6的配置,下面附正常更改的文件与res6当时未更改的文件

需要恢复的正常rsyncd.conf的配置文件(举例为res1的)
[root@hmf_res1 ~]# cat /etc/rsyncd.conf

#rsync_config_________________start
#created by wang 2017-04-18 00:08
##rsyncd.conf start##
uid = root
gid = root
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rysnc.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 127.0.0.1/8
#hosts deny = 0.0.0.0/32
#auth users = rsync_backup
#secrets file = /etc/rsync.password
[node1]
path = /mnt/node1
[node2]
path = /mnt/node2
[node3]
path = /mnt/node3
[node4]
path = /mnt/node4
[node5]
path = /mnt/node5
[node6]
path = /mnt/node6
[node7]
path = /mnt/node7
[node8]
path = /mnt/node8
[node9]
path = /mnt/node9
[node10]
path = /mnt/node10

需要恢复的正常sersync中config.xml配置文件
[root@hmf_res1 ~]# cat /data/server/sersync/config/config.xml



    
    
    
    
        
        
        
        
    
    
        
        
        
        
        
        
        
        
    

    
        
            
            
            
        
        
            
            
            
            
            
        
        
        
            
                
                
            
        
        
    

    
          
        
            
            
        
    

    
        
            
        
    
    
        
            
            
            
        
    

当时未更改res6中rsyncd.conf配置文件,也就是规划项目之前的配置
[root@hmf_res6 ~]# cat /etc/rsyncd.conf

#rsync_config_________________start
#created by wang 2017-04-18 00:08
##rsyncd.conf start##
uid = root
gid = root
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rysnc.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 127.0.0.1/8
#hosts deny = 0.0.0.0/32
#auth users = rsync_backup
#secrets file = /etc/rsync.password
[node1]
path = /mnt/node1
[node2]
path = /mnt/node2
[node3]
path = /mnt/node3
[node4]
path = /mnt/node4
[node5]
path = /mnt/node5
[node6]
path = /mnt/node6
[node7]
path = /mnt/node7
[node8]
path = /mnt/node8
[node9]
path = /mnt/node9
[node10]
path = /mnt/node10
[resource]     #此处未删除配置,继续往新块里同步
path = /resource_nginx/res/upload/cdn/node6

未更改res6中sersync config.xml配置文件
[root@hmf_res6 ~]# cat /data/server/sersync/config/config.xml



    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    
         #此处未更改成新存储路径,还一直监听着原2T路径,但此路径已经不再写入数据
        
        
        
    
    
        
        
        
        
        
    
    
    
        
        
        
        
    
    
    

    
        
    
        
        
    
    

    
    
        
    
    
    
    
        
        
        
    
    

根据sersync同步的默认规则中,,此项参数为监听源服务器目录位置,如果在源服务器目录没有的文件,会进行删除,有的文件进行同步,保持文件相同状态。这是一个致命的导火索
③8月7日过后一周,没有发现任何异常。但是,在这段时间里res6节点中已经没有任何上传的新文件内容,因为在新路径一直在监听旧路径目录,旧路径一定是没有新文件的,res6接到上传的新文件就被删除,接到就被删除,遵循规则。此时已经res6早已经有大量的404,静态资源访问状态码的监控也没有做到位
④正好在这天接到了可以删除旧路径数据的许可,运维过程中使用rm命令删除旧数据

rm -rf /data/webapps/nginx/res/cdn/upload/node1/*
rm -rf /data/webapps/nginx/res/cdn/upload/node2/*
rm -rf /data/webapps/nginx/res/cdn/upload/node3/*
rm -rf /data/webapps/nginx/res/cdn/upload/node4/*
rm -rf /data/webapps/nginx/res/cdn/upload/node5/*
rm -rf /data/webapps/nginx/res/cdn/upload/node6/*
rm -rf /data/webapps/nginx/res/cdn/upload/node7/*
rm -rf /data/webapps/nginx/res/cdn/upload/node8/*
rm -rf /data/webapps/nginx/res/cdn/upload/node9/*
rm -rf /data/webapps/nginx/res/cdn/upload/node10/*

8月8日,事故发生,res6节点静态资源访问状态码大量404,第一时间查看访问日志,发现在删除旧数据到现在的时间里已经逐渐报出404,等到7日半夜时已经全部404。意识到是数据出了问题,发现新块存储中数据不存在/resource_nginx/res/cdn/upload/node6/,准备恢复备份,却又发现备份的数据也不存在了/mnt/node6/

原因是sersync监听路径/data/webapps/nginx/res/cdn/upload/node6/同步到目标服务器两个路径中/resource_nginx/res/cdn/upload/node6、/mnt/node6

四、解决问题

①问题一的解决:运维过程中,发生漏配,误配的问题,一定是自动化统一运维没有做到位。之后的架构运维中采用saltstack,设置主机组,实现统一cmd,统一分发文件以及监控

nodegroups:
  hmf_res: "L@hmf_res1,hmf_res2,hmf_res3,hmf_res4,hmf_res5,hmf_res11,hmf_res7,hmf_res8,hmf_res9,hmf_res10"


salt -N "hmf_res" cmd.run "command"    #指定分组统一管理

②问题二的解决:在生产环境中,如果没有刻意要求源服务器与目标服务器的文件一致性的话,请务必关闭此默认项
更改sersync主配文件

③问题三的解决:在监控服务器上加强完善监控脚本,对出现大量的404 500 502状态码上做优化

④存储的规划眼界一定要放远,计划赶不上变化,无限增大的资源绝对不能拘束于成本。请慎用rm命令。在使用它时,请明知它会带来的后果

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/46104.html

相关文章

  • 一次业级存储规划重大事故

    摘要:存储规划是企业必须考虑到的因素,无限增大的资源不但需要管理维护,还需要考虑容灾备份的机制。这是一个致命的导火索月日过后一周,没有发现任何异常。 存储规划是企业必须考虑到的因素,无限增大的资源不但需要管理维护,还需要考虑容灾备份的机制。我公司在存储变化上,发现磁盘使用率马上超标的情况,发起了数据存储迁移的规划方案 一、静态资源架构 ①实施前节点架构: showImg(https://se...

    Karuru 评论0 收藏0
  • 企业头疼的数据安全问题,戴尔开出了药方

    摘要:年月日上午,戴尔解决方案顾问李晓东联手戴尔企业部销售经理杨瑛将通过在线语音研讨会的形式,带来企业数据安全解决方案专题讲座,详细介绍戴尔为成长型企业定制的一系列数据安全解决方案。随着云计算、大数据、物联网技术越来越成熟,企业管理者们几乎每天都不可避免的会看到诸如大数据或云服务这样的字眼。为了确保在当今的市场上具有竞争力,紧跟最新科技潮流,大多数企业必须选择上云,使用大数据分析业务。事实上,据I...

    Anchorer 评论0 收藏0
  • 阿里云出现大规模故障 “多云”部署或成趋势

    摘要:昨天凌晨,阿里云出现大规模故障,导致部分互联网公司和运行不畅,甚至瘫痪。阿里云表示,针对此次故障,将根据协议,尽快处理赔偿事宜,但并未公开详细的赔偿细节。事实上,这并非阿里云首次出现故障。由此可见,阿里云此次宕机事件影响程度着实不小。昨天凌晨,阿里云出现大规模故障,导致部分互联网公司和App运行不畅,甚至瘫痪。一时之间,阿里云官微下几乎被反馈宕机问题的留言攻陷,有网友调侃称,程序员、运营和运...

    xiaodao 评论0 收藏0
  • 信息时代:云计算的五个变化

    摘要:云计算的出现是信息技术时代最重大的转变之一,特别是对于企业而言。首先,多样化合作伙伴关系是防止数据丢失或云计算故障时停机的一种方法。有效使用云计算需要制定多云计划,以获得最佳业务成果。对于当今云计算行业发生的重大变化,并没有一种通用的方法。云计算的出现是信息技术时代最重大的转变之一,特别是对于企业而言。但就像天空上变幻不定的云朵一样,云计算技术也在不断变化。企业CEO都应做好充分准备,以最大...

    arashicage 评论0 收藏0
  • 中国互联网发展之5G、人工智能、云计算、大数据等新兴科技发展状况

    摘要:截至年月,全国已有个省区市发布了人工智能规划,其中个制定了具体的产业规模发展目标。年我国企业相继发布人工智能芯片。五大数据发展情况在促进大数据发展行动纲要等政策的指 showImg(http://upload-images.jianshu.io/upload_images/13825820-5b1886a2a4a6c96f.jpg?imageMogr2/auto-orient/stri...

    learn_shifeng 评论0 收藏0

发表评论

0条评论

leap_frog

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<