Aracılığıyla paylaş


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

Önemli

Azure Stack HCI artık Azure Yerel'in bir parçasıdır. Ürün belgelerini yeniden adlandırma işlemi devam ediyor. Ancak Azure Stack HCI'nin eski sürümleri, örneğin 22H2, Azure Stack HCI'ye başvurmaya devam eder ve ad değişikliğini yansıtmaz. Daha fazla bilgi edinin.

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 uyan geçici olmayan bir medya türüdür. DRAM'den 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 az maliyetlidir, ancak NVMe'den daha pahalıdır. Bellek içeriği, beklenmeyen bir güç kaybı, kullanıcı tarafından başlatılan kapatma veya sistem kilitlenmesi durumunda sistem gücü kesildiğinde bile 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üleri olarak kullanılır 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 için 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 sistemi ve depolama yığınları arası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 çeviri 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

Depolama alanı olarak kalıcı bellek 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 olarak adreslenen geçici olmayan bir bellek aralığıdır. Kullanılabilir ham kapasiteyi bölmek için Windows PowerShell cmdlet'lerini 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 atabilir. BTT, kalıcı bellek cihazları için atomik kesim güncelleştirme semantiği sağlayarak bu riski azaltır ve uygulamaların hata senaryosunda eski ve yeni verileri karıştırmasını önlemek için blok benzeri kesim yazmalarını etkinleştirir. 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ği kullanacağından, blok erişim modunda BTT kullanmanızı öneririz. BTT, uygulamanın veri işlemleri kullanılmasa bile meta veri işlemleri hala blok semantiği kullandığından DAX modunda da yararlıdır. Tüm uygulama işlemleri DAX semantiği ile bellek eşlemeli 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
Persis içinde NVDIMM-N çadır modu Desteklenir Desteklenir
Uygulama Doğrudan Modunda Intel Optane™ DC Kalıcı Bellek Desteklenmiyor Desteklenir
Bellek Modunda Intel Optane™ DC Kalıcı Belleği Desteklenir Desteklenir

Intel Optane DC Kalıcı Bellek hem Bellek (geçici) hem de Uygulama Doğrudan (kalıcı) işletim modlarını destekler. Kalıcı bellek modüllerini sunucu iş yüklerinin birincil kullanım örneği olan depolama olarak kullanmak için Uygulama Doğrudan 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ılı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, sürüm 1903'ten eski 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şka bir şekilde 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ülle fiziksel olarak eşlenemeyenler 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ülle fiziksel olarak eşlenen PmemDisk'lere erişimi 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 etkinleştirilmemiş bir VHD'yi cmdlet'ini kullanarak bunu (veya tam tersini) içeren bir VHD'ye Convert-VHD 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, ara kümeler genellikle sunucu platformunun BIOS'unda oluşturulabilir.

Not

Windows Server 2016, araya kaydedilen kalıcı bellek modülü 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ü bir ara bellek kümesi 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 kaydedilen küme 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}

Sistemdeki cihaz türü, konum, sistem durumu ve işlem durumu gibi 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 bir kullanılmayan 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 şunları ç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 Yönetim Merkezi'nde görünen 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 sağlamanız gerekir (daha önce özetlediğimiz adımlara bakın).

Sorun giderdiğinizde 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ı bir bellek diskin 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. Kalıcı bellekle ilgili sorunları düzeltmek için bunu yalnızca 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 herhangi bir depolama sistemi mutlaka yazmaların dağıtılmış kopyalarını oluşturur. Bu tür işlemlerin ağdan 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ğduylu iyileştirmeleri varsa, mutlak en büyük IOPS karşılaştırma sayıları genellikle yalnızca okumaları ölçülerek 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 izlerseniz gecikme süresinin daha da fazla olduğunu fark edersiniz. 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 mikrosaniye simgesidir.) Bu hız, tipik tüm flash satıcıların bugün gururla tanıttıkları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 performans sundu. Tahmin edilebilir ve son derece düşük gecikme süresiyle birlikte 13,7M IOPS'nin üzerindeki bu HCI karşılaştırması, 6,7M IOPS'nin sektör lideri karşılaştırmasını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 numaraları 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: