Closed spranta-devops closed 4 weeks ago
This seems to be related to the introduction of a newer implementation of ServerUpdate back in Jan 2024, namely ServerUpdateV2Handler
.
Even on a single-node setup, it is taking me around 5min45s for mc admin update
to conclude that it is running the latest version. Upon adding a few extra logs and running the same tests, I see that the downloadBinary()
step alone takes around 5mins40s as the binary is about 100MB in size.
@harshavardhana , can this update not be done in two steps , where:
That way, if all servers are found to be running the latest version, originator server needn't download the binary and send it over the network to all peers to do the update.
mc admin update
Is never meant to be faster @dhananjaykrutika the issue is downloading from dl.min.io is very slow since we throttled by our download server.
The ideal scenario that customers use is they setup a local mirror and then perform mc admin update http://local-mirror/minio.sha256sum
Or just download the binary copy it to all the nodes and then mc admin service restart alias/
That way, if all servers are found to be running the latest version, originator server needn't download the binary and send it over the network to all peers to do the update.
well that is ServerUpdateV1 was, the issue is that downloading from 10+ servers is much slower than downloading from 1 server. If you factor in the throttling.
For example we have 500+ node deployments, they will never finish updating. However the issue here is not downloading the binary itself, it is something to do with we are downloading the binary even when its the latest version which we should never do.
The bug must be fixed on the server side.
Expected behavior
When minio server is running the latest version, then calling
mc admin update <ALIAS>
should return in a seconds (or a few seconds).Here is the (sanitized) debug output with the last fast working mc version (from mcli_20240118070339.0.0_amd64.deb):
Actual behavior
It needs about 2m30s to return. I had to increase the server timeout to prevent a gateway timeout error from the load balancer (HAProxy). Or use a minio node directly as alias, without using the load balancer.
The (sanitized) debug output:
Steps to reproduce the behavior
Run
mc admin update <ALIAS>
against a server that is already running the latest version. (2024-07-04T14:25:45Z at the moment)For testing set the ALIAS to a node and not the load balancer URL. This is easier to set up.
mc --version
mc version RELEASE.2024-07-08T20-59-24Z (commit-id=21d3ec0089a1fa297cbdc23db413012535e2ff9e) Runtime: go1.22.5 linux/amd64 Copyright (c) 2015-2024 MinIO, Inc. License GNU AGPLv3 https://www.gnu.org/licenses/agpl-3.0.html
System information
Running mc on a Ubuntu VM