Skip to content

Commit

Permalink
docs: update ROADMAP.md
Browse files Browse the repository at this point in the history
  • Loading branch information
oilbeater committed Jun 17, 2022
1 parent d6915bd commit 0ac7e7b
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 45 deletions.
29 changes: 11 additions & 18 deletions ROADMAP.md
@@ -1,41 +1,34 @@
# Kube-OVN RoadMap

## v1.10.0 -- April 2022
## v1.11.0 -- July 2022

### Subnet Enhancement
- Support to add multiple subnets for one namespace
- Use lr-policy to optimize ovn flows
- Support for DHCP

### VPC Enhancement
- VPC peering
### DataCenter Network
- DNS in custom VPC
- L2 LB in custom VPC

### Virtualization Enhancement
- OVS-DPDK support
- Static IP for VM lifecycle
### Application Network
- Windows overlay/underlay network support
- Multi cluster Service
- Load balancer type Service

### Monitoring and Operation
- Command for restore ovn db
- Metrics for db storage status
### Performance
- Use libovsdb to replace ovn-nbctl daemon
- Optimize OVN logical flows

## Planned features

### DataCenter Network
- Namespaced VPC and Subnet
- Break down vpc-nat-gateway CRD to eip/nat/lb CRDs
- Integrate DPU to support bare metal
- Integrate SDN switches to support bare metal

### Application Network
- Traffic visualization and application level analyzing
- Windows overlay/underlay network support
- Multi cluster Service/DNS/Networkpolicy
- Traffic encryption
- Fine-grained ACL
- Load balancer type Service

### Performance Enhancement
- Use libovsdb to replace ovn-nbctl daemon
- eBPF to accelerate intra-node communication
- Tools for automatically profile
- Repos for fastpath and optimized ovs modules
Expand Down
30 changes: 3 additions & 27 deletions docs/performance-tuning.md
Expand Up @@ -67,8 +67,6 @@ This benchmark is for reference only, the result may vary dramatically due to di
Optimization for packets with big size and underlay latency are still in progress, we will publish the optimization
methods and benchmark results later.



## Optimization methods

## CPU frequency scaling
Expand All @@ -79,8 +77,6 @@ When the CPU works at power save mode, its performance behavior is unstable and
cpupower frequency-set -g performance
```



## Increasing the RX ring buffer

A high drop rate at receive side will hurt the throughput performance.
Expand All @@ -105,24 +101,6 @@ A high drop rate at receive side will hurt the throughput performance.
# ethtool -G eno1 rx 4096
```



## Enable the checksum offload

In v1.7 to bypass a kernel double nat issue, we disabled the tx checksum offload of geneve tunnel. This issue has been resolved
in a different way in the latest version. Users who update from old versions can enable the checksum again. Users who use
1.7.2 or later do not need to change the settings.

```bash
# run on every ovs-ovn pod

# ethtool -K genev_sys_6081 tx on
# ethtool -K ovn0 tx on
# ovs-vsctl set open . external_ids:ovn-encap-csum=true
```



## Disable OVN LB

With profile, the OVN L2 LB need packet clone and recirculate which consumes lots CPU time and block every traffic path
Expand Down Expand Up @@ -150,20 +128,18 @@ to bypass the conntrack system for traffic that not designate to svc.
kubectl ko nbctl set nb_global . options:svc_ipv4_cidr=10.244.0.0/16
```



## Kernel FastPath module

With Profile, the netfilter hooks inside container netns and between tunnel endpoints contribute about 25% of the CPU time
after the optimization of disabling lb. We provide a FastPath module that can bypass the nf hooks process and reduce about
another 20% of CPU time and latency in 1 byte packet test.

The easiest way is to download the `.ko` file and `insmod` the file as [doc](https://github.com/kubeovn/tunning-package) introduce. The `ko` file currently support a limited number of kernel versions. However, we encourage users to submit requests, and we will support new versions soon.
The easiest way is to download the `.ko` file and `insmod` the file as [doc](https://github.com/kubeovn/tunning-package) introduce.
The `ko` file currently support a limited number of kernel versions. However, we encourage users to submit requests, and we will support new versions soon.

If you want to compile yourself, please refer [FastPath Guide](../fastpath/README.md) to get the detail steps.



## Optimize OVS kernel module

### Download a ready-made package
Expand Down Expand Up @@ -278,7 +254,7 @@ $ kubectl ko tuning remove-stt centos
### Using STT tunnel type

Popular tunnel encapsulation methods like Geneve or Vxlan use udp to wrap the origin packets.
Howeverwhen using udp over tcp packets, lots of the tcp offloading capabilities that modern NICs provided cannot be utilized
However, when using udp over tcp packets, lots of the tcp offloading capabilities that modern NICs provided cannot be utilized
and leads to degraded performance compared to non-encapsulated one.

STT provides a tcp like header to encapsulate packet which can utilize all the offloading capabilities and dramatically improve the throughput of tcp traffic.
Expand Down

0 comments on commit 0ac7e7b

Please sign in to comment.