两种存储类型#
- 文件级存储(file)
- 块级存储(block)
精简资源配置(Thin Provisioning)
节点存储池配置#
- 配置文件
/etc/pve/storage.cfg
<type>: <STORAGE_ID>
<property> <value>
<property> <value>
<property>
...数据卷#
当从存储池分配数据时,它会返回一个数据卷标识符,数据卷由 <storage_id> 标识,后跟与存储类型相关的卷名称,中间用冒号分割。
有效的 <volume_id>
local:230/example-image.raw
local:iso/debian-501-amd64-netinst.iso使用数据卷id <volume_id> 获得文件系统路径
pvesm path <volume_id>数据卷ID可以以下路径查看
- QEMU/KVM VM →Hardware→Hard Disk
- LXC Container →Resources→Root Disk
命令行操作#
存储池#
添加存储池
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 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>]pvesm alloc local <VMID> '' 4G释放数据卷
pvesm free <VOLUME_ID>存储池详细内容#
列出存储池状态
pvesm status
列出存储池内容
pvesm list <STORAGE_ID>
其中 Volid 列就是 <VOLUME_ID>
根据 VMID 列出存储池内容:
pvesm list <STORAGE_ID> --vmid <VMID>根据内容类型只列出存储池内容:
images: QEMU/KVM VM images.rootdir: Allow to store container datavztmpl: Container templates.backup: Backup filesiso: ISO imagessnippets: Snippet files, for example guest hook scripts
pvesm list <STORAGE_ID> --content <type>只列出容器模板
pvesm list <STORAGE_ID> --content vztmpl
显示数据卷文件系统路径
pvesm path <VOLUME_ID>
什么是虚拟磁盘镜像(Virtual Disk Image)#
虚拟磁盘镜像是虚拟机在其中存储虚拟机数据的一个或一组文件。
支持格式:
- raw
- qcow2
- vmdk
为 Proxmox VE 添加外部存储#
挂载 CIFS 存储池#
- Datacenter->Storage->Add->SMB/CIFS 如果遇到 500 错误,则可切换到
PVE.Shell中使用 Proxmox VE Storage Manager (pvesm) 命令行添加:
pvesm add cifs smb --server <server_ip> --share <share_name> --username <username> --password <password>storagename:相当于在PVE节点服务器中的/mnt/pve/目录下新建了一个目录。--server:要挂载smb共享的服务器地址--share:smb服务器配置中设置的共享目录名称(不是创建的共享目录路径)--username:访问smb服务需要的用户名--password:访问smb服务需要的密码
如何正确删除 CIFS 存储#
- 列出所有存储池状态
pvesm status- 首先删除存储池配置文件,执行 remove 命令
pvesm remove <storage_id>- 其次,卸载目录(确认存储池是否处于挂载状态)
mount
umount /mnt/pve/[storage_name]
# 如遇无法卸载,可强制执行
umount -f -l /mnt/pve/[storage_name]- 删除数据
rmdir /mnt/pve/[storage_name]挂载 NFS 存储池#
在 PVE 上挂载 NFS 存储需要在 NFS 服务器上添加以下配置,否则,会因权限问题无法挂载。
subtree_check,insecure,no_root_squash,anonuid=100,anongid=100并确保共享文件归 user (gid 100) 组所有。
CLI 挂载:
pvesm add nfs nfs_share --server 10.10.1.20 --path /mnt/pve/nfs_share --export /export/nfsshare --content images,rootdir,vztmpl,iso,backupGUI 挂载: Datacenter→Storage→Add→NFS
- ID:NFS 存储池名称
- Server:NFS 服务器IP地址
- Export:NFS export 路径(通过
pvesm scan nfs ServerIP列出) - Content:可存储文件类型
- path:本地挂载点(默认为
/mnt/pve/<storage_id>)
