Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The VM Support to set Blkiotune #13100

Open
matthewei opened this issue Oct 21, 2024 · 7 comments
Open

The VM Support to set Blkiotune #13100

matthewei opened this issue Oct 21, 2024 · 7 comments

Comments

@matthewei
Copy link
Contributor

Is your feature request related to a problem? Please describe:
Sometimes, we need to set the io performance of the disk.
such as read_bytes_sec, write_bytes_sec,read_iops_sec,write_iops_sec,total_bytes_sec,total_bytes_sec_max,total_bytes_sec_max_length,total_iops_sec,omitempty,total_iops_sec_max,total_iops_sec_max_length
image

Describe the solution you'd like:
I want to set iotune through vm's CRD. Please have a look the flowing phase.

matthew@ubuntu:~|⇒  kubectl explain vm.spec.template.spec.domain.devices.disks --recursive
KIND:     VirtualMachine
VERSION:  kubevirt.io/v1

RESOURCE: disks <[]Object>

DESCRIPTION:
     Disks describes disks, cdroms and luns which are connected to the vmi.

FIELDS:
   blockSize    <Object>
      custom    <Object>
         logical        <integer>
         physical       <integer>
      matchVolume       <Object>
         enabled        <boolean>
   bootOrder    <integer>
   cache        <string>
   cdrom        <Object>
      bus       <string>
      readonly  <boolean>
      tray      <string>
   dedicatedIOThread    <boolean>
   disk <Object>
      bus       <string>
      pciAddress        <string>
      readonly  <boolean>
   io   <string>
   iotune       <Object>
      read_bytes_sec    <integer>
      read_iops_sec     <integer>
      total_bytes_sec   <integer>
      total_bytes_sec_max       <integer>
      total_bytes_sec_max_length        <integer>
      total_iops_sec    <integer>
      total_iops_sec_max        <integer>
      total_iops_sec_max_length <integer>
      write_bytes_sec   <integer>
      write_iops_sec    <integer>
   lun  <Object>
      bus       <string>
      readonly  <boolean>
   name <string>
   serial       <string>
   shareable    <boolean>
   tag  <string>

image

Describe alternatives you've considered:
Please see the description of the previous stage.

Additional context:
Add any other context or screenshots about the feature request here.

@alicefr
Copy link
Member

alicefr commented Oct 21, 2024

@matthewei we don't expose those values in the API, if you want tune those fields, you should use a sidecar.

@matthewei
Copy link
Contributor Author

@alicefr Could you tell me the reason why it can't be exposed from the API? if we expose thoes values in the API and we can set this rules online. But I think you can't realize it if you use sidecar.

@matthewei
Copy link
Contributor Author

The openstack has providerd this interface. Why don't we provide it?

@alicefr
Copy link
Member

alicefr commented Oct 22, 2024

@matthewei this has been asked multiple times in the past, if you search, you will find multiple issues about this.
The main reason is that this expose too specific fields related to storage. Additionally, there is an ongoing KEP in Kubernetes that would allow to set the blockio tune parameters in the container. Once, this is merged and implemented, you could define a proper QoS class.

@matthewei
Copy link
Contributor Author

okay, but the KEP support to set Blkiotune online?

@alicefr
Copy link
Member

alicefr commented Oct 24, 2024

@matthewei yes, sorry I thought I had put the link, here it is: kubernetes/enhancements#3004

@matthewei
Copy link
Contributor Author

Many Thanks @alicefr ,I still think that setting it directly through CRD is the best, we can specify the relevant settings explicitly, and it does not conflict with KEP. As an operator of DC, I only care about the creation parameters of the virtual machine

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants