Kalıcı belleği anlama ve dağıtma

Şunlar için geçerlidir: Azure Stack HCI, sürüm 22H2 ve 21H2; Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows 10

Kalıcı bellek (veya PMem), içeriğini güç döngüleri aracılığıyla koruyan ve üst katman depolama olarak kullanılabilen yeni bir bellek teknolojisi türüdür. Bu nedenle, kişilerin PMem'e "depolama sınıfı bellek" veya SCM olarak başvurduğunu duyabilirsiniz. Bu makalede kalıcı bellek hakkında arka plan sağlanır ve Azure Stack HCI ve Windows Server'da en üst depolama katmanı olarak nasıl dağıtılacağı açıklanır.

Kalıcı bellek nedir?

Kalıcı bellek, standart bir DIMM (bellek) yuvasına sığan geçici olmayan bir medya türüdür. DRAM'dan daha yavaştır, ancak SSD ve NVMe'den daha yüksek aktarım hızı sağlar. DRAM ile karşılaştırıldığında, kalıcı bellek modülleri çok daha büyük kapasitelerde gelir ve GB başına daha ucuzdur, ancak NVMe'den daha pahalıdır. Beklenmeyen güç kaybı, kullanıcı tarafından başlatılan kapatma veya sistem kilitlenmesi durumunda sistem gücü kesildiğinde bile bellek içeriği kalır. Bu, kalıcı bellek modüllerini ultra hızlı ve kalıcı depolama olarak kullanabileceğiniz anlamına gelir.

Azure Stack HCI ve Windows Server 2019, kalıcı belleği önbellek veya kapasite sürücüsü olarak kullanmayı destekler. Ancak, fiyatlandırma modeli göz önüne alındığında, kalıcı bellek en fazla değeri önbellek veya bellek eşleme verileri için az miktarda ayrılmış depolama alanı olarak sağlar. Çoğu durumda, kalıcı bellek sürücüleri otomatik olarak önbellek sürücüsü olarak ve daha yavaş olan her şey kapasite sürücüsü olarak kullanılır. Önbellek ve kapasite sürücülerini ayarlama hakkında daha fazla bilgi için bkz. Depolama havuzu önbelleğini anlama ve Birimleri planlama.

Kalıcı bellek kavramları

Bu bölümde, G/Ç performans sorunlarını azaltmak ve performansı geliştirmek amacıyla Windows Server ve Azure Stack HCI ortamlarında kalıcı bellek dağıtmak için anlamanız gereken temel kavramlar açıklanmaktadır.

Erişim yöntemleri

Kalıcı belleğe erişmek için iki yöntem vardır. Bunlar:

  • Uygulama uyumluluğu için depolama alanı gibi çalışan erişimi engelleyin. Bu yapılandırmada veriler dosya sisteminde ve depolama yığınlarında normal şekilde akar. Bu yapılandırmayı NTFS ve ReFS ile birlikte kullanabilirsiniz ve çoğu kullanım örneği için önerilir.
  • En düşük gecikme süresini elde etmek için bellek gibi çalışan doğrudan erişim (DAX). DAX'i yalnızca NTFS ile birlikte kullanabilirsiniz. DAX'ı doğru kullanmıyorsanız veri kaybı olasılığı vardır. Yırtılmış yazma riskini azaltmak için DAX'ı Blok çevirisi tablosu (BTT) açık olarak kullanmanızı kesinlikle öneririz. Daha fazla bilgi edinmek için bkz. DAX'ı anlama ve yapılandırma.

Uyarı

DAX, Azure Stack HCI ortamlarında desteklenmez. Azure Stack HCI, BTT açıkken yalnızca erişimi engellemeyi destekler.

Bölgeler

Bölge, bir veya daha fazla kalıcı bellek modülü kümesidir. Bölgeler genellikle aktarım hızını artırmak için birden çok kalıcı bellek modülünün tek bir mantıksal sanal adres alanı olarak göründüğü araya katılmış kümeler olarak oluşturulur. Kullanılabilir bant genişliğini artırmak için bitişik sanal adresler birden çok kalıcı bellek modülüne yayılır. Bölgeler genellikle bir sunucu platformunun BIOS'unda oluşturulabilir.

PmemDisks

Kalıcı belleği depolama olarak kullanmak için, konakta bir sanal makine (VM) içinde PmemDisk olarak numaralandırılan bir sanal sabit disk (VHD) olan en az bir PmemDisk tanımlamanız gerekir. PmemDisk, sabit disk bölümü veya LUN gibi düşünebileceğiniz bitişik adreslenmiş geçici olmayan bir bellek aralığıdır. Kullanılabilir ham kapasiteyi bölmek için Windows PowerShell cmdlet'leri kullanarak birden çok PmemDisk oluşturabilirsiniz. Her kalıcı bellek modülü, yapılandırma meta verilerini depolayan bir Etiket Depolama Alanı (LSA) içerir.

Çeviri tablosunu engelle

Katı hal sürücülerinden farklı olarak, kalıcı bellek modülleri güç kesintisi veya sistem kesintisi durumunda oluşabilecek "yırtılmış yazmalara" karşı koruma sağlanmaz ve bu da verileri riske atar. BTT, kalıcı bellek cihazları için atomik kesim güncelleştirme semantiği sağlayarak ve temelde blok benzeri kesim yazmalarını etkinleştirerek uygulamaların bir hata senaryosunda eski ve yeni verileri karıştırmasını önleyerek bu riski azaltır. BtT'nin neredeyse tüm durumlarda açılmasını kesinlikle öneririz. BTT, PmemDisk'in bir özelliği olduğundan, PmemDisk oluşturulduğunda açılmalıdır.

Tüm veriler blok semantiğini kullanacağından, blok erişim modunda BTT kullanmanızı öneririz. BTT, uygulamanın veri işlemleri kullanılmasa bile meta veri işlemleri blok semantiğini kullanmaya devam ettiğinden DAX modunda da yararlıdır. Tüm uygulama işlemleri DAX semantiği ile belleğe eşlenmiş dosyalar kullanıyor olsa bile meta veri işlemleri için yırtılmış yazma işlemleri yine de gerçekleşebilir; bu nedenle BTT'yi açmak hala değerlidir.

Desteklenen donanım

Aşağıdaki tabloda Azure Stack HCI ve Windows Server için desteklenen kalıcı bellek donanımı gösterilmektedir. Kalıcı bellek, Depolama Alanları Doğrudan dahil olmak üzere Windows Server 2019'da tam olarak desteklenir.

Kalıcı Bellek Teknolojisi Windows Server 2016 Azure Stack HCI v20H2/Windows Server 2019
NvDIMM-N kalıcı modda Desteklenir Desteklenir
Uygulama Doğrudan Modunda Intel Optane™ DC Kalıcı Bellek Desteklenmiyor Destekleniyor
Bellek Modunda Intel Optane™ DC Kalıcı Bellek Desteklenir Desteklenir

Intel Optane DC Kalıcı Bellek hem Bellek (geçici) hem de Uygulama Doğrudan (kalıcı) işletim modlarını destekler. Sunucu iş yükleri için birincil kullanım örneği olan depolama alanı olarak kalıcı bellek modüllerini kullanmak için Doğrudan Uygulama modunu kullanmanız gerekir. Bellek modu temelde daha yavaş RAM olarak kalıcı bellek kullanır ve bu da genellikle sunucu iş yüklerinin performans gereksinimlerini karşılamaz. Bellek modu, bellek benzeri semantikler kullanılarak erişilebilen kalıcı bir depolama birimi olan DAX'tan farklıdır.

İşletim modu genellikle özgün cihaz üreticisi tarafından önceden yapılandırılmıştır.

Not

Uygulama Doğrudan modunda birden çok PmemDisk'e ayrılmış birden çok Intel® Optane™ kalıcı bellek modülüne sahip bir sistemi yeniden başlattığınızda, ilgili mantıksal depolama disklerinin bir bölümüne veya tümüne erişimi kaybedebilirsiniz. Bu sorun, 1903 sürümünden daha eski olan Windows Server 2019 sürümlerinde oluşur.

Bu erişim kaybı, kalıcı bir bellek modülünün eğitilmemiş olması veya sistem başlatıldığında başarısız olması nedeniyle oluşur. Böyle bir durumda, sistemdeki herhangi bir kalıcı bellek modülündeki tüm PmemDisk'ler, başarısız modüle fiziksel olarak eşlenmeyenler de dahil olmak üzere başarısız olur.

Tüm PmemDisk'lere erişimi geri yüklemek için başarısız olan modülü değiştirin.

Bir modül Windows Server 2019 sürüm 1903 veya daha yeni sürümlerde başarısız olursa, yalnızca etkilenen modüle fiziksel olarak eşlenen PmemDisklere erişiminizi kaybedersiniz; diğerleri etkilenmez.

Kalıcı belleği yapılandırma

Intel Optane kalıcı belleği kullanıyorsanız buradaki yönergeleri izleyin. Başka bir satıcının kalıcı bellek modüllerini kullanıyorsanız belgelerine bakın.

BTT'yi destekleyen bir PmemDisk oluşturmak için cmdlet'ini New-VHD kullanın:

New-VHD E:\pmemtest.vhdpmem -Fixed -SizeBytes 1GB -AddressAbstractionType BTT

VHD uzantısı "vhdpmem" olmalıdır.

Ayrıca, BTT'nin etkinleştirilmediği bir VHD'yi cmdlet'ini kullanarak Convert-VHD (ve tam tersi) bir VHD'ye dönüştürebilirsiniz:

Convert-VHD .\pmemtest_nobtt.vhdpmem -AddressAbstractionType BTT -DestinationPath pmemtest_btt.vhdpmem

Dönüştürdükten sonra yeni VHD, özgün VHD ile aynı ad alanı GUID'sine sahip olur. Bu, özellikle de ikisi de aynı VM'ye bağlıysa sorunlara yol açabilir. Dönüştürülen VHD için yeni bir ad alanı UUID'sini oluşturmak için cmdlet'ini Set-VHD kullanın:

Set-VHD -ResetDiskIdentifier .\pmemtest_btt.vhdpmem

Araya kaydedilen kümeleri anlama

Birden çok kalıcı bellek cihazının konak işletim sisteminde tek bir disk olarak görünmesini sağlamak ve bu disk için aktarım hızını artırmak için, araya eklenen kümeler genellikle sunucu platformunun BIOS'unda oluşturulabilir.

Not

Windows Server 2016, araya kaydedilen kalıcı bellek modülleri kümelerini desteklemez.

Kalıcı bir bellek modülünün, verileri işlemciye yaklaştıran standart bir DIMM (bellek) yuvasında bulunduğunu hatırlayın. Bu yapılandırma gecikme süresini azaltır ve getirme performansını geliştirir. Aktarım hızını daha da artırmak için iki veya daha fazla kalıcı bellek modülü, okuma/yazma işlemlerini şeritli hale getirmek için n yönlü araya katılmış bir küme oluşturur. En yaygın yapılandırmalar iki yönlü veya dört yönlü araya eklemedir.

PowerShell cmdlet'ini Get-PmemDisk kullanarak bu tür mantıksal disklerin yapılandırmasını aşağıdaki gibi gözden geçirebilirsiniz:

Get-PmemDisk

DiskNumber Size   HealthStatus AtomicityType CanBeRemoved PhysicalDeviceIds UnsafeShutdownCount
---------- ----   ------------ ------------- ------------ ----------------- -------------------
2          252 GB Healthy      None          True         {20, 120}         0
3          252 GB Healthy      None          True         {1020, 1120}      0

Mantıksal PMem disk 2'nin Id20 ve Id120 fiziksel cihazlarını, mantıksal PMem disk 3'te ise Id1020 ve Id1120 fiziksel cihazlarını kullandığını görebiliriz.

Mantıksal sürücünün kullandığı araya ekleme kümesi hakkında daha fazla bilgi almak için cmdlet'ini Get-PmemPhysicalDevice çalıştırın:

(Get-PmemDisk)[0] | Get-PmemPhysicalDevice

DeviceId DeviceType           HealthStatus OperationalStatus PhysicalLocation FirmwareRevision Persistent memory size Volatile memory size
-------- ----------           ------------ ----------------- ---------------- ---------------- ---------------------- --------------------
20       Intel INVDIMM device Healthy      {Ok}              CPU1_DIMM_C1     102005310        126 GB                 0 GB
120      Intel INVDIMM device Healthy      {Ok}              CPU1_DIMM_F1     102005310        126 GB                 0 GB

Araya kaydedilen kümeleri yapılandırma

Araya eklenen bir kümeyi yapılandırmak için cmdlet'ini Get-PmemUnusedRegion çalıştırarak sistemdeki bir mantıksal kalıcı bellek diskine atanmamış tüm kalıcı bellek bölgelerini gözden geçirin:

Get-PmemUnusedRegion

RegionId TotalSizeInBytes DeviceId
-------- ---------------- --------
       1     270582939648 {20, 120}
       3     270582939648 {1020, 1120}

Cihaz türü, konum, sistem durumu ve işlem durumu gibi sistemdeki tüm PMem cihaz bilgilerini görmek için cmdlet'ini Get-PmemPhysicalDevice çalıştırın:

Get-PmemPhysicalDevice

DeviceId DeviceType           HealthStatus OperationalStatus PhysicalLocation FirmwareRevision Persistent memory size Volatile
                                                                                                                      memory size
-------- ----------           ------------ ----------------- ---------------- ---------------- ---------------------- --------------
1020     Intel INVDIMM device Healthy      {Ok}              CPU2_DIMM_C1     102005310        126 GB                 0 GB
1120     Intel INVDIMM device Healthy      {Ok}              CPU2_DIMM_F1     102005310        126 GB                 0 GB
120      Intel INVDIMM device Healthy      {Ok}              CPU1_DIMM_F1     102005310        126 GB                 0 GB
20       Intel INVDIMM device Healthy      {Ok}              CPU1_DIMM_C1     102005310        126 GB                 0 GB

Kullanılabilir kullanılmayan bir PMem bölgemiz olduğundan yeni kalıcı bellek diskleri oluşturabiliriz. Aşağıdaki cmdlet'leri çalıştırarak birden çok kalıcı bellek diski oluşturmak için kullanılmayan bölgeyi kullanabiliriz:

Get-PmemUnusedRegion | New-PmemDisk
Creating new persistent memory disk. This may take a few moments.

Bu işlem tamamlandıktan sonra aşağıdakini çalıştırarak sonuçları görebiliriz:

Get-PmemDisk

DiskNumber Size   HealthStatus AtomicityType CanBeRemoved PhysicalDeviceIds UnsafeShutdownCount
---------- ----   ------------ ------------- ------------ ----------------- -------------------
2          252 GB Healthy      None          True         {20, 120}         0
3          252 GB Healthy      None          True         {1020, 1120}      0

Aynı sonuçları almak yerine Get-PmemDisk çalıştırabildiğimizi Get-PhysicalDisk | Where MediaType -eq SCM belirtmek gerekir. Yeni oluşturulan kalıcı bellek diski, PowerShell'de ve Windows Admin Center görüntülenen sürücülerle bire bir karşılık gelir.

Kalıcı belleği değiştirme

Başarısız bir modülü değiştirmeniz gerekiyorsa PMem diskini yeniden oluşturmanız gerekir (daha önce özetlediğimiz adımlara bakın).

Sorun giderirken kullanmanız Remove-PmemDiskgerekebilir. Bu cmdlet belirli bir kalıcı bellek disklerini kaldırır. Aşağıdaki cmdlet'leri çalıştırarak tüm geçerli kalıcı bellek disklerini kaldırabiliriz:

Get-PmemDisk | Remove-PmemDisk

cmdlet Remove-PmemDisk at command pipeline position 1
Supply values for the following parameters:
DiskNumber: 2

This will remove the persistent memory disk(s) from the system and will result in data loss.
Remove the persistent memory disk(s)?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): Y
Removing the persistent memory disk. This may take a few moments.

Önemli

Kalıcı bellek disklerinin kaldırılması bu diskte veri kaybına neden olur.

başka bir cmdlet'e ihtiyacınız Initialize-PmemPhysicalDeviceolabilir. Bu cmdlet, fiziksel kalıcı bellek cihazlarında etiket depolama alanlarını başlatır ve cihazlardaki bozuk etiket depolama bilgilerini temizleyebilir.

Get-PmemPhysicalDevice | Initialize-PmemPhysicalDevice

This will initialize the label storage area on the physical persistent memory device(s) and will result in data loss.
Initializes the physical persistent memory device(s)?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): A
Initializing the physical persistent memory device. This may take a few moments.
Initializing the physical persistent memory device. This may take a few moments.
Initializing the physical persistent memory device. This may take a few moments.
Initializing the physical persistent memory device. This may take a few moments.

Önemli

Initialize-PmemPhysicalDevice kalıcı bellekte veri kaybına neden olur. Bunu yalnızca bellekle ilgili kalıcı sorunları düzeltmek için son çare olarak kullanın.

Microsoft Ignite 2018'de kalıcı bellek iş başında

Kalıcı belleğin avantajlarından bazılarını görmek için Microsoft Ignite 2018'in bu videosuna göz atalım.

Hataya dayanıklılık sağlayan tüm depolama sistemleri mutlaka yazmaların dağıtılmış kopyalarını oluşturur. Bu tür işlemlerin ağ üzerinden geçmesi ve arka uç yazma trafiğini büyütmesi gerekir. Bu nedenle, özellikle depolama sisteminin mümkün olduğunca yerel kopyadan okumak için sağduyunu iyileştirmeleri varsa, mutlak en büyük IOPS karşılaştırma numaraları genellikle yalnızca okumaları ölçerek elde edilir. Depolama Alanları Doğrudan bunu yapmak için iyileştirilmiştir.

Küme yalnızca okuma işlemleri kullanılarak ölçüldüyse 13.798.674 IOPS teslim etti.

Videoyu yakından watch, gecikme süresinin daha da fazla olduğunu fark edeceksiniz. 13,7 M IOPS'nin üzerinde bile Windows'taki dosya sistemi sürekli olarak 40 μs'den daha az gecikme süresi bildirmektedir! (Bu, saniyenin milyonda biri olan mikrosaniyelerin sembolüdür.) Bu hız, tipik all-flash satıcılarının bugün gururla tanıtmalarından daha hızlı bir büyüklük sırasıdır.

Windows Server 2019 ve Intel® Optane™ DC kalıcı belleğindeki Depolama Alanları Doğrudan birlikte çığır açan bir performans sundu. Tahmin edilebilir ve son derece düşük gecikme süresiyle birlikte 13,7M IOPS'nin üzerindeki bu HCI karşılaştırması, önceki sektör lideri 6,7M IOPS karşılaştırmamızın iki katıdır. Dahası, bu kez yalnızca 12 sunucu düğümüne ihtiyacımız vardı; öncekinden yüzde 25 daha az.

Test donanımı, üç yönlü yansıtma ve sınırlandırılmış ReFS birimleri kullanmak üzere yapılandırılmış 12 sunuculu bir kümeydi. 12 x Intel® S2600WFT, 384 GiB bellek, 2 x 28 çekirdekli "CascadeLake", önbellek olarak 1,5 TB Intel® Optane™ DC kalıcı bellek, kapasite olarak 32 TB NVMe (4 x 8 TB Intel® DC P4510), 2 x Mellanox ConnectX-4 25 Gb/sn.

Aşağıdaki tabloda tam performans sayıları gösterilmektedir.

Kıyaslama Performans
4K %100 rastgele okuma 13,8 milyon IOPS
4K %90/10 rastgele okuma/yazma 9,45 milyon IOPS
2 MB sıralı okuma 549 GB/sn aktarım hızı

Sonraki adımlar

İlgili bilgiler için ayrıca bkz: