题目描述
根据如下要求,创建新的 VDO 卷:
- 使用未分区的磁盘
- 该卷的名称为
vdough - 该卷的逻辑大小为
50G - 该卷使用
xfs文件系统格式化 - 该卷(在系统启动时)挂载到
/vbread下
核心命令[?]
yum install vdo man vdo | grep vdo.*create vdo create --name=vdough --device=/dev/vdc --vdoLogicalSize=50G mkfs.xfs /dev/mapper/vdough mkdir /vbread /dev/mapper/vdough /vbread xfs _netdev 0 0 mount -a df -Th
详细解析[?]
首先,使用 lsblk 命令查看一下当前系统中磁盘的使用情况,如图 01 所示:

从图 01 中可以看出,只有
vdc这一块磁盘没有分过区,那么,按照题目要求,我们就使用vdc这块磁盘进行 VDO 卷的创建。这里需要注意的是,虽然vdc磁盘只有10G大小,但由于题目中要求我们创建的大小为50G的vdo卷只是“逻辑大小”,因此,我们是可以在一个实际大小只有10G的磁盘中创建一个逻辑大小超过10G的vdo卷的。
首先,使用如下命令安装 vdo 配置工具:
yum install vdo
之后,使用 man vdo | grep vdo.*create 命令,通过 man 手册查询一下创建 vdo 卷的命令写法,命令及回显如下:
$ man vdo | grep vdo.*create
vdo { activate | changeWritePolicy | create | deactivate | disableCompression | disableDeduplication |
# vdo create --name=vdo0 --device=/dev/sdb1 --vdoLogicalSize=10T
通过上面的回显可以看到,创建 vdo 卷的命令格式为:
vdo create --name=vdo0 --device=/dev/sdb1 --vdoLogicalSize=10T
于是,根据题目要求,我们创建 vdo 卷的命令就是:
vdo create --name=vdough --device=/dev/vdc --vdoLogicalSize=50G
上述命令的成功执行后的返回结果如下:
Creating VDO vdough
The VDO volume can address 6 GB in 3 data slabs, each 2 GB.
It can grow to address at most 16 TB of physical storage in 8192 slabs.
If a larger maximum size might be needed, use bigger slabs.
Starting VDO vdough
Starting compression on VDO vdough
VDO instance 0 volume is ready at /dev/mapper/vdough
从上面的返回结果中可以看到,我们刚刚创建的 vdo 卷所在的路径是 /dev/mapper/vdough. 于是,我们接下来使用 mkfs.xfs 命令,将该 vdo 卷格式化为 xfs 格式:
mkfs.xfs /dev/mapper/vdough
接着就开始挂载操作了。首先,创建挂载目录:
mkdir /vbread
之后,编辑 /etc/fstab 文件,写入如下配置信息:
/dev/mapper/vdough /vbread xfs _netdev 0 0
挂载
vdo卷需要使用_netdev参数。_netdev参数可以让系统在完成启动并联网之后再执行相应的挂载动作,这样可以防止出现在系统完成启动之前就挂载vdo卷导致的系统进入紧急模式,无法启动的问题。
接着,使用如下命令重新加载 /etc/fstab 文件的配置信息以完成挂载操作:
mount -a
最后,可以使用 df -Th 命令查看一下是否挂载成功,如图 02 所示即表示该 vdo 卷已成功挂载:

也可以使用 lsblk 确认是否挂载成功:

补充
如果发现前面操作有问题,希望能重新开始创建 vdo 卷,则可以通过如下步骤“删除”之前创建的 vdo 卷:
首先,使用 umount 命令卸载目标 vdo 卷:
umount /vbread
上述命令中的
/vbread即是要卸载的vdo卷的挂载位置;
接着,使用如下命令移除目标 vdo 卷:
vdo remove --name=vdough
上述命令中的
vdough即是要移除的vdo卷的名称。