Proxmox VE 的存储模型非常灵活。虚拟机镜像既可以存储在一个或多个本地存储上, 也可以存储在 NFS 或 iSCSI(NAS、SAN)等共享存储上。系统没有固定数量限制, 可以按需配置任意数量的存储池。OpenEuler Linux 可用的所有存储技术都可以使用。

将虚拟机存储在共享存储上的一个主要优势是,可以在不停机的情况下实时迁移正在运行的机器, 因为集群中的所有节点都可以直接访问虚拟机磁盘镜像。这种情况下无需复制虚拟机镜像数据, 因此实时迁移速度很快。

存储库(软件包 libpve-storage-perl)使用灵活的插件系统,为所有存储类型提供统一接口。 将来可以很容易地扩展以包含更多存储类型。

存储类型

存储类型基本分为两大类:

文件级存储

基于文件级的存储技术允许访问功能完整的(POSIX)文件系统。一般来说, 它们比任何块级存储(见下文)更灵活,并允许存储任意类型的内容。ZFS 可能是最先进的系统, 并且完整支持快照和克隆。

块级存储

允许存储大型 raw 镜像。通常无法在这类存储类型上存储其他文件(ISO、备份等)。 大多数现代块级存储实现都支持快照和克隆。RADOS 和 GlusterFS 是分布式系统, 会将存储数据复制到不同节点。

Table 1. 可用存储类型
说明 插件类型 级别 共享 快照 稳定性

ZFS(本地)

zfspool

both1

no

yes

yes

目录

dir

file

no

no2

yes

BTRFS

btrfs

file

no

yes

technology preview

NFS

nfs

file

yes

no2

yes

CIFS

cifs

file

yes

no2

yes

Proxmox Backup

pbs

both

yes

n/a

yes

GlusterFS

glusterfs

file

yes

no2

yes

CephFS

cephfs

file

yes

yes

yes

LVM

lvm

block

no3

no

yes

LVM-thin

lvmthin

block

no

yes

yes

iSCSI/kernel

iscsi

block

yes

no

yes

iSCSI/libiscsi

iscsidirect

block

yes

no

yes

Ceph/RBD

rbd

block

yes

yes

yes

ZFS over iSCSI

zfs

block

yes

yes

yes

1: 虚拟机磁盘镜像存储在提供块设备功能的 ZFS volume(zvol)数据集中。

2: 在基于文件的存储上,可以通过 qcow2 格式实现快照。

3: 可以在基于 iSCSI 或 FC 的存储之上使用 LVM。这样可以获得 shared LVM 存储。

精简配置

许多存储以及 QEMU 镜像格式 qcow2 都支持“精简配置”。启用精简配置后, 只有客户机系统实际使用的块才会写入存储。

例如,创建一台带 32GB 硬盘的虚拟机,安装客户机操作系统后,虚拟机根文件系统中包含 3GB 数据。在这种情况下,即使客户机虚拟机看到的是 32GB 硬盘,也只有 3GB 会写入存储。 通过这种方式,精简配置允许创建大于当前可用存储块数量的磁盘镜像。可以先为虚拟机创建 较大的磁盘镜像,并在需要时为存储添加更多磁盘,而无需调整虚拟机文件系统大小。

所有具备“快照”特性的存储类型也都支持精简配置。

Caution 如果某个存储被写满,所有使用该存储上卷的客户机都会收到 IO 错误。 这可能导致文件系统不一致,并可能损坏数据。因此,建议避免过度配置存储资源, 或仔细监控可用空间以避免此类情况。

存储配置

所有与 Proxmox VE 相关的存储配置都保存在单个文本文件 /etc/pve/storage.cfg 中。 由于该文件位于 /etc/pve/ 内,它会自动分发到所有集群节点。因此,所有节点共享同一份 存储配置。

对于共享存储,共享存储配置是很自然的,因为所有节点都能访问同一个“共享”存储。 但这对本地存储类型同样有用。在这种情况下,此类本地存储在所有节点上都可用, 但物理上是不同的,也可能包含完全不同的内容。

存储池

每个存储池都有一个 <type>,并通过其 <STORAGE_ID> 唯一标识。存储池配置如下所示:

<type>: <STORAGE_ID>
        <property> <value>
        <property> <value>
        <property>
        ...

<type>: <STORAGE_ID> 行开始一个存储池定义,随后是属性列表。大多数属性需要值。 有些属性具有合理的默认值,此时可以省略该值。

更具体地说,可以查看安装后的默认存储配置。它包含一个名为 local 的特殊本地存储池, 指向目录 /var/lib/vz,并且始终可用。Proxmox VE 安装程序会根据安装时选择的存储类型 创建额外的存储条目。

默认存储配置(/etc/pve/storage.cfg
dir: local
        path /var/lib/vz
        content iso,vztmpl,backup

# default image store on LVM based installation
lvmthin: local-lvm
        thinpool data
        vgname pve
        content rootdir,images

# default image store on ZFS based installation
zfspool: local-zfs
        pool rpool/data
        sparse
        content images,rootdir
Caution 让多个存储配置指向完全相同的底层存储会带来问题。这类 aliased 存储配置可能导致两个不同的卷 ID(volid)指向同一个磁盘镜像。Proxmox VE 期望镜像的卷 ID 是唯一的。为 aliased 存储配置选择不同内容类型在某些情况下可行,但不推荐。

通用存储属性

一些存储属性在不同存储类型之间通用。

nodes

可以使用或访问该存储的集群节点名称列表。可以使用该属性将存储访问限制在有限的一组节点上。

content

一个存储可以支持多种内容类型,例如虚拟磁盘镜像、cdrom ISO 镜像、容器模板或容器根目录。 并非所有存储类型都支持所有内容类型。可以设置该属性以选择该存储的用途。

images

QEMU/KVM 虚拟机镜像。

rootdir

允许存储容器数据。

vztmpl

容器模板。

backup

备份文件(vzdump)。

iso

ISO 镜像

snippets

片段文件,例如客户机 hook 脚本

shared

表示这是一个在所有节点(或 nodes 选项列出的所有节点)上内容相同的单一存储。 它不会让本地存储的内容自动对其他节点可访问,只是把已经共享的存储标记为共享。

disable

可以使用该标志完全禁用存储。

maxfiles

已弃用,请改用 prune-backups。每台虚拟机的最大备份文件数量。使用 0 表示不限制。

prune-backups

备份保留选项。详情请参见 备份保留

format

默认镜像格式(raw|qcow2|vmdk

preallocation

文件型存储上 rawqcow2 镜像的预分配模式(off|metadata|falloc|full)。 默认值为 metadata,对于 raw 镜像会按 off 处理。当网络存储与大型 qcow2 镜像配合使用时,使用 off 有助于避免超时。

Warning 不建议在不同 Proxmox VE 集群上使用同一个存储池。某些存储操作需要对存储进行独占访问, 因此需要正确的锁定机制。该机制已在集群内部实现,但不能跨不同集群工作。

系统使用一种特殊表示法来定位存储数据。从存储池分配数据时,会返回这样的卷标识符。 卷由 <STORAGE_ID> 标识,后接依赖于存储类型的卷名称,中间以冒号分隔。 有效的 <VOLUME_ID> 如下所示:

local:230/example-image.raw
local:iso/debian-501-amd64-netinst.iso
local:vztmpl/debian-5.0-joomla_1.5.9-1_i386.tar.gz
iscsi-storage:0.0.2.scsi-14f504e46494c4500494b5042546d2d646744372d31616d61

要获取 <VOLUME_ID> 的文件系统路径,请使用:

pvesm path <VOLUME_ID>

卷所有权

image 类型卷存在所有权关系。每个此类卷都归属于一台虚拟机或一个容器。 例如,卷 local:230/example-image.raw 归属于虚拟机 230。大多数存储后端会将该所有权信息 编码到卷名称中。

删除虚拟机或容器时,系统也会删除其拥有的所有关联卷。

使用命令行界面

建议熟悉存储池和卷标识符背后的概念,但在实际使用中,并不要求在命令行执行这些低级操作。 通常,卷的分配和移除由虚拟机与容器管理工具完成。

不过,系统提供了名为 pvesm(“Proxmox VE Storage Manager”)的命令行工具, 可执行常见的存储管理任务。

示例

添加存储池

pvesm add <TYPE> <STORAGE_ID> <OPTIONS>
pvesm add dir <STORAGE_ID> --path <PATH>
pvesm add nfs <STORAGE_ID> --path <PATH> --server <SERVER> --export <EXPORT>
pvesm add lvm <STORAGE_ID> --vgname <VGNAME>
pvesm add iscsi <STORAGE_ID> --portal <HOST[:PORT]> --target <TARGET>

禁用存储池

pvesm set <STORAGE_ID> --disable 1

启用存储池

pvesm set <STORAGE_ID> --disable 0

更改或设置存储选项

pvesm set <STORAGE_ID> <OPTIONS>
pvesm set <STORAGE_ID> --shared 1
pvesm set local --format qcow2
pvesm set <STORAGE_ID> --content iso

移除存储池。这不会删除任何数据,也不会断开连接或卸载任何内容。它只会移除存储配置。

pvesm remove <STORAGE_ID>

分配卷

pvesm alloc <STORAGE_ID> <VMID> <name> <size> [--format <raw|qcow2>]

在本地存储中分配一个 4G 卷。如果将空字符串作为 <name> 传入,名称会自动生成。

pvesm alloc local <VMID> '' 4G

释放卷

pvesm free <VOLUME_ID>
Warning 这会真正销毁该卷上的所有数据。

列出存储状态

pvesm status

列出存储内容

pvesm list <STORAGE_ID> [--vmid <VMID>]

列出按 VMID 分配的卷

pvesm list <STORAGE_ID> --vmid <VMID>

列出 ISO 镜像

pvesm list <STORAGE_ID> --content iso

列出容器模板

pvesm list <STORAGE_ID> --content vztmpl

显示卷的文件系统路径

pvesm path <VOLUME_ID>

将卷 local:103/vm-103-disk-0.qcow2 导出到文件 target。 这主要在内部与 pvesm import 配合使用。流格式 qcow2+size 不同于 qcow2 格式。 因此,导出的文件不能简单地附加到虚拟机。其他格式也是如此。

pvesm export local:103/vm-103-disk-0.qcow2 qcow2+size target --with-snapshots 1

常用命令示例:

pvesm status
pvesm list local
pvesm path <VOLUME_ID>

目录后端

存储池类型:dir

Proxmox VE 可以使用本地目录或本地挂载的共享作为存储。目录是一种文件级存储, 因此可以存储虚拟磁盘镜像、容器、模板、ISO 镜像或备份文件等任何内容类型。

Note 可以通过标准 Linux /etc/fstab 挂载其他存储,然后为该挂载点定义 目录存储。通过这种方式,可以使用 Linux 支持的任何文件系统。

该后端仅假定底层目录兼容 POSIX,不再要求其他特性。这意味着不能在存储层 创建快照。但对于使用 qcow2 文件格式的虚拟机镜像存在一种替代方式, 因为该格式内部支持快照。

Tip 某些存储类型不支持 O_DIRECT,因此不能在这类存储上使用 none 缓存模式。可改用 writeback 缓存模式。

系统使用预定义的目录布局,将不同内容类型存储到不同子目录中。所有文件级 存储后端都会使用该布局。

Table 2. 目录布局
内容类型 子目录

虚拟机镜像

images/<VMID>/

ISO 镜像

template/iso/

容器模板

template/cache/

备份文件

dump/

片段

snippets/

配置

该后端支持所有通用存储属性,并额外增加两个属性。path 属性用于指定目录。 该目录必须是绝对文件系统路径。

可选的 content-dirs 属性允许更改默认布局。它由逗号分隔的标识符列表组成, 格式如下:

vtype=path

其中 vtype 是该存储允许的内容类型之一,path 是相对于该存储挂载点的路径。

配置示例(/etc/pve/storage.cfg
dir: backup
        path /mnt/backup
        content backup
        prune-backups keep-last=7
        max-protected-backups 3
        content-dirs backup=custom/backup/dir

上述配置定义了一个名为 backup 的存储池。该存储池可为每台虚拟机最多保存 7 个普通备份(keep-last=7)和 3 个受保护备份。备份文件的实际路径为 /mnt/backup/custom/backup/dir/...

文件命名约定

该后端对虚拟机镜像使用明确的命名方案:

vm-<VMID>-<NAME>.<FORMAT>
<VMID>

指定所属虚拟机。

<NAME>

可以是不包含空白字符的任意名称(ascii)。后端默认使用 disk-[N], 其中 [N] 会替换为整数,以确保名称唯一。

<FORMAT>

指定镜像格式(raw|qcow2|vmdk)。

创建虚拟机模板时,所有虚拟机镜像都会被重命名,以表示它们现在是只读的, 并可作为克隆的基础镜像:

base-<VMID>-<NAME>.<FORMAT>
Note 这类基础镜像用于生成克隆镜像。因此,确保这些文件只读且永不被修改 非常重要。后端会将访问模式更改为 0444,并在存储支持时设置 immutable 标志(chattr +i)。

存储特性

如上所述,大多数文件系统本身不直接支持快照。为规避该问题,此后端可以使用 qcow2 的内部快照能力。

克隆也是同样的情况。后端使用 qcow2 基础镜像功能来创建克隆。

Table 3. 后端 dir 的存储特性
内容类型 镜像格式 共享 快照 克隆

images rootdir vztmpl iso backup snippets

raw qcow2 vmdk subvol

no

qcow2

qcow2

示例

请使用以下命令在存储 local 上分配一个 4GB 镜像:

# pvesm alloc local 100 vm-100-disk10.raw 4G
Formatting '/var/lib/vz/images/100/vm-100-disk10.raw', fmt=raw size=4294967296
successfully created 'local:100/vm-100-disk10.raw'
Note 镜像名称必须符合上述命名约定。

可以通过以下命令显示真实文件系统路径:

# pvesm path local:100/vm-100-disk10.raw
/var/lib/vz/images/100/vm-100-disk10.raw

可以使用以下命令删除该镜像:

# pvesm free local:100/vm-100-disk10.raw

常用命令示例:

pvesm status
pvesm list local

NFS 后端

存储池类型:nfs

NFS 后端基于目录后端,因此共享其中的大多数属性。目录布局和文件命名约定也相同。 它的主要优势在于可以直接配置 NFS 服务器属性,使后端能够自动挂载共享,无需修改 /etc/fstab。该后端还可以检测服务器是否在线,并提供查询服务器导出共享的方法。

配置

该后端支持除 shared 标志之外的所有通用存储属性;shared 标志始终为启用状态。 此外,以下属性用于配置 NFS 服务器:

server

服务器 IP 或 DNS 名称。为避免 DNS 查询延迟,通常更建议使用 IP 地址而不是 DNS 名称,除非你有非常可靠的 DNS 服务器,或者已将该服务器写入本地 /etc/hosts 文件。

export

NFS 导出路径(即 pvesm nfsscan 列出的路径)。

也可以设置 NFS 挂载选项:

path

本地挂载点(默认为 /mnt/pve/<STORAGE_ID>/)。

content-dirs

对默认目录布局的覆盖配置。可选。

options

NFS 挂载选项(参见 man nfs)。

配置示例(/etc/pve/storage.cfg
nfs: iso-templates
        path /mnt/pve/iso-templates
        server 10.0.0.10
        export /space/iso-templates
        options vers=3,soft
        content iso,vztmpl
Tip NFS 请求超时后,默认会无限重试。这可能导致客户端出现意外的长时间挂起。 对于只读内容,值得考虑使用 NFS soft 选项,它会将重试次数限制为三次。

eNFS 多路径

eNFS 是 openEuler 对 NFS 客户端的增强,用于在一个 NFS 挂载点上建立多条访问路径, 提供多路径、负载均衡和故障转移能力。eNFS 属于客户端增强,不要求 NFS 服务器部署 PXVIRT 组件;但服务器端需要启用 NFSv3,因为 eNFS 当前仅支持 NFSv3。

更多信息可参见 openEuler eNFS 使用指南: eNFS 使用指南

典型架构

在典型部署中,PXVIRT 主机和 NFS 服务器各自具有多个可互通的业务 IP。例如:

  • PXVIRT 主机:10.13.13.8110.13.14.81

  • NFS 服务器:10.13.13.310.13.14.3

启用 eNFS 后,同一个 NFS 存储可以同时通过多条路径访问 NFS 服务器。eNFS 会在 可用路径之间进行负载均衡,并在部分路径异常时将 IO 切换到其他可用路径。

+---------------------+                    +---------------------+
|     PXVIRT 主机      |                    |      NFS 服务器      |
|                     |                    |                     |
|  +-------------+    |                    |  +-------------+    |
|  | eNFS 客户端  |    |                    |  | NFS Server  |    |
|  +-------------+    |                    |  +-------------+    |
|          |          |                    |          |          |
|    10.13.13.81  ---+-----------------------> 10.13.13.3        |
|                     |      连接路径 1     |                     |
|    10.13.14.81  ---+-----------------------> 10.13.14.3        |
|                     |      连接路径 2     |                     |
+---------------------+                    +---------------------+

系统要求

使用 eNFS 需要满足以下条件:

  • PXVIRT 主机使用 openEuler 内核 6.6-openeuler,且版本不低于 6.6.0-10

  • NFS 服务器启用 NFSv3 支持。

  • PXVIRT 主机到 remoteaddrs 中配置的所有 NFS 服务器地址均可达。

eNFS 配置文件

可以在每个 PXVIRT 节点上创建 /etc/enfs/config.ini 配置文件。以下示例启用多路径:

文件 /etc/enfs/config.ini
multipath_disable=0

该配置是可选项。未创建该文件时,eNFS 使用内核模块的默认配置。

存储配置

创建 NFS 存储时,需要使用 NFSv3,并在 options 中配置 remoteaddrs。例如:

eNFS 存储配置示例(/etc/pve/storage.cfg
nfs: nfs
        export /NFS/vm
        path /mnt/pve/nfs
        server 10.13.14.3
        content images
        options remoteaddrs=10.13.14.3~10.13.13.3,vers=3
        prune-backups keep-all=1

也可以先在 Web 界面中创建普通 NFS 存储,并选择 NFS 版本 3。随后在 /etc/pve/storage.cfg 中为该存储添加 options 行。

remoteaddrs 中的 IP 地址必须属于同一台 NFS 服务器或同一个 NFS 服务集群。 多个地址使用 ~ 分隔。eNFS 会根据这些远端地址和本机可达地址建立多条访问路径。

验证

可以使用 mount 查看当前挂载选项。启用 eNFS 后,输出中应包含 remoteaddrsenfs_info

# mount
10.13.14.3:/NFS/vm on /mnt/pve/nfs type nfs
(rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,
proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=10.13.14.3,
mountvers=3,mountproto=udp,local_lock=none,addr=10.13.14.3,
remoteaddrs=10.13.14.3~10.13.13.3,enfs_info=10.13.14.3_1)

也可以通过 /proc/enfs/<nfsserver>/stat 查看 eNFS 路径和 IO 统计信息:

# cat /proc/enfs/*/stat
id    local_addr     remote_addr    r_count  r_rtt  r_exec  w_count  w_rtt  w_exec  queuelen
0     10.13.14.81    10.13.14.3     0        0      0       499      7      24      0
1     10.13.13.81    10.13.13.3     0        0      0       525      6      26      0

存储特性

NFS 不支持快照,但该后端会使用 qcow2 特性实现快照和克隆。

Table 4. 后端 nfs 的存储特性
内容类型 镜像格式 共享 快照 克隆

images rootdir vztmpl iso backup snippets

raw qcow2 vmdk

yes

qcow2

qcow2

示例

可以使用以下命令获取导出的 NFS 共享列表:

# pvesm scan nfs <server>

常用命令示例:

# pvesm status
# pvesm scan nfs <server>

CIFS 后端

存储池类型:cifs

CIFS 后端扩展了目录后端,因此无需手动设置 CIFS 挂载。可以直接通过 Proxmox VE API 或 Web UI 添加此类存储,并继续使用后端提供的优势,例如服务器心跳检查,以及便捷地选择 导出的共享。

配置

该后端支持所有通用存储属性,但 shared 标志除外,该标志始终会被设置。此外,还可使用 以下 CIFS 专用属性:

server

服务器 IP 或 DNS 名称。必填。

Tip 为避免 DNS 查询延迟,通常最好使用 IP 地址而不是 DNS 名称,除非你拥有非常可靠的 DNS 服务器,或已在本地 /etc/hosts 文件中列出该服务器。
share

要使用的 CIFS 共享(可通过 pvesm scan cifs <address> 或 Web UI 获取可用共享)。 必填。

username

CIFS 存储使用的用户名。可选,默认为 ‘guest’。

password

用户密码。可选。它会保存到仅 root 可读的文件中 (/etc/pve/priv/storage/<STORAGE-ID>.pw)。

domain

设置该存储的用户域(工作组)。可选。

smbversion

SMB 协议版本。可选,默认为 3。由于安全问题,不支持 SMB1。

path

本地挂载点。可选,默认为 /mnt/pve/<STORAGE_ID>/

content-dirs

默认目录布局的覆盖设置。可选。

options

额外的 CIFS 挂载选项(参见 man mount.cifs)。部分选项会自动设置,不应在此处设置。 Proxmox VE 始终会设置 soft 选项。根据配置,以下选项会自动设置:username, credentials, guest, domain, vers

subdir

要挂载的共享子目录。可选,默认为共享的根目录。

配置示例 (/etc/pve/storage.cfg)
cifs: backup
        path /mnt/pve/backup
        server 10.0.0.11
        share VMData
        content backup
        options noserverino,echo_interval=30
        username anna
        smbversion 3
        subdir /data

存储特性

CIFS 不支持存储级快照。但如果仍希望使用快照和克隆功能,可以使用 qcow2 后端文件。

Table 5. 后端 cifs 的存储特性
Content types Image formats Shared Snapshots Clones

images rootdir vztmpl iso backup snippets

raw qcow2 vmdk

yes

qcow2

qcow2

示例

可以使用以下命令获取导出的 CIFS 共享列表:

# pvesm scan cifs <server> [--username <username>] [--password]

然后可以使用以下命令将其中一个共享作为存储添加到整个 Proxmox VE 集群:

# pvesm add cifs <storagename> --server <server> --share <share> [--username <username>] [--password]

Proxmox Backup Server

存储池类型:pbs

该后端允许像集成其他存储一样,将 Proxmox Backup Server 直接集成到 Proxmox VE 中。 可以通过 Proxmox VE API、CLI 或 Web 界面直接添加 Proxmox Backup 存储。

配置

该后端支持所有通用存储属性,但 shared 标志除外,该标志始终会被设置。此外, Proxmox Backup Server 还支持以下专用属性:

server

服务器 IP 或 DNS 名称。必填。

port

使用该端口替代默认端口 8007。可选。

username

Proxmox Backup Server 存储使用的用户名。必填。

Tip 不要忘记在用户名中添加 realm。例如 root@pamarchiver@pbs
password

用户密码。该值会保存到 /etc/pve/priv/storage/<STORAGE-ID>.pw 文件中, 并限制为 root 用户访问。必填。

datastore

要使用的 Proxmox Backup Server datastore ID。必填。

fingerprint

Proxmox Backup Server API TLS 证书的指纹。可以在服务器 Dashboard 中获取, 也可以使用 proxmox-backup-manager cert info 命令获取。对于自签名证书, 或主机不信任服务器 CA 的其他证书,该项为必填。

encryption-key

用于在客户端侧加密备份数据的密钥。目前仅支持未受密码保护的密钥(无 key derive function,kdf)。密钥会保存到 /etc/pve/priv/storage/<STORAGE-ID>.enc 文件中, 并限制为 root 用户访问。使用特殊值 autogen 可通过 proxmox-backup-client key create --kdf none <path> 自动生成新密钥。可选。

master-pubkey

用于在备份任务中加密备份加密密钥的 RSA 公钥。它会保存到 /etc/pve/priv/storage/<STORAGE-ID>.master.pem 文件中,并限制为 root 用户访问。 备份加密密钥的加密副本会附加到每个备份中,并存储在 Proxmox Backup Server 实例上, 以供恢复使用。可选,但要求配置 encryption-key

配置示例 (/etc/pve/storage.cfg)
pbs: backup
        datastore main
        server enya.proxmox.com
        content backup
        fingerprint 09:54:ef:..snip..:88:af:47:fe:4c:3b:cf:8b:26:88:0b:4e:3c:b2
        prune-backups keep-all=1
        username archiver@pbs
        encryption-key a9:ee:c8:02:13:..snip..:2d:53:2c:98
        master-pubkey 1

存储特性

Proxmox Backup Server 仅支持备份,备份可以基于块级或文件级。Proxmox VE 对虚拟机使用块级备份, 对容器使用文件级备份。

Table 6. 后端 pbs 的存储特性
内容类型 镜像格式 共享 快照 克隆

backup

n/a

n/a

n/a

加密

screenshot/storage-pbs-encryption-with-key.png

可以选择配置使用 AES-256 GCM 模式的客户端侧加密。可以通过 Web 界面配置加密, 也可以在 CLI 中使用 encryption-key 选项(见上文)。密钥会保存到 /etc/pve/priv/storage/<STORAGE-ID>.enc 文件中,该文件仅 root 用户可访问。

Warning 如果没有对应密钥,备份将无法访问。因此,应有序保管密钥,并将其存放在与被备份内容分离的位置。 例如,如果使用某个系统上的密钥备份整个系统,而该系统随后因任何原因无法访问并需要还原, 由于加密密钥会随故障系统一同丢失,还原将无法完成。

建议将密钥安全保存,同时确保在灾难恢复时能够快速取得。因此,最佳存放位置是密码管理器, 这样可以立即恢复。作为补充,也应将密钥保存到 USB 闪存盘,并存放在安全位置。 这样密钥就与任何系统分离,但在紧急情况下仍容易取回。最后,为应对最坏情况, 还应考虑将密钥的纸质副本锁存在安全位置。paperkey 子命令可用于创建密钥的 QR 编码版本。 以下命令会将 paperkey 命令的输出发送到文本文件,以便打印。

# proxmox-backup-client key paperkey /etc/pve/priv/storage/<STORAGE-ID>.enc --output-format text > qrkey.txt

此外,还可以使用单个 RSA 主密钥对进行密钥恢复:将所有执行加密备份的客户端配置为使用同一个主公钥, 之后所有加密备份都会包含一份经 RSA 加密的已用 AES 加密密钥副本。即使客户端系统不再可用, 对应的主私钥也允许恢复 AES 密钥并解密备份。

Warning 主密钥对适用与普通加密密钥相同的安全保管规则。没有私钥副本就无法恢复! paperkey 命令支持生成主私钥的纸质副本,以便存放在安全的物理位置。

由于加密是在客户端侧管理的,同一服务器 datastore 可同时用于未加密备份和加密备份, 即使这些备份使用不同密钥加密也可以。但是,不同密钥的备份之间无法进行去重, 因此通常最好创建单独的 datastore。

Note 如果加密没有实际收益,请不要使用加密。例如,当服务器在受信任网络中本地运行时, 从未加密备份中恢复总是更简单。

示例:通过 CLI 添加存储

可以使用以下命令获取可用 Proxmox Backup Server datastore 列表:

# pvesm scan pbs <server> <username> [--password <string>] [--fingerprint <string>]

然后可以使用以下命令将其中一个 datastore 作为存储添加到整个 Proxmox VE 集群:

# pvesm add pbs <id> --server <server> --datastore <datastore> --username <username> --fingerprint 00:B4:... --password

GlusterFS 后端

存储池类型:glusterfs

GlusterFS 是一种可扩展的网络文件系统。该系统采用模块化设计,可运行在通用硬件上, 并能以较低成本提供高可用的企业级存储。这类系统可以扩展到数 PB 规模, 并可处理数千个客户端。

Note 在节点或 brick 崩溃后,GlusterFS 会执行完整的 rsync 以确保数据一致。 对于大文件,这可能耗费很长时间,因此该后端不适合存储大型虚拟机镜像。

配置

该后端支持所有通用存储属性,并额外增加以下 GlusterFS 专用选项:

server

GlusterFS volfile 服务器 IP 或 DNS 名称。

server2

备用 volfile 服务器 IP 或 DNS 名称。

volume

GlusterFS 卷。

transport

GlusterFS 传输方式:tcpunixrdma

配置示例(/etc/pve/storage.cfg
glusterfs: Gluster
        server 10.2.3.4
        server2 10.2.3.5
        volume glustervol
        content images,iso

文件命名约定

目录布局和文件命名约定继承自 dir 后端。

存储特性

该存储提供文件级接口,但没有原生快照或克隆实现。

Table 7. 后端 glusterfs 的存储特性
内容类型 镜像格式 共享 快照 克隆

images vztmpl iso backup snippets

raw qcow2 vmdk

yes

qcow2

qcow2

示例

可以使用以下命令获取可用 GlusterFS 卷列表:

# pvesm scan glusterfs <server>

常用命令示例:

pvesm scan glusterfs <server>
pvesm status

本地 ZFS Pool 后端

存储池类型:zfspool

此后端允许访问本地 ZFS pool(或这些 pool 内的 ZFS 文件系统)。

配置

该后端支持通用存储属性 contentnodesdisable,以及以下 ZFS 专用属性:

pool

选择 ZFS pool/文件系统。所有分配都在该 pool 内完成。

blocksize

设置 ZFS blocksize 参数。

sparse

使用 ZFS thin-provisioning。sparse 卷是指 reservation 不等于卷大小的卷。

mountpoint

ZFS pool/文件系统的挂载点。更改此项不会影响 zfs 看到的数据集 mountpoint 属性。默认为 /<pool>

配置示例(/etc/pve/storage.cfg
zfspool: vmdata
        pool tank/vmdata
        content rootdir,images
        sparse

文件命名约定

该后端对虚拟机镜像使用以下命名方案:

vm-<VMID>-<NAME>      // normal VM images
base-<VMID>-<NAME>    // template VM image (read-only)
subvol-<VMID>-<NAME>  // subvolumes (ZFS filesystem for containers)
<VMID>

指定所属虚拟机。

<NAME>

可以是不包含空白字符的任意名称(ascii)。后端默认使用 disk[N],其中 [N] 会替换为整数以确保名称唯一。

存储特性

在快照和克隆方面,ZFS 可能是最先进的存储类型。该后端对虚拟机镜像(格式 raw)和容器数据(格式 subvol)均使用 ZFS dataset。ZFS 属性会从父 dataset 继承,因此可以直接在父 dataset 上设置默认值。

Table 8. 后端 zfs 的存储特性
内容类型 镜像格式 共享 快照 克隆

images rootdir

raw subvol

示例

建议创建一个额外的 ZFS 文件系统来存放虚拟机镜像:

# zfs create tank/vmdata

要在新分配的文件系统上启用压缩:

# zfs set compression=on tank/vmdata

可以使用以下命令获取可用 ZFS 文件系统列表:

# pvesm scan zfs

常用命令示例

查看当前 Proxmox VE 存储状态:

pvesm status

列出节点上可供存储后端使用的 ZFS 文件系统:

pvesm scan zfs

LVM 后端

存储池类型:lvm

LVM 是构建在硬盘和分区之上的轻量级软件层。它可用于将可用磁盘空间划分为较小的逻辑卷。LVM 在 Linux 上被广泛使用,可简化硬盘管理。

另一种使用场景是在大型 iSCSI LUN 之上部署 LVM。这样可以方便地管理该 iSCSI LUN 上的空间;否则,由于 iSCSI 规范未定义用于空间分配的管理接口,这类管理将无法实现。

配置

LVM 后端支持通用存储属性 contentnodesdisable,以及以下 LVM 专用属性:

vgname

LVM 卷组名称。必须指向一个已存在的卷组。

base

基础卷。访问该存储前,此卷会被自动激活。当 LVM 卷组位于远程 iSCSI 服务器上时,此项尤其有用。

saferemove

在 Web UI 中称为 "Wipe Removed Volumes"。移除 LV 时将数据清零。移除卷时,此项可确保所有数据被擦除,之后创建并恰好分配到相同物理 extent 的其他 LV 无法访问这些数据。该操作成本较高,但在某些环境中可能是必要的安全措施。

saferemove_throughput

擦除吞吐量(cstream -t 参数值)。

配置示例(/etc/pve/storage.cfg
lvm: myspace
        vgname myspace
        content rootdir,images

文件命名约定

该后端基本使用与 ZFS pool 后端相同的命名约定。

vm-<VMID>-<NAME>      // normal VM images

存储特性

LVM 是典型的块存储,但此后端不支持快照和克隆。遗憾的是,普通 LVM 快照效率较低,因为在快照期间它们会影响整个卷组上的所有写入。

它的一大优势是可以部署在共享存储之上,例如 iSCSI LUN。该后端自身实现了适当的集群范围锁定。

Tip 较新的 LVM-thin 后端支持快照和克隆,但不支持共享存储。
Table 9. 后端 lvm 的存储特性
内容类型 镜像格式 共享 快照 克隆

images rootdir

raw

可行

示例

可以使用以下命令获取可用 LVM 卷组列表:

# pvesm scan lvm

常用命令示例

查看当前 Proxmox VE 存储配置:

pvesm status

扫描节点上可用的 LVM 卷组:

pvesm scan lvm

LVM thin 后端

存储池类型:lvmthin

普通 LVM 通常会在创建卷时分配块。LVM thin pool 则在写入数据时才分配块。这种行为称为 thin-provisioning,因为卷的逻辑大小可以大于实际可用的物理空间。

可以使用常规 LVM 命令行工具来管理和创建 LVM thin pool(详情请参见 man lvmthin)。假设已经有一个名为 pve 的 LVM 卷组,以下命令会创建一个名为 data、 大小为 100G 的 LVM thin pool:

lvcreate -L 100G -n data pve
lvconvert --type thin-pool pve/data

配置

LVM thin 后端支持通用存储属性 contentnodesdisable,以及以下 LVM 专用属性:

vgname

LVM 卷组名称。必须指向一个已存在的卷组。

thinpool

LVM thin pool 的名称。

配置示例(/etc/pve/storage.cfg
lvmthin: local-lvm
        thinpool data
        vgname pve
        content rootdir,images

文件命名约定

该后端基本使用与 ZFS pool 后端相同的命名约定。

vm-<VMID>-<NAME>      // normal VM images

存储特性

LVM thin 是块存储,但可以高效地完整支持快照和克隆。新卷会自动初始化为零。

需要注意,LVM thin pool 不能跨多个节点共享,因此只能作为本地存储使用。

Table 10. 后端 lvmthin 的存储特性
内容类型 镜像格式 共享 快照 克隆

images rootdir

raw

示例

可以使用以下命令获取卷组 pve 上可用的 LVM thin pool 列表:

# pvesm scan lvmthin pve

常用命令示例

查看当前存储状态:

# pvesm status

列出节点上的 LVM 卷组:

# pvesm scan lvm

Open-iSCSI initiator

存储池类型:iscsi

iSCSI 是一种广泛用于连接存储服务器的技术。几乎所有存储厂商都支持 iSCSI。也有 可用的开源 iSCSI target 解决方案,例如基于 Debian 的 OpenMediaVault

要使用该后端,需要安装 Open-iSCSIopen-iscsi) 软件包。这是标准 OpenEuler 软件包,但为了节省资源,默认不会安装。

# dnf install open-iscsi

低级 iscsi 管理任务可以使用 iscsiadm 工具完成。

配置

该后端支持通用存储属性 contentnodesdisable,以及以下 iSCSI 专用属性:

portal

iSCSI portal(IP 或 DNS 名称,可带端口)。

target

iSCSI target。

配置示例(/etc/pve/storage.cfg
iscsi: mynas
     portal 10.10.10.1
     target iqn.2006-01.openfiler.com:tsn.dcb5aaaddd
     content none
Tip 如果希望在 iSCSI 之上使用 LVM,将 content none 设为该值是合理的。这样 就不能直接使用 iSCSI LUN 创建虚拟机。

文件命名约定

iSCSI 协议没有定义用于分配或删除数据的接口。这些操作需要在 target 侧完成,并且 与厂商实现相关。target 只是将它们作为带编号的 LUN 导出。因此,Proxmox VE iSCSI 卷名 只是编码了 Linux 内核所看到的 LUN 的一些信息。

存储特性

iSCSI 是块级存储类型,不提供管理接口。因此,通常最好导出一个较大的 LUN,并在该 LUN 之上设置 LVM。随后可以使用 LVM 插件管理该 iSCSI LUN 上的存储。

Table 11. 后端 iscsi 的存储特性
内容类型 镜像格式 共享 快照 克隆

images none

raw

yes

no

no

常用命令示例

可以扫描远程 iSCSI portal,并使用以下命令获取可能的 target 列表:

pvesm scan iscsi <HOST[:PORT]>

用户态 iSCSI 后端

存储池类型:iscsidirect

该后端提供的功能基本与 Open-iSCSI 后端相同,但通过用户态库实现。要使用该后端,需要安装 libiscsi 软件包。

需要注意的是,该后端不涉及内核驱动,因此可视为一种性能优化方式。但它也有一个缺点: 不能在这类 iSCSI LUN 之上使用 LVM。因此,所有空间分配都需要在存储服务器端管理。

配置

用户态 iSCSI 后端使用与 Open-iSCSI 后端相同的配置选项。

配置示例(/etc/pve/storage.cfg
iscsidirect: faststore
     portal 10.10.10.1
     target iqn.2006-01.openfiler.com:tsn.dcb5aaaddd

存储特性

Note 该后端仅适用于虚拟机。容器不能使用此驱动。
Table 12. 后端 iscsidirect 的存储特性
内容类型 镜像格式 共享 快照 克隆

images

raw

常用命令示例

查看当前存储状态:

# pvesm status

扫描可用 iSCSI target:

# pvesm scan iscsi <portal>

Ceph RADOS 块设备(RBD)

存储池类型:rbd

Ceph 是一种分布式对象存储和文件系统,设计目标是提供优秀的性能、可靠性和可扩展性。 RADOS 块设备实现了功能丰富的块级存储,并具备以下优势:

  • thin provisioning

  • 可调整大小的卷

  • 分布式且具备冗余能力(跨多个 OSD 条带化)

  • 完整的快照和克隆能力

  • 自愈能力

  • 无单点故障

  • 可扩展到 EB 级别

  • 同时提供内核态和用户态实现

Note 对于较小规模的部署,也可以直接在 Proxmox VE 节点上运行 Ceph 服务。现代硬件通常具备充足的 CPU 算力和内存,因此在同一节点上同时运行存储服务和虚拟机是可行的。

配置

该后端支持通用存储属性 nodesdisablecontent,以及以下 rbd 专用属性:

monhost

monitor 守护进程 IP 列表。可选,仅当 Ceph 未运行在 Proxmox VE 集群上时需要。

pool

Ceph pool 名称。

username

RBD 用户 ID。可选,仅当 Ceph 未运行在 Proxmox VE 集群上时需要。注意这里只应使用用户 ID,必须省略 client. 类型前缀。

krbd

强制通过 krbd 内核模块访问 RADOS 块设备。可选。

Note 无论该选项取值如何,容器都会使用 krbd
外部 Ceph 集群的配置示例(/etc/pve/storage.cfg
rbd: ceph-external
        monhost 10.1.1.20 10.1.1.21 10.1.1.22
        pool ceph-external
        content images
        username admin
Tip 可以使用 rbd 工具执行低层管理任务。

认证

Note 如果 Ceph 安装在本地 Proxmox VE 集群上,添加存储时会自动完成以下操作。

如果使用默认启用的 cephx 认证,需要提供外部 Ceph 集群的 keyring。

要通过 CLI 配置该存储,首先需要让包含 keyring 的文件可用。一种方法是将该文件从外部 Ceph 集群直接复制到某个 Proxmox VE 节点。以下示例会将它复制到当前执行命令节点的 /root 目录:

# scp <external cephserver>:/etc/ceph/ceph.client.admin.keyring /root/rbd.keyring

然后使用 pvesm CLI 工具配置外部 RBD 存储,并通过 --keyring 参数指定刚复制的 keyring 文件路径。例如:

# pvesm add rbd <name> --monhost "10.1.1.20 10.1.1.21 10.1.1.22" --content images --keyring /root/rbd.keyring

通过 GUI 配置外部 RBD 存储时,可以将 keyring 复制并粘贴到相应字段中。

keyring 将存储在:

# /etc/pve/priv/ceph/<STORAGE_ID>.keyring
Tip 连接外部集群时,建议创建仅具备所需权限的 keyring。有关 Ceph 用户管理的更多信息,请参见 Ceph 文档。
[Ceph User Management]

Ceph 客户端配置(可选)

连接外部 Ceph 存储时,并不总是允许在外部集群的配置数据库中设置客户端专用选项。可以在 Ceph keyring 旁边添加一个 ceph.conf,用于调整该存储的 Ceph 客户端配置。

ceph.conf 需要与该存储使用相同名称。

# /etc/pve/priv/ceph/<STORAGE_ID>.conf

可用设置请参见 RBD 配置参考
[RBD configuration reference https://docs.ceph.com/en/quincy/rbd/rbd-config-ref/]

Note 不要轻易修改这些设置。Proxmox VE 会将 <STORAGE_ID>.conf 与存储配置合并使用。

存储特性

rbd 后端是块级存储,并实现了完整的快照和克隆功能。

Table 13. 后端 rbd 的存储特性
内容类型 镜像格式 共享 快照 克隆

images rootdir

raw

常用命令示例

查看 Proxmox VE 存储状态:

# pvesm status

使用 rbd 工具列出指定 Ceph pool 中的镜像:

# rbd ls <pool>

Ceph 文件系统(CephFS)

存储池类型:cephfs

CephFS 实现了兼容 POSIX 的文件系统,并使用 Ceph 存储集群保存 数据。由于 CephFS 构建在 Ceph 之上,它继承了 Ceph 的大多数属性,包括冗余、 可扩展性、自愈能力和高可用性。

Tip Proxmox VE 可以 管理 Ceph 部署,这使 CephFS 存储配置更为 简单。现代硬件提供了大量处理能力和内存,因此在同一节点上运行存储服务和虚拟机 是可行的,且不会产生显著性能影响。

配置

该后端支持通用存储属性 nodesdisablecontent,以及以下 cephfs 专用属性:

fs-name

Ceph FS 的名称。

monhost

monitor 守护进程地址列表。可选,仅在 Ceph 未运行于 Proxmox VE 集群上时需要。

path

本地挂载点。可选,默认为 /mnt/pve/<STORAGE_ID>/

username

Ceph 用户 ID。可选,仅在 Ceph 未运行于 Proxmox VE 集群上时需要;在本地集群场景中默认为 admin

subdir

要挂载的 CephFS 子目录。可选,默认为 /

fuse

通过 FUSE 而不是内核客户端访问 CephFS。可选,默认为 0

外部 Ceph 集群的配置示例(/etc/pve/storage.cfg
cephfs: cephfs-external
        monhost 10.1.1.20 10.1.1.21 10.1.1.22
        path /mnt/pve/cephfs-external
        content backup
        username admin
        fs-name cephfs
Note 如果未禁用 cephx,请不要忘记设置客户端的密钥文件。

认证

Note 如果 Ceph 本地安装在 Proxmox VE 集群上,添加存储时以下操作会自动完成。

如果使用默认启用的 cephx 认证,则需要提供来自外部 Ceph 集群的 secret。

要通过 CLI 配置存储,首先需要提供包含 secret 的文件。一种方式是直接从外部 Ceph 集群将该文件复制到某个 Proxmox VE 节点。以下示例会将其复制到运行命令节点的 /root 目录:

# scp <external cephserver>:/etc/ceph/cephfs.secret /root/cephfs.secret

然后使用 pvesm CLI 工具配置外部 RBD 存储,并使用 --keyring 参数;该参数 需要指向已复制的 secret 文件路径。例如:

# pvesm add cephfs <name> --monhost "10.1.1.20 10.1.1.21 10.1.1.22" --content backup --keyring /root/cephfs.secret

通过 GUI 配置外部 RBD 存储时,可以将 secret 复制并粘贴到相应字段中。

该 secret 仅包含密钥本身,不同于 rbd 后端;后者还包含 [client.userid] 段。

secret 将存储在:

# /etc/pve/priv/ceph/<STORAGE_ID>.secret

可以使用以下命令以 Ceph 管理员身份从 Ceph 集群获取 secret,其中 userid 是已配置 为可访问该集群的客户端 ID。有关 Ceph 用户管理的更多信息,请参见 Ceph 文档。
[cephusermgmt]

# ceph auth get-key client.userid > cephfs.secret

存储特性

cephfs 后端是在 Ceph 集群之上提供的兼容 POSIX 的文件系统。

Table 14. 后端 cephfs 的存储特性
内容类型 镜像格式 共享 快照 克隆

vztmpl iso backup snippets

none

yes

yes[1]

no

[1] 虽然目前没有已知缺陷,但由于缺少充分测试,快照尚不能保证稳定。

常用命令示例

以下命令可用于查看存储状态,并通过 CLI 添加外部 CephFS 存储:

# pvesm status
# pvesm add cephfs <name> --monhost "10.1.1.20 10.1.1.21 10.1.1.22" --content backup --keyring /root/cephfs.secret

BTRFS 后端

存储池类型:btrfs

从表面上看,这种存储类型与目录存储类型非常相似,因此可参见目录后端章节 了解总体概览。

主要区别在于,使用这种存储类型时,raw 格式的磁盘会放置在子卷中,以便 创建快照,并支持在保留快照的情况下执行离线存储迁移。

Note BTRFS 在打开文件时会遵循 O_DIRECT 标志,这意味着虚拟机不应使用 none 缓存模式,否则会出现校验和错误。

配置

该后端的配置方式与目录存储类似。注意,将某个目录添加为 BTRFS 存储时, 如果该目录本身并不是挂载点,强烈建议通过 is_mountpoint 选项指定实际挂载点。

例如,如果 BTRFS 文件系统挂载在 /mnt/data2,并且要将其 pve-storage/ 子目录(建议可以是一个快照)添加为名为 data2 的存储池,可以使用以下条目:

btrfs: data2
        path /mnt/data2/pve-storage
        content rootdir,images
        is_mountpoint /mnt/data2

快照

为子卷或 raw 文件创建快照时,系统会创建一个只读子卷作为快照,其路径为 原路径后接 @ 和快照名称。

常用命令示例:

pvesm add btrfs data2 --path /mnt/data2/pve-storage
pvesm status

ZFS over iSCSI 后端

存储池类型:zfs

该后端通过 ssh 访问一台将 ZFS 池作为存储并实现 iSCSI target 的远程机器。 对于每个客户机磁盘,它会创建一个 ZVOL,并将其导出为 iSCSI LUN。 Proxmox VE 使用该 LUN 作为客户机磁盘。

支持以下 iSCSI target 实现:

  • LIO (Linux)

  • IET (Linux)

  • ISTGT (FreeBSD)

  • Comstar (Solaris)

Note 该插件需要具备 ZFS 能力的远程存储设备,不能用它在普通 Storage Appliance/SAN 上创建 ZFS 池。

配置

要使用 ZFS over iSCSI 插件,需要配置远程机器(target),使其接受来自 Proxmox VE 节点的 ssh 连接。Proxmox VE 会连接到 target,以创建 ZVOL 并通过 iSCSI 导出它们。 认证通过存储在 /etc/pve/priv/zfs/<target_ip>_id_rsa 的 ssh-key (无密码保护)完成。

以下步骤会创建 ssh-key,并将其分发到 IP 为 192.0.2.1 的存储机器:

mkdir /etc/pve/priv/zfs
ssh-keygen -f /etc/pve/priv/zfs/192.0.2.1_id_rsa
ssh-copy-id -i /etc/pve/priv/zfs/192.0.2.1_id_rsa.pub root@192.0.2.1
ssh -i /etc/pve/priv/zfs/192.0.2.1_id_rsa root@192.0.2.1

该后端支持通用存储属性 contentnodesdisable,并支持以下 ZFS over iSCSI 专用属性:

pool

iSCSI target 上的 ZFS 池或文件系统。所有分配都在该池内完成。

portal

iSCSI portal(IP 或 DNS 名称,可带端口)。

target

iSCSI target。

iscsiprovider

远程机器使用的 iSCSI target 实现

comstar_tg

comstar views 的 target group。

comstar_hg

comstar views 的 host group。

lio_tpg

Linux LIO targets 的 target portal group

nowritecache

在 target 上禁用写缓存

blocksize

设置 ZFS blocksize 参数。

sparse

使用 ZFS 精简配置。sparse 卷是 reservation 不等于卷大小的卷。

配置示例(/etc/pve/storage.cfg
zfs: lio
   blocksize 4k
   iscsiprovider LIO
   pool tank
   portal 192.0.2.111
   target iqn.2003-01.org.linux-iscsi.lio.x8664:sn.xxxxxxxxxxxx
   content images
   lio_tpg tpg1
   sparse 1

zfs: solaris
   blocksize 4k
   target iqn.2010-08.org.illumos:02:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:tank1
   pool tank
   iscsiprovider comstar
   portal 192.0.2.112
   content images

zfs: freebsd
   blocksize 4k
   target iqn.2007-09.jp.ne.peach.istgt:tank1
   pool tank
   iscsiprovider istgt
   portal 192.0.2.113
   content images

zfs: iet
   blocksize 4k
   target iqn.2001-04.com.example:tank1
   pool tank
   iscsiprovider iet
   portal 192.0.2.114
   content images

存储特性

ZFS over iSCSI 插件提供支持快照的共享存储。需要确保 ZFS 设备不会成为部署中的单点故障。

Table 15. 后端 iscsi 的存储特性
内容类型 镜像格式 共享 快照 克隆

images

raw

yes

yes

no

常用命令示例:

pvesm status
pvesm list <STORAGE_ID>
pvesm path <VOLUME_ID>