Bandwidth limits?

I dont see any options for limiting the total amount of transfer a plan or instance can use or the ability to limit their bandwidth, aka, 1mps or whatever. I mainly need the transfer limits, but was quite surprised to see neither. Am i missing something? I do see the bandwidth graphs, but thats about it. This definitely needs to be something setup with the Plans.

Currently there is monitoring for bandwidth used by virtual systems, but no rate limiting or enforcement of limits. I’d be interested to hear about ways others have implemented this using Xen, as it would make a nice addition to Cloudmin…

Ok, remember that bandwidth and transfer are two different things. Examples being:

Bandwidth = 10mb/s
Transfer = 3TB per month

Im assuming by looking at your bw monitoring settings area, your reversing the two. It also looks like you only allow the ability to set the limit for all of cloudmin servers instead of per plan or instance like it should be.

Right, at the moment Cloudmin uses the term ‘bandwidth’ to refer to monthly transfer. I guess I should rename that…

Separately, I need to implement support for limiting bandwidth for Xen instances.

Ok, just dug a bit more and it does appear that you can set a resource limit of X amount of transfer (called bandwidth in your settings) per instance. By why isnt there an option for setting this for plans? Obviously we dont want users to be able to just create instances with whatever limits they want. We want to be able to assign the user plan and the plan limits the total bw for all their instances combined. Obviously the user can set whatever limits he wants for each of those instances he manages, but cant use more than whats allotted without it triggering the bw monitoring action. Hope all of this is making sense.

Currently, transfer limits are set on a per-system basis. What I plan to do is make them settable at the plan level, and thus apply to owners who manage multiple systems. However, this will require implementing some behaviour (like bandwidth speed limits) when a system or owner goes over his limits.

I’d like to hear what features you’d like to see from Cloudmin in this area, such as what should happen to systems that exceed their limits…

One thing that would be great but possibly difficult to implement was something like a daily and monthly bandwidth limit. With options to debt the client, to cut connection, or if reduce speed limit if he passes the bandwidth limit.
That way our clients could choose the best option for them.
That should be set on owner or per-system. I think both options are valid.

Personally what i do with dedicated server clients is either disable their wan connection at 101% usage or have a CC on file for them and just bill them for overages.

I’d like to point out that the “cloud” solution here is simply to allow people to use anything they need, and bill them for it in very small (fair) increments. No overage rate explosion, no limits, just use what you need, pay for it, be happy. This is what your competitors (at least AWS and the other “cloud” providers) are offering. If we don’t match it, we’ll all be crushed by the better business model. I don’t have any urge to be crushed. :wink:

I think anything that distracts from that end goal should be viewed with caution.

So, let’s always be thinking of how we can match or better the very best business practices in this industry rather than figuring out ways to make Cloudmin manage virtual machines that look and act as limited and dumb as physical servers. (I do understand that existing billing infrastructure is not really designed for this new model…but it needs to get there, and fast, so we all need to be tackling those problems as much as possible.)

You are completely right.
This will be the new business model.

That way, we should be able to charge or change VM limits as requested by users.

We should be able to bill clients by hour usage, on CPU, Memory, Bandwith and disk space.

Problem is there will allways be “old fashioned” clients who will want to make business, the “old way” so we should also have the same options for a monthly based.

Hi,

As a suggestion, I would like to see something like this:

When a user orders a plan, let’s say 1GB RAM / 10GB HDD / 100GB Transfer ( a lot of people use the word Bandwidth for this), then he should get the 100GB transfer, and be allowed to go over that - but we should have stats from which we can bill them.

Currently, our dedicated & VPS client’s are monitored using Cacti, and at the end of the month we pull the stats from Cacti, and bill them for the over-usage, i.e. is he uses 110GB, then we bill him for 10GB bandwidth extra.

Can this be done with Cloudmin?

Sure, you can do this with Cloudmin - just configure it to not disable systems that go over their bandwidth limit. Then use the list-systems API call to get the usage and limit for each system over the current month, and bill them for the overage. You can also do the same at the system owner level, with the list-owners API call.

Let me know if you need any more details. You can find details on the API at : https://www.virtualmin.com/documentation/cloudmin/devel/remote