30.7. VDO 命令


本节描述了以下 VDO 工具:
vdo
vdo 实用程序管理 VDO 的 kvdo 和 UDS 组件。
它还用于启用或禁用压缩。
vdostats
vdostats 工具以类似 Linux df 实用程序的格式显示每个配置(或指定)设备的统计信息。

30.7.1. vdo

vdo 实用程序管理 VDO 的 kvdo 和 UDS 组件。

概要

vdo { activate | changeWritePolicy | create | deactivate | disableCompression | disableDeduplication | enableCompression | enableDeduplication | growLogical | growPhysical | list | modify | printConfigFile | remove | start | status | stop } 
[ options... ]

sub-Commands

表 30.4. VDO Sub-Commands
sub-Command描述
create
remove
删除一个或多个已停止的 VDO 卷和相关索引。此命令必须使用 root 特权运行。适用的选项包括:
开始
启动一个或多个已停止的、激活的 VDO 卷和相关服务。此命令必须使用 root 特权运行。适用的选项包括:
stop
停止一个或多个正在运行的 VDO 卷和相关服务。此命令必须使用 root 特权运行。适用的选项包括:
激活
激活一个或多个 VDO 卷。可使用
开始
命令启动激活的卷。此命令必须使用 root 特权运行。适用的选项包括:
deactivate
取消激活一个或多个 VDO 卷。取消激活的卷无法通过
开始
命令启动。停用当前运行的卷不会停止它。在停止停用的 VDO 卷后,必须先激活它,然后才能再次启动。此命令必须使用 root 特权运行。适用的选项包括:
status
以 YAML 格式报告 VDO 系统和卷状态。如果没有运行,这个命令不需要 root 特权,但信息将不完整。适用的选项包括: 有关提供的输出,请参阅 表 30.6 “VDO 状态输出”
list
显示启动的 VDO 卷列表。如果指定了 osgiall,它将显示启动和非启动的卷。此命令必须使用 root 特权运行。适用的选项包括:
修改
changeWritePolicy
修改一个或多个正在运行的 VDO 卷的写入策略。此命令必须使用 root 特权运行。
enableDeduplication
在一个或多个 VDO 卷中启用 deduplication。此命令必须使用 root 特权运行。适用的选项包括:
disableDeduplication
在一个或多个 VDO 卷中禁用 deduplication。此命令必须使用 root 特权运行。适用的选项包括:
启用压缩
在一个或多个 VDO 卷中启用压缩。如果 VDO 卷正在运行,请立即生效。如果 VDO 卷没有运行压缩,则在下次启动 VDO 卷时将启用。此命令必须使用 root 特权运行。适用的选项包括:
禁用压缩
禁用一个或多个 VDO 卷的压缩。如果 VDO 卷正在运行,请立即生效。如果 VDO 卷没有运行压缩,则在下次启动 VDO 卷时将禁用。此命令必须使用 root 特权运行。适用的选项包括:
growLogical
在 VDO 卷中添加逻辑卷。卷必须存在,必须正在运行。此命令必须使用 root 特权运行。适用的选项包括:
growPhysical
在 VDO 卷中添加物理空间。卷必须存在,必须正在运行。此命令必须使用 root 特权运行。适用的选项包括:
printConfigFile
将配置文件输出到 stdout。此命令需要 root 特权。适用的选项包括:

选项

表 30.5. VDO 选项
选项描述
--indexMem=gigabytes
以 GB 为单位指定 UDS 服务器内存量 ; 默认大小为 1 GB。可以使用特殊的十进制值 0.25、0.5、0.75,就像任意正整数一样。
--sparseIndex={enabled | disabled}
启用或禁用稀疏索引。默认值为
--all
表示命令应应用到所有配置的 VDO 卷。不得与 --name 一起使用。
--blockMapCacheSize=megabytes
指定为缓存块映射页面分配的内存大小;该值必须是 4096 的倍数。使用带有 B(ytes), K(ilobytes), M(egabytes), G(igabytes), T(erabytes), P(etabytes)或 E(xabytes)后缀的值是可选的。如果没有提供后缀,则该值将解释为 MB。默认值为 128M;该值必须至少为 128M,且小于 16T。请注意,内存开销为 15%。
--blockMapPeriod=period
1 到 16380 之间的值,它决定了在缓存页面刷新到磁盘前可能会累积的块映射更新数量。数值越高,在正常操作期间,崩溃会降低性能降低后的恢复时间。默认值为 16380。在调整这个参数前,请联系您的红帽代表。
--compression={enabled | disabled}
启用或禁用 VDO 设备中的压缩。默认启用默认值。如果需要,可以禁用压缩,以加快对性能的处理速度,不太可能压缩。
--confFile=file
指定备用配置文件。默认值为 /etc/vdoconf.yml
--deduplication={enabled | disabled}
在 VDO 设备中启用或禁用 deduplication。默认是启用的。在数据没有很好的重复数据删除率但仍然需要压缩的情况下,可能会禁用 deduplication。
--emulate512={enabled | disabled}
启用 512 字节块设备模拟模式。默认值为
--force
在停止 VDO 卷前卸载挂载的文件系统。
--forceRebuild
在启动只读 VDO 卷前强制离线重建,以便它可以重新上线并可用。这个选项可能会导致数据丢失或损坏。
--help
显示 vdo 实用程序的文档。
--logfile=pathname
指定此脚本的日志消息定向到的文件。警告和错误消息也始终记录到 syslog。
--name=volume
在指定的 VDO 卷中操作。不得与 --all 一起使用。
--device=device
指定用于 VDO 存储的设备的绝对路径。
--activate={enabled | disabled}
禁用 的参数表示仅应创建 VDO 卷。卷不会被启动或启用。默认是启用的
--vdoAckThreads=thread count
指定用于确认请求的 VDO I/O 操作的完成线程数量。默认值为 1;该值必须至少为 0,且小于或等于 100。
--vdoBioRotationInterval=I/O count
在将工作定向到下一个操作前,指定每个 bio-submission 线程要排队的 I/O 操作数量。默认值为 64;该值必须至少为 1,且小于或等于 1024。
--vdoBioThreads=thread count
指定用于向存储设备提交 I/O 操作的线程数量。最小为 1; 最大为 100。默认值为 4;该值必须至少为 1,且小于或等于 100。
--vdoCpuThreads=thread count
指定用于 CPU 密集型工作的线程数量,如哈希或压缩。默认值为 2,该值必须至少为 1,且小于或等于 100。
--vdoHashZoneThreads=thread count
根据从块数据计算的哈希值,指定 VDO 处理中分离的线程数量。默认值为 1; 该值必须至少为 0,且小于或等于 100。vdoHashZoneThreadsvdoLogicalThreadsvdoPhysicalThreads 都必须为零或所有非零。
--vdoLogicalThreads=thread count
根据从块数据计算的哈希值,指定 VDO 处理中分离的线程数量。该值必须至少为 0,且小于或等于 100。9 或更多个逻辑线程数还需要明确指定足够大的块映射缓存大小。vdoHashZoneThreads,vdoLogicalThreads, 和 vdoPhysicalThreads 必须是零或所有非零。默认值为 1。
--vdoLogLevel=level
指定 VDO 驱动程序日志级别: criticalerrorwarningnoticeinfodebug。级别是区分大小写的;默认值为 info
--vdoLogicalSize=megabytes
以 MB 为单位指定逻辑卷大小。使用带有 S(ectors)、B(ytes), K(ilobytes), M(egabytes), G(igabytes), T(erabytes), P(etabytes)或 E(xabytes)后缀的值是可选的。用于过度置备卷。默认为存储设备的大小。
--vdoPhysicalThreads=thread count
指定根据物理块地址在 VDO 处理中从属部分的线程数量。该值必须至少为 0,且小于或等于 16。第一个后的每个额外线程将使用额外的 10 MB RAM。vdoPhysicalThreads,vdoHashZoneThreads, 和 vdoLogicalThreads 必须是零或所有非零。默认值为 1。
--readCache={enabled | disabled}
启用或禁用 VDO 设备中的读取缓存。默认值为 。如果写入工作负载应该具有高级别 deduplication,或者用于读取高压缩数据的工作负载,则应启用缓存。
--readCacheSize=megabytes
指定额外的 VDO 设备读取缓存大小(以 MB 为单位)。这个空间除一个系统定义的最小之外。使用带有 B(ytes), K(ilobytes), M(egabytes), G(igabytes), T(erabytes), P(etabytes)或 E(xabytes)后缀的值是可选的。默认值为 0M。每个 bio 线程将每 MB 读缓存使用 1.12 MB 内存。
--vdoSlabSize=megabytes
指定 VDO 增长的递增大小。使用较小的大小限制了可容纳的总物理大小。必须是 128M 到 32G 之间的 2 个电源;默认值为 2G。使用带有 S(ectors)、B(ytes), K(ilobytes), M(egabytes), G(igabytes), T(erabytes), P(etabytes)或 E(xabytes)后缀的值是可选的。如果没有使用后缀,则该值将解释为 MB。
--verbose
在执行命令前打印命令。
--writePolicy={ auto | sync | async }
指定写入策略:
  • auto :根据 VDO 下的存储层选择 syncasync。如果存在写回缓存,则会选择 async。否则,将选择 同步
  • 同步 :只有数据被写入后,才会确认写。这是默认策略。如果底层存储也没有同步,则不支持此策略。
  • async: Writes 在数据 被缓存 后被确认,以写入稳定存储。未清除的数据无法保证在此模式下保留。
status 子命令返回 YAML 格式的以下信息,并分为几个键,如下所示:
表 30.6. VDO 状态输出
描述
VDO 状态 此密钥中的信息涵盖正在进行状态的主机和日期和时间的名称。在此区域中报告的参数包括:
节点 运行 VDO 的系统的主机名。
Date 运行 vdo status 命令的日期和时间。
内核模块 这个密钥中的信息涵盖了配置的内核。
Loaded 是否载入内核模块(True 或 False)。
版本信息 已配置的 kvdo 版本的信息。
配置 此密钥中的信息涵盖了 VDO 配置文件的位置和状态。
File VDO 配置文件的位置。
最后修改 VDO 配置文件的最后修改日期。
VDO 为所有 VDO 卷提供配置信息。为每个 VDO 卷报告的参数包括:
块大小 VDO 卷的块大小,以字节为单位。
512 字节模拟 指明卷是否在 512 字节模拟模式下运行。
启用 deduplication 是否为卷启用 deduplication。
逻辑大小 VDO 卷的逻辑大小。
物理大小 VDO 卷的基本物理存储的大小。
写入策略 写入策略配置的值(sync 或 async)。
VDO 统计 vdostats 工具的输出。

30.7.2. vdostats

vdostats 工具以类似 Linux df 实用程序的格式显示每个配置(或指定)设备的统计信息。
如果没有使用 root 特权运行,则 vdostats 工具的输出可能不完整。

概要

vdostats [ --verbose | --human-readable | --si | --all ] [ --version ] [ device ...]

选项

表 30.7. vdostats 选项
选项 描述
--verbose
显示一个或多个 VDO 设备的利用率和块 I/O (bios)统计信息。详情请查看 表 30.9 “vdostats --verbose Output”
--human-readable
以可读的形式显示块值(基本 2: 1 KB = 210 字节 = 1024 字节)。
--si
--si 选项修改 --human-readable 选项的输出以使用 SI 单位(基本 10: 1 KB = 103 字节 = 1000 字节)。如果没有提供 --human-readable 选项,-- si 选项不会起作用。
--all
这个选项仅用于向后兼容。现在,它等同于 --verbose 选项。
--version
显示 vdostats 版本。
device ...
指定要报告的一个或多个特定卷。如果省略此参数,则 vdostats 将报告所有设备。

输出

以下示例显示,如果没有提供选项,则输出示例,在 表 30.8 “默认 vdostats 输出” 中进行了描述:
Device               1K-blocks    Used         Available     Use%   Space Saving%
/dev/mapper/my_vdo   1932562432   427698104    1504864328    22%    21%
表 30.8. 默认 vdostats 输出
描述
设备 VDO 卷的路径。
1k-blocks 为 VDO 卷分配的 1K 块总数(=物理卷大小 * 块大小 / 1024)
Used VDO 卷中使用的 1K 块总数(= 物理块使用 * 块大小 / 1024)
可用 VDO 卷中可用 1K 块的总数(= 物理块 free * 块大小 / 1024)
use% VDO 卷中使用的物理块的百分比(= 使用块 / 分配的块 * 100)
空间节省% VDO 卷中保存的物理块的百分比(= [逻辑块已使用 - 物理块] / logical blocks used)
--human-readable 选项将块数转换为传统单元(1 KB = 1024 字节):
Device               Size   Used      Available     Use%   Space Saving%
/dev/mapper/my_vdo   1.8T   407.9G    1.4T          22%    21%
--human-readable--si 选项将块数转换为 SI 单位(1 KB = 1000 字节):
Device               Size   Used      Available     Use%    Space Saving%
/dev/mapper/my_vdo   2.0T   438G      1.5T          22%     21%
--verbose (表 30.9 “vdostats --verbose Output”)选项以 YAML 格式显示一个(或全部)VDO 设备的 VDO 设备统计信息。
在以后的发行版本中,以 粗体显示 的统计信息将继续报告。表 30.9 “vdostats --verbose Output”其余字段主要用于软件支持,可能在以后的版本中有所变化;管理工具不应依赖于它们。管理工具不应依赖于报告任何统计数据的顺序。
表 30.9. vdostats --verbose Output
描述
版本 这些统计数据的版本。
发行版本 VDO 的发行版本。
已使用的数据块 VDO 卷目前使用的物理块数量来存储数据。
使用的开销块 VDO 卷目前使用的物理块数量来存储 VDO 元数据。
使用的逻辑块 当前映射的逻辑块数量。
物理块 为 VDO 卷分配的物理块总数。
逻辑块 VDO 卷可以映射的最大逻辑块数。
1k-blocks 为 VDO 卷分配的 1K 块总数(=物理卷大小 * 块大小 / 1024)
1k-blocks 使用的 VDO 卷中使用的 1K 块总数(= 物理块使用 * 块大小 / 1024)
1k-blocks 可用 VDO 卷中可用 1K 块的总数(= 物理块 free * 块大小 / 1024)
已使用百分比 VDO 卷中使用的物理块的百分比(= 使用块 / 分配的块 * 100)
保存百分比 VDO 卷中保存的物理块的百分比(= [逻辑块已使用 - 物理块] / logical blocks used)
块映射缓存大小 块映射缓存的大小,以字节为单位。
写入策略 活跃的写入策略(sync 或 async)。这通过 vdo changeWritePolicy --writePolicy=auto|sync|async 配置。
块大小 VDO 卷的块大小,以字节为单位。
完成恢复计数 VDO 卷已从未清理关闭中恢复的次数。
只读恢复计数 VDO 卷已从只读模式恢复的次数(通过 vdo start --forceRebuild)。
操作模式 指明 VDO 卷是否正常运行,处于恢复模式,或者处于只读模式。
恢复进度(%) 指明在线恢复进度,如果卷没有处于恢复模式,则为 N/A
编写的压缩片段 从 VDO 卷最后一次重启后写入的压缩片段数量。
编写的压缩块 从 VDO 卷最后一次重启后写入的压缩数据的物理块数量。
packer 中的压缩片段 尚未写入的压缩片段数量。
slab 数量 slabs 的总数。
slabs 已打开 从中分配块的 slab 总数。
slabs reopened 从 VDO 启动后,会重新打开 slabs 的次数。
日志磁盘完整计数 请求无法进行恢复日志条目的次数,因为恢复日志已满。
日志提交请求计数 恢复日志请求 slab 日志提交的次数。
日志条目批处理 日志条目写入的数量已开始减去写入的日志条目数。
日志条目已启动 内存中所做的日志条目数。
编写日志条目 提交中的日志条目数量减去提交到存储的日志条目数。
写入的日志条目 签发写入的日志条目总数。
已提交的日志条目 写入存储的日志条目数。
日志块批处理 启动的日志块写入数量减去写入的日志块的数量。
日志块已启动 在内存中涉及的日志块数。
日志块编写 编写的日志块数量(具有活动内存中的元数据主机)减去所提交的日志块数。
写入的日志条目 发出写入的日志块总数。
已提交的日志块 写入存储的日志块数量。
slab 日志磁盘完整计数 磁盘上 slab 日志已满的次数。
slab 日志清除计数 条目添加到通过 flush 阈值的 slab 日志中的次数。
slab 日志阻止计数 条目添加到带有阻塞阈值的 slab 日志中的次数。
写入 slab 日志块 发出 slab 日志块写入的数量。
slab journal tail busy count 写入请求阻止等待 slab 日志写入的次数。
写入 slab 摘要块 签发的 slab 摘要块写入的数量。
编写的引用块 发布的引用块写入数量。
块映射脏页面 块映射缓存中脏页面的数量。
块映射清理页面 块映射缓存中清理页面的数量。
块映射空闲页面 块映射缓存中可用页面的数量。
块映射失败页 具有写入错误的块映射缓存页面数量。
块映射传入的页面 被读取到缓存中的块映射缓存页面数量。
块映射传出页面 正在写入的块映射缓存页面数量。
块映射缓存压力 在需要时,空闲页面不可用的次数。
块映射读取计数 块映射页面的总数显示为:
块映射写入计数 块映射页面写入的总数。
块映射失败的读取 块映射读取错误的总数。
块映射失败的写入 块映射写入错误的总数。
重新声明的块映射 已回收的块映射页面总数。
块映射读取传出 要写入的页面的块映射读取总数。
缓存中找到的块映射 块映射缓存命中的总数。
需要块映射丢弃 需要丢弃页面的块映射请求总数。
块映射等待页面 必须等待页面的请求总数。
需要块映射获取 需要页面获取的请求总数。
加载的块映射页面 页面获取总数。
保存的块映射页面 保存页面的总数。
块映射冲刷计数 块映射发出的刷新总数。
无效的建议 PBN 数量 索引返回无效建议的次数
没有空格错误计数。 由于 VDO 卷没有空间导致的写入请求数。
只读错误计数 因为 VDO 卷处于只读模式而失败的写入请求数。
实例 VDO 实例。
512 字节模拟 指明 512 字节模拟是否为卷打开或关闭。
正在进行中的当前 VDO IO 请求。 VDO 当前处理的 I/O 请求数量。
正在进行中的最大 VDO IO 请求 VDO 并发处理的最大 I/O 请求数。
当前去除重复查询 当前在 flight 中去除重复数据查询的数量。
最大去除重复查询 动态重复数据删除查询的最大数量。
Dedupe 建议有效 数据重复数据建议的次数正确。
dedupe 建议过时 重复数据删除建议的次数不正确。
dedupe 建议超时 重复数据删除查询超时的次数。
flush out VDO 提交到底层存储的清空请求数。
中的 BIOS...部分的 BIOS...BIOS out...BIOS 元...BIOS 日志...BIOS 页面缓存...BIOS 已完成...bio meta completed...BIOS 日志已完成...已完成 BIOS 页面缓存...BIOS 已确认...BIOS 确认的部分...正在进行中的 BIOS...
这些统计数据使用给定标志计算每个类别中的 bios 数量。类别是:
  • BIOS in: VDO 接收的块 I/O 请求数。
  • 区域中 BIOS: VDO 收到的部分块 I/O 请求数量。仅适用于 512 字节模拟模式。
  • BIOS out : 由 VDO 提交到存储设备的非元数据块 I/O 请求的数量。
  • BIOS meta : VDO 向存储设备提交的元数据块 I/O 请求数量。
  • BIOS 日志: VDO 提交到存储设备的恢复日志块 I/O 请求数量。
  • BIOS 页面缓存: VDO 向存储设备提交的块映射 I/O 请求数。
  • BIOS out completed : 由存储设备完成的非元数据块 I/O 请求的数量。
  • BIOS meta completed : 存储设备完成的元数据块 I/O 请求数量。
  • BIOS 日志完成: 由存储设备完成恢复日志块 I/O 请求的数量。
  • BIOS 页面缓存完成:存储设备完成的 块映射 I/O 请求数量。
  • BIOS 已确认: VDO 已确认的块 I/O 请求数。
  • BIOS 确认部分: VDO 已确认 部分块 I/O 请求的数量。仅适用于 512 字节模拟模式。
  • BIOS in progress: 提交至 VDO 的 bios 数(还没有被确认)。
标记有三种类型:
  • Read: 非写入 bios 的数量(未设置 REQ_WRITE 标志)
  • Write : 写入 bios (设置了 REQ_WRITE 标志的bios)
  • discard : 带有 REQ_DISCARD 标志集的 bios 数量
读取缓存访问 VDO 搜索读取缓存的次数。
读取缓存命中 读取缓存命中的数量。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.