【发现一个问题】VictoriaMetrics中,vm-select与vm-storage之间的协议存在版本兼容性问题
使用中发现,vm-select 1.76版本,查询vm-storage的1.70版本,报以下错误:
cannot execute rpcName="search_v5" on vmstorage "30.43.xx.x:8401"
版本不能兼容是个大问题,这无疑给后续的运维带来很大的麻烦。
1.如果只是vm-select与vm-storage不兼容,那么升级的策略是:
- 在低峰期升级,忽略查询请求。先升级vm-storage,再升级vm-select
- 新部署一套vm-storage群集,部署这套群集对应的vm-select群集:
- 部署级联的vm-select群集,这个群集指向v4版本旧vm-select和v5版本vm-select
- 把查询迁移到级联的vm-select,进而同时查询两套群集
- vm-insert指向新vm-storage群集
- 旧vm-storage群集一直保留,知道超过retentionPeriod的有效时间
2.如果连vm-insert与vm-storage之间的通讯协议也不兼容,则所有的角色都要部署独立一套,并逐步迁移流量。
希望后续的VM版本能够做好协议兼容。