如何管理存储池

请参阅以下部分,了解有关如何创建、配置、查看和调整存储池大小的说明。

创建存储池

Incus 在初始化期间会创建一个存储池。您可以稍后使用相同的驱动程序或不同的驱动程序添加更多存储池。

要创建存储池,请使用以下命令

incus storage create <pool_name> <driver> [configuration_options...]

除非另有说明,否则 Incus 会设置基于循环的存储,并使用合理的默认大小(可用磁盘空间的 20%,但至少 5 GiB,最多 30 GiB)。

请参阅存储驱动程序文档,以获取每个驱动程序可用的配置选项列表。

示例

请参阅以下示例,了解如何使用不同的存储驱动程序创建存储池。

创建一个名为pool1的目录池

incus storage create pool1 dir

将现有目录/data/incus用于pool2

incus storage create pool2 dir source=/data/incus

在集群中创建存储池

如果您正在运行 Incus 集群并想要添加存储池,则必须为每个集群成员分别创建存储池。这样做的原因是,配置(例如存储位置或池的大小)在集群成员之间可能不同。

因此,您必须首先使用 --target=<cluster_member> 标志和成员的相应配置在每个成员上创建一个挂起的存储池。确保为所有成员使用相同的存储池名称。然后在不指定 --target 标志的情况下创建存储池以实际设置它。

例如,以下命令序列在三个集群成员的不同位置和不同大小上设置了一个名为 my-pool 的存储池。

user@host:~$ incus storage create my-pool zfs source=/dev/sdX size=10GiB --target=vm01
Storage pool my-pool pending on member vm01
user@host:~$ incus storage create my-pool zfs source=/dev/sdX size=15GiB --target=vm02
Storage pool my-pool pending on member vm02
user@host:~$ incus storage create my-pool zfs source=/dev/sdY size=10GiB --target=vm03
Storage pool my-pool pending on member vm03
user@host:~$ incus storage create my-pool zfs
Storage pool my-pool created

另请参阅 如何为集群配置存储

注意

对于大多数存储驱动程序,存储池存在于每个集群成员的本地。这意味着,如果您在一个成员的存储池中创建存储卷,它将无法在其他集群成员上使用。

对于基于 Ceph 的存储池(cephcephfscephobject),此行为有所不同,其中每个存储池存在于一个中心位置,因此,所有集群成员都访问同一个存储池以及相同的存储卷。

配置存储池设置

有关每个存储驱动程序的可用配置选项,请参阅 存储驱动程序 文档。

存储池的通用键(如 source)位于顶级。特定于驱动程序的键由驱动程序名称命名空间。

使用以下命令设置存储池的配置选项。

incus storage set <pool_name> <key> <value>

例如,要关闭 dir 存储池在存储池迁移期间的压缩,请使用以下命令。

incus storage set my-dir-pool rsync.compression false

您还可以使用以下命令编辑存储池配置。

incus storage edit <pool_name>

查看存储池

您可以显示所有可用存储池的列表并检查其配置。

使用以下命令列出所有可用存储池。

incus storage list

生成的表格包含您在初始化期间创建的存储池(通常称为 defaultlocal)以及您添加的任何存储池。

要显示有关特定池的详细信息,请使用以下命令。

incus storage show <pool_name>

要查看特定池的使用信息,请运行以下命令。

incus storage info <pool_name>

调整存储池大小

如果您需要更多存储空间,可以通过更改 size 配置键来增加存储池的大小。

incus storage set <pool_name> size=<new_size>

这仅适用于由 Incus 管理的循环回送存储池。您只能扩展池(增加其大小),而不能缩小它。