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-PmemDisk
gerekebilir. 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-PmemPhysicalDevice
olabilir. 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: