公司描述
- 北京云帧科技有限公司,产品是一套私有云实验平台,主要给各个高校的计算机系使用。
- 因为现在很多高校都在开展Linux云计算,相关课程。学生通常在本地用vmware搭建虚拟机,这样很不方便进行统一的留作业和考试。
- 有了云实验平台,学生可以自己在实验平台上执行创建,恢复,开启,关闭等操作来管理自己的虚拟机,最后以镜像方式提交作业或者考试试卷。
外派实施:
辽宁北软信息职业技术学院-综合实验平台
- 了解客户的使用规模,大概有多少学生用,按每个学生15台虚拟机计算出工作节点的配置和数量(比如学校里50人大概500台虚拟机,需要4台40C 256GB)
- 去客户现场服务器配RAID(主要是存储服务器、通常是RAID5),安装系统(这一步不是那么容易,各种服务器都会遇到,进raid配置、bios等。。),分区
- 根据客户网络规划好管理、存储、计算节点*n的IP地址,上传安装包使用ansible进行一键部署
- 导入客户的学生数据或者和客户的接口对接,为每个学生创建实验环境(20台虚拟机+1路由器),自测使用
- 让客户学生大规模测试使用,也就是压力测试,这时会出现各种各样问题,大部分都是使用者导致的,这时要教会大家使用。
- 与客户加微信或微信群,了解客户使用过程中的问题,远程(向日葵、toDesk)为客户解决问题。
- 定期对用户数据库进行备份(mysqldump),查看告警(普罗米修斯),版本变更(通常是有BUG才会去更新、新功能不会主动更新、稳定第一)
- 编写测试报告和销售沟通,涉及到一些个钱的事,或者是用户使用体验之类的文档
遇到的问题:
- 学生也是通过VPN连接实验环境,VPN服务器开机开启内核转发(通过tcpdump抓包解决,echo 1 > /proc/sys/net/ipv4/ip_forward)
- 学生连接VPN后无法操作虚拟机,将客户和虚拟机MTU改为1300(通过tcpdump抓包解决,想想以包运包)
- 学生连接VPN后无法上网,删除路由0.0.0.0/1(在家连VPN的都会遇到)
- 路由器虚拟磁盘中缺少76的端口映射(通过tcpdump抓包解决,学生实验环境BUG,想想映射76的22和80端口,作为一个BUG理解,ansible)
- 两个客户端同时登录一个账号,多个客户端IP冲突(通过后台的登录日志解决,看到相同的账号从不同的客户端IP登入,用户使用问题,但也要让你去解决)
- 客户端电脑时间不对,导致密钥有效期过期(学生客户端电脑时间为2001年,导致VPN密钥过期)
- 虚拟路由器增加到学生的虚拟机列表里(学生反应不知道如何连接自己的路由器,回公司让研发改进更新)
- 计算节点top里的wa过高,通过独立存储节点8块固态做RAID5解决(根据实际情况做出优化)
- 计算节点死机,是客户那边导致的问题,启动后远程做恢复(管理节点会自动剔除,启动后用脚本再加入集群)
- 存储节点或管理节点死机,整个系统瘫痪,但数据不会丢,按照流程从存储、管理、计算开始重启恢复搭建
- 客户端把VPN适配器删了,磁盘爆满
- 计算节点是二手服务器,有可能会死机,加定时任务剔除死掉节点
- 有的学生开的虚拟机太多,wa过高,而且有狂写磁盘操作,定时关闭一些长期不连接的虚拟机,不会丢数据
- 安装前后端分离题库项目时用node18,但与centos7不兼容,源码编译node18
数据库优化:
针对查询语句优化:
- 启动慢查询日志设置查询超时时间,参数:slow_query_log &&long_query_time
- 导出慢查询记录: mysqldumpslow /var/lib/mysql/host-slow.log
查询缓存:
- have_query_cache
- 对比com_select/qcache hits
- 常查询数据做索引
- 扩大索引缓存(MYISAM)--数据只读或需频繁全文搜索 key_read/key_read requests 值对比
设置缓存表:
- table open cache:缓存表数量
- 查看是否合理:show globalstatus like"open%tables"
- 缓存的表小于限制表,且历史打开的表数量与限制数量相差不大
设置最大并发数量
- 查看设置最大并发连接数:show variables like"max connections
- 查看历史最大并发连接数:show status like"Max used connections
- 预留15%并发空间为合理
体验地址:
http://oa.jxit.net.cn 账号:jx21080001密码:qdcloud

项目环境:
- CentOS7 Linux系统、KVM、NFS、JDK8、MySQL、openvpn、iptables等
- 开发语言:Java提供网页端访问、MySQL提供配置存储、NFS提供KVM集群存储、浏览器通过tomcat cgi访问Shell脚本实现虚拟机的管理
项目描述:
- 系统最低为三台服务器,一台管理+存储,两个计算节点,其中管理至少两个网卡。
- 每个学生在所有计算节点创建一个vxlan隧道网桥,相当于该学生的虚拟交换机(网段10.10.10.0/24)。
- 每个学生都有一个路由器,LAN口接入该学生的vxlan网桥,WAN口桥接到计算集群物理交换机(网段10.16.0.0/16),并根据学号分配固定IP。
- 每个学生都要通过VPN连接到管理节点,根据学生为VPN客户端分配固定IP(网段10.32.0.0/16)。
- 管理节点通过iptables对每个学生的每个虚拟机进行22和80端口映射,学生在客户端即可连接虚拟机。

项目成果:
- 每个学生固定分配虚拟机和一个路由器,可以自由开启、关闭、重置。
- 基于虚拟磁盘构建错误环境,大大提高学生解决问题的能力
- 使用ansible剧本对每个学生的环境进行检查,可以快速提高检查作业速度
- 使用公网IP映射VPN端口后,学生可以在任何有网的地方连接VPN操作实验环境