统一视频平台smarteye的高可用部署
方案说明
至少需要3台主机,因为docker swarm需要超过一半的manager在线才能正常工作。
- 每个节点都部署docker+keepalived
- docker swarm 集群方式部署bvservere服务,访问任意node节点IP都可以访问服务(docker swarm内部vip)。
- 使用keepalived保证外部访问的vip是有效的节点。
- bvservere的所有数据都写入到分布式文件系统中(cephfs等,挂载到每个主机"/var/bvdata"目录)。
- 用户通过虚拟IP地址访问服务。
- 当master主机故障后,新的master会绑定vip,docker swarm 会保证bvservere实例一直存在。并从分布式文件系统中恢复数据服务。
文件描述
文件名 | 说明 |
---|---|
bvservere-x.x.x.tar | bvservere的docker镜像包,部署脚本会自动导入该镜像。 |
runbvservere-swarm.sh | bvservere的部署脚本。 |
keepalived.conf | keepalived配置文件,需要根据实际系统信息修改文件中有注释的部分。 |
部署要求
- CPU 4核+2.5GHZ 及以上 (根据并发在线设备数提高配置)
- 内存 8G 及以上 (根据并发在线设备数提高配置)
- 存储 100G及以上 (如果需要平台存储,根据文件保留时长和设备数添加空间)
- 系统版本:满足 docker ceph 对系统版本要求。
部署步骤
以下步骤需要在所有主机上执行。
- 安装docker
- 部署ceph cephfs(可以是其它分布式文件系统),挂载分布式文件系统到 ”/var/bvdata/“
(可以是其它路径,但runbvservere-swarm时需要指定)
- 将部署相关文件拷贝到用户目录下(可以是其它目录)
- 修改keepalived.conf(主机ID、vip和网卡接口名)后拷贝到“/etc/keepalived/”目录下。
- $ chmod a+x runbvservere-swarm.sh # 给runbvservere-swarm.sh添加运行权限。
- $ ./runbvservere-swarm.sh load x.x.x # 加载服务镜像,每台主机上都要执行。
- 搭建swarm集群
- $ ./runbvservere-swarm.sh create x.x.x /var/bvdata/ # 安装bvservere,只需要在一个管理节点上执行
脚本会执行删除所有版本镜像,导入bvservere-x.x.x.tar镜像,停止并删除bvservere容器,使用x.x.x镜像创建bvservere容器。
x.x.x为版本号(看bvservere-x.x.x.tar名称获得,默认0.0.1)
/var/bvdata 为bvservere数据目录,不指定时默认/var/bvdata/。指定的目录需要每个主机上都存在。
- 安装 keepalived,设置为开机启动。
- 通过vip访问系统,测试是否部署成功。
后续升级
升级前一定要先在每个主机上导入最新的镜像文件。
- 导入最新的镜像文件,在每个服务器上依次执行下面的步骤。
a. 将最新部署相关文件拷贝到到用户目录下(可以是其它目录),并cd到目录。
b. $ ./runbvservere-swarm.sh load x.x.x # 加载服务镜像,每台主机上都要执行。
c. $ docker images # 保险起见,查看对应版本的镜像是否存在。 - 升级bvservere服务,只需要在某个管理节点上执行一次
a. $ ./runbvservere-swarm.sh update x.x.x # 更新servere。
b. $ docker service ps bvservere # 保险起见,查看bvservere服务当前状态和镜像版本。
多源视频融合平台VMS/smarteye,免费的GB28181 server, 免费的RTMP推流server,RTSP server,车载机部标JT808,JT1078服务器、标准SIP服务器, https://www.besovideo.com/detail?t=2&i=1321
全面支持国产信创系统,在linux(麒麟、统信等信创系统)服务器上安装smarteye server的操作说明, https://www.besovideo.com/detail?t=1&i=248
关于融合通信~可视指挥调度平台VMS/smarteye的说明,https://www.besovideo.com/detail?t=1&i=304