I attendted at Open Infra Days Asia 2021 event.
And I presented about how to calculate the cloud system operating rate.
It is little difficult to speak English.
Because I need to speak a lot of numbers and formula.
So I just presented with Korean.
But I want to share my slide in English for other country's user goup members.
I uploaded my slide at slide share. Below is this slide.
I know that you already knew about the cloud system is what. The cloud service can be any cloud resource such as server, storage, network, vm or container. And of course you can use cloud service anytime and anywhere using smart devices like smart phone, tablet(smart pad), tv, desktop or notebook.
We need cloud technologies like OpenStack or Kubernetes for providing cloud service. So If we adopt cloud system using OpenStack or Kubernetes, how do we calculate sizing for the cloud system? Let me talk about how to size and what considerations there are when adopting cloud systems based on my experience.
Before start it, we need to know OpenStack and Kubernetes technical background.
OpenStack is serving VMs and Kubernetes is serving containers. OpenStack generally does not use all cloud resources. It uses only some host resources depending on characteristics of the created vm. Therefore OpenStack can utilize hyperthreading on CPUs to efficiently use CPU host resources which leads to a high virtualization ratio. On the other hand the Kubernetes is an open source project made by Google for managing containers. Container is lighter and has better portability (compared to VM) because the application is utilizing the host node kernel. Containers can be used in both bare metal or virtual machines as long as there is a Linux-based OS. So, containers are not considered to be a virtualization. They just use resources provided by the host.
So how can we use resources efficiently in OpenStack? How best to apply the virtualization ratio? In order to find an efficient virtualization ratio, we need flavor types and hardware spec for creating vms.
In the case of CPU, we use virtualization ratio applied to the CPU. In the case of memory, we don't virtualize.
- We calculate cpu virtualization ratio applied from hyperthread to 4:1.
- Then we need flavors like standard flavor types and large memory flavor types.
- The 70% cpu cores are divided by flavor cpu cores, we can find the number of VMs that can be created on each node.
In the memory case, total memory * 0.7 divide memory of the flavor. we can find possible creating vm count. After we have found the CPU virtualization ratio, we can focus on the best memory efficiency ratio.
What do you think is an important function in the cloud system? I think the important function is migration in the cloud system. Either the instances of openstack or containers of kubernetes. I think it is an attractive function we can use to migrate resources to other hosts. For example, we have to reboot the system when updating the system or install packages. And the system rebooted in the emergency case. In this case, we have to migrate virtual resources to another host. and we call this function, it's migration. And, the kubernetes have it's called drain and auto-healing.
Why did I talk about live migration a lot? Because live migration is a key factor in determining the system operation ratio.
The formula assumes all resources of the cloud system are 100%. And then we can find an operating ratio per host that 100% minus migrate host count divides all compute node count plus.
Cloud Resource Rate = 100 - ((Migration Host Count / Total Compute Count * 100) + 5)
Thank you for attending OpenInfra Days ASIA 2021.
- 오픈스택을 다루는 기술