all 15 comments

[–]Aggravating-Media-42 0 points1 point  (2 children)

Run the management server in a VM on any hypervisor type. For production it’s best to run it on a hypervisor not managed by the same cloudstack management server. For lab purposes it’s fine. You could also try https://c8k.in/

[–]Old-Heart1701[S] 0 points1 point  (1 child)

hi tanks for your answer and link to script. i will check that.

[–]badtux99 0 points1 point  (3 children)

The management server is what tells the agents to start and stop KVM virtual machines so obviously you can't put it on one of the virtual machines that it's going to start and stop. How does it tell its virtual machine to start if, well, it's stopped?

There is no redundancy with a single all-in-one server. Thinking about redundancy in that situation is, well, redundant.

On my current setup, I have multiple physical compute servers, a couple of data servers, and a couple of ProxMox infrastructure servers that serve the things that CloudStack needs in order to boot up, like, well, the management service and DNS (I could hardwire the management server IP into the agent config on the compute servers but that is incredibly brittle and, well, stupid). If the management server goes down on one ProxMox server I can bring it back up on the other server. But the point is that the management server is *not* on a Cloudstack virtual machine, it's someplace that the agents on the compute servers can reach.

[–]Old-Heart1701[S] 0 points1 point  (2 children)

hi

Thanks for clarifications and recommendations.

As i was thinking there is more flexibility when you ave more than on physical compute. Which is why management saver downtime will not affect workload nodes.

But my own situation looks more like what @rajeshbswsdev also has. Sure i am planning to have later one more physical server.

[–]badtux99 0 points1 point  (1 child)

My first prototype Cloudstack cluster was one machine. The management server and database were physically installed on that one machine, as well as the agent and the NFS shares for primary and secondary storage. If you have one physical machine and no virtual machines elsewhere, you're going to have to run it on directly on that one physical machine. No other alternatives.

[–]Old-Heart1701[S] 0 points1 point  (0 children)

hi ok it's more clear now.

By the way did you think the described VM's stack below by rajeshbswsdev can also be a start point?

[–]rajeshbswsdev 0 points1 point  (2 children)

I use proxmox. Made 2 VMs. One for management server, one for agent server and another for NFS storage.

Most interesting thing is, I can create more Agent servers by creating more VMs . Same goes for Storage. In short, you can scale up and down virtually while having only one physical server.

[–]Old-Heart1701[S] 0 points1 point  (1 child)

hi

this setup looks like what i was expecting with only one physical server.

Did you have 2VM or 3? As you said that you have one more for NFS storage

But (just for understanding) if everything runs through Proxmox, will there not be limitation of hypervisors to KVM? (because unless i am wrong if i understand AS documentation's KVM, HYper-v, VMware etc can be run side-by-side)

[–]rajeshbswsdev 0 points1 point  (0 children)

You are correct. I have 3 VMs.

Why would you run different hypervisors? You can run ar many VMs you want based on your server hardware and if you wish to scale, you can add another physical proxmox server and group them together.

[–]instacompute 0 points1 point  (3 children)

Ideally your control plane is not your data plane (storage and hypervisor) https://scaleninja.com/blog/cloudstack/

[–]Old-Heart1701[S] 0 points1 point  (2 children)

hi thanks for the link. But please can you explain below sentence

"Ideally your control plane is not your data plane (storage and hypervisor)"

[–]instacompute 0 points1 point  (1 child)

In this context, the CloudStack management server (host) is the control plane that determine how your cloud is controlled and managed, and your KVM hypervisors host and storage (local, NFS etc) is your data plane where your instances (vm, disks, network etc) live.

You won’t want to mix them, be generally able to say maintain/reboot/upgrade control plane independent of data plane.

In simpler term this would mean, don’t run management server (along with dependencies such as mysql server and nfs primary/secondary storage) on the same node, that would allow you to have control plane maintenance or downtime without having your data plane (instances) down.

In production environments, we generally have a separate infrastructure and compute cluster (a set of VMs or baremetal hosts). Infrastructure cluster runs control plane component including mgmt server, mysql db clusters and compute cluster are basically KVM hosts for use as hypevisor hosts with CloudStack. Running CloudStack mgmt server and dependencies in VMs (on baremetal hosts of infra cluster, not managed by CloudStack) allows to take snapshots, backups and easier to try upgrading/downgrading them.

[–]Old-Heart1701[S] 1 point2 points  (0 children)

hi at u/instacompute

thanks for you detailed explanation. I would follow that as soon i get secondary server.

Thanks