|
8 | 8 |
|
9 | 9 | <link rel="stylesheet" href="css/reveal.css">
|
10 | 10 | <link rel="stylesheet" href="css/theme/white.css">
|
| 11 | + <link rel="stylesheet" href="css/reveal-override.css"> |
11 | 12 |
|
12 | 13 | <!-- Theme used for syntax highlighting of code -->
|
13 | 14 | <link rel="stylesheet" href="lib/css/zenburn.css">
|
|
25 | 26 | <div class="reveal">
|
26 | 27 | <div class="slides">
|
27 | 28 |
|
28 |
| -<!–– Slide0 ––> |
| 29 | +<!-- Slide0 --> |
29 | 30 | <section><p><b>In the NIC of time</b></p>
|
30 | 31 | <p>Enabling high-performance edge applications with OpenStack, OVS, and SmartNICs<p/>
|
31 | 32 | <aside class="notes">
|
|
37 | 38 | <br>Openstack?
|
38 | 39 | </aside>
|
39 | 40 | </section>
|
40 |
| -<!–– Slide1 ––> |
| 41 | +<!-- Slide1 --> |
41 | 42 | <section>
|
42 |
| - <img src="pics/slide1.png" width=70% height=70%></th> |
| 43 | + <img src="pics/slide1.png" class="stretch"></th> |
43 | 44 | <aside class="notes">
|
44 | 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>
|
45 | 46 | <p>I work at Ericsson as a systems manager. That's *systems* manager, so ... </p>
|
46 | 47 | </aside>
|
47 | 48 | </section>
|
48 |
| -<!–– Slide2 ––> |
| 49 | +<!-- Slide2 --> |
49 | 50 | <section>
|
50 |
| - <img src="pics/slide2_meeting.jpg" width=70% height=70%></th> |
| 51 | + <img src="pics/slide2_meeting.jpg" class="stretch"></th> |
51 | 52 | <aside class="notes">
|
52 | 53 | ... not this ...
|
53 | 54 |
|
54 | 55 | </aside>
|
55 | 56 | </section>
|
56 |
| -<!–– Slide3 ––> |
| 57 | +<!-- Slide3 --> |
57 | 58 | <section>
|
58 |
| - <img src="pics/slide3_HDS.jpg" width=70% height=70%></th> |
| 59 | + <img src="pics/slide3_HDS.jpg" class="stretch"></th> |
59 | 60 | <aside class="notes">
|
60 | 61 | but this ...
|
61 | 62 | </aside>
|
62 | 63 | </section>
|
63 |
| -<!–– Slide4 ––> |
| 64 | +<!-- Slide4 --> |
64 | 65 | <section>
|
65 |
| - <img src="pics/slide3_datacenter.jpg" width=70% height=70%></th> |
| 66 | + <img src="pics/slide3_datacenter.jpg" class="stretch"></th> |
66 | 67 | <aside class="notes">
|
67 | 68 | or this ...
|
68 | 69 | </aside>
|
69 | 70 | </section>
|
70 |
| -<!–– Slide5 ––> |
| 71 | +<!-- Slide5 --> |
71 | 72 | <section>
|
72 | 73 | <tr>
|
73 | 74 | <p>
|
|
87 | 88 | <br>Erlang is widely used and in Openstack, RabbitMQ uses Erlang.
|
88 | 89 | </aside>
|
89 | 90 | </section>
|
90 |
| -<!–– Slide6 ––> |
| 91 | +<!-- Slide6 --> |
91 | 92 | <section>
|
92 | 93 | <tr>
|
93 | 94 | <th><img src="pics/slide6_openstack-logo.png" width=34% height=34%></th>
|
|
111 | 112 | <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 | 113 | </aside>
|
113 | 114 | </section>
|
114 |
| -<!–– SlideX ––> |
| 115 | +<!-- SlideX --> |
115 | 116 | <section>
|
116 | 117 | <p><b>88%</b> increase in mobile data traffic Q4-2017 to Q4-2018</p>
|
117 | 118 | <p><b>EPC</b> to the rescue</p>
|
|
129 | 130 | </aside>
|
130 | 131 | </section>
|
131 | 132 |
|
132 |
| -<!–– Slide7 ––> |
| 133 | +<!-- Slide7 --> |
133 | 134 | <section>
|
134 | 135 | <tr>
|
135 | 136 | <th><img src="pics/slide7_smartNIC.png" width=100% height=100%></th>
|
|
145 | 146 | <br>This means, you will run your ovs-vsctl show commands while logged in to the NIC
|
146 | 147 | </aside>
|
147 | 148 | </section>
|
148 |
| -<!–– Slide8 ––> |
| 149 | +<!-- Slide8 --> |
149 | 150 | <section>
|
150 | 151 | <tr>
|
151 | 152 | <th><img src="pics/slide8_intel.png" width=24% height=24%></th>
|
|
170 | 171 | </aside>
|
171 | 172 | </section>
|
172 | 173 |
|
173 |
| -<!–– Slide9 ––> |
| 174 | +<!-- Slide9 --> |
174 | 175 | <section>
|
175 | 176 | <tr>
|
176 | 177 |
|
|
192 | 193 | </aside>
|
193 | 194 | </section>
|
194 | 195 |
|
195 |
| -<!–– Slide9 ––> |
| 196 | +<!-- Slide9 --> |
196 | 197 | <section>
|
197 | 198 | <tr>
|
198 | 199 | <p>What is this smartNIC, anyway?</p>
|
|
210 | 211 | <br>What security concerns are raised with introducing a smartNIC with linux running on it. I'm looking at you, Kim!
|
211 | 212 | </aside>
|
212 | 213 | </section>
|
213 |
| -<!–– Slide9 ––> |
| 214 | +<!-- Slide9 --> |
214 | 215 | <section>
|
215 | 216 | <tr>
|
216 | 217 | <p>When should you use a smartNIC?</p>
|
|
224 | 225 | <br>(Also, smartNIC is a good idea if you need low latency and don't care so much about migration)
|
225 | 226 | </aside>
|
226 | 227 | </section>
|
227 |
| -<!–– SlideX ––> |
| 228 | +<!-- SlideX --> |
228 | 229 | <section>
|
229 | 230 | <tr>
|
230 | 231 | <th><img src="pics/cpuisol1.png" width=90% height=90%></th>
|
|
237 | 238 | </aside>
|
238 | 239 | </section>
|
239 | 240 |
|
240 |
| -<!–– SlideX ––> |
| 241 | +<!-- SlideX --> |
241 | 242 | <section>
|
242 | 243 | <tr>
|
243 | 244 | <th><img src="pics/cpuisol.png" width=99% height=99%></th>
|
|
248 | 249 | </section>
|
249 | 250 |
|
250 | 251 |
|
251 |
| -<!–– Slide10 ––> |
| 252 | +<!-- Slide10 --> |
252 | 253 | <section> <p>Ironic Neutron Cyborg</p>
|
253 | 254 | <tr>
|
254 | 255 | <th><img src="pics/OpenStack_Project_Ironic_mascot.png" width=25% height=25%></th>
|
|
273 | 274 | </aside>
|
274 | 275 | </section>
|
275 | 276 |
|
276 |
| -<!–– SlideX ––> |
| 277 | +<!-- SlideX --> |
277 | 278 | <section>
|
278 | 279 | <font size="-2">
|
279 | 280 | <p style="text-align:left;">root@cic-1:~# openstack port create<br>
|
|
311 | 312 | </aside>
|
312 | 313 | </section>
|
313 | 314 |
|
314 |
| -<!–– SlideX ––> |
| 315 | +<!-- SlideX --> |
315 | 316 | <section>
|
316 | 317 | <font size="-0.5">
|
317 | 318 | <p style="text-align:left;">root@FPA1066GX-DA2:~# ovs-appctl dpif/dump-flows br0</p>
|
|
324 | 325 | </section>
|
325 | 326 |
|
326 | 327 |
|
327 |
| -<!–– Slide11 ––> |
| 328 | +<!-- Slide11 --> |
328 | 329 | <section>
|
329 | 330 | <p>Performance</p>
|
330 | 331 | <p>Kernel Space vs User Space</p>
|
|
347 | 348 | </section>
|
348 | 349 |
|
349 | 350 |
|
350 |
| -<!–– SlideX ––> |
| 351 | +<!-- SlideX --> |
351 | 352 | <section>
|
352 | 353 | <p>Kernel bypass with DPDK</p>
|
353 | 354 | <aside class="notes">
|
|
367 | 368 | <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.
|
368 | 369 | </aside>
|
369 | 370 | </section>
|
370 |
| -<!–– SlideX ––> |
| 371 | +<!-- SlideX --> |
371 | 372 | <section>
|
372 | 373 |
|
373 | 374 | <p>DPDK is great except ...</p>
|
|
382 | 383 |
|
383 | 384 | </aside>
|
384 | 385 | </section>
|
385 |
| -<!–– SlideX ––> |
| 386 | +<!-- SlideX --> |
386 | 387 | <section>
|
387 | 388 |
|
388 | 389 | <font size="-2">
|
|
409 | 410 | How do you move a device from kernel space to user space, in case of DPDK?
|
410 | 411 | </aside>
|
411 | 412 | </section>
|
412 |
| -<!–– SlideX ––> |
| 413 | +<!-- SlideX --> |
413 | 414 | <section>
|
414 | 415 | <p>XDP and eBPF</p>
|
415 | 416 | <aside class="notes">
|
|
425 | 426 | </aside>
|
426 | 427 | </section>
|
427 | 428 |
|
428 |
| -<!–– SlideX ––> |
| 429 | +<!-- SlideX --> |
429 | 430 | <section>
|
430 | 431 | <font size="-1">
|
431 | 432 | <p style="text-align:left;">$ grep CONFIG_BPF_SYSCALL /boot/config-4.15.0-46-generic</p>
|
|
446 | 447 | The Linux kernel configuration item CONFIG_XDP_SOCKETS:
|
447 | 448 | </aside>
|
448 | 449 | </section>
|
449 |
| -<!–– SlideX ––> |
| 450 | +<!-- SlideX --> |
450 | 451 | <section>
|
451 | 452 | <p>
|
452 | 453 | <img src="pics/kernel-diag-ascii.svg" width=35% height=35%>
|
|
487 | 488 |
|
488 | 489 | </aside>
|
489 | 490 | </section>
|
490 |
| -<!–– SlideX ––> |
| 491 | +<!-- SlideX --> |
491 | 492 | <section>
|
492 | 493 | <p>XDP_DROP</p>
|
493 | 494 | <p>XDP_PASS</p>
|
|
506 | 507 | </aside>
|
507 | 508 | </section>
|
508 | 509 |
|
509 |
| -<!–– SlideX ––> |
| 510 | +<!-- SlideX --> |
510 | 511 | <section>
|
511 | 512 | <p>eBPF is a superpower</p>
|
512 | 513 | <aside class="notes">
|
|
518 | 519 | </aside>
|
519 | 520 | </section>
|
520 | 521 |
|
521 |
| -<!–– SlideX ––> |
| 522 | +<!-- SlideX --> |
522 | 523 | <section>
|
523 | 524 | <p>This is BPF!</p>
|
524 | 525 |
|
|
529 | 530 | This assembly instructions set, this is BPF.
|
530 | 531 | </aside>
|
531 | 532 | </section>
|
532 |
| -<!–– SlideX ––> |
| 533 | +<!-- SlideX --> |
533 | 534 | <section>
|
534 | 535 | <p>With eBPF you can basically modify the kernel behaviour</p>
|
535 | 536 | <aside class="notes">
|
536 | 537 | You can safely and easily modify kernel behaviour.
|
537 | 538 |
|
538 | 539 | </aside>
|
539 | 540 | </section>
|
540 |
| -<!–– SlideX ––> |
| 541 | +<!-- SlideX --> |
541 | 542 | <section>
|
542 | 543 | <p>BCC tools</p>
|
543 | 544 | <aside class="notes">
|
|
547 | 548 |
|
548 | 549 |
|
549 | 550 |
|
550 |
| -<!–– Slide12 ––> |
| 551 | +<!-- Slide12 --> |
551 | 552 | <section> smartNICs with Storage
|
552 | 553 | <aside class="notes">
|
553 | 554 | <br>I talked mostly about the data traffic so far and using smartNICs with the data traffic.
|
|
580 | 581 | </div>
|
581 | 582 |
|
582 | 583 | </div>
|
| 584 | +======= |
| 585 | +<!-- Slide13 --> |
| 586 | + <section> Ericsson customers that are running on Openstack. |
583 | 587 | <aside class="notes">
|
584 | 588 | Telstra - linux and python story<br>
|
585 | 589 | Panasonic - legacy/uefi<br>
|
586 | 590 | Telefonica - Orange France - HA story<br>
|
587 | 591 |
|
588 | 592 | </aside>
|
589 | 593 | </section>
|
590 |
| -<!–– Slide14 ––> |
591 |
| - <section> |
592 |
| - <tr> |
593 |
| - <th><img src="pics/fh.png" width=99% height=99%></th> |
594 |
| - </tr> |
595 |
| - <aside class="notes"> |
596 |
| -<br>Before we take a break and grab those beers, kindly arranged by CN, I have two things to add. |
597 |
| -<br>I'd like to express my deepest gratitude to a person that inspires me quite a lot. |
598 |
| -<br>Many of you know him, his name is FH and if you have never heard about this person, you're missing out... big time. |
599 |
| -<br>I attended one of his hands on workshops at OpenStack Nordics, by chance, then I found him on Twitter, then on YouTube, then I found his awesome blog. |
600 |
| -<br>In the spirit of sharing my astounding discovery, I ran to my colleagues ”have y’all seen this guy's blog???” Some of them replied ” oh yeah, we've been reading his posts for years, he's really good!!” |
601 |
| -<br>Argh, the kind of valuable information people don't share. Seriously, check out his talks on YouTube and his blog! |
602 |
| - </aside> |
603 |
| - </section> |
604 |
| -<!–– Slide15 ––> |
| 594 | +<!-- Slide14 --> |
605 | 595 | <section>
|
606 | 596 | <br>Datacenters today?
|
607 | 597 | <br>Stacked up "desktop" computers filled with ... air?
|
|
631 | 621 | // - https://github.com/hakimel/reveal.js#configuration
|
632 | 622 | // - https://github.com/hakimel/reveal.js#dependencies
|
633 | 623 | Reveal.initialize({
|
| 624 | + controls: false, |
| 625 | + history: true, |
| 626 | + transition: "fade", |
634 | 627 | dependencies: [
|
635 | 628 | { src: 'plugin/markdown/marked.js' },
|
636 | 629 | { src: 'plugin/markdown/markdown.js' },
|
|
0 commit comments