【发现一个问题】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版本能够做好协议兼容。