持久性記憶體儲存(PMEM):它是什麼以及如何使用

最後更新: 02/12/2025
作者: 艾薩克
  • 持久記憶體(PMEM)在DRAM和持久記憶體之間創建了一個新的層級。 SSD結合低延遲 存儲 非揮發性。
  • 它可以作為擴展內存或在 App Direct、DAX、vPMem 和 vPMemDisk 模式下作為超高速存儲。
  • 在Windows中, Linux vSphere 可集成為快取、邏輯磁碟或虛擬 NVDIMM 以加速 數據庫 以及關鍵負載。
  • 它的價值在於戰略用途,速度、持久性和容量可以彌補其相對於 NVMe 的較高成本。

持久性記憶體 (PMEM)

持久性記憶體(PMEM) 它已成為人們在談論極致效能、記憶體資料庫或進階虛擬化時都會提及的概念之一。它不僅僅是「另一種類型的記憶體」或「另一種類型的磁碟」:它是記憶體和儲存層次結構中的一個新層級,融合了兩者各自的優勢。

了解持久性記憶的真正意義、運作方式以及與其他類型記憶的差異。 了解傳統 DRAM、NVMe SSD 或雲端儲存是做出明智技術決策的關鍵。本文將深入剖析相關概念,探討其使用模式(記憶體、App Direct、vPMem、vPMemDisk 等),以及它如何與 Windows、Linux、vSphere 和容器環境集成,並介紹實際應用案例和限制。

什麼是持久記憶體(PMEM 或 PMem)?

持久記憶體 它是一種媒介 非揮發性存儲 它以 DIMM 模組的形式存在,這意味著它會與 DRAM 一起安裝在伺服器的標準記憶體插槽中。與傳統 RAM 不同,即使在系統關機、重新啟動、斷電或系統崩潰後,它也能保留其內容。

它的行為介於記憶體和儲存之間它比純DRAM慢,但比SSD(即使是NVMe)快得多,延遲也低得多。安裝在… 記憶體總線資料比任何傳統儲存單元都更靠近 CPU,因此存取速度以奈秒而不是微秒或毫秒來衡量。

持久性記憶體模組 它們的容量遠高於DRAM(常見的單模組容量為128GB、256GB和512GB),而且每GB的成本遠低於RAM,儘管仍然高於NVMe SSD。因此,它們被用作一種中間方案:既能大幅擴展儲存容量,又無需支付純DRAM的全部成本,同時還能獲得比傳統儲存更高的速度。

另一個關鍵點是堅持。即使系統以受控方式關閉或因斷電而關閉,資料仍會被記錄下來。這使得PMEM能夠用作 超高速儲存 對於關鍵結構(元資料、分配表、記憶體資料庫、 日誌 交易等)。

PMEM基礎知識與存取模式

持久記憶體的使用方式與普通RAM不同。根據作業系統和平台的不同,它可以以區塊儲存、位元組尋址記憶體或兩者混合的形式呈現。這裡涉及到幾個基本概念。

Windows 和 Linux 中的存取方法 PMEMs通常分為兩大類:

  • 區塊訪問PMEM 的行為就像一個「經典」的儲存設備,它透過檔案系統和儲存堆疊。
  • 直接存取(DAX 類型)它以位元組尋址記憶體的形式暴露出來,避免了儲存堆疊的大部分,從而進一步降低了延遲。

區塊存取模式PMEM 可以使用諸如以下檔案系統進行格式化: NTFS Windows 中的 ReFS 或 Linux 中的 EXT4/XFS 的使用方式如同使用一塊速度極快的磁碟。當需要兼顧相容性和簡易性時,尤其是對於那些並非專門針對持久記憶體最佳化的服務而言,這種模式是推薦之選。

DAX 模式該應用程式透過將持久記憶體直接映射到其位址空間來存取資料。訪問方式為“內存”訪問,而非“塊”訪問,從而最大限度地降低了延遲。但是,如果編程和配置不當,則在寫入不完整的情況下存在資料遺失的風險,因此需要將 DAX 與諸如…之類的機制結合使用。 塊轉換表(BTT) 或塊轉換表。

區、命名空間和 PMemDisk

PMEM物理模組 它們很少由作業系統單獨管理。通常情況下,它們會被分組在一起以提高效能、容量或簡化管理,而這涉及多種概念。

持久記憶區域 它是由一個或多個分組模組組成的集合,通常在以下情況下配置: 的BIOS 或伺服器的UEFI。它們通常以交錯的方式排列,以便將連續的記憶體位址分配給多個模組,從而增加可用頻寬。

在 Windows Server 和 Azure 本機等平台上這些區域上定義了稱為磁碟的邏輯磁碟。 記憶體磁碟PmemDisk 只是一個連續的非揮發性記憶體位址範圍,它以磁碟機或 LUN 的形式呈現給系統。

每個持久記憶體模組都包含一個標籤儲存區。 標籤儲存區 (LSA) 用於儲存設定元資料(命名空間、區域成員資格等)。諸如 cmdlet 之類的工具來自 PowerShell的 (Get-PmemDisk, Get-PmemPhysicalDevice, Get-PmemUnusedRegion等等)可讓您查看哪些實體模組參與每個 PmemDisk,檢查它們的狀態,以及建立或刪除持久記憶體邏輯磁碟。

在 ESXi/vSphere 環境中意思類似,但術語不同:我們說的是 PMem命名空間 虛擬機器管理程式使用 GPT 分區表檢測並合併這些卷,形成邏輯卷。然後,這些磁碟區被掛載為 PMem 資料存儲,隨後以 vPMem 或 vPMemDisk 的形式暴露給虛擬機器。

  10 年生效的 2021 種網路連線類型

區塊轉換表 (BTT) 和資料安全

PMEM 與 SSD 之間的微妙區別 問題在於,持久性記憶體模組不像標準記憶體那樣包含針對「部分寫入」的保護機制。 撕碎的文字 很多商用U盤上都能找到這種東西。

如果發生斷電或系統崩潰 在寫入作業過程中,可能會出現新資料寫入的同時舊資料仍然存在的情況,導致磁區處於不一致狀態。為了降低這種風險,採用了以下措施: 塊轉換表(BTT)提供原子扇區更新語意的層。

BTT充當邏輯位址和實體位址之間的轉換器。 它確保應用程式的寫入操作如同「傳統區塊寫入」一樣:要麼完全完成,要麼不被察覺。強烈建議在區塊存取模式和 DAX 模式下啟用 BTT,尤其是在使用記憶體語義存取應用程式資料時,檔案系統元資料仍然採用區塊模型。

在 Windows 系統中,BTT 是 PMEM 磁碟的屬性。因此,必須在創建時啟用它(例如,使用 New-VHD ... -AddressAbstractionType BTT或將現有硬碟轉換為 BTT 格式 Convert-VHD轉換完成後,建議使用以下命令重新產生命名空間標識符: Set-VHD -ResetDiskIdentifier 為避免兩個磁碟在同一虛擬機器中共存時發生衝突。

持久記憶體硬體:NVDIMM 和傲騰

持久性記憶體並非單一的實體技術。但它實際上是一系列從作業系統角度來看行為相似的解決方案。其中最知名的包括:

  • NVDIMM-N此模組將DRAM和NAND快閃記憶體結合,並由電池或超級電容器提供備用電源。上電時,資料載入到DRAM中;斷電或斷電後,資料寫入快閃記憶體。
  • Intel英特爾 Optane 資料中心持久記憶體 (DCPMM):基於 3D XPoint 技術的模組,旨在提供接近記憶體的延遲和遠超 DRAM 的容量。

在 Windows Server 2016 和 2019、Azure 本機和其他平台上這些模組的支援因版本而異,但總體思路相同:它們可以用作純持久記憶體(App Direct)或「擴展」記憶體(記憶體模式)。

Optane DC PMEM 支援三種主要運作模式這些通常在伺服器的BIOS中進行配置:

  • 記憶體模式PMEM 用作大容量主記憶體,而 DRAM 則用作最常用資料的快速快取。在這種模式下,記憶體表現為揮發性記憶體;如果斷電,資料將會遺失。
  • 應用程式直通模式PMEM 是一種持久性非揮發性內存,作業系統可以將其作為儲存區域或位元組尋址內存進行存取。它是記憶體資料庫、超高速儲存和對持久性要求較高的工作負載的理想模式。
  • 混合模式此模組的一部分保留用於記憶體模式,另一部分保留用於應用程式直接模式,從而可以在擴展的易失性記憶體容量和持久性儲存之間取得平衡。

請勿將“內存模式”與 DAX 混淆。記憶體模式將 PMEM 視為速度較慢的 RAM, 失去持久性DAX 是一種存取持久卷的模式,這種磁碟區在重新啟動後仍能保留資料。

虛擬化環境(vSphere 和 ESXi)中的 PMEM

vSphere 自 6.7 版本起就支援持久記憶體。 之後,在這些環境中,主機的 PMEM 模組被呈現為高速本地資料存儲,虛擬機器可以透過兩種方式使用它。

vPMem(虛擬持久記憶體) PMEM 將客戶作業系統公開為一個 虛擬 NVDIMM從虛擬機器的角度來看,主機似乎有實體 NVDIMM 模組,允許客戶作業系統和應用程式以位元組尋址模式存取持久記憶體。

vPMemDisk(虛擬持久記憶體磁碟) 它的工作原理不同:持久性記憶體以虛擬 SCSI 磁碟的形式呈現,其內容實際儲存在主機的 PMem 資料儲存中。此選項對於較舊的作業系統或僅使用磁碟的應用程式非常有用。

PMEM 為虛擬機器預留的名額 此操作在建立 vPMem 磁碟或新增 vNVDIMM 裝置時執行,並且無論虛擬機器是否開機,該磁碟都會一直為該虛擬機保留,直到虛擬機器被刪除或遷移。在叢集中,所有虛擬機器所使用的 PMEM 總和不能超過主機池中可用的總容量。

關於高可用性和遷移其中有幾個細微差別:帶有 vPMem 的虛擬機只能遷移到也具有 PMEM 的主機,而帶有 vPMemDisk 的虛擬機如果磁碟已複製或使用 Storage vMotion 遷移到另一種類型的存儲,則可以遷移到沒有 PMEM 的主機。

需要強調的是,PMEM 是本地儲存。 對主機而言,以及解決方案 備用 依賴傳統儲存的複製方法可能無法正常運作。此外,在主機嚴重故障的情況下,如果未實施適當的保護策略,則可能發生資料遺失。

Windows Server、Azure 本機和儲存空間直通上的 PMEM

Windows Server 2019 和 Azure 本機 將持久記憶體與 儲存空間直接 (S2D)這是這些環境中基本的軟體定義儲存 (SDS) 技術。在這裡,PMEM 可以扮演以下角色: 超高速緩存級別 其餘單元。

  聯想透過收購 Infinidat 加速其業務策略

Storage Spaces Direct 了解四種主要類型的驅動器PMem、NVMe、SSD 和 HDD。根據組合情況,系統會自動配置哪種磁碟類型將用作緩存,哪種用作儲存容量,遵循以下層級:PMem > NVMe > SSD > HDD。

一些典型的組合有::

  • PMem + NVMe + HDD:PMem 作為頂級緩存,NVMe 和 HDD 作為容量。
  • NVMe + SSD:NVMe 作為 SSD 的只寫快取。
  • SSD + HDD:SSD 作為 HDD 的讀寫快取。

當快取位於快閃磁碟機(例如 SSD 上的 NVMe)之上時它配置為模式 僅寫作由於容量單元的延遲已經非常低,因此讀取操作可以直接從容量單元進行,這樣快取就可以專門用於整合寫入操作和減少損耗。

當快取位於硬碟上方時以模式運行 讀寫它儲存頻繁的讀取操作,以避免對機械磁碟進行隨機訪問,並吸收突發的寫入操作,重新排序操作,使它們以盡可能順序的方式到達磁碟。

在 NVMe、SSD 和 HDD 混合使用的場景中NVMe 驅動器通常用作 SSD(只寫)和 HDD(讀寫)的快取。系統以 1:N 的比例動態地將快取磁碟機與容量磁碟機關聯起來,並在新增或移除磁碟機時重新平衡指派。

如果 PMem 或 NVMe 快取磁碟機發生故障尚未下載到容量單元的資料將會遺失。 僅在該伺服器上但是,其他叢集節點上的冗餘副本(例如,在三重鏡像配置中)允許儲存空間直連自動重建資訊。

Linux 中的持久記憶體(例如:Red Hat Enterprise Linux)

在企業級 Linux 環境(例如 RHEL)中PMEM通常以裝置的形式呈現。 /dev/pmemX 或作為透過以下方式管理的 NVDIMM 設備 核心工具 (例如, ndctl).

紅帽及其他發行版 允許將 NVDIMM 用作:

  • 區塊儲存 傳統格式,採用 EXT4、XFS 等格式。
  • 位元組尋址記憶器 在 DAX 模式下,將檔案系統直接掛載到 pmem 設備上。
  • 系統根設備將作業系統本身安裝在 NVDIMM 上,可大幅縮短啟動時間 開機.

就像在 Windows 系統中一樣我們談論的是存儲類內存(SCM該術語指的是一類集儲存和記憶體於一體的裝置。常見的應用場景包括對效能需求極高的資料庫、高效能快取、訊息佇列以及需要最大限度減少系統開銷的系統。 El Temppo 重啟後恢復正常。

PMEM 與 DRAM、SSD、HDD 和 NVMe 的比較

為了充分理解PMEM的價值 值得與我們日常使用的技術進行比較。

DRAM 它是伺服器領域速度最快的通用內存,但也是每GB價格最高的,而且完全易失。其典型的DIMM容量(16、32、64、128或256GB)隨著容量的增加而上漲,因此在成本過高之前,可安裝的容量有限。

SSD 和 NVMe 它們提供的持久性和性能遠超機械硬碟,但它們仍然是遠離CPU的儲存裝置:它們透過SATA、SAS或PCIe介面連接,而不是透過記憶體匯流排連接。它們的存取速度雖然不錯,但仍然無法與更接近RAM特性的永久記憶體(PMEM)相媲美。

硬碟 雖然它們在每TB成本和原始容量方面仍然具有優勢,但它們的延遲和隨機性能與DRAM和PMEM相比卻相差甚遠。因此,在現代架構中,它們通常用於冷資料層,並置於快閃記憶體和/或PMEM層之下。

PMEM位於DRAM和NVMe之間。速度略低於純內存,但模組容量更大,每GB價格更具競爭力,並且具有資料保留優勢。與固態硬碟 (SSD) 和 NVMe 固態硬碟相比,它提供更低的延遲和位元組級訪問,使其成為記憶體工作負載的理想選擇,但成本更高。

持久記憶體使用案例

最能從 PMEM 受益的應用 這些應用程式既需要速度,又需要資料持久性;或需要大量內存,但又不希望成本飆升。

一些常見的用法範例包括::

  • 記憶體資料庫 例如 SAP HANA、Oracle In-Memory、REDIS 或 MSSQL,並針對 PMEM 進行最佳化。
  • 大數據工作負載 (Hadoop、Spark、海量分析)在啟動時,將海量資料集載入記憶體非常重要。
  • 虛擬化平台 希望降低某些關鍵虛擬機器儲存延遲的用戶。
  • 機器學習和 IA超快速存取訓練集可以顯著縮短訓練時間。
  • 基因組安全 以及科學分析,其中處理對處理時間非常敏感的大型資料集。
  • 數據處理 物聯網 即時快速響應感測器產生的海量事件。
  • 專業影片編輯和渲染透過加快對大型文件和複雜專案的存取速度。
  • 遊戲和圖形引擎 在伺服器或雲端遊戲環境中,最大限度地減少關卡和資源的載入時間。

在基礎建設層面它也被用作儲存空間直通等系統中 NVMe/SSD/HDD 之上的持久快取層,確保新寫入或讀取的資料盡可能靠近 CPU,而不會犧牲容錯性。

應用程式和容器中的持久性存儲

當我們談到持久性儲存時 在 Web 應用程式和容器領域,重點不僅在於 PMEM,還在於任何能夠確保資料在重新啟動、部署和更新後仍然存在的機制。

  如何修復 Windows 10 中的印表機狀態錯誤

在經典的單體應用中伺服器和儲存通常是整合在一起的,因此存取本機磁碟或SAN相對簡單。但當我們轉向分散式架構或跨多個區域的微服務時,情況就變得複雜起來:儲存系統必須全球可用、保持一致性並能承受部分故障。

隨著貨櫃的到來 (例如 Docker、Kubernetes 等)這個問題更加嚴重。容器本質上是短暫且無狀態的。如果一個容器被銷毀,那麼儲存在其內部檔案系統中的所有內容也會隨之銷毀。

這就是為什麼需要使用捲和持久卷的原因。標準的 Docker 磁碟區可以在容器重新啟動後仍然存在,但如果容器被刪除且關聯的磁碟區也被移除,則資料會遺失。持久性磁碟區(或類型為 `<volume>` 的掛載點)則不同。 綁定它們位於容器檔案系統之外,在主機上或遠端儲存後端,即使應用程式被重新創建,它們仍然存在。

Kubernetes 等平台 他們引入了以下概念: 持續性體積(PV) y 持續銷售聲明 (PVC) 抽象化實體儲存(可以是 HDD、SSD、NAS、SAN、NFS、雲端解決方案,甚至是主機上的 PMEM),並允許應用程式請求“x GB 的持久性儲存”,而無需了解底層是什麼。

像是 Kinsta 或類似服務的供應商 它們使用持久性 Kubernetes 卷。

以便託管應用程式能夠保留其數據 可靠。從開發者的角度來看,磁碟區的大小和類型都已定義,平台負責將其映射到正確的實體儲存。

在這種情況下,PMEM 可以作為超高速後端。 對於特定的持久磁碟區(例如,I/O 密集型資料庫),其餘資料儲存在 SSD 或 HDD 上,從而在效能和成本之間取得平衡。

持久性儲存的類型和架構

超過 硬件 具體持久性儲存可以組織成不同的架構,每種架構都適合特定的使用模式。

物件架構 它將資料儲存為帶有元資料和標識符的對象,而不是資料區塊或檔案。它非常適合非結構化資料(影像、視訊、文件),並廣泛應用於公有雲(S3、Azure Blob 儲存等)。其關鍵在於可擴展性和持久性,而非超低延遲。

模組化架構 它將儲存呈現為固定大小的可尋址區塊。這是經典的磁碟和 LUN 模型,也是我們在討論時首選的模型。 高效能運算、資料庫、專業影片編輯或遊戲 因為它具有低延遲、高性能和良好的並行 I/O 操作控制。

文件架構 它基於共用或本機檔案系統(EXT4、NTFS、NFS、SMB 等)。對於需要操作具有路徑、權限和層級結構的檔案的應用程式來說,它非常方便,例如 Web 內容管理系統、協作平台、多媒體內容管理系統等。

PMEM主要適用於區塊儲存模型和位元組儲存模型。但是,它可以整合到檔案系統中,甚至可以作為物件解決方案的超快速後端,充當元資料或熱資料快取。

持久性記憶體的優點和局限性

PMEM的主要優勢 在商業場合中常被提及的有:

  • 性能遠超其他同類產品 與傳統儲存相比,尤其是在小規模隨機讀寫方面。
  • 減少延遲位於記憶體總線上,可以按位元組存取。
  • 無波動:在斷電、故障或重新啟動的情況下,資料仍然保留(在持久模式下)。
  • 更高的記憶體可擴展性 每GB成本比DRAM更低。
  • 更佳的總體擁有成本 在某些情況下,升級 DRAM 的成本過高,而 NVMe SSD 又無法提供所需的延遲。
  • 進階安全選項 透過對模組中的資料進行加密,為「熱」記憶體提供更多保護。

即便如此,它也存在一些缺點和挑戰。:

  • 比 SSD 和 NVMe 更貴因此,將所有儲存都替換為 PMEM 是沒有意義的。
  • 有限的兼容性 在某些硬體、作業系統或虛擬機器管理程式上,尤其是在較舊的環境中。
  • 能力和產品供應減少尤其是在英特爾傲騰等產品線停產後。
  • 採納複雜性為了充分發揮其作用,您需要調整應用程式、調整檔案系統,並制定清晰的持久化策略。

事實上,持久性記憶只有在策略性使用時才更有意義。:可用作超高速緩存,作為 DRAM 和 NVMe 之間的中間容量級別,或作為資料庫和記憶體工作負載的專用支持,在這些應用中,速度和持久性可以彌補成本。

儘管像英特爾傲騰這樣的標誌性產品已經停產PMEM所滿足的需求仍然存在:更大的記憶體容量、更快的速度、比DRAM更便宜的價格以及持久性。預計新一代儲存級記憶體、記憶體分層技術和混合解決方案將繼續探索傳統RAM和海量儲存之間的這一領域。

持久性記憶體儲存(PMEM)及更廣泛的資料持久性概念 它們已成為現代基礎設施拼圖的關鍵部分:只要充分了解它們的模式、限制和適當的用例,並以平衡的方式將它們與 HDD、SSD、NVMe 和分散式儲存結合起來,它們就能建立更快、可擴展且具有彈性的系統。

儲存空間直接 Windows 伺服器
相關文章:
Windows Server 上的儲存空間直通:完整的 S2D 指南