nova(基于NVM的文件系统)安装
NOVA简单介绍
NOVA是一个基于日志结构的NVM文件系统;它用到了DAX和持久化内存pmem
。源码在官方提供的地址:https://github.com/NVSL/linux-nova
笔者所用环境
- 系统:CentOS Linux release 7.3.1611 (Core)
- 硬件:Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz; DELL, OptiPlex 7040
- 以最新的5.1版本为例,代码链接:https://github.com/NVSL/linux-nova/tree/5.1
最初的nova是只适合在4.3的内核上运行,后面nova更新后已经做到内核里去了;新的网址提供了很多不同内核的版本,经过笔者亲测,基本都可以下载下来直接编译可用!无不佩服其工程能力。
Nova安装
解压
unzip linux-nova-5.1.zip
cd linux-nova-5.1
配置内核编译选项
1 | [root@bogon linux-nova-5.1]# make nconfig |
编译
1 | make -j4 |
设置pmem设备大小
1 | vim /etc/default/grub |
Nova使用
1 | mkdir /mnt/ramdisk |
安装过程中遇到的坑
1. 内核更新后启动不了,直接进行emergency mode
分析
在某种内核下进入emergency mode
键盘可用,这时输入journalctl
可以看到相关日志,发现/sysroot
系统安装失败,进一步分析是由于这个挂载的是xfs
文件系统,而编译内核的时候默认没有选上这个模块;按照以下方式选择这个模块编入即可!
1 | [root@bogon linux-nova-5.1]# make nconfig |
2. 按照nova官方文档,选择CONFIG_LIBNVDIMM
, CONFIG_BLK_DEV_PMEM
, CONFIG_FS_DAX
, CONFIG_NOVA_FS
,重启后/dev
目录下没有看到pmem
设备
分析
相关的配置选项没有选择完全;如以下:
1 | Processor type and features ---> |
3. 执行挂载nova的时候报错,dmesg | tail
输出device does not support DAX
分析
是由于没有配置MEMORY_HOTPLUG
,这一个编译选项在新的内核里已经移植到了Memory Management options
中,如果找不到可以在编译选项配置中进行搜索;
1 | Memory Management options ---> |
总结
基本都是内核编译选项没选择对。
参考文献
http://pmem.io/2016/02/22/pm-emulation.html
https://github.com/NVSL/linux-nova/blob/master/Documentation/filesystems/nova.txt