系统要求
最好fedora,centos可能会出现不能将HM-SMR盘识别成块设备(/dev/sd*)的情况(识别成SCSI设备,也就是/dev/sg*,这个时候mkzonefs不能识别)
我这里用的是fedora32 server版
内核
zonefs已经加入到linux内核源码中,但是默认情况是不开启的,所以需要手动开始然后编译内核。
这里使用的内核版本是最新的linux 5.6.14
编译过程
dependency
flex
bison
openssl-devel
elfutils-libelf-devel
编译
make oldconfig
- 生成.config配置文件,找到CONFIG_ZONEFS_FS,将后面的is not set改成=m
- 编译内核:
make -j8
- 安装模块:
make modules_install
- 安装内核:
make install
启用zonefs
- 重启:
reboot
- 加载zonefs模块:
modprobe zonefs
(因为zonefs是M参数编译的,所以会被编译成模块而不是编译进内核,这种情况下还需要手动启用) - 检查加载情况:
lsmod | grep zonefs
zonefs-tool
dependency
autoconf
automake
libtool
libblkid
libblkid-devel
libuuid
libuuid-devel
编译安装
git clone https://github.com/damien-lemoal/zonefs-tools.git
sh ./autogen.sh
./configure
make && make install
构建zonefs
mkzonefs -f -o aggr_cnv /dev/sda
- 此处/dev/sda为HM-SMR设备
-
-f
:强制执行 -
-o aggr_cnv
:将conventional zone合并成一个大文件
-
mount -t zonefs /dev/sda /mnt/hm
这个地方需要内核中已经加载zonefs模块,不然会报错mount: unknown filesystem type 'zonefs'
网友评论