|
40 | 40 | </section>
|
41 | 41 | <!-- Slide1 -->
|
42 | 42 | <section>
|
43 |
| - <img src="pics/slide1.png" class="stretch"></th> |
| 43 | + <img src="pics/ecl.png" width=35% height=35%></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>
|
|
103 | 103 | <br>
|
104 | 104 | <br>What is NFVi?
|
105 | 105 | <br>For many years at Ericsson, we made SW and HW very dependent on each other. Customers bought whole racks of custom HW and the Ericsson SW applications deployed and running on top of that HW.
|
106 |
| -<br>NFVi is part of the NFV framework and it means, more or less, decoupling the SW from HW for network nodes using virtualization. |
107 |
| -<br>It means you can run the telecom applications(the SW) on any HW (like Dell, HP, Qanta, SuperMicro, Fujitsu servers, whatnot), in VMs or containers. |
108 |
| -<br> Basically, you can run it on Intel HW, 'cause that's so much better ... meltdown ... spectre ... zombieload |
| 106 | +<br>NFVi is part of the NFV framework (a network architecture concept) and it means, more or less, decoupling the SW from HW for network nodes using virtualization. |
| 107 | +<br>It means you can run the telecom applications(the SW) on any HW (like Dell, HP, Quanta, SuperMicro, Fujitsu servers, whatnot), in VMs or containers. |
| 108 | +<br> Basically, running telecom applications on Intel HW, 'cause that's so much better ... meltdown ... spectre ... zombieload |
109 | 109 | <br>
|
110 | 110 | <br>Traces of this decoupling of the network functions from proprietary hardware have been there for many years now.
|
111 | 111 | <br>Around 2003, I worked in an ISP. We used Cisco routers to do BGP with customers and the upstream provider. I was in awe when GNU Zebra came out and I could run BGP in a Linux box.
|
|
175 | 175 | <section>
|
176 | 176 | <tr>
|
177 | 177 |
|
178 |
| - <p>Is it a bird? is it a plane?</p> |
| 178 | + <p>Is it a bird? Is it a plane?</p> |
179 | 179 | <p> It's SmartNIC !</p>
|
180 | 180 | </tr>
|
181 | 181 |
|
|
201 | 201 | </tr>
|
202 | 202 | <aside class="notes">
|
203 | 203 |
|
204 |
| -What is this smartNIC, anyway? Is it an embedded linux, is it a linux mini server? |
205 |
| -<br> |
206 |
| -<br>If you see it as embedded linux, then to upgrade the "FW" you would run an agent on the compute to do this. Is that good enough if you have many such smartNICs in your deployment? |
| 204 | +If you see it as embedded linux, then to upgrade the "FW" you would run an agent on the compute to do this. Is that good enough if you have many such smartNICs in your deployment? |
207 | 205 | <br>
|
208 | 206 | <br>Would you want the possibility to say, in one go, configure all your smartNICs to PXE boot, so you can load a new linux with ovs patches on them?
|
209 | 207 | <br>Then you need something like IPMI, hence it's something resembeling a linux server here than an embedded linux.
|
|
221 | 219 | <aside class="notes">
|
222 | 220 |
|
223 | 221 | When should you use a smartNIC?
|
224 |
| -<br>(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. |
| 222 | +<br>(Intel "intel" :)) 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. |
225 | 223 | <br>(Also, smartNIC is a good idea if you need low latency and don't care so much about migration)
|
226 | 224 | </aside>
|
227 | 225 | </section>
|
|
372 | 370 | <section>
|
373 | 371 |
|
374 | 372 | <p>DPDK is great except ...</p>
|
375 |
| -.. you need to reinvent the wheel ... |
| 373 | +you need to reinvent the wheel |
376 | 374 | <aside class="notes">
|
377 | 375 | Moving the NIC in user space and skipping the kernel entirely, has some disadvantages:
|
378 | 376 | <br><br>You need to manage the driver from user space 'cause you lose the abstraction level the kernel provides
|
|
400 | 398 | <br>
|
401 | 399 | <p style="text-align:left;">$ modprobe uio<br>
|
402 | 400 | <p style="text-align:left;">$ insmod x86_64-native-linuxapp-gcc/kmod/igb_uio.ko<br>
|
403 |
| -<p style="text-align:left;">$ dpdk-devbind.py -b igb_uio 18:00.2 18:00.3<br> |
| 401 | +<p style="text-align:left;">$ dpdk-devbind.py -b igb_uio 18:00.3 18:00.4<br> |
404 | 402 |
|
405 | 403 |
|
406 | 404 | </font>
|
407 | 405 |
|
408 | 406 | <aside class="notes">
|
409 | 407 |
|
410 |
| -How do you move a device from kernel space to user space, in case of DPDK? |
| 408 | +This is how moving a device from kernel space to user space, in case of DPDK looks like. |
| 409 | +<br><br>We need the hugepages for large memory pool alocation that is used for packet buffers. |
| 410 | +<br>Lower number of memory pages means fewer table lookups, perf increases. |
| 411 | +<br>(shorter time to translate a virtual page address to a physical one) |
| 412 | +<br><br>Load the virti |
| 413 | + |
411 | 414 | </aside>
|
412 | 415 | </section>
|
413 | 416 | <!-- SlideX -->
|
|
503 | 506 | <br><br> TX send it immedietly back out on the port that it was received, for load balancer cases for example
|
504 | 507 | <br><br> ABORTED basically drop but what is extra is that you will get some log about it , useful for debugging for sysadmin or developer
|
505 | 508 | <br><br> REDIRECT to another port, to other CPUs, you can modify headers on the packet (TX and REDIRECT similar to the DPDK ones)
|
506 |
| -<br><br> no support for jumbo frames in XDP |
| 509 | +<br><br> Limitation on support for jumbo frames in XDP , jumbo frames are supported, like 3kB but not 9kframes. Might be a problem for storage? |
| 510 | +(reason why this is a problem "one frame cannot exceed a page" constraint) |
507 | 511 | </aside>
|
508 | 512 | </section>
|
509 | 513 |
|
|
514 | 518 | What the heck is eBPF ?
|
515 | 519 | <br><br>BPF stands for "Berkeley Packet Filter" it's a linux kernel technology that is used by e.g. tcpdump and other analysis tools.
|
516 | 520 | <br><br>BPF is used to extract millions of metrics from the kernel and applications for troubleshooting purposes, deep monitoring or troubleshooting/exploring running software.
|
517 |
| -<br><br>BPF is basically a superpower. |
| 521 | +<br><br>BPF is basically a superpower! And here's the thing, Google spent hundread of millions USD to market k8s, no one is marketing the linux kernel, so cool stuff like this are not enough advertised. |
518 | 522 | <br><br>BPF was initially used for tools like tcpdump but Alexei Starovoitov introduced eBPF (extended BPF) to be used for things like NATing, routing, doing what iptables does for example.
|
519 | 523 | </aside>
|
520 | 524 | </section>
|
|
532 | 536 | </section>
|
533 | 537 | <!-- SlideX -->
|
534 | 538 | <section>
|
535 |
| -<p>With eBPF you can basically modify the kernel behaviour</p> |
| 539 | +<p>eBPF to modify the kernel behaviour</p> |
| 540 | + <tr> |
| 541 | + <th><img src="pics/bpf-hooks.png" width=79% height=79%></th> |
| 542 | + </tr> |
| 543 | +<br> |
| 544 | +<p style="text-align:right;"> <font size="-1">Shamefully stolen from </font> <a href="https://twitter.com/alexei_ast"><font size="-1">Alexei</font></a></p> |
| 545 | + |
536 | 546 | <aside class="notes">
|
537 | 547 | You can safely and easily modify kernel behaviour.
|
538 | 548 |
|
| 549 | + |
539 | 550 | </aside>
|
540 | 551 | </section>
|
541 |
| -<!-- SlideX --> |
542 |
| - <section> |
543 |
| -<p>BCC tools</p> |
544 |
| - <aside class="notes"> |
545 |
| - |
546 |
| - </aside> |
547 |
| - </section> |
548 |
| - |
549 |
| - |
550 | 552 |
|
551 | 553 | <!-- Slide12 -->
|
552 | 554 | <section> smartNICs with Storage
|
|
574 | 576 | <a href="https://www.panasonic.aero/whats-new/press-releases/ericsson-panasonic-5g-ready-platform/">Panasonic</a><br>
|
575 | 577 | <a href="https://www.ericsson.com/en/press-releases/2016/2/swisscom-selects-ericsson-for-telco-cloud-infrastructure-and-nfv-of-core-network-functions">Swisscom</a><br>
|
576 | 578 | <a href="https://www.ericsson.com/en/press-releases/2016/2/telefonica-selects-ericsson-for-global-unica-program">Telefonica</a><br>
|
| 579 | + <a href="http://www.ntt.co.jp/news2019/1903e/190319a.html">2020 Olympics with </a><a href="Docomo http://www.ntt.co.jp/news2019/1903e/190319a.html, https://www.ericsson.com/en/press-releases/2016/3/ericsson-cloud-platform-enables-successful-launch-of-multi-vendor-nfv-for-ntt-docomo">NTT Docomo </a><br> |
| 580 | + |
577 | 581 |
|
578 | 582 | </p>
|
579 | 583 | </div>
|
|
584 | 588 | Telstra - linux and python story<br>
|
585 | 589 | Panasonic - legacy/uefi<br>
|
586 | 590 | Telefonica - Orange France - HA story<br>
|
587 |
| -Docomor http://www.ntt.co.jp/news2019/1903e/190319a.html, https://www.ericsson.com/en/press-releases/2016/3/ericsson-cloud-platform-enables-successful-launch-of-multi-vendor-nfv-for-ntt-docomo |
| 591 | +Docomo http://www.ntt.co.jp/news2019/1903e/190319a.html, https://www.ericsson.com/en/press-releases/2016/3/ericsson-cloud-platform-enables-successful-launch-of-multi-vendor-nfv-for-ntt-docomo |
588 | 592 | </aside>
|
589 | 593 | </section>
|
590 | 594 |
|
|
593 | 597 | <br>Datacenters today?
|
594 | 598 | <br>Stacked up "desktop" computers filled with ... air?
|
595 | 599 | <aside class="notes">
|
596 |
| -<br>Secondly, it's my desire to leave you with a thought. |
| 600 | +<br>It is my desire to leave you with a thought. |
597 | 601 | <br>I came to the realization that most of the things we learn are provisional and in consequence they are open to recantation and refutation. (I have been raised in an eastern europe communist country and been lied to a significant part of my life).
|
598 | 602 | <br> I enjoy this path of questioning everything, why do we do things a certain way.
|
599 | 603 | <br><br>In 2001 my first job was sysadmin working for a big Eastern European Internet Service Provider
|
|
608 | 612 | <!-- Slide14 -->
|
609 | 613 | <section>
|
610 | 614 | <br>Thank you:
|
611 |
| -<br><a href="https://xahteiwi.eu/">Florian Haas</a> |
612 |
| -<br><a href="https://twitter.com/brendangregg">Berendan Gregg</a> |
613 |
| -<br><a href="https://twitter.com/alexei_ast">Alexei Starovoitov</a> |
| 615 | +<br><a href="https://xahteiwi.eu/"><font size="5">Florian Haas</font></a> |
| 616 | +<br><a href="https://twitter.com/brendangregg"><font size="5">Brendan Gregg</font></a> |
| 617 | +<br><a href="https://twitter.com/JesperBrouer"><font size="5">Jesper Dangaard Brouer</font></a> |
| 618 | +<br><a href="https://twitter.com/alexei_ast"><font size="5">Alexei Starovoitov</font></a> |
| 619 | +<br><a href="https://twitter.com/hakimel"><font size="5">Hakim El Hattab</font></a> |
614 | 620 |
|
615 | 621 |
|
616 |
| - <aside class="notes"> |
617 |
| -<br>Secondly, it's my desire to leave you with a thought. |
618 |
| -<br>I came to the realization that most of the things we learn are provisional and in consequence they are open to recantation and refutation. (I have been raised in an eastern europe communist country and been lied to a significant part of my life). |
619 |
| -<br> I enjoy this path of questioning everything, why do we do things a certain way. |
620 |
| -<br><br>In 2001 my first job was sysadmin working for a big Eastern European Internet Service Provider |
621 |
| -<br>Many customers asked to move their web servers and mail servers on our premises. |
622 |
| -<br>It was because their services would access directly the big pipe and we had a generator. 2001 Eastern Europe meant lots of power outages ... daily. |
623 | 622 |
|
624 |
| -<br><br>They would bring desktop tower PCs that we would place on and under lined up tables against the wall. Soon enough, we ran out of physical space on those tables and bought racks. |
625 |
| -<br>We asked customers to buy rackable servers in order to host with us, then we ran out of space again, we build an awesome datacenter and somewhere 2005 we ran out of space there too. We started using VMs with kvm. |
626 |
| -<br><br>Fast forward, today our datacenters are collections of those stacked boxes that used to be desktop computers. To me, this is insane, does it make any sense to you? Should we go down the timeline of computer history and disagragate it all and have racks of compute, memory, storage, networking? |
| 623 | + |
| 624 | + <aside class="notes"> |
| 625 | +<br> |
627 | 626 | </aside>
|
628 | 627 | </section>
|
| 628 | +<!-- Slide4 |
| 629 | + <section> |
| 630 | + <img src="pics/termtosvg_5xxaxp7l.svg" class="stretch"></th> |
| 631 | + <aside class="notes"> |
| 632 | + </aside> |
| 633 | + </section> |
| 634 | +--> |
629 | 635 |
|
630 | 636 | </div>
|
631 | 637 | </div>
|
|
638 | 644 | // - https://github.com/hakimel/reveal.js#configuration
|
639 | 645 | // - https://github.com/hakimel/reveal.js#dependencies
|
640 | 646 | Reveal.initialize({
|
641 |
| - controls: false, |
| 647 | + controls: true, |
642 | 648 | history: true,
|
643 | 649 | transition: "fade",
|
644 | 650 | dependencies: [
|
|
0 commit comments