Abstract
A computational storage device incorporating a computation unit inside or near its storage unit is a highly promising technology to maximize a storage server’s performance. However, to apply such computational storage devices and take their full potential in virtualized environments, server architects must resolve a fundamental challenge: cost-effective virtualization. This critical challenge can be directly addressed by the following questions: (1) how to virtualize two different hardware units (i.e., computation and storage), and (2) how to integrate them to construct virtual computational storage devices, and (3) how to provide them to users. However, the existing methods for computational storage virtualization severely suffer from their low performance and high costs due to the lack of hardware-assisted virtualization support.
In this work, we propose SmartFVM-Engine, an FPGA card designed to maximize the performance and cost-effectiveness of computational storage virtualization. SmartFVM-Engine introduces three key ideas to achieve the design goals. First, it achieves high virtualization performance by applying hardware-assisted virtualization to both computation and storage units. Second, it further improves the performance by applying hardware-assisted resource orchestration for the virtualized units. Third, it achieves high cost-effectiveness by dynamically constructing and scheduling virtual computational storage devices. To the best of our knowledge, this is the first work to implement a hardware-assisted virtualization mechanism for modern computational storage devices.
- [1] 2021. Flexible I/O Tester. https://github.com/axboe/fio.Google Scholar
- [2] 2021. Intel Solid State Drives. https://www.intel.com/content/www/us/en/products/memory-storage/solid-state-drives.html.Google Scholar
- [3] 2021. Linux KVM. https://www.linux-kvm.org/page/Main_Page.Google Scholar
- [4] 2021. QEMU. https://www.qemu.org/.Google Scholar
- [5] 2021. Samsung SmartSSD Computational Storage. https://samsungsemiconductor-us.com/smartssd/.Google Scholar
- [6] 2021. Xilinx Alveo U250 FPGA. https://www.xilinx.com/products/boards-and-kits/alveo/u250.html.Google Scholar
- [7] 2021. Xilinx FPGAs & 3D ICs. https://www.xilinx.com/products/silicon-devices/fpga.html.Google Scholar
- [8] 2021. Xilinx QDMA Subsystem for PCI Express. https://www.xilinx.com/products/intellectual-property/pcie-qdma.html.Google Scholar
- [9] . 2017. SPIN: Seamless operating system integration of peer-to-peer DMA between SSDs and GPUs. In 2017 USENIX Annual Technical Conference (ATC 17). 167–179.Google Scholar
- [10] . 2016. Biscuit: A framework for near-data processing of big data workloads. In 2016 ACM/IEEE 43rd Annual International Symposium on Computer Architecture (ISCA). IEEE, 153–165.Google ScholarDigital Library
- [11] Ajay Gulati, Irfan Ahmad, and Carl A. Waldspurger. 2009. PARDA: Proportional allocation of resources for distributed storage access. In FAST, Vol. 9. 85–98.Google Scholar
- [12] . 2015. BlueDBM: An appliance for big data analytics. In 2015 ACM/IEEE 42nd Annual International Symposium on Computer Architecture (ISCA). IEEE, 1–13.Google Scholar
- [13] . 2018. Sharing, protection and compatibility for reconfigurable fabric with AmorphOS. In 13th USENIX Symposium on Operating Systems Design and Implementation (OSDI 18). 107–127.Google Scholar
- [14] . 2020. Do OS abstractions make sense on FPGAs?. In 14th USENIX Symposium on Operating Systems Design and Implementation (OSDI 20). 991–1010.Google Scholar
- [15] . 2018. DCS-ctrl: A fast and flexible device-control mechanism for device-centric server architecture. In 2018 ACM/IEEE 45th Annual International Symposium on Computer Architecture (ISCA). IEEE, 491–504.Google ScholarDigital Library
- [16] . 2020. FVM: FPGA-assisted virtual device emulation for fast, scalable, and flexible storage virtualization. In 14th USENIX Symposium on Operating Systems Design and Implementation (OSDI 20). 955–971.Google Scholar
- [17] . 2011. SplitX: Split guest/hypervisor execution on multi-core. In WIOV.Google Scholar
- [18] . 2020. SmartSSD: FPGA accelerated near-storage data analytics on SSD. IEEE Computer Architecture Letters 19, 2 (2020), 110–113.Google ScholarDigital Library
- [19] . 2020. LeapIO: Efficient and portable virtual NVMe storage on ARM SoCs. In Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems. 591–605.Google ScholarDigital Library
- [20] . 2020. A hypervisor for shared-memory FPGA platforms. In Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems. 827–844.Google ScholarDigital Library
- [21] . 2019. DeepStore: In-storage acceleration for intelligent queries. In Proceedings of the 52nd Annual IEEE/ACM International Symposium on Microarchitecture. 224–238.Google ScholarDigital Library
- [22] . 2017. Design and implementation of Blowfish algorithm using reconfigurable platform. In 2017 International Conference on Recent Innovations in Signal Processing and Embedded Systems (RISE). IEEE, 479–484.Google ScholarCross Ref
- [23] . 2018. MDev-NVMe: A NVMe storage virtualization solution with mediated pass-through. In 2018 USENIX Annual Technical Conference (ATC 18). 665–676.Google Scholar
- [24] . 2014. Arrakis: The operating system is the control plane. In 11th USENIX Symposium on Operating Systems Design and Implementation (OSDI 14). 1–16.Google Scholar
- [25] . 1998. Active storage for large-scale data mining and multimedia applications. In Proceedings of 24th Conference on Very Large Databases. Citeseer, 62–73.Google ScholarDigital Library
- [26] . 2019. INSIDER: Designing in-storage computing system for emerging high-performance drive. In 2019 USENIX Annual Technical Conference (ATC 19). 379–394.Google Scholar
- [27] . 2008. virtio: Towards a de-facto standard for virtual I/O devices. ACM SIGOPS Operating Systems Review 42, 5 (2008), 95–103.Google ScholarDigital Library
- [28] . 2020. Accessible near-storage computing with FPGAs. In Proceedings of the Fifteenth European Conference on Computer Systems. 1–12.Google ScholarDigital Library
- [29] . 2018. FLIN: Enabling fairness and enhancing performance in modern NVMe solid state drives. In 2018 ACM/IEEE 45th Annual International Symposium on Computer Architecture (ISCA). IEEE, 397–410.Google ScholarDigital Library
- [30] . 2002. An FPGA based SHA-256 processor. In International Conference on Field Programmable Logic and Applications. Springer, 577–585.Google ScholarCross Ref
- [31] . 2018. SPDK Vhost-NVMe: Accelerating I/Os in virtual machines on NVMe SSDs via user space vhost target. In 2018 IEEE 8th International Symposium on Cloud and Service Computing (SC2). IEEE, 67–76.Google ScholarCross Ref
- [32] . 2020. Check-in: In-storage checkpointing for key-value store system leveraging flash-based SSDs. In 2020 ACM/IEEE 47th Annual International Symposium on Computer Architecture (ISCA). IEEE, 693–706.Google ScholarDigital Library
- [33] . 2020. Virtualizing FPGAs in the cloud. In Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems. 845–858.Google ScholarDigital Library
- [34] . 2018. FlashShare: Punching through server storage stack from kernel to firmware for ultra-low latency SSDs. In 13th USENIX Symposium on Operating Systems Design and Implementation (OSDI 18). 477–492.Google Scholar
Index Terms
- SmartFVM: A Fast, Flexible, and Scalable Hardware-based Virtualization for Commodity Storage Devices
Recommendations
Sampling-based Steal Time Accounting under Hardware Virtualization
ICPE '15: Proceedings of the 6th ACM/SPEC International Conference on Performance EngineeringVirtualization enables the efficient sharing of hardware resources among multiple virtual machines (VMs). Because the physical resources are limited, the scheduler must often suspend one VM to allow some other VM to run. The operating system in a VM is ...
High performance and scalable I/O virtualization via self-virtualized devices
HPDC '07: Proceedings of the 16th international symposium on High performance distributed computingWhile industry is making rapid advances in system virtualization, for server consolidation and for improving system maintenance and management, it has not yet become clear how virtualization can contribute to the performance of high end systems. In this ...
Performance comparison of hardware virtualization platforms
NETWORKING'11: Proceedings of the 10th international IFIP TC 6 conference on Networking - Volume Part IHosting virtual servers on a shared physical hardware by means of hardware virtualization is common use at data centers, web hosters, and research facilities. All platforms include isolation techniques that restrict resource consumption of the virtual ...
Comments