I want to resize my Linode's resources frequently, but I'm getting "Resize Failed". What can I do?
I want to resize my Linode often to save on plan costs but I'm getting this error message, why is that?
1 Reply
There are multiple causes for the "Resize Failed" error, when this happens our support team is directly alerted and will reach out to you with further details. That said, if you have been resizing your Linode a lot in a short period of time, there is a pretty likely chance this is what's going on.
-What's the common cause?
When a Linode is resized to a new plan, on the backend the new plan is allocated on a new host and the Linode's existing disks are transferred to that new host with a migration. When we delete or migrate any Linode away from a host, disks are temporarily maintained to both help us address failed migrations, and provide a buffer for emergency recovery after an accidental deletion by a customer. Because of this, many consecutive resize jobs for a single Linode can cause the disks to be active on multiple hosts, and if in a future resize a previous host is chosen disks will already be present and cause a failure. This problem can affect you more frequently if you are resizing to very large Linode plans, because their more limited availability increases the chances of being migrated to a previous host.
- What can I do to avoid this?
While we can resolve these issues it does require manual intervention which takes time, and we do not recommend resizing at high rates especially on large plan sizes to avoid problems. The best way to deal with this is to simply limit the amount of times you resize the Linode where possible.
If you need to frequently change the size of your plan, and your stack doesn't require much disk space it's more sustainable to use our images to quickly redeploy new systems.
You are much less likely to run into plan availability issues provided you delete the previous node. The main caveat here is that since each node is a new system, IP assignments will not be consistent. If that affects your workload, you will probably also want to use a nodebalancer or self-configured load balancer to have a consistent public endpoint. While this does add some complexity, you can control all of this via our API and automate things.
Alternatively, services like terraform can also be used for provisioning services though you may need to refer to their documentation to get a working solution.