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