SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
Open vSwitch and DPDK
support in CloudStack
NicolasVazquez
nicolas.Vazquez@shapeblue.com - @nicovazquez90
ApacheCon North America 2019 – LasVegas
About me
• Senior Software Engineer at ShapeBlue
• Design, implementation of new features
• 7+ years experience in Software Development
• Joined CloudStack community in 2015
• Became committer in 2016
Agenda
• Introduction
• OVS
• DPDK
• OVS-DPDK
• CloudStack high level support
• AdditionalVM configurations
• DPDK Support
• 4.12
• Agent configuraton
• DPDK enabledVMs creation
• 4.13
• DPDK vHost User mode selection
• DPDK enabled hosts detection
• Live migrations
• Conclusions
Introduction
Introduction - OVS
• Open source vSwitch solution, mostly used in SDN
• ConnectVMs on the same host or different hosts
• Operates in userspace
• Supported in KVM hypervisor by CloudStack
• Networking alternative to native bridges
Introduction – OVS-DPDK
• DPDK:
• Open source set of libraries for fast packet processing
• Operates in user space
• Integrated with OVS:
• Huge increase in packet throughput – 10x performance
over native OVS
• Lower latency
AdditionalVM
configurations
Additional VM configurations
• Pass additionalVM metadata configuration toVMs on start
• Introduced in version 4.12
• Supported by three major hypervisors:
• KVM
• Vmware
• XenServer
• Flexibility – arbitrary metada can be passed
• Additional configurations can be added/updated when:
• Deploying a newVM
• Updating a stoppedVM
Additional VM configurations
• Format depends on hypervisor:
• KVM: domain XML
• Vmware: key-value pair toVMX file
• XenServer: XAPI to add parameters
IMPORTANT:
• Configurations must be separated by new lines
• Each configuration can have an optional name, ending in ‘:’
• The whole set of configurations must be URL-encoded and
passed as ‘extraconfig’ parameter
• Configurations are stored as VM details with prefix
‘extraconfig’
• New parameter ‘extraconfig’ on existing APIs:
• deployVirtualMachine
• updateVirtualMachine
• This parameter MUST be URL-encoded
Additional VM configurations
general-metadata:
<metadata>
<app1:foo
xmlns:app1="http://app1.org/app1/">Test1</ap
p1:foo>
<app2:bar
xmlns:app2="http://app1.org/app2/">Test2</ap
p2:bar>
</metadata>
URL-encode
general-
metadata%3A%0A%3Cmetadata%3E%0A%20%20
%20%20%3Capp1%3Afoo%20xmlns%3Aapp1%3D
%22http%3A%2F%2Fapp1.org%2Fapp1%2F%22%
3ETest1%3C%2Fapp1%3Afoo%3E%0A%20%20%20
%20%3Capp2%3Abar%20xmlns%3Aapp2%3D%22
http%3A%2F%2Fapp1.org%2Fapp2%2F%22%3ETe
st2%3C%2Fapp2%3Abar%3E%0A%20%20%3C%2F
metadata%3E%0A
CS API
• VM details updated on CloudStack database
• Configurations added to the VM domain XML
at VM startup
Additional VM configurations
• Configurations stored as part of the service offering
• Introduced in version 4.13
• Security
• Only administrators can create service offerings
• Users select the predefined configurations
• ‘extraconfig’ parameter on createServiceOffering API
• Additional configurations in two ways:
• VM details
• Service offerings
• Additive configurations
• In case of configurations with the same name
• VM detail takes precedence over service
offering detail
Additional VM configurations
Demo
DPDK Support
DPDK Support – Agent configuration
• Prerrequisites:
• DPDK
• OVS networking with DPDK support (can be obtained
on virt SIG repo:
http://mirror.centos.org/centos/7/virt/x86_64/ovirt-
4.2/
• Bridges created with datapath=netdev
• libvirt version supporting huge pages (> 1.2.5)
• libvirt supporting huge pages (set HUGE_PAGES=1 on
/etc/default/qemu-kvm)
• Huge pages enabled
DPDK Support – Agent configuration
• New properties can be added on the agent.properties file:
• ‘openvswitch.dpdk.enabled’
• Expected values: true or false
• Enables OVS-DPDK support on the host
• ‘openvswitch.dpdk.ovs.path’
• Expected values: directories in the filesystem
• OVS location expected – usually ‘/var/run/openvswitch’
• DPDK ports will be created under this directory
DPDK Support – Create DPDK enabled VMs
• DPDK enabledVMs require additional configurations:
• Huge pages:
• Name: ‘dpdk-hugepages’
• CPU NUMA:
• Name: ‘dpdk-numa’
• Example:
<memoryBacking>
<hugePages/>
</memoryBacking>
dpdk-numa:
<cpu mode="host-passthrough">
<numa>
<cell id="0" cpus="0" memory="9437184"
unit="KiB" memAccess="shared"/>
</numa>
</cpu>
VM start
OVS-DPDK enabled
KVM hosts
DPDK Support – Create DPDK enabled VMs
• CloudStack KVM agent receives additional
configurations
• Creates DPDK enabledVMs when:
• ‘openvswitch.dpdk.enabled’ = true
• VM additional configuration contains:
• ‘extraconfig-dpdk-hugepages’
• ‘extraconfig-dpdk-numa’
• OVS driver extended to create OVS ports with
DPDK support
• DPDK ports created with prefix:
• ‘csdpdk-N’ – N incremental
• VM interfaces:
• Created as type=vhostuser
• Path indicates port created with name
‘csdpdk-N’ on
‘openvswitch.dpdk.ovs.path'
DPDK Support – Create DPDK enabled VMs
Demo
DPDK Support – DPDK vHost User mode selection
• Basic support in 4.12 – vHost user client mode
by default
• Since 4.13, administrators are allowed to
select vHost user mode:
• Client
• Server
• vHost user mode included as part of service
offerings details – ‘DPDK-VHOSTUSER’
• Note: vHost user mode is not an additional
configuration – MUST NOT be URL-encoded
‘DPDK-VHOSTUSER’ = client ‘DPDK-VHOSTUSER’ = server
Source: https://software.intel.com/en-us/articles/data-plane-
development-kit-vhost-user-client-mode-with-open-vswitch
DPDK Support – DPDK vHost User mode selection
• CloudStack KVM agent uses server mode by
default (if parameter is not specified)
• OVS ports creation vsVM interfaces:
‘DPDK-VHOSTUSER’ = client ‘DPDK-VHOSTUSER’ = server
Source: https://software.intel.com/en-us/articles/data-plane-
development-kit-vhost-user-client-mode-with-open-vswitch
vHost user mode OVS port type VM interface type
server dpdkvhostuser server
client dpdkvhostuserclient Client
DPDK Support – DPDK enabled hosts detection
• Limitations in 4.12:
• CloudStack not aware of which hosts are
DPDK enabled
• DPDK enabledVMs failure on non-DPDK
enabled hosts
• Since 4.13:
• DPDK capability included as part of the
ready command on agent connection
with the management server
• Non-DPDK enabledVMs allowed on
DPDK-enabled hosts
• Suitable hosts selected for deploying DPDK
enabledVMs
• Extension of non-DPDK enabled userVMs on
DPDK-enabled hosts.
• Initially only systemVMs were allowed
DPDK Support – DPDK live migrations
• Since the management server is aware of
DPDK enabled hosts:
• Find suitable hosts for migration of DPDK
enabledVMs
• DPDK enabledVMs can only be migrated
to DPDK enabled hosts
• DPDK enabledVM when:
• DPDK required configurations are onVM
details and/orVM service offering
• VM running in a DPDK enabled host
VM live migration
Conclusions
Conclusions
• Further reading:
• https://www.dpdk.org
• http://docs.openvswitch.org/en/latest/howto/dpdk/
• https://access.redhat.com/documentation/en-
us/red_hat_enterprise_linux/7/html/virtualization_deployme
nt_and_administration_guide/sect-
editing_a_guest_virtual_machines_configuration_file-
adding_multifunction_pci_devices_to_kvm_guest_virtual_m
achines
• http://docs.cloudstack.apache.org/en/latest/plugins/ovs-
plugin.html#dpdk-support
• Pull requests:
• https://github.com/apache/cloudstack/pull/2839
• https://github.com/apache/cloudstack/pull/3153
• https://github.com/apache/cloudstack/pull/3365
• Initial support in 4.12
• Extended support in 4.13
• Future work:
• Include UI – onlyAPI currently
• AdditionalVM configurations
• Service offerings details
• DPDK required configurations
• Support different types of storage
• DPDK as a new host type?
• DPDK enabledVM type?
• And more to be defined…
Questions?
Thank you!

Contenu connexe

Tendances

Backroll: Production Grade KVM Backup Solution Integrated in CloudStack
Backroll: Production Grade KVM Backup Solution Integrated in CloudStackBackroll: Production Grade KVM Backup Solution Integrated in CloudStack
Backroll: Production Grade KVM Backup Solution Integrated in CloudStack
ShapeBlue
 

Tendances (20)

Openstack Neutron, interconnections with BGP/MPLS VPNs
Openstack Neutron, interconnections with BGP/MPLS VPNsOpenstack Neutron, interconnections with BGP/MPLS VPNs
Openstack Neutron, interconnections with BGP/MPLS VPNs
 
ONIC-Japan-2019-OVN public
ONIC-Japan-2019-OVN publicONIC-Japan-2019-OVN public
ONIC-Japan-2019-OVN public
 
Nova: Openstack Compute-as-a-service
Nova: Openstack Compute-as-a-serviceNova: Openstack Compute-as-a-service
Nova: Openstack Compute-as-a-service
 
OpenStack Quantum Intro (OS Meetup 3-26-12)
OpenStack Quantum Intro (OS Meetup 3-26-12)OpenStack Quantum Intro (OS Meetup 3-26-12)
OpenStack Quantum Intro (OS Meetup 3-26-12)
 
VXLAN and FRRouting
VXLAN and FRRoutingVXLAN and FRRouting
VXLAN and FRRouting
 
OpenvSwitch Deep Dive
OpenvSwitch Deep DiveOpenvSwitch Deep Dive
OpenvSwitch Deep Dive
 
Backroll: Production Grade KVM Backup Solution Integrated in CloudStack
Backroll: Production Grade KVM Backup Solution Integrated in CloudStackBackroll: Production Grade KVM Backup Solution Integrated in CloudStack
Backroll: Production Grade KVM Backup Solution Integrated in CloudStack
 
Deploying IPv6 on OpenStack
Deploying IPv6 on OpenStackDeploying IPv6 on OpenStack
Deploying IPv6 on OpenStack
 
OVN - Basics and deep dive
OVN - Basics and deep diveOVN - Basics and deep dive
OVN - Basics and deep dive
 
Dockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみたDockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみた
 
Ceilometer to Gnocchi
Ceilometer to GnocchiCeilometer to Gnocchi
Ceilometer to Gnocchi
 
OVN DBs HA with scale test
OVN DBs HA with scale testOVN DBs HA with scale test
OVN DBs HA with scale test
 
[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험[2018] 오픈스택 5년 운영의 경험
[2018] 오픈스택 5년 운영의 경험
 
OpenStack概要 ~仮想ネットワーク~
OpenStack概要 ~仮想ネットワーク~OpenStack概要 ~仮想ネットワーク~
OpenStack概要 ~仮想ネットワーク~
 
Deploying CloudStack with Ceph
Deploying CloudStack with CephDeploying CloudStack with Ceph
Deploying CloudStack with Ceph
 
OpenStack Neutron Tutorial
OpenStack Neutron TutorialOpenStack Neutron Tutorial
OpenStack Neutron Tutorial
 
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
 
Understanding Open vSwitch
Understanding Open vSwitch Understanding Open vSwitch
Understanding Open vSwitch
 
OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27
 
KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...
KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...
KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...
 

Similaire à Nicolas Vazquez - Open vSwitch with DPDK on CloudStack

Was liberty profile and docker
Was liberty profile and dockerWas liberty profile and docker
Was liberty profile and docker
sflynn073
 

Similaire à Nicolas Vazquez - Open vSwitch with DPDK on CloudStack (20)

WebSphere and Docker
WebSphere and DockerWebSphere and Docker
WebSphere and Docker
 
Presentation v mware v-cloud director overview
Presentation   v mware v-cloud director overviewPresentation   v mware v-cloud director overview
Presentation v mware v-cloud director overview
 
VMware - Application Portability
VMware - Application PortabilityVMware - Application Portability
VMware - Application Portability
 
OSCON2014: Understanding Hypervisor Selection in Apache CloudStack
OSCON2014: Understanding Hypervisor Selection in Apache CloudStackOSCON2014: Understanding Hypervisor Selection in Apache CloudStack
OSCON2014: Understanding Hypervisor Selection in Apache CloudStack
 
Morning Coffee - Windows Server 2016
Morning Coffee - Windows Server 2016Morning Coffee - Windows Server 2016
Morning Coffee - Windows Server 2016
 
VMware vCloud Air: Networking
VMware vCloud Air: NetworkingVMware vCloud Air: Networking
VMware vCloud Air: Networking
 
Decisions behind hypervisor selection in CloudStack 4.3
Decisions behind hypervisor selection in CloudStack 4.3Decisions behind hypervisor selection in CloudStack 4.3
Decisions behind hypervisor selection in CloudStack 4.3
 
What’s New in NGINX Ingress Controller for Kubernetes Release 1.5.0
What’s New in NGINX Ingress Controller for Kubernetes Release 1.5.0What’s New in NGINX Ingress Controller for Kubernetes Release 1.5.0
What’s New in NGINX Ingress Controller for Kubernetes Release 1.5.0
 
OVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
OVS and DPDK - T.F. Herbert, K. Traynor, M. GrayOVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
OVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
 
ProxySQL High Avalability and Configuration Management Overview
ProxySQL High Avalability and Configuration Management OverviewProxySQL High Avalability and Configuration Management Overview
ProxySQL High Avalability and Configuration Management Overview
 
Was liberty profile and docker
Was liberty profile and dockerWas liberty profile and docker
Was liberty profile and docker
 
Selecting the correct hypervisor for CloudStack 4.5
Selecting the correct hypervisor for CloudStack 4.5Selecting the correct hypervisor for CloudStack 4.5
Selecting the correct hypervisor for CloudStack 4.5
 
What's new in NGINX Plus R19
What's new in NGINX Plus R19What's new in NGINX Plus R19
What's new in NGINX Plus R19
 
WebSphere Application Server Liberty Profile and Docker
WebSphere Application Server Liberty Profile and DockerWebSphere Application Server Liberty Profile and Docker
WebSphere Application Server Liberty Profile and Docker
 
V cloud director 5.1 what's new overview technical presentation
V cloud director 5.1 what's new overview   technical presentationV cloud director 5.1 what's new overview   technical presentation
V cloud director 5.1 what's new overview technical presentation
 
Windows Server «10»: Что нового в виртуализации
Windows Server «10»: Что нового в виртуализацииWindows Server «10»: Что нового в виртуализации
Windows Server «10»: Что нового в виртуализации
 
Windows Server "10": что нового в виртуализации
Windows Server "10": что нового в виртуализацииWindows Server "10": что нового в виртуализации
Windows Server "10": что нового в виртуализации
 
Killer Docker Workflows for Development
Killer Docker Workflows for DevelopmentKiller Docker Workflows for Development
Killer Docker Workflows for Development
 
OpenStack and Windows
OpenStack and WindowsOpenStack and Windows
OpenStack and Windows
 
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
 

Plus de ShapeBlue

Plus de ShapeBlue (20)

CloudStack Authentication Methods – Harikrishna Patnala, ShapeBlue
CloudStack Authentication Methods – Harikrishna Patnala, ShapeBlueCloudStack Authentication Methods – Harikrishna Patnala, ShapeBlue
CloudStack Authentication Methods – Harikrishna Patnala, ShapeBlue
 
CloudStack Tooling Ecosystem – Kiran Chavala, ShapeBlue
CloudStack Tooling Ecosystem – Kiran Chavala, ShapeBlueCloudStack Tooling Ecosystem – Kiran Chavala, ShapeBlue
CloudStack Tooling Ecosystem – Kiran Chavala, ShapeBlue
 
Elevating Cloud Infrastructure with Object Storage, DRS, VM Scheduling, and D...
Elevating Cloud Infrastructure with Object Storage, DRS, VM Scheduling, and D...Elevating Cloud Infrastructure with Object Storage, DRS, VM Scheduling, and D...
Elevating Cloud Infrastructure with Object Storage, DRS, VM Scheduling, and D...
 
VM Migration from VMware to CloudStack and KVM – Suresh Anaparti, ShapeBlue
VM Migration from VMware to CloudStack and KVM – Suresh Anaparti, ShapeBlueVM Migration from VMware to CloudStack and KVM – Suresh Anaparti, ShapeBlue
VM Migration from VMware to CloudStack and KVM – Suresh Anaparti, ShapeBlue
 
How We Grew Up with CloudStack and its Journey – Dilip Singh, DataHub
How We Grew Up with CloudStack and its Journey – Dilip Singh, DataHubHow We Grew Up with CloudStack and its Journey – Dilip Singh, DataHub
How We Grew Up with CloudStack and its Journey – Dilip Singh, DataHub
 
What’s New in CloudStack 4.19, Abhishek Kumar, Release Manager Apache CloudSt...
What’s New in CloudStack 4.19, Abhishek Kumar, Release Manager Apache CloudSt...What’s New in CloudStack 4.19, Abhishek Kumar, Release Manager Apache CloudSt...
What’s New in CloudStack 4.19, Abhishek Kumar, Release Manager Apache CloudSt...
 
CloudStack 101: The Best Way to Build Your Private Cloud – Rohit Yadav, VP Ap...
CloudStack 101: The Best Way to Build Your Private Cloud – Rohit Yadav, VP Ap...CloudStack 101: The Best Way to Build Your Private Cloud – Rohit Yadav, VP Ap...
CloudStack 101: The Best Way to Build Your Private Cloud – Rohit Yadav, VP Ap...
 
How We Use CloudStack to Provide Managed Hosting - Swen Brüseke - proIO
How We Use CloudStack to Provide Managed Hosting - Swen Brüseke - proIOHow We Use CloudStack to Provide Managed Hosting - Swen Brüseke - proIO
How We Use CloudStack to Provide Managed Hosting - Swen Brüseke - proIO
 
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
 
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
 
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online
KVM Security Groups Under the Hood - Wido den Hollander - Your.OnlineKVM Security Groups Under the Hood - Wido den Hollander - Your.Online
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online
 
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
 
Use Existing Assets to Build a Powerful In-house Cloud Solution - Magali Perv...
Use Existing Assets to Build a Powerful In-house Cloud Solution - Magali Perv...Use Existing Assets to Build a Powerful In-house Cloud Solution - Magali Perv...
Use Existing Assets to Build a Powerful In-house Cloud Solution - Magali Perv...
 
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
 
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
 
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
 
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueElevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
 
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
 
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
 
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
 

Dernier

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

Nicolas Vazquez - Open vSwitch with DPDK on CloudStack

  • 1. Open vSwitch and DPDK support in CloudStack NicolasVazquez nicolas.Vazquez@shapeblue.com - @nicovazquez90 ApacheCon North America 2019 – LasVegas
  • 2. About me • Senior Software Engineer at ShapeBlue • Design, implementation of new features • 7+ years experience in Software Development • Joined CloudStack community in 2015 • Became committer in 2016
  • 3. Agenda • Introduction • OVS • DPDK • OVS-DPDK • CloudStack high level support • AdditionalVM configurations • DPDK Support • 4.12 • Agent configuraton • DPDK enabledVMs creation • 4.13 • DPDK vHost User mode selection • DPDK enabled hosts detection • Live migrations • Conclusions
  • 5. Introduction - OVS • Open source vSwitch solution, mostly used in SDN • ConnectVMs on the same host or different hosts • Operates in userspace • Supported in KVM hypervisor by CloudStack • Networking alternative to native bridges
  • 6. Introduction – OVS-DPDK • DPDK: • Open source set of libraries for fast packet processing • Operates in user space • Integrated with OVS: • Huge increase in packet throughput – 10x performance over native OVS • Lower latency
  • 8. Additional VM configurations • Pass additionalVM metadata configuration toVMs on start • Introduced in version 4.12 • Supported by three major hypervisors: • KVM • Vmware • XenServer • Flexibility – arbitrary metada can be passed • Additional configurations can be added/updated when: • Deploying a newVM • Updating a stoppedVM
  • 9. Additional VM configurations • Format depends on hypervisor: • KVM: domain XML • Vmware: key-value pair toVMX file • XenServer: XAPI to add parameters IMPORTANT: • Configurations must be separated by new lines • Each configuration can have an optional name, ending in ‘:’ • The whole set of configurations must be URL-encoded and passed as ‘extraconfig’ parameter • Configurations are stored as VM details with prefix ‘extraconfig’ • New parameter ‘extraconfig’ on existing APIs: • deployVirtualMachine • updateVirtualMachine • This parameter MUST be URL-encoded
  • 11. Additional VM configurations • Configurations stored as part of the service offering • Introduced in version 4.13 • Security • Only administrators can create service offerings • Users select the predefined configurations • ‘extraconfig’ parameter on createServiceOffering API • Additional configurations in two ways: • VM details • Service offerings • Additive configurations • In case of configurations with the same name • VM detail takes precedence over service offering detail
  • 14. DPDK Support – Agent configuration • Prerrequisites: • DPDK • OVS networking with DPDK support (can be obtained on virt SIG repo: http://mirror.centos.org/centos/7/virt/x86_64/ovirt- 4.2/ • Bridges created with datapath=netdev • libvirt version supporting huge pages (> 1.2.5) • libvirt supporting huge pages (set HUGE_PAGES=1 on /etc/default/qemu-kvm) • Huge pages enabled
  • 15. DPDK Support – Agent configuration • New properties can be added on the agent.properties file: • ‘openvswitch.dpdk.enabled’ • Expected values: true or false • Enables OVS-DPDK support on the host • ‘openvswitch.dpdk.ovs.path’ • Expected values: directories in the filesystem • OVS location expected – usually ‘/var/run/openvswitch’ • DPDK ports will be created under this directory
  • 16. DPDK Support – Create DPDK enabled VMs • DPDK enabledVMs require additional configurations: • Huge pages: • Name: ‘dpdk-hugepages’ • CPU NUMA: • Name: ‘dpdk-numa’ • Example: <memoryBacking> <hugePages/> </memoryBacking> dpdk-numa: <cpu mode="host-passthrough"> <numa> <cell id="0" cpus="0" memory="9437184" unit="KiB" memAccess="shared"/> </numa> </cpu> VM start OVS-DPDK enabled KVM hosts
  • 17. DPDK Support – Create DPDK enabled VMs • CloudStack KVM agent receives additional configurations • Creates DPDK enabledVMs when: • ‘openvswitch.dpdk.enabled’ = true • VM additional configuration contains: • ‘extraconfig-dpdk-hugepages’ • ‘extraconfig-dpdk-numa’ • OVS driver extended to create OVS ports with DPDK support • DPDK ports created with prefix: • ‘csdpdk-N’ – N incremental • VM interfaces: • Created as type=vhostuser • Path indicates port created with name ‘csdpdk-N’ on ‘openvswitch.dpdk.ovs.path'
  • 18. DPDK Support – Create DPDK enabled VMs Demo
  • 19. DPDK Support – DPDK vHost User mode selection • Basic support in 4.12 – vHost user client mode by default • Since 4.13, administrators are allowed to select vHost user mode: • Client • Server • vHost user mode included as part of service offerings details – ‘DPDK-VHOSTUSER’ • Note: vHost user mode is not an additional configuration – MUST NOT be URL-encoded ‘DPDK-VHOSTUSER’ = client ‘DPDK-VHOSTUSER’ = server Source: https://software.intel.com/en-us/articles/data-plane- development-kit-vhost-user-client-mode-with-open-vswitch
  • 20. DPDK Support – DPDK vHost User mode selection • CloudStack KVM agent uses server mode by default (if parameter is not specified) • OVS ports creation vsVM interfaces: ‘DPDK-VHOSTUSER’ = client ‘DPDK-VHOSTUSER’ = server Source: https://software.intel.com/en-us/articles/data-plane- development-kit-vhost-user-client-mode-with-open-vswitch vHost user mode OVS port type VM interface type server dpdkvhostuser server client dpdkvhostuserclient Client
  • 21. DPDK Support – DPDK enabled hosts detection • Limitations in 4.12: • CloudStack not aware of which hosts are DPDK enabled • DPDK enabledVMs failure on non-DPDK enabled hosts • Since 4.13: • DPDK capability included as part of the ready command on agent connection with the management server • Non-DPDK enabledVMs allowed on DPDK-enabled hosts • Suitable hosts selected for deploying DPDK enabledVMs • Extension of non-DPDK enabled userVMs on DPDK-enabled hosts. • Initially only systemVMs were allowed
  • 22. DPDK Support – DPDK live migrations • Since the management server is aware of DPDK enabled hosts: • Find suitable hosts for migration of DPDK enabledVMs • DPDK enabledVMs can only be migrated to DPDK enabled hosts • DPDK enabledVM when: • DPDK required configurations are onVM details and/orVM service offering • VM running in a DPDK enabled host VM live migration
  • 24. Conclusions • Further reading: • https://www.dpdk.org • http://docs.openvswitch.org/en/latest/howto/dpdk/ • https://access.redhat.com/documentation/en- us/red_hat_enterprise_linux/7/html/virtualization_deployme nt_and_administration_guide/sect- editing_a_guest_virtual_machines_configuration_file- adding_multifunction_pci_devices_to_kvm_guest_virtual_m achines • http://docs.cloudstack.apache.org/en/latest/plugins/ovs- plugin.html#dpdk-support • Pull requests: • https://github.com/apache/cloudstack/pull/2839 • https://github.com/apache/cloudstack/pull/3153 • https://github.com/apache/cloudstack/pull/3365 • Initial support in 4.12 • Extended support in 4.13 • Future work: • Include UI – onlyAPI currently • AdditionalVM configurations • Service offerings details • DPDK required configurations • Support different types of storage • DPDK as a new host type? • DPDK enabledVM type? • And more to be defined…