资讯专栏INFORMATION COLUMN

我的服务器迁移踩坑经验分享

Developer / 2483人阅读

摘要:去年年底因为使用了云存储和其他方面的原因,计划的将服务器缩减一个机柜出来。云服务的回源服务器的配置中间漏了一台,后期给补上了。监控迁移完毕之后,除了常规的业务代码,还需要注意图片资源的回源是否正常服务器压力是否正常检查日志是否出现错误。

去年年底因为使用了云存储和其他方面的原因,计划的将服务器缩减一个机柜出来。这样今年每月机房的费用可以减少1万左右。前前后后抽空在弄这个任务,现做个笔记小结下。以redis服务和图片存储服务器的下架为主。

Redis 的迁移

原来一些机器的配置比较低,Redis 服务器比较多。去年新增的几台服务器都是128G,所以需要将原来的服务器集中存放到新服务器上。redis 数据库的迁移,也还算轻车熟路了。https://mengkang.net/424.html 数据同步完毕之后,再到业务代码中修改请求地址。
注意事项:
将启动命令添加到/etc/rc.local中。
迁移前一段时间需要观察监控旧服务器的确是没有请求了,可以通过netstat配合tcpdump一起。比如迁移的时192.169.50.1386307的业务。可以在138服务器上通过

netstat -anc|grep "138:6307"

查看是否有请求,但是发现这个命令有时候不准,同时可以直接通过tcpdump直接监控网卡的流量

tcpdump  -i em2 -vv -nn host  192.168.50.138 and  port 6307

最好是收集一定周期的日志,后期我就发现gearman的业务的遗漏。

图片存储的重构

因为使用了网宿的云存储,大部分的回源压力都是指向云存储的,而我们源站只是做以为一个备份,原来因为单机 I/O 压力过大和防止硬盘损坏,机房有4台磁盘阵列作为主要存储,本部分区存在冗余,现在下架三台。需要做的工作是将图片资源通过rsync同步到一台服务器上,然后在前端主机nginx配置回源的域名和对应的目录。(还是有遗漏,部分用户头像被我们直接搬回公司了,通过rsync从公司回传到机房了,可以通过--bwlimit参数限速。通过iptraf -g来查看带宽使用情况。)

Crontab 的检查

比如上面说的gearman的业务,一般守护进程都在crontab都会有监控的shell脚本。注意该服务的搬迁时,该服务的搬迁。有些服务可能一时半会没搬迁不会显露出问题,比如周报、月报数据,可能下个月才发现。
同时,由于gearman worker程序是在我迁移redis之前就以守护进程的形式常驻内存了,当我修改完各个redis服务的请求地址时,gearman worker的程序实际还没更新的,所以出现了上面说的老服务器还有请求的情况。同理这些和迁移的redis有关的守护程序,重启下。

架构体系的更新

由于我们各个服务器都并非单一职能的,所以可能用作其他业务。比如一台redis服务器可能是keepalivedbackup。那么需要新找一台服务器添加为backup,同时涉及到新nginx环境的搭建,配置,旧的负载均衡服务器的配置修改(后端服务器ip,图片资源回源请求地址等)。类似的还有php,java的配置等。
云服务的回源 web 服务器的配置(中间漏了一台,后期给补上了)。
同时,代码上下、分发脚本,服务批量重启脚本,也需要配合一起修改。

关机重启

因为下架的机器分布在多个机柜,现在要腾出来一个机柜,那么有的机器就需要断电了,(比较暴力,见笑了。)所以需要之前要检查各个服务器的/etc/rc.local文件,确保应该自启动的服务都已经添加了,其他初始化的配置也都正常。注意 Redis 缓存数据的保存和恢复。

监控

迁移完毕之后,除了常规的业务代码,还需要注意图片资源的回源是否正常、服务器 I/O 压力是否正常、检查nginx日志是否出现502,500,404错误。

没看够 最近老铁开了直播,欢迎来捧场!

PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路

PHP 进阶之路 - 亿级 pv 网站架构实战之性能压榨

PHP 进阶之路 - 后端多元化之快速切入 Java 开发

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

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

相关文章

  • html2canvas以及domtoimage的使用踩坑总结

    摘要:本人建议第二种,更保险三转换的位图不能被以上版本所识别。客户使用的时候发现了这个问题,没法。五离成功只有一步之遥了,使用了之后安卓手机不能将图片分享给朋友。识别不了问题分析安卓能识别但不能识别矢量图片解决办法自己手写咯。判断手机为安卓还是。 前言 首先做个自我介绍,我是成都某企业的一名刚刚入行约一年的前端,在之前的开发过程中,遇到了问题,也解决了问题,但是在下一次解决相同问题的时候,只...

    邹强 评论0 收藏0
  • html2canvas以及domtoimage的使用踩坑总结

    摘要:本人建议第二种,更保险三转换的位图不能被以上版本所识别。客户使用的时候发现了这个问题,没法。五离成功只有一步之遥了,使用了之后安卓手机不能将图片分享给朋友。识别不了问题分析安卓能识别但不能识别矢量图片解决办法自己手写咯。判断手机为安卓还是。 前言 首先做个自我介绍,我是成都某企业的一名刚刚入行约一年的前端,在之前的开发过程中,遇到了问题,也解决了问题,但是在下一次解决相同问题的时候,只...

    MageekChiu 评论0 收藏0
  • 一次难得的分库分表实践

    摘要:烦人的数据迁移分表规则弄好后其实只是完成了分表的第一步,真正麻烦的是数据迁移,或者说是如何做到对业务影响最小的数据迁移。 showImg(https://segmentfault.com/img/remote/1460000020003851?w=1920&h=1080); 背景 前不久发过两篇关于分表的文章: 一次分表踩坑实践的探讨 分表后需要注意的二三事 从标题可以看得出来,当...

    Harpsichord1207 评论0 收藏0
  • 分表后需要注意的二三事

    摘要:分表字段的选择。问题产生之前提到在分表应用上线前我们需要将原有表的数据迁移到新表中,这样才能保证业务不受影响。虽说凌晨的业务量下降,但依然有少部分的请求过来,也会出现各种数据库异常。 showImg(https://segmentfault.com/img/remote/1460000019462791?w=496&h=285); 前言 本篇是上一篇《一次分表踩坑实践的探讨》,所以还没...

    dongxiawu 评论0 收藏0

发表评论

0条评论

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