Home | 简体中文 | 繁体中文 | 杂文 | 知乎专栏 | Github | OSChina 博客 | 云社区 | 云栖社区 | Facebook | Linkedin | 视频教程 | 打赏(Donations) | About
知乎专栏多维度架构 微信号 netkiller-ebook | QQ群:128659835 请注明“读者”

21.2. 机房迁移

总结一下5年前的工作,在不写下来自己都快忘光了,工作关系现在已经不涉及运维这块的工作。

21.2.1. 拓扑确立

首先制定服务器拓扑图,拓扑图应该有两套,一套是物理拓扑图,另一套是基于业务的虚拟拓扑图。

物理拓扑图包含机柜,机位,例如防火墙,核心交换机,机柜交换机,服务器,存储等等他们之间的物理关系。如果是云主机也许标注出来。

接下来分配IP地址以及服务端口号

最后制定虚拟拓扑图,是各种服务间的关系图,由IP地址和端口组成,标住出他们之间的关系。

21.2.2. 存储规划

什么东西放在什么地方,怎么规划空间等等。

21.2.2.1. RAID Disk Group 规划

根据不同用途使用不同的RAID,这主要跟IO密集都与数据安全性有关。

Virtual Disk 技术很有用,我使用这种技术两RAID划分为两个设备,一个用来安装操作系统,另一个用于数据存储,方便系统重做。

SSD 机械故障为零,整体故障率低于传统硬盘。我通常做RAID0用与负载均衡场景。

21.2.2.2. 文件系统规划

我通常使用btrfs,LVM/EXT4已经过时。

/ 分区EXT4 安装操作系统,swap 分区不一定是内存2倍,因为现在的服务器都是8~16GB,OS很少能使用到交换分区,但是像Oracle这样强制交换分区为内存两倍。

其余所有空间分区格式化为btrfs mount 到 /srv 目录,在通过子卷(subvolume)分配给各个应用。

[提示]提示
子卷(subvolume) 有个特点是不能rm -rf 删除子卷的,也起到一定的安全性。

21.2.2.3. 目录规划

以Tomcat为例

Tomcat 的虚拟机功能基本没用,因为需要升级需要频繁启动,会影响其他业务,所以采用每个项目一个实例的方式。

			
/srv/apache-tomcat/ 是Tomcat目录
/srv/apache-tomcat/www.netkiller.cn 每个实例一个目录
/srv/apache-tomcat/other.netkiller.cn
			
			

以PHP为例

/srv/php-7.0.0
ln -s /srv/php-7.0.0 /srv/php
			

通过 /srv/php 符号链接可以任意切换PHP版本

代码目录与服务器目录分开

			
/www/netkiller.cn/www.netkiller.cn
/www/netkiller.cn/other.netkiller.cn
			
			

21.2.3. 设备上架

按照物理图谱图,对应机位安装设备,链接网线,整理机柜。

注意强弱电分离,以免强电磁场干扰弱电。以Dell系列服务器为例,电源通常在右边,网口在中间左边,这样电源走机会右侧理线架,网线走左侧理线架。

我通常每个机柜放两台千兆交换机,一台放在机柜最顶端,通过10GB万兆以太网链接至核心交换机,走核心业务数据;另一台放在机柜最底端,负责其他次要业务,例如远程控制口,数据库备份等等。

上电,接通电源,开机。观察机柜的电压/电流变化。

21.2.4. 操作系统初始化

安装操作系统,系统裁剪,内核优化,时区设置,配置history格式(记录每条发出命令的时间点),TCP栈优化

安装自动化运维客户端,监控客户端

21.2.5. 服务器及运行环境

通过脚本或者自动化运维工具按照并配置。

安装各种服务器软件如 nginx, apache-httpd, apache-tomcat ......

软件运行环境,例如Java,PHP, Node.js, Ruby, Python ......

安装数据库,配置复制策略,备份计划

21.2.6. 部署应用程序

配置管理员通过虚拟拓扑提供的IP地址,端口号以及运维提供的账号密码配置应用程序。

然后部署应用程序到远程服务器

21.2.7. 监控系统

应用程序部署完毕后不要急着测试,可能很多IP地址以及端口不通,这时候测试只能是频繁报BUG。

我们先让将监控系统建立起来,监控所有服务器IP地址与端口,以及各种应用服务监控。

硬件监控: 温度监控,风扇监控,RAID卡监控,内存监控,PCI设备监控...

操作监控:负载,CPU,内存,用户登陆监控,磁盘空间监控,网络流量监控,TCP/IP状态监控,进程数量,线程监控,僵尸进程,进程退出...

服务器监控:连接数,线程数,进程数,内存开销,节点状态...

日志监控:如果监控到日志中出现某些关键次,发出警报。

服务监控:HTTP,SMTP,POP,AJAX/JSON,XML

21.2.8. 日志中心

所有的日志应该实时同步到日志中心,便于开发与测试人员实时观察服务器的状态

21.2.9. 测试

当我们看到监控系统报表中的各种服务器都畅通无阻时就可以进行验收测试,测试的时候需要关注监控系统的图标,与日志中心的日志变化。

安全测试:硬件防火墙规则,服务器防火墙规则,SSL证书,服务器版本号隐藏,操作系统权限检查

压力与性能测试

业务功能测试