##Kernel bypass技术及其在Ceph中的应用介绍
###背景
Ceph是当前最流行的开源分布式统一存储,在一套基础架构中同时支持块存储、对象存储和文件存储,支持PB级别的扩展能力,广泛用于云环境中;Ceph来源于Sage Weil博士一项关于存储系统的PhD研究项目,最初被设计为一个分布式文件系统,整体架构基于低速设备而构建,提供毫秒(ms)级别的IO延迟。
从1956年第一块机械硬盘(HDD)诞生至今,存储介质的容量和性能都取得了长足的发展,特别是2011前后固态硬盘(SSD)产生后,IOPS出现了指数级的增长,IO延迟也从毫秒(ms)降到了微妙(us),提升了1000倍以上;与此同时,网络传输速率也从10年前的100Mbps,发展到了目前的100Gbps,实现了1000倍的增长。
随着硬件性能的快速提升,传统的软件实现和架构已成为提升软件系统的主要瓶颈,有数据表明,在全NVMe固态介质的配置下,Ceph集群性能只有硬件限性性能的40%左右,所以为了充分利用高性能介质,需要对现有的软件进行重构。
###Kernel bypass技术
随着硬件性能的提升,内核中的网络栈和存储栈带来的性能瓶颈越来越明显,为缩短io路径、解决NVMe SSD在传统IO栈上的性能问题,Linux内核从4.x开始引入了新的NVMe IO栈,如下图,可以看新的IO子系统完全摈弃了传统的通用块层和SCSI子系统:
而kernel b