一组服务器架构手记

设备信息
1,兆维机房,20M宽带,机柜x1,最大容量14台1U服务器,ip若干
2,思科48口交换机,12×4,也就是一组内网机器最多12台
3,DELL R420x10,1U,E5-2420*2 64G 4*600G 15K H710 512M DVD 550W,带远控卡
4,存储设备用了便宜的西数My Cloud EX4 NAS,做日志文件备份,16Gx2,稳定性待考察

第一步,网段分配
1,外网,8.8.8.8 – 8.8.8.20
2,内网,192.168.1.8 – 192.168.1.20
3,远程卡管理网,10.1.1.8 – 10.1.1.20

考虑到机器维护方便,机器根据外网ip命名,这个命名方式有待考究,目标是为了方便识别设备,但如果换了外网IP,就比较蛋疼了。
最好的方法还是根据设备的业务命名并加编号,如MYSQL01-02,PHP01-05,NAS01-NAS02。

第二步,设备上架
1,配置安全策略,基本的方法,提供外网服务器的设备不开放ssh,需要使用内网设备做跳板访问;跳板设备不允许root登陆,只允许公钥而不允许密码登陆(有的公司走VPN管理,则只允许指定IP登陆)
2,开启防火墙,关闭弱口令,配置IP,确认内网外网通训成功
3,一般都需要在外网通过管理远程控制卡远程设备,则需要开通两个网段的路由,如 route add -net 10.1.1.0/24 gw 192.168.1.1,然后再通过代理或者SSH隧道的方式,在外网去访问远控卡设备
4,配置HOSTNAME

第三步,统一运行环境
1,制作系统初始化脚本,如

  1. 升级Centos到最新,并安装常见依赖,比如gcc automake openssl
  2. 配置ntpdate同步任务,统一时间
  3. 制作hosts表,把常见业务都列一遍,比如mysqlmaster,mysqlsalve,phpmaster,phpslave,memcachemaster,有条件的可以配集群dns
  4. 添加常用源,比如nginx、Mysql、php,喜欢自己编译的同学忽略
  5. 编写环境安装命令脚本,如php及php常见组件,并根据需求和压力调优出配置文件,以便在其它设备上同步
  6. 配置SNMPD服务,中小团队推荐使用监控宝的服务,不过我这段时间发现360的云监控倒有点发力的感觉,有待深入研究
  7. 配置常见开机启动项,如mysql,php-fpm,nfs,sshd
  8. 创建一致的web目录,方便自动化部署
  9. 使用rsync同步的,还需要创建并复制一致的ssh公钥

2,通过git来管理上面编写的脚本,分别在需要在统一环境的设备上执行

第四步,配置服务器集群
1,启用NAS设备的NFS服务,在需要同步文件的设备上启用NFS,绑定好目录,并配置fstab文件
2,使用LVS或者Nginx创建web业务集群
3,使用mysql-proxy、Cobar、Amoeba构建Mysql读写集群

Dell Remote Access Controller (iDRAC) 远控卡设备常见问题
1,扔掉你的mac,唉,各种不兼容,各种问题。比如JAVA在MAC下,无法在64位的Chrome下安装控件,最好使用IE7
2,iDRAC默认使用HTTPS协议,如果要用Nginx做代理,在外网端口做映射的话,会遇到各种问题,推荐SSH隧道来访问,MAC下推荐iSSH这个小工具