去年年末由于使用了云存储和其余方面的缘由,计划的将服务器缩减一个机柜出来。这样今年每个月机房的费用能够减小1万左右。前先后后抽空在弄这个任务,现作个笔记小结下。以redis
服务和图片存储服务器的下架为主。php
原来一些机器的配置比较低,Redis 服务器比较多。去年新增的几台服务器都是128G,因此须要将原来的服务器集中存放到新服务器上。redis 数据库的迁移,也还算轻车熟路了。https://mengkang.net/424.html 数据同步完毕以后,再到业务代码中修改请求地址。
注意事项:
将启动命令添加到/etc/rc.local
中。
迁移前一段时间须要观察监控旧服务器的确是没有请求了,能够经过netstat
配合tcpdump
一块儿。好比迁移的时192.169.50.138
的6307
的业务。能够在138服务器上经过html
netstat -anc|grep "138:6307"
查看是否有请求,可是发现这个命令有时候不许,同时能够直接经过tcpdump
直接监控网卡的流量前端
tcpdump -i em2 -vv -nn host 192.168.50.138 and port 6307
最好是收集必定周期的日志,后期我就发现gearman
的业务的遗漏。java
由于使用了网宿的云存储,大部分的回源压力都是指向云存储的,而咱们源站只是作觉得一个备份,原来由于单机 I/O 压力过大和防止硬盘损坏,机房有4台磁盘阵列做为主要存储,本部分区存在冗余,如今下架三台。须要作的工做是将图片资源经过rsync
同步到一台服务器上,而后在前端主机nginx
配置回源的域名和对应的目录。(仍是有遗漏,部分用户头像被咱们直接搬回公司了,经过rsync
从公司回传到机房了,能够经过--bwlimit
参数限速。经过iptraf -g
来查看带宽使用状况。)nginx
好比上面说的gearman
的业务,通常守护进程都在crontab
都会有监控的shell
脚本。注意该服务的搬迁时,该服务的搬迁。有些服务可能一时半会没搬迁不会显露出问题,好比周报、月报数据,可能下个月才发现。
同时,因为gearman worker
程序是在我迁移redis
以前就以守护进程的形式常驻内存了,当我修改完各个redis
服务的请求地址时,gearman worker
的程序实际还没更新的,因此出现了上面说的老服务器还有请求的状况。同理这些和迁移的redis
有关的守护程序,重启下。web
因为咱们各个服务器都并不是单一职能的,因此可能用做其余业务。好比一台redis
服务器多是keepalived
的backup
。那么须要新找一台服务器添加为backup
,同时涉及到新nginx
环境的搭建,配置,旧的负载均衡服务器的配置修改(后端服务器ip
,图片资源回源请求地址等)。相似的还有php
,java
的配置等。
云服务的回源 web 服务器的配置(中间漏了一台,后期给补上了)。
同时,代码上下、分发脚本,服务批量重启脚本,也须要配合一块儿修改。redis
由于下架的机器分布在多个机柜,如今要腾出来一个机柜,那么有的机器就须要断电了,(比较暴力,见笑了。)因此须要以前要检查各个服务器的/etc/rc.local
文件,确保应该自启动的服务都已经添加了,其余初始化的配置也都正常。注意 Redis 缓存数据的保存和恢复。shell
迁移完毕以后,除了常规的业务代码,还须要注意图片资源的回源是否正常、服务器 I/O 压力是否正常、检查nginx
日志是否出现502
,500
,404
错误。数据库