SPDK的整体架构如下图,在存储服务层提供了BlobStore和BlobFS,其中BlobStore是一种持久的电源故障安全块分配器,用于与用户态文件系统BlobFS集成,旨在通过代替传统的文件系统,支持更高级别存储服务,如MyAQL、RocksDB等 。
文章插图
SPDK官方提供的BlobFS的应用场景是为Rocksdb提供存储后端,Rocksdb的I/O经由BlobFS与BlobStore下发到bdev,随后由SPDK提供的用户态驱动写入NVMe盘 。整个I/O流程从发起到落盘均在用户态操作,且充分利用了SPDK所提供的异步、无锁化、Zero Copy、轮询等机制,大幅度减少额外的系统开销 。
再详细研究BlobStore和BlobFS实现细节前,让我们先操作感受一下,本文接受一种BlobFS的简单实用方式 。
与vhost实践和SPDK vhost实践(二)中的流程一样,我们先获取SPDK的代码并编译它,注意需要加上--with-fuse选项:
make -j8
此外,需要创建一个配置文件,在此假设为/tmp/blobfs.conf,其具体内容如下:
TransportID "trtype:PCIe traddr:0000:db:00.0" Nvme0
上述配置是以本地NVMe盘为例的其它方式可参考https://spdk.io/doc 。
有了配置文件后,创建BlobFS:
通过上述指令会将0000:db:00.0设备创建名为Nvme0n1的bdev,并在该bdev上创建BlobFS 。
通过fuse挂载BlobFS到/mnt:
上面命令会启动一个SPDK App进程,并将位于Nvme0n1上的BlobFS挂载至/mnt 。
接下来我们可以在/mnt目录试用BlobFS系统了 。
推荐阅读
- 鸡脯肉的炒菜简单做法
- 可视化利器Grafana简单安装教程
- OSI模型是什么?简单几步制作可视化图形图表工具
- 很简单茶叶蛋的做法,快速茶叶蛋的做法是什么
- 简单、快速解决系统分区C盘空间不足的3种方法
- 蜀相的内容简单概括 蜀相高度概括诸葛亮一生功绩
- 简单正确泡茶的方法,正确冲泡普洱茶的方法
- 太极拳最简单实用的3种的松腰秘籍
- 简单喝茶寂静欢喜,所有喝茶的人都知道的件事
- 简单瑜伽拉伸动作有哪些