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-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ı bir bellek diskin 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. 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: