7.5 基于目录的后端存储

存储池类型:dir

Proxmox VE 可以使用本地目录或挂载在本地文件系统的共享存储作为存储服务。目录是文件系统级的存储服务,你可以在目录中保存任何类型的数据,包括虚拟机镜像,容器,模板,ISO 镜像或虚拟机备份文件。

注意:

你可以通过 linux 配置文件/etc/fstab 挂载新增存储设备,然后将相应挂载点定义为目录存储 服务,用这种方法就可以使用 Linux 支持的任意类型的文件系统。

Proxmox VE 目对录后端存储的唯一要求是兼容 POSIX 标准。这意味着你不能直接在目录存 储服务上创建虚拟机快照,但可以使用 qcow2 格式自带的快照功能为保存在目录后端存储 的虚拟机镜像创建快照。

提示:

有些存储服务不支持 O_DIRECT,所以你不能在这些存储服务上配置使用 none 模式的缓存,而需要设置缓存模式为 writeback

Proxmox VE 会在目录后端存储上自动创建预先定义好的子目录,以便存储不同类型的数据。

表 7.2 目录后端存储子目录

数据类型 子目录
虚拟机镜像 images/
iso镜像 template/iso/
容器模板 template/cache/
备份文件 dump/

7.5.1 配置方法

目录后端存储支持全部的公共存储服务属性,此外还支持名为 path 的附加属性,以指定路 径。配置 path 属性时需要使用绝对路径。

配置示例(/etc/pve/storage.cfg)

dir: backup
       path /mnt/backup
       content backup
       maxfiles 7

以上配置定义了名为 backup 的存储池。该存储池可以用来保存最多 7 个虚拟机备份文件(指每个虚拟机最多 7 个备份)。备份文件的绝对路径为/mnt/backup/dump/

7.5.2 文件命名规范

目录后端存储有一套专门设计的虚拟机镜像文件命名规范,文件名格式如下: vm-<VMID>-<NAME>.<FORMAT>

  • <VMID> 镜像文件所属的虚拟机 ID.

  • <NAME> 可以是任何不包含空白字符的字符串(ascii)。目录后端存储默认设置为 disk-[N],其中[N]是一个不重复的整数序号。

  • <FORMAT> 标识虚拟机镜像文件格式 ( raw|qcow2|vmdk)

当你将一个虚拟机转换为虚拟机模板 时,Proxmox VE 会重新命名虚拟机镜像文件,以标明 其处于只读状态,并仅供基础镜像或克隆使用。

base-<VMID>-<NAME>.<FORMAT>

注意 像虚拟机模板这样的基础镜像文件仅供用于克隆生成新的虚拟机。所以确保这类文件的只读属性非常重要。目录后端存储会将基础镜像文件的访问权限修改为 0444,并在文件系统支持的情况下设置不可修改标记(chattr +i)。

7.5.3 存储功能

如上所述,绝大部分文件系统本身不支持快照功能。如果要创建虚拟机快照,只能利用 qcow2文件格式自带的快照功能。

同理,对于链接克隆操作,目录后端存储服务利用 qcow2 的基础镜像功能实现以链接克隆方式创建新虚拟机。

表 8.3 目录后端存储功能

数据类型 镜像格式 支持共享 支持快照 支持链接克隆
虚拟机镜像 容器镜像 容器模板 iso镜像 虚拟机备份 snipptes raw qcow2 vmdk subvol qcow2 qcow2

7.5.4. 示例

如下命令用于在 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

注意: 虚拟机镜像文件必须按照如前所述的规范进行命名。

如下命令用于查看镜像文件路径:

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