community.general.vdo 模块 – 用于控制 VDO 的模块

注意

此模块是 community.general 集合(版本 10.1.0)的一部分。

如果您正在使用 ansible 包,您可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general。您需要满足其他要求才能使用此模块,请参阅 要求 以了解详细信息。

要在 playbook 中使用它,请指定:community.general.vdo

概要

  • 此模块控制 VDO 重复数据删除和压缩设备。

  • VDO,或虚拟数据优化器,是一个设备映射器目标,为主要存储提供内联块级重复数据删除、压缩和精简配置功能。

要求

执行此模块的主机需要满足以下要求。

  • PyYAML

  • kmod-kvdo

  • vdo

参数

参数

注释

ackthreads

字符串

指定用于确认请求的 VDO I/O 操作完成的线程数。有效值为 1 到 100 的整数值(由于开销,较小的数字更可取)。默认值为 1。除非在 playbook 中指定不同的值,否则现有卷将保持其先前配置的设置。

activated

布尔值

VDO 卷的“激活”状态。如果将其设置为 false,则无法启动 VDO 卷,并且它不会在系统启动时启动。但是,在初始创建时,将“activated”设置为“off”的 VDO 卷将一直运行,直到停止。这是“vdo create”命令的默认行为;它为用户提供了一个机会,可以在停止卷并使其处于非活动状态直到准备好使用之前,将基本数量的元数据(文件系统、LVM 标头等)写入 VDO 卷。

选项

  • false

  • true

biothreads

字符串

指定用于将 I/O 操作提交到存储设备的线程数。有效值为 1 到 100 的整数值(由于开销,较小的数字更可取)。默认值为 4。除非在 playbook 中指定不同的值,否则现有卷将保持其先前配置的设置。

blockmapcachesize

字符串

为缓存块映射页分配的内存量,以兆字节为单位(或者可以使用 LVM 样式后缀 K、M、G 或 T)。默认值(和最小值)为 128M。该值指定缓存的大小;存在 15% 的内存使用开销。每 1.25G 的块映射覆盖 1T 的逻辑块,因此少量块映射缓存内存可以缓存大量块映射数据。除非在 playbook 中指定不同的值,否则现有卷将保持其先前配置的设置。

compression

字符串

配置是否启用压缩。创建卷的默认值为“enabled”。除非在 playbook 中指定不同的值,否则现有卷将保持其先前配置的设置。

选项

  • “disabled”

  • “enabled”

cputhreads

字符串

指定用于 CPU 密集型工作的线程数,例如哈希或压缩。有效值为 1 到 100 的整数值(由于开销,较小的数字更可取)。默认值为 2。除非在 playbook 中指定不同的值,否则现有卷将保持其先前配置的设置。

deduplication

字符串

配置是否启用重复数据删除。创建卷的默认值为“enabled”。除非在 playbook 中指定不同的值,否则现有卷将保持其先前配置的设置。

选项

  • “disabled”

  • “enabled”

device

字符串

用于 VDO 存储的设备的完整路径。

如果“state”为“present”,则此项是必需的。

emulate512

布尔值

启用 512 字节仿真模式,允许驱动程序或文件系统以 512 字节的粒度访问 VDO 卷,而不是默认的 4096 字节粒度。默认值为“disabled”;仅当驱动程序或文件系统需要 512 字节扇区级别访问设备时才建议使用。此选项仅在创建新卷时可用,并且无法为现有卷更改。

选项

  • false ←(默认)

  • true

force

布尔值

在 community.general 2.4.0 中添加

创建卷时,忽略存储设备中已存在的任何文件系统或 VDO 签名。停止或删除 VDO 卷时,首先卸载设备上存储的文件系统(如果已挂载)。

警告:由于此参数会删除所有安全检查,因此务必确保提供的所有参数准确且有意。

选项

  • false ←(默认)

  • true

growphysical

布尔值

指定是否尝试执行 growphysical 操作(如果设备上有足够的未使用空间)。如果相对于受影响的 VDO 卷的先前物理大小,至少有 64 GB 的可用空间,则将执行 growphysical 操作。

选项

  • false ←(默认)

  • true

indexmem

字符串

以千兆字节为单位指定索引内存量。默认值为 0.25。可以使用特殊的十进制值 0.25、0.5 和 0.75,也可以使用任何正整数。此选项仅在创建新卷时可用,并且无法为现有卷更改。

indexmode

字符串

指定 Albireo 索引的索引模式。默认值为“dense”,它的重复数据删除窗口为每 1 TB 输入数据 1 GB 的索引内存,在持久存储上需要 10 GB 的索引数据。“sparse”模式的重复数据删除窗口为每 10 TB 输入数据 1 GB 的索引内存,但在持久存储上需要 100 GB 的索引数据。此选项仅在创建新卷时可用,并且无法为现有卷更改。

选项

  • “dense”

  • “sparse”

logicalsize

字符串

VDO 卷的逻辑大小(以兆字节或 LVM 后缀格式表示)。如果未指定新卷,则默认为与“device”参数中指定的底层存储设备相同的大小。如果未指定 logicalsize 参数,或小于或等于当前大小,则现有卷将保持其大小。如果指定的大小大于当前大小,则将执行 growlogical 操作。

logicalthreads

字符串

指定根据逻辑块地址细分 VDO 处理的线程数。有效值为 1 到 100 的整数值(较低的数字由于开销原因更可取)。默认值为 1。现有卷将保持其先前配置的设置,除非在 playbook 中指定了不同的值。

name

字符串 / 必需

VDO 卷的名称。

physicalthreads

字符串

指定根据物理块地址细分 VDO 处理的线程数。有效值为 1 到 16 的整数值(较低的数字由于开销原因更可取)。VDO 卷使用的物理空间必须大于 (slabsize * physicalthreads)。默认值为 1。现有卷将保持其先前配置的设置,除非在 playbook 中指定了不同的值。

readcache

字符串

启用或禁用读取缓存。默认值为“disabled”。选择“enabled”会启用读取缓存,这可以提高高重复数据删除、高压缩率读取工作负载或硬盘存储的性能。现有卷将保持其先前配置的设置,除非在 playbook 中指定了不同的值。

读取缓存功能在 VDO 6.1 及更早版本中可用。

选项

  • “disabled”

  • “enabled”

readcachesize

字符串

以兆字节为单位指定额外的 VDO 设备读取缓存大小。这是在系统定义的最小值之外。可以使用 K、M、G 或 T 的后缀(可选)。默认值为 0。每个指定的读取缓存的 1 MB,每个 bio 线程将使用 1.125 MB 的内存(例如,配置了 4 个 bio 线程的 VDO 卷,其读取缓存内存使用开销为每个指定的读取缓存的 1 MB 4.5 MB)。现有卷将保持其先前配置的设置,除非在 playbook 中指定了不同的值。

读取缓存功能在 VDO 6.1 及更早版本中可用。

running

布尔值

此 VDO 卷是否正在运行。

必须激活 VDO 卷才能启动它。

选项

  • false

  • true

slabsize

字符串

VDO 卷的物理大小增长的增量大小,以兆字节为单位(或可以使用 LVM 样式后缀 K、M、G 或 T)。必须是 128M 到 32G 之间的 2 的幂。默认值为 2G,支持物理大小高达 16T 的卷。最大值 32G 支持高达 256T 的物理大小。此选项仅在创建新卷时可用,不能为现有卷更改。

state

字符串

此 VDO 卷应为“present”还是“absent”。如果不存在“present”VDO 卷,则会创建它。如果已经存在“present”VDO 卷,它将通过更新配置进行修改,这将在 VDO 卷重新启动时生效。并非现有 VDO 卷的所有参数都可以修改;“statusparamkeys”列表包含创建后可以修改的参数。如果不存在“absent”VDO 卷,则不会将其删除。

选项

  • "absent"

  • "present" ← (默认)

writepolicy

字符串

指定 VDO 卷的写入策略。“sync”模式仅在数据位于稳定存储器上之后才确认写入。“async”模式在数据被缓存以写入稳定存储器时确认写入。默认(且强烈推荐)的“auto”模式检查存储设备以确定它是否支持刷新。支持刷新的设备将使 VDO 卷处于“async”模式,而不支持刷新的设备将在 sync 模式下运行。现有卷将保持其先前配置的设置,除非在 playbook 中指定了不同的值。

选项

  • "async"

  • "auto"

  • "sync"

属性

属性

支持

描述

check_mode

支持:

可以在 check_mode 中运行,并返回更改的状态预测,而无需修改目标。

diff_mode

支持:

当处于 diff 模式时,将返回已更改(或可能需要在 check_mode 中更改)的详细信息。

说明

注意

  • 通常,应使用默认线程配置。

示例

- name: Create 2 TB VDO volume vdo1 on device /dev/md0
  community.general.vdo:
    name: vdo1
    state: present
    device: /dev/md0
    logicalsize: 2T

- name: Remove VDO volume vdo1
  community.general.vdo:
    name: vdo1
    state: absent

作者

  • Bryan Gurney (@bgurney-rh)