|
26 | 26 | <div class="slides">
|
27 | 27 |
|
28 | 28 | <!–– Slide0 ––>
|
29 |
| - <section>In the NIC of time: Enabling high-performance edge applications with OpenStack, OVS, and SmartNICs |
| 29 | + <section><p><b>In the NIC of time</b></p> |
| 30 | + <p>Enabling high-performance edge applications with OpenStack, OVS, and SmartNICs<p/> |
30 | 31 | <aside class="notes">
|
31 | 32 | Thank you, Daniel, for the (nice? warm?) introduction.
|
32 | 33 | </aside>
|
|
35 | 36 | <section>
|
36 | 37 | <img src="pics/slide1.png" width=70% height=70%></th>
|
37 | 38 | <aside class="notes">
|
38 |
| -So! Hello everyone, my name is Elena "I won't pronounce" Lindqvist and I am here to tell you about using smartNICs with OpenStack. |
39 |
| -I work at Ericsson as a systems manager. That's *systems* manager, so ... -advance to next slide- |
| 39 | +<p>So! Hello everyone, my name is Elena "I won't pronounce" Lindqvist and I am here to tell you about using smartNICs with OpenStack.</p>p> |
| 40 | +<p>I work at Ericsson as a systems manager. That's *systems* manager, so ... </p>p> |
40 | 41 | </aside>
|
41 | 42 | </section>
|
42 | 43 | <!–– Slide2 ––>
|
|
84 | 85 | </section>
|
85 | 86 | <!–– Slide6 ––>
|
86 | 87 | <section>
|
| 88 | + <tr> |
| 89 | + <th><img src="pics/slide6_openstack-logo.png" width=34% height=34%></th> |
| 90 | + </tr> |
87 | 91 | <tr>
|
88 | 92 | <th><img src="pics/slide6_nfv.jpeg" width=50% height=50%></th>
|
89 |
| - <th><img src="pics/slide6_openstack-logo.png" width=44% height=44%></th> |
90 | 93 | </tr>
|
91 | 94 |
|
92 | 95 | <aside class="notes">
|
|
126 | 129 | <!–– Slide8 ––>
|
127 | 130 | <section>
|
128 | 131 | <tr>
|
129 |
| - <th><img src="pics/slide8_intel.png" width=44% height=44%></th> |
130 |
| - <th><img src="pics/slide8_mellanox.jpg" width=25% height=25%></th> |
| 132 | + <th><img src="pics/slide8_intel.png" width=24% height=24%></th> |
| 133 | + <th><img src="pics/slide8_mellanox.jpg" width=45% height=45%></th> |
131 | 134 | </tr>
|
132 |
| - <tr> |
133 | 135 | <tr>
|
134 | 136 | <th><img src="pics/slide8_Broadcom.jpg" width=44% height=44%></th>
|
135 |
| - </tr> |
136 |
| - <tr> |
137 |
| - <th><img src="pics/slide8_netronome.png" width=44% height=44%></th> |
138 |
| - </tr> |
| 137 | + <th><img src="pics/slide8_netronome.png" width=45% height=45%></th> |
| 138 | + </tr> |
139 | 139 | <aside class="notes">
|
140 | 140 | There are quite a few types of smartNICs, ranging from thousands to a few hundred dollars(some you can buy on eBay).
|
141 | 141 |
|
|
153 | 153 |
|
154 | 154 | <!–– Slide9 ––>
|
155 | 155 | <section>
|
156 |
| - <tr> |
157 |
| - <p>Is it a bird? is it a plane? It's SmartNIC !</p> |
158 |
| - </tr> |
| 156 | + <tr> |
| 157 | + |
| 158 | + <p>Is it a bird? is it a plane?</p> |
| 159 | + <p> It's SmartNIC !</p> |
| 160 | + </tr> |
| 161 | + |
159 | 162 | <aside class="notes">
|
160 | 163 | Is it a bird? is it a plane? It's SmartNIC !
|
161 | 164 |
|
|
169 | 172 |
|
170 | 173 | If you use two smartNICs, do you want two separate ovs controllers in your compute? will OpenStack even support that?
|
171 | 174 |
|
| 175 | + </aside> |
| 176 | + </section> |
| 177 | + |
| 178 | +<!–– Slide9 ––> |
| 179 | + <section> |
| 180 | + <tr> |
| 181 | + <p>What is this smartNIC, anyway?</p> |
| 182 | + <p>Is it an embedded linux, is it a linux mini server?</p> |
| 183 | + |
| 184 | + </tr> |
| 185 | + <aside class="notes"> |
| 186 | + |
172 | 187 | What is this smartNIC, anyway? Is it an embedded linux, is it a linux mini server?
|
173 | 188 | Would you want the possibility to say, in one go, configure all your smartNICs to PXE boot, so you can load a new linux on them. Then you need something like IPMI, we're talking rather something like a linux server here than an embedded linux.
|
174 | 189 |
|
175 | 190 | What security concerns are raised with introducing a smartNIC with linux running on it. I'm looking at you, Kim!
|
176 | 191 |
|
| 192 | + </aside> |
| 193 | + </section> |
| 194 | + |
| 195 | +<!–– Slide9 ––> |
| 196 | + <section> |
| 197 | + <tr> |
| 198 | + <p>When should you use a smartNIC?</p> |
| 199 | + </section> |
| 200 | + |
| 201 | +<!–– Slide9 ––> |
| 202 | + <section> |
| 203 | + <tr> |
| 204 | + <p>When should you use a smartNIC?</p> |
| 205 | + <p>more than 4CPUs for OVS per compute host</p> |
| 206 | + |
| 207 | + </tr> |
| 208 | + <aside class="notes"> |
| 209 | + |
177 | 210 | When should you use a smartNIC?
|
178 | 211 | (Intel info) If on your host you use more than 4CPUs for OVS, then you should switch to using smartNICs, it makes sense from a business point of view.
|
179 | 212 | (Also, smartNIC is a good idea if you need low latency and don't care so much about migration)
|
180 | 213 | - advance to next slide -
|
181 | 214 | </aside>
|
182 |
| - </section> |
183 |
| - |
| 215 | + </section> |
184 | 216 | <!–– Slide10 ––>
|
185 |
| - <section> Openstack working with SmartNICs |
| 217 | + <section> <p>Ironic Neutron Cyborg</p> |
| 218 | + <tr> |
| 219 | + <th><img src="pics/OpenStack_Project_Ironic_mascot.png" width=25% height=25%></th> |
| 220 | + <th><img src="pics/OpenStack_Project_Neutron_mascot.png" width=25% height=25%></th> |
| 221 | + <th><img src="pics/OpenStack_Project_Cyborg.png" width=25% height=25%></th> |
| 222 | + </tr> |
| 223 | + |
186 | 224 | <aside class="notes">
|
| 225 | + Openstack working with SmartNICs |
187 | 226 | Now the question is where are we in Openstack when it comes to integrating the wide range of smartNICs appearing on the market?
|
188 | 227 | Work is done in several Openstack projects, like ironic, nova and neutron of course.
|
189 | 228 |
|
|
241 | 280 |
|
242 | 281 | Some smartNIC vendors might use native virtio driver while others use proprietary drivers.
|
243 | 282 |
|
244 |
| -A slide with the dropping traffic from having the same mac |
245 |
| -traffic reaches NIC in dut5 but is dropped, same mac? |
246 |
| -root@FPA1066GX-DA2:~# ovs-appctl dpif/dump-flows br0 |
247 |
| -in_port(14),eth(src=68:05:ca:91:36:b5,dst=68:05:ca:91:36:b5),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.1.1,proto=6),tcp(src=1234,dst=5678), packets:0, bytes:0, used:7.340s, actions:drop |
248 |
| - |
249 | 283 |
|
250 | 284 |
|
251 | 285 | https://specs.openstack.org/openstack/nova-specs/specs/pike/implemented/netronome-smartnic-enablement.html
|
|
255 | 289 | Neutron integration with SmartNICs - TO BE ADDED
|
256 | 290 | Openstack Cyborg for integrating FPGAs with openstack - TO BE ADDED
|
257 | 291 |
|
258 |
| - |
259 | 292 | - advance to next slide -
|
260 | 293 | </aside>
|
261 | 294 | </section>
|
262 | 295 |
|
| 296 | +<!–– SlideX ––> |
| 297 | + <section> |
| 298 | +<font size="-2"> |
| 299 | +<p style="text-align:left;">root@cic-1:~# openstack port create<br> |
| 300 | +<p style="text-align:left;">usage: openstack port create [-h] [-f {json,shell,table,value,yaml}]<br> |
| 301 | +<p style="text-align:left;"> [-c COLUMN] [--max-width <integer>] [--fit-width]<br> |
| 302 | +<p style="text-align:left;"> [--print-empty] [--noindent] [--prefix PREFIX]<br> |
| 303 | +<p style="text-align:left;"> --network <network> [--description <description>]<br> |
| 304 | +<p style="text-align:left;"> [--device <device-id>]<br> |
| 305 | +<p style="text-align:left;"> [--mac-address <mac-address>]<br> |
| 306 | +<p style="text-align:left;"> [--device-owner <device-owner>]<br> |
| 307 | +<p style="text-align:left;"> [--vnic-type <vnic-type>] [--host <host-id>]<br> |
| 308 | +<p style="text-align:left;"> [--dns-name dns-name]</p> |
| 309 | +<p style="text-align:left;"> [--fixed-ip subnet=<subnet>,ip-address=<ip-address>]<br> |
| 310 | +<p style="text-align:left;"> [--binding-profile <binding-profile>]<br> |
| 311 | +<p style="text-align:left;"> [--enable | --disable] [--project <project>]<br> |
| 312 | +<p style="text-align:left;"> [--project-domain <project-domain>]<br> |
| 313 | +<p style="text-align:left;"> [--security-group <security-group> | --no-security-group]<br> |
| 314 | +<p style="text-align:left;"> [--qos-policy <qos-policy>]<br> |
| 315 | +<p style="text-align:left;"> [--enable-port-security | --disable-port-security]<br> |
| 316 | +<p style="text-align:left;"> [--allowed-address ip-address=<ip-address>[,mac-address=<mac-address>]]<br> |
| 317 | +<p style="text-align:left;"> [--tag <tag> | --no-tag]<br> |
| 318 | +<br> |
| 319 | +<p style="text-align:left;">--vnic-type <vnic-type><br> |
| 320 | +<p style="text-align:left;">VNIC type for this port (direct | direct-physical | macvtap | normal | baremetal, default: normal)</p> |
| 321 | + |
| 322 | + |
| 323 | + |
| 324 | + |
| 325 | + |
| 326 | + |
| 327 | + |
| 328 | + |
| 329 | + |
| 330 | + |
| 331 | + |
| 332 | + |
| 333 | + |
| 334 | + |
| 335 | + <name> |
| 336 | + |
| 337 | + |
| 338 | +</font> |
| 339 | + <aside class="notes"> |
| 340 | +<p>Test</p> |
| 341 | + </aside> |
| 342 | + </section> |
| 343 | + |
| 344 | +<!–– SlideX ––> |
| 345 | + <section> |
| 346 | +<font size="-0.5"> |
| 347 | +<p>root@FPA1066GX-DA2:~# ovs-appctl dpif/dump-flows br0</p> |
| 348 | +<p>in_port(14),eth(src=68:05:ca:91:36:b5,dst=68:05:ca:91:36:b5),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.1.1,proto=6),</p> |
| 349 | +<p>tcp(src=1234,dst=5678), packets:0, bytes:0, used:7.340s, actions:<b><font color="red">drop</font></b></p> |
| 350 | +</font> |
| 351 | + <aside class="notes"> |
| 352 | +<p>Yeah, I chucked this in just as an example of what it means to play with non-commercial NICs, can you spot the problem?</p> |
| 353 | + </aside> |
| 354 | + </section> |
| 355 | + |
| 356 | + |
263 | 357 | <!–– Slide11 ––>
|
264 | 358 | <section> Performance
|
265 | 359 | <aside class="notes">
|
|
329 | 423 | XDP (eXpress Data Path) is shipped with the kernel since version 4.8 and it is enabled by default, with CONFIG_BPF_SYSCALL.
|
330 | 424 |
|
331 | 425 |
|
332 |
| -To check if XDP it is enabled in the kernel, it's as simply as grepping for it in the kernel config file |
| 426 | +To check if XDP it is enabled in the kernel, it's as simple as grepping for it in the kernel config file |
333 | 427 |
|
334 | 428 | ┌─(ecrehar@elxahkpv4m2:pts/5)────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────(~/Downloads)─┐
|
335 | 429 | └─(15:09:%)── grep CONFIG_BPF_SYSCALL /boot/config-4.15.0-46-generic ──(mån,06.03)─┘
|
|
0 commit comments