Proxmox VE 存儲模型非常靈活。 虛擬機鏡像可以存儲在一個或多個本地存儲上,也可以存儲在共享 NFS 或 iSCSI(NAS、SAN)等存儲。 沒有限制,你可以配置任意數量的存儲池。 你可以使用所有 Debian Linux 可用的存儲技術。
將虛擬機存儲在共享存儲上的一大好處是能夠實時遷移正在運行的虛擬機,沒有任何停機時間,因為所有節點都在集群可以直接訪問 VM 磁盤鏡像。 沒有必要復制 VM 鏡像數據,因此在這種情況下實時遷移非常快。
存儲庫(包 libpve-storage-perl )使用靈活的插件系統為所有存儲類型提供通用接口。 這個將來可以很容易地采用以包含更多存儲類型。
存儲類型
基本上有兩種不同的存儲類型:
- 文件級存儲
基於文件級的存儲技術允許訪問全功能 (POSIX) 文件系統。 它們通常比任何塊級存儲都更靈活 (見下文),並允許您存儲任何類型的內容。 ZFS 可能是最先進的系統,它完全支持快照和克隆。
- 塊級存儲
允許存儲大型原始鏡像。通常無法存儲此類存儲類型上的其他文件(ISO、備份等)。 最現代的塊級存儲實現支持快照和克隆。 RADOS 和 GlusterFS 是分布式系統,復制存儲數據到不同的節點。
1 :在基於文件的存儲上,可以使用 qcow2 格式進行快照。
2 :可以在基於 iSCSI 或 FC 的存儲之上使用 LVM。 這樣您就可以獲得 共享的 LVM 存儲。
Thin Provisioning(精簡配置)
許多存儲和 Qemu 映像格式qcow2支持精簡配置。激活精簡配置后,只有Guest系統實際使用的塊才會寫入存儲。
比如說你創建了一個32GB硬盤的虛擬機,在安裝了guest system OS之后,虛擬機的根文件系統包含了3GB的數據。在這種情況下,即使 Guest VM 看到 32GB 的硬盤驅動器,也只會將 3GB 寫入存儲。通過這種方式,精簡配置允許您創建大於當前可用存儲塊的磁盤映像。您可以為 VM 創建大型磁盤映像,並在需要時向存儲添加更多磁盤,而無需調整 VM 文件系統的大小。
所有具有“快照”功能的存儲類型也支持精簡配置。
注意:如果存儲已滿,則所有使用該存儲上的卷的來賓都會收到 IO 錯誤。這可能會導致文件系統不一致並可能損壞您的數據。因此,建議避免過度配置您的存儲資源,或仔細觀察可用空間以避免出現此類情況。
目錄后端(本地,文件級,備份)
存儲池類型:dir
Proxmox VE 可以使用本地目錄或本地安裝的共享進行存儲。目錄是文件級存儲,因此您可以存儲任何內容類型,例如虛擬磁盤映像、容器、模板、ISO 映像或備份文件。
您可以通過標准的 linux /etc/fstab 掛載額外的存儲,然后為該掛載點定義一個目錄存儲。這樣您就可以使用 Linux 支持的任何文件系統。
此后端假定底層目錄與 POSIX 兼容,但僅此而已。這意味着您不能在存儲級別創建快照。但是對於使用qcow2文件格式的VM 映像存在一種解決方法,因為該格式在內部支持快照。例如:
root@pve:/var/lib/vz# qemu-img info images/106/base-106-disk-0.qcow2
image: images/106/base-106-disk-0.qcow2
file format: qcow2
virtual size: 32 GiB (34359738368 bytes)
disk size: 5.2 MiB
cluster_size: 65536
Format specific information:
compat: 1.1
compression type: zlib
lazy refcounts: false
refcount bits: 16
corrupt: false
extended l2: false
root@pve:/var/lib/vz# qemu-img info images/107/vm-107-disk-0.qcow2
image: images/107/vm-107-disk-0.qcow2
file format: qcow2
virtual size: 32 GiB (34359738368 bytes)
disk size: 204 KiB
cluster_size: 65536
backing file: ../106/base-106-disk-0.qcow2 (actual path: images/107/../106/base-106-disk-0.qcow2)
backing file format: qcow2
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK ICOUNT
1 testsnap 0 B 2021-09-07 15:38:08 00:00:00.000 0
Format specific information:
compat: 1.1
compression type: zlib
lazy refcounts: false
refcount bits: 16
corrupt: false
extended l2: false
這同樣適用於克隆。后端使用qcow2基礎映像功能創建克隆。
某些存儲類型不支持 O_DIRECT,因此您不能將緩存模式 none 用於此類存儲。只需使用緩存模式 writeback 即可。
我們使用預定義的目錄布局將不同的內容類型存儲到不同的子目錄中。所有文件級存儲后端都使用此布局。
示例:
root@pve:/var/lib/vz# tree
.
├── dump
│ ├── vzdump-qemu-107-2021_09_07-15_47_25.log
│ ├── vzdump-qemu-107-2021_09_07-15_47_25.vma.zst
│ ├── vzdump-qemu-107-2021_09_07-15_48_12.log
│ └── vzdump-qemu-107-2021_09_07-15_48_12.vma.zst
├── images
│ ├── 106
│ │ └── base-106-disk-0.qcow2
│ └── 107
│ └── vm-107-disk-0.qcow2
├── private
├── snippets
└── template
├── cache
├── iso
│ ├── cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso
│ ├── debian-11.0.0-amd64-DVD-1.iso
│ ├── ubuntu-18.04.5-server-amd64.iso
│ ├── ubuntu-20.04.1-legacy-server-amd64.iso
│ └── virtio-win-drivers-20120712-1.iso
└── qemu
10 directories, 11 files
NFS 后端(共享,文件級,備份)
存儲池類型:nfs
NFS 后端基於目錄后端,因此它共享大多數屬性。目錄布局和文件命名約定是相同的。主要優點是可以直接配置NFS服務器屬性,所以后端可以自動掛載共享。無需修改/etc/fstab。后端還可以測試服務器是否在線,並提供了一種向服務器查詢導出共享的方法。
NFS 不支持快照,但后端使用qcow2特性來實現快照和克隆。
您可以通過以下方式獲取導出的 NFS 共享列表:
# pvesm scan nfs <server>
CephFS 后端(共享,文件級)
存儲池類型:cephfs
CephFS 實現了符合 POSIX 的文件系統,使用Ceph 存儲集群來存儲其數據。由於 CephFS 建立在 Ceph 之上,因此它共享其大部分屬性。這包括冗余、可擴展性、自我修復和高可用性。
Proxmox VE 可以管理 Ceph 設置,這使得配置 CephFS 存儲更容易。由於現代硬件提供了大量處理能力和 RAM,因此可以在同一節點上運行存儲服務和 VM,而不會對性能產生重大影響。
要使用 CephFS 存儲插件,您必須通過添加我們的Ceph 存儲庫來替換現有的 Debian Ceph 客戶端。添加后,運行apt update,然后運行apt dist-upgrade,以獲得最新的軟件包。
請確保沒有配置其他 Ceph 存儲庫。否則安裝將失敗或節點上會出現包版本混合,導致意外行為。
[1]雖然不存在已知的錯誤,但快照還不能保證穩定,因為它們缺乏足夠的測試。
LVM-thin 后端(本地,塊級,精簡)
存儲池類型:lvmthin
LVM 通常在您創建卷時分配塊。LVM 精簡池在寫入時分配塊。這種行為稱為精簡配置,因為卷可能比物理可用空間大得多。
您可以使用普通的 LVM 命令行工具來管理和創建 LVM 精簡池(有關詳細信息,請參閱man lvmthin)。假設您已經有一個名為pve的 LVM 卷組,以下命令會創建一個名為data的新 LVM 精簡池(大小為 100G):
lvcreate -L 100G -n data pve
lvconvert --type thin-pool pve/data
LVM 精簡是一種塊存儲,但完全支持高效的快照和克隆。新卷自動初始化為零。
必須提到的是,LVM 精簡池不能跨多個節點共享,因此您只能將它們用作本地存儲。
Ceph/RBD 后端(共享,塊級,精簡)
存儲池類型:rbd
Ceph是一個分布式對象存儲和文件系統,旨在提供卓越的性能、可靠性和可擴展性。RADOS 塊設備實現了功能豐富的塊級存儲,您將獲得以下優勢:
-
精簡配置
-
可調整大小的卷
-
分布式和冗余(在多個 OSD 上條帶化)
-
完整的快照和克隆功能
-
自愈
-
無單點故障
-
可擴展到 exabyte 艾字節級別
-
內核和用戶空間實現可用
對於較小的部署,也可以直接在 Proxmox VE 節點上運行 Ceph 服務。最近的硬件具有充足的 CPU 能力和 RAM,因此可以在同一節點上運行存儲服務和 VM。
RBD后端是塊級存儲,並實現全快照和克隆功能。
Proxmox Backup(共享,文件級,只能用於備份)
存儲池類型:pbs
該后端允許將 Proxmox 備份服務器像任何其他存儲一樣直接集成到 Proxmox VE 中。Proxmox 備份存儲可以通過 Proxmox VE API、CLI 或網絡界面直接添加。