|
26 | 26 | <div class="reveal">
|
27 | 27 | <div class="slides">
|
28 | 28 |
|
29 |
| -<!–– Slide0 ––> |
| 29 | +<!-- Slide0 --> |
30 | 30 | <section><p><b>In the NIC of time</b></p>
|
31 | 31 | <p>Enabling high-performance edge applications with OpenStack, OVS, and SmartNICs<p/>
|
32 | 32 | <aside class="notes">
|
|
38 | 38 | <br>Openstack?
|
39 | 39 | </aside>
|
40 | 40 | </section>
|
41 |
| -<!–– Slide1 ––> |
| 41 | +<!-- Slide1 --> |
42 | 42 | <section>
|
43 | 43 | <img src="pics/slide1.png" class="stretch"></th>
|
44 | 44 | <aside class="notes">
|
45 | 45 | <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>
|
46 | 46 | <p>I work at Ericsson as a systems manager. That's *systems* manager, so ... </p>
|
47 | 47 | </aside>
|
48 | 48 | </section>
|
49 |
| -<!–– Slide2 ––> |
| 49 | +<!-- Slide2 --> |
50 | 50 | <section>
|
51 | 51 | <img src="pics/slide2_meeting.jpg" class="stretch"></th>
|
52 | 52 | <aside class="notes">
|
53 | 53 | ... not this ...
|
54 | 54 |
|
55 | 55 | </aside>
|
56 | 56 | </section>
|
57 |
| -<!–– Slide3 ––> |
| 57 | +<!-- Slide3 --> |
58 | 58 | <section>
|
59 | 59 | <img src="pics/slide3_HDS.jpg" class="stretch"></th>
|
60 | 60 | <aside class="notes">
|
61 | 61 | but this ...
|
62 | 62 | </aside>
|
63 | 63 | </section>
|
64 |
| -<!–– Slide4 ––> |
| 64 | +<!-- Slide4 --> |
65 | 65 | <section>
|
66 | 66 | <img src="pics/slide3_datacenter.jpg" class="stretch"></th>
|
67 | 67 | <aside class="notes">
|
68 | 68 | or this ...
|
69 | 69 | </aside>
|
70 | 70 | </section>
|
71 |
| -<!–– Slide5 ––> |
| 71 | +<!-- Slide5 --> |
72 | 72 | <section>
|
73 | 73 | <tr>
|
74 | 74 | <p>
|
|
88 | 88 | <br>Erlang is widely used and in Openstack, RabbitMQ uses Erlang.
|
89 | 89 | </aside>
|
90 | 90 | </section>
|
91 |
| -<!–– Slide6 ––> |
| 91 | +<!-- Slide6 --> |
92 | 92 | <section>
|
93 | 93 | <tr>
|
94 | 94 | <th><img src="pics/slide6_openstack-logo.png" width=34% height=34%></th>
|
|
111 | 111 | <br>Fast forward to today, part of SDN, we use opendaylight with Quagga soft router for BGP ( Quagga is what followed after zebra, it is actually an extinct sub-specie of the African zebra.)
|
112 | 112 | </aside>
|
113 | 113 | </section>
|
114 |
| -<!–– SlideX ––> |
| 114 | +<!-- SlideX --> |
115 | 115 | <section>
|
116 | 116 | <p><b>88%</b> increase in mobile data traffic Q4-2017 to Q4-2018</p>
|
117 | 117 | <p><b>EPC</b> to the rescue</p>
|
|
129 | 129 | </aside>
|
130 | 130 | </section>
|
131 | 131 |
|
132 |
| -<!–– Slide7 ––> |
| 132 | +<!-- Slide7 --> |
133 | 133 | <section>
|
134 | 134 | <tr>
|
135 | 135 | <th><img src="pics/slide7_smartNIC.png" width=100% height=100%></th>
|
|
145 | 145 | <br>This means, you will run your ovs-vsctl show commands while logged in to the NIC
|
146 | 146 | </aside>
|
147 | 147 | </section>
|
148 |
| -<!–– Slide8 ––> |
| 148 | +<!-- Slide8 --> |
149 | 149 | <section>
|
150 | 150 | <tr>
|
151 | 151 | <th><img src="pics/slide8_intel.png" width=24% height=24%></th>
|
|
170 | 170 | </aside>
|
171 | 171 | </section>
|
172 | 172 |
|
173 |
| -<!–– Slide9 ––> |
| 173 | +<!-- Slide9 --> |
174 | 174 | <section>
|
175 | 175 | <tr>
|
176 | 176 |
|
|
192 | 192 | </aside>
|
193 | 193 | </section>
|
194 | 194 |
|
195 |
| -<!–– Slide9 ––> |
| 195 | +<!-- Slide9 --> |
196 | 196 | <section>
|
197 | 197 | <tr>
|
198 | 198 | <p>What is this smartNIC, anyway?</p>
|
|
210 | 210 | <br>What security concerns are raised with introducing a smartNIC with linux running on it. I'm looking at you, Kim!
|
211 | 211 | </aside>
|
212 | 212 | </section>
|
213 |
| -<!–– Slide9 ––> |
| 213 | +<!-- Slide9 --> |
214 | 214 | <section>
|
215 | 215 | <tr>
|
216 | 216 | <p>When should you use a smartNIC?</p>
|
|
224 | 224 | <br>(Also, smartNIC is a good idea if you need low latency and don't care so much about migration)
|
225 | 225 | </aside>
|
226 | 226 | </section>
|
227 |
| -<!–– SlideX ––> |
| 227 | +<!-- SlideX --> |
228 | 228 | <section>
|
229 | 229 | <tr>
|
230 | 230 | <th><img src="pics/cpuisol1.png" width=90% height=90%></th>
|
|
237 | 237 | </aside>
|
238 | 238 | </section>
|
239 | 239 |
|
240 |
| -<!–– SlideX ––> |
| 240 | +<!-- SlideX --> |
241 | 241 | <section>
|
242 | 242 | <tr>
|
243 | 243 | <th><img src="pics/cpuisol.png" width=99% height=99%></th>
|
|
248 | 248 | </section>
|
249 | 249 |
|
250 | 250 |
|
251 |
| -<!–– Slide10 ––> |
| 251 | +<!-- Slide10 --> |
252 | 252 | <section> <p>Ironic Neutron Cyborg</p>
|
253 | 253 | <tr>
|
254 | 254 | <th><img src="pics/OpenStack_Project_Ironic_mascot.png" width=25% height=25%></th>
|
|
273 | 273 | </aside>
|
274 | 274 | </section>
|
275 | 275 |
|
276 |
| -<!–– SlideX ––> |
| 276 | +<!-- SlideX --> |
277 | 277 | <section>
|
278 | 278 | <font size="-2">
|
279 | 279 | <p style="text-align:left;">root@cic-1:~# openstack port create<br>
|
|
311 | 311 | </aside>
|
312 | 312 | </section>
|
313 | 313 |
|
314 |
| -<!–– SlideX ––> |
| 314 | +<!-- SlideX --> |
315 | 315 | <section>
|
316 | 316 | <font size="-0.5">
|
317 | 317 | <p style="text-align:left;">root@FPA1066GX-DA2:~# ovs-appctl dpif/dump-flows br0</p>
|
|
324 | 324 | </section>
|
325 | 325 |
|
326 | 326 |
|
327 |
| -<!–– Slide11 ––> |
| 327 | +<!-- Slide11 --> |
328 | 328 | <section>
|
329 | 329 | <p>Performance</p>
|
330 | 330 | <p>Kernel Space vs User Space</p>
|
|
350 | 350 | </section>
|
351 | 351 |
|
352 | 352 |
|
353 |
| -<!–– SlideX ––> |
| 353 | +<!-- SlideX --> |
354 | 354 | <section>
|
355 | 355 | <p>Kernel bypass with DPDK</p>
|
356 | 356 | <aside class="notes">
|
|
370 | 370 | <br>Moving to userspace means the kernel space is skipped together with the good stuff too like networking functionality that needs to be reimplemented now.
|
371 | 371 | </aside>
|
372 | 372 | </section>
|
373 |
| -<!–– SlideX ––> |
| 373 | +<!-- SlideX --> |
374 | 374 | <section>
|
375 | 375 |
|
376 | 376 | <p>DPDK is great except ...</p>
|
|
386 | 386 | <br>Moving to userspace means the kernel space is skipped together with the good stuff too like networking functionality that needs to be reimplemented now.
|
387 | 387 | </aside>
|
388 | 388 | </section>
|
389 |
| -<!–– SlideX ––> |
| 389 | +<!-- SlideX --> |
390 | 390 | <section>
|
391 | 391 |
|
392 | 392 | <font size="-2">
|
|
413 | 413 | How do you move a device from kernel space to user space, in case of DPDK?
|
414 | 414 | </aside>
|
415 | 415 | </section>
|
416 |
| -<!–– SlideX ––> |
| 416 | +<!-- SlideX --> |
417 | 417 | <section>
|
418 | 418 | <p>XDP and eBPF</p>
|
419 | 419 | <aside class="notes">
|
|
429 | 429 | </aside>
|
430 | 430 | </section>
|
431 | 431 |
|
432 |
| -<!–– SlideX ––> |
| 432 | +<!-- SlideX --> |
433 | 433 | <section>
|
434 | 434 | <font size="-1">
|
435 | 435 | <p style="text-align:left;">$ grep CONFIG_BPF_SYSCALL /boot/config-4.15.0-46-generic</p>
|
|
450 | 450 | The Linux kernel configuration item CONFIG_XDP_SOCKETS:
|
451 | 451 | </aside>
|
452 | 452 | </section>
|
453 |
| -<!–– SlideX ––> |
| 453 | +<!-- SlideX --> |
454 | 454 | <section>
|
455 | 455 | <p>
|
456 | 456 | <img src="pics/kernel-diag-ascii.svg" width=35% height=35%>
|
|
493 | 493 |
|
494 | 494 | </aside>
|
495 | 495 | </section>
|
496 |
| -<!–– SlideX ––> |
| 496 | +<!-- SlideX --> |
497 | 497 | <section>
|
498 | 498 | <p>XDP_DROP</p>
|
499 | 499 | <p>XDP_PASS</p>
|
|
512 | 512 | </aside>
|
513 | 513 | </section>
|
514 | 514 |
|
515 |
| -<!–– SlideX ––> |
| 515 | +<!-- SlideX --> |
516 | 516 | <section>
|
517 | 517 | <p>eBPF is a superpower</p>
|
518 | 518 | <aside class="notes">
|
|
524 | 524 | </aside>
|
525 | 525 | </section>
|
526 | 526 |
|
527 |
| -<!–– SlideX ––> |
| 527 | +<!-- SlideX --> |
528 | 528 | <section>
|
529 | 529 | <tr>
|
530 | 530 | <th><img src="pics/bpf2.png" width=99% height=99%></th>
|
|
533 | 533 | This assembly instructions set, this is BPF.
|
534 | 534 | </aside>
|
535 | 535 | </section>
|
536 |
| -<!–– SlideX ––> |
| 536 | +<!-- SlideX --> |
537 | 537 | <section>
|
538 | 538 | <p>With eBPF you can basically modify the kernel behaviour</p>
|
539 | 539 | <aside class="notes">
|
|
542 | 542 | With DPDK you jump between kernel and user space, with XDP BPF, zero copy to user space.
|
543 | 543 | </aside>
|
544 | 544 | </section>
|
545 |
| -<!–– SlideX ––> |
| 545 | +<!-- SlideX --> |
546 | 546 | <section>
|
547 | 547 | <p>BCC tools</p>
|
548 | 548 | <aside class="notes">
|
|
552 | 552 |
|
553 | 553 |
|
554 | 554 |
|
555 |
| -<!–– Slide12 ––> |
| 555 | +<!-- Slide12 --> |
556 | 556 | <section> smartNICs with Storage
|
557 | 557 | <aside class="notes">
|
558 | 558 | <br>I talked mostly about the data traffic so far and using smartNICs with the data traffic.
|
|
565 | 565 |
|
566 | 566 | </aside>
|
567 | 567 | </section>
|
568 |
| -<!–– Slide13 ––> |
| 568 | +<!-- Slide13 --> |
569 | 569 | <section> Ericsson customers that are running on Openstack.
|
570 | 570 | <aside class="notes">
|
571 | 571 | List some operators, the olympics in Japan with docomo, etc - TO BE ADDED
|
572 | 572 | - advance to next slide -
|
573 | 573 | </aside>
|
574 | 574 | </section>
|
575 |
| -<!–– Slide14 ––> |
| 575 | +<!-- Slide14 --> |
576 | 576 | <section>
|
577 | 577 | <br>Datacenters today?
|
578 | 578 | <br>Stacked up "desktop" computers filled with ... air?
|
|
0 commit comments