云服务器开通之后直接部署业务,是不少团队踩过的坑。移动云ECS在交付时虽然提供了干净的系统镜像,但默认配置离生产环境的要求还有一段距离。以CentOS为例,磁盘分区、内核参数、安全策略、时间同步这些细节如果没有在交付初期统一规划好,后期业务量上来之后再调整,代价会成倍增加。本文以一套实际可用的CentOS移动云ECS配置规范为蓝本,逐项说明配置内容和背后的原理。

一、系统初始化与磁盘分区规范
ECS实例的系统盘默认大小通常在40GB左右,数据盘需要手动挂载。规范的分区策略是系统盘只放操作系统和应用,业务数据、日志、数据库文件全部放数据盘。这样做的好处是系统盘可以做快照且容量可控,数据盘可以独立扩容,出问题时也能单独恢复。
数据盘挂载要使用UUID而不是设备名,因为云环境下设备名在重启后可能发生变化,直接写/dev/vdb存在挂载失败的风险。正确的做法是先格式化,再通过blkid获取UUID,写入/etc/fstab:
# 格式化数据盘为xfs格式,适合大文件和高并发场景 mkfs.xfs /dev/vdb mkdir -p /data # 获取UUID并写入fstab,使用noatime减少元数据更新 blkid /dev/vdb echo "UUID=xxxx-xxxx-xxxx /data xfs defaults,noatime 0 0" >> /etc/fstab # 校验fstab配置是否正确,避免重启后无法进入系统 mount -a && df -h
注意挂载选项中的noatime,它禁止更新文件访问时间戳,对于日志和数据库这类频繁读取的目录能减少可观的IO开销。执行完mount -a务必确认没有报错再重启,这是很多初学者因为fstab写错导致系统无法启动的经典事故点。另外swap的设置也要有规范:小内存实例建议保留2GB左右的swap作为OOM缓冲,使用swappiness=10`降低交换倾向。
二、网络配置与安全加固规范
移动云ECS的内网DNS和安全组策略是网络层面的第一道防线。系统内部配置上,CentOS 7以上版本默认使用NetworkManager,云环境建议改为传统的network服务管理,避免两个服务冲突导致IP配置丢失。同时要规范主机名、DNS和网卡配置文件的写法:
# 设置主机名并写入hosts解析 hostnamectl set-hostname app-server-01 echo "10.0.0.11 app-server-01" >> /etc/hosts # 网卡配置模板,云主机建议关闭零配置网络服务 cat > /etc/sysconfig/network-scripts/ifcfg-eth0 <<EOF TYPE=Ethernet BOOTPROTO=static NAME=eth0 DEVICE=eth0 ONBOOT=yes IPADDR=10.0.0.11 NETMASK=255.255.255.0 GATEWAY=10.0.0.1 DNS1=100.64.0.1 EOF systemctl disable NetworkManager systemctl enable network
安全加固方面,SSH是暴露面最大的服务。规范要求:修改默认端口、禁止root直接登录、仅允许密钥认证、限制来源IP。这些修改在/etc/ssh/sshd_config中完成,改完之后不要关闭当前会话,先开一个新终端验证能否登录,这是安全配置的基本操作纪律。
防火墙建议保留firewalld并按业务开放端口,不要为了省事直接关闭。SELinux在CentOS 8上使用Cilium类工具不便时可设置为Permissive模式观察日志,但不要长期关闭,开启SELinux的服务器对抗提权攻击的能力明显更强。配合移动云控制台的安全组,双层过滤才能形成完整防线。
三、内核参数与性能调优规范
内核参数的调整直接影响数据库、中间件和高并发应用的稳定性。规范化的做法是把所有调优参数集中写入/etc/sysctl.d/99-prod.conf,避免散落在/etc/sysctl.conf里难以维护。核心参数包括文件句柄数、TCP连接回收、TIME_WAIT优化等:
cat > /etc/sysctl.d/99-prod.conf <<EOF # 文件描述符与连接追踪 fs.file-max = 1048576 net.core.somaxconn = 32768 net.ipv4.tcp_max_syn_backlog = 16384 # TIME_WAIT快速回收与复用,适用于高并发短连接 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_fin_timeout = 15 # 连接追踪表大小 net.netfilter.nf_conntrack_max = 262144 # 降低swap使用倾向 vm.swappiness = 10 EOF sysctl --system
除了内核参数,文件描述符的限制要同时修改/etc/security/limits.conf和systemd服务的LimitNOFILE。CentOS 7之后通过systemd拉起的服务不再读取limits.conf,这一点经常被忽视,导致明明改了限制却依然报too many open files错误。正确做法是在服务unit文件中增加LimitNOFILE=65535`。
时间同步也是规范中的必查项。使用chrony替代老旧的ntpdate,配置移动云内网的NTP服务器地址,漂移超过阈值要有告警。时间不同步对MySQL主从复制、Kerberos认证、分布式锁这类场景是致命的。
四、软件源、监控与日志管理规范
CentOS官方源已停止维护,yum源必须替换为可用的归档源或移动云内网镜像源,内网源下载速度快且不消耗公网流量,是云主机的首选。替换后执行yum makecache验证,并关闭不必要的仓库降低依赖冲突概率。
基础软件包要有统一清单,例如vim、wget、curl、net-tools、sysstat、lrzsz、telnet等,通过自动化脚本一次性安装,保证所有机器环境一致。环境一致性是后续批量运维的前提,配置漂移是运维事故的重要来源之一。
日志管理规范要求修改/etc/logrotate.conf确保日志按周轮转并压缩,保留周期不超过8周,避免日志撑爆数据盘。同时安装移动云主机监控Agent,开启CPU、内存、磁盘使用率告警,阈值建议设置为磁盘80%、内存85%、CPU持续5分钟超过90%。这些指标在业务上线初期就能暴露容量问题,比事后救火成本低得多。
五、配置验收清单
所有配置完成后,建议按下面的清单逐项验收,确认无误后再交付业务:
- fstab挂载正确,重启一次验证数据盘自动挂载
- SSH仅允许密钥登录,root远程登录已禁止
- 内核参数生效,
sysctl -p无报错 - chrony时间同步正常,偏差小于1秒
- yum可用,基础软件包安装完整
- 监控Agent在线,告警通道测试通过
这份规范的核心思想是让每一台ECS在交付时都处于同一种已知状态。当所有服务器遵循同一套标准,无论是扩容、故障排查还是安全审计,效率都会显著提升。建议把整个初始化过程写成Ansible剧本或shell脚本固化下来,新机器开通后一条命令完成全部配置,这才是云时代该有的运维姿势。