升级服务器
Fabric CA服务器必须先于Fabric CA客户端升级。在升级之前,建议 先备份当前的数据库:
- 如果使用sqlite3,备份当前数据库文件,默认名称为fabric-ca-server.db
- 对于其他的数据库类型,请使用相应的备份/复制机制
要升级单一实例的Fabric CA服务器:
- 停止fabric-ca-server进程
- 确保已经备份当前数据库
- 用新的fabric-ca-server程序替换原来的程序
- 启动fabric-ca-server进程
- 使用下面的命令验证fabric-ca-server进程有效,其中的
<host>
为主机名:fabric-ca-client getcainfo -u http://<host>:7054
升级集群
要升级一个使用MySQL或PostgreSQL数据库的fabric-ca-server集群,请遵循 以下步骤。假设你使用haproxy在两个fabric-ca-server实例间进行负载均衡, 假设主机host1和host2都在端口7054监听。在升级之后,将使用host3和host4 作为集群成员。
首先启用统计信息采集,以便监听变化。在haproxy配置文件中添加如下内容:
tats socket /var/run/haproxy.sock mode 666 level operator
stats timeout 2m
启动haproxy来监听变化:
# haproxy -f <configfile> -st $(pgrep haproxy)
要显示haproxy的show stat
命令的摘要信息,下面的函数可以用来解析返回的
CSV数据:
haProxyShowStats() {
echo "show stat" | nc -U /var/run/haproxy.sock |sed '1s/^# *//'|
awk -F',' -v fmt="%4s %12s %10s %6s %6s %4s %4s\n" '
{ if (NR==1) for (i=1;i<=NF;i++) f[tolower($i)]=i }
{ printf fmt, $f["sid"],$f["pxname"],$f["svname"],$f["status"],
$f["weight"],$f["act"],$f["bck"] }'
}
开始时的haproxy配置文件类似如下:
server server1 host1:7054 check
server server2 host2:7054 check
将其修改为:
server server1 host1:7054 check backup
server server2 host2:7054 check backup
server server3 host3:7054 check
server server4 host4:7054 check
使用新的配置重新启动haproxy:
haproxy -f <configfile> -st $(pgrep haproxy)
haProxyShowStats
现在将反应修改后的配置:
sid pxname svname status weig act bck
1 fabric-cas server3 DOWN 1 1 0
2 fabric-cas server4 DOWN 1 1 0
3 fabric-cas server1 UP 1 0 1
4 fabric-cas server2 UP 1 0 1
在host3和host4上升级新的fabric-ca-server程序,确保下一步之前所有成员 都在工作:
sid pxname svname status weig act bck
1 fabric-cas server3 UP 1 1 0
2 fabric-cas server4 UP 1 1 0
3 fabric-cas server1 UP 1 0 1
4 fabric-cas server2 UP 1 0 1
然后停止host1和host2上的旧版fabrc-ca-server程序,并修改配置文件移除:
server server3 host3:7054 check
server server4 host4:7054 check
使用新的配置文件重新启动haproxy:
haproxy -f <configfile> -st $(pgrep haproxy)
现在haProxyShowStats
将反应新的集群状态:
sid pxname svname status weig act bck
1 fabric-cas server3 UP 1 1 0
2 fabric-cas server4 UP 1 1 0