Bagikan melalui


Memahami serta menyebarkan memori tetap

Berlaku untuk: Azure Stack HCI, versi 22H2 dan 21H2; Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows 10

Memori tetap (atau PMem) adalah teknologi memori jenis baru yang mempertahankan kontennya melalui siklus daya serta dapat digunakan sebagai penyimpanan tingkat atas, itulah sebabnya Anda mungkin mendengar orang menyebut PMem sebagai "memori kelas penyimpanan" atau SCM. Artikel ini memberikan latar belakang pada memori tetap serta menjelaskan cara menyebarkannya sebagai tingkat penyimpanan teratas di Azure Stack HCI dan Windows Server.

Apa itu memori tetap?

Memori tetap adalah jenis media non-volatil yang cocok dalam slot DIMM (memori) standar. Ini lebih lambat dari DRAM, namun memberikan throughput yang lebih tinggi daripada SSD dan NVMe. Dibandingkan dengan DRAM, modul memori tetap memiliki kapasitas yang jauh lebih besar dan lebih murah per GB, namun harganya masih lebih mahal daripada NVMe. Isi memori tetap ada bahkan ketika daya sistem turun jika terjadi kehilangan daya yang tidak terduga, sistem mati karena pengguna, atau crash sistem. Artinya, Anda dapat menggunakan modul memori tetap sebagai penyimpanan tetap yang sangat cepat.

Azure Stack HCI dan Windows Server 2019 mendukung penggunaan memori tetap baik sebagai cache atau drive kapasitas. Namun, mengingat model harga, memori tetap memberikan nilai terbesar baik sebagai cache atau sebagai sejumlah kecil penyimpanan khusus untuk data pemetaan memori. Dalam kebanyakan kasus, drive memori tetap akan secara otomatis digunakan sebagai cache drive, dan apa pun yang lebih lambat akan digunakan sebagai drive kapasitas. Untuk informasi selengkapnya tentang cara menyiapkan cache dan drive kapasitas, lihat Memahami cache kumpulan penyimpanan serta Volume paket.

Konsep memori tetap

Bagian ini menjelaskan konsep dasar yang perlu Anda pahami untuk menyebarkan memori tetap di lingkungan Windows Server dan Azure Stack HCI untuk mengurangi hambatan I/O serta meningkatkan performa.

Metode akses

Ada dua metode untuk mengakses memori tetap. Mereka:

  • Blokir akses, yang beroperasi seperti penyimpanan untuk kompatibilitas aplikasi. Dalam konfigurasi ini, data mengalir melalui sistem file serta tumpukan penyimpanan seperti biasa. Anda bisa menggunakan konfigurasi ini dalam kombinasi dengan NTFS dan ReFS, serta disarankan untuk sebagian besar kasus penggunaan.
  • Akses langsung (DAX), yang beroperasi seperti memori untuk mendapatkan latensi paling rendah. Anda hanya bisa menggunakan DAX dalam kombinasi dengan NTFS. Jika Anda tidak memakai DAX dengan benar, ada potensi kehilangan data. Kami sangat menyarankan Agar Anda menggunakan DAX dengan Tabel terjemahan blok (BTT) yang dihidupkan untuk mengurangi risiko penulisan yang rusak. Untuk mempelajari selengkapnya, lihat Memahami serta mengonfigurasi DAX.

Peringatan

DAX tidak didukung pada lingkungan Azure Stack HCI. Azure Stack HCI hanya mendukung akses blok, dengan BTT yang diaktifkan.

Wilayah

Sebuah wilayah adalah set satu atau beberapa modul memori tetap. Wilayah sering dibuat sebagai set yang disisipkan tempat beberapa modul memori tetap muncul sebagai ruang alamat virtual logis tunggal untuk meningkatkan throughput. Untuk meningkatkan bandwidth yang tersedia, alamat virtual yang berdekatan tersebar di beberapa modul memori tetap. Wilayah biasanya dapat dibuat di BIOS platform server.

PmemDisks

Untuk menggunakan memori tetap sebagai penyimpanan, Anda harus mendefinisikan setidaknya satu PmemDisk, yang merupakan hard disk virtual (VHD) pada host dan diperhitungkan sebagai PmemDisk di dalam mesin virtual (VM). PmemDisk adalah rentang memori non-volatil yang ditangani secara kontinu yang dapat Anda anggap seperti partisi hard disk atau LUN. Anda bisa membuat beberapa PmemDisk menggunakan cmdlet Windows PowerShell untuk membagi kapasitas mentah yang tersedia. Setiap modul memori tetap berisi Label Storage Area (LSA) yang menyimpan metadata konfigurasi.

Memblokir tabel terjemahan

Tidak seperti drive solid-state, modul memori tetap tidak mencegah "penulisan yang rusak" yang dapat terjadi dalam kasus kegagalan daya atau pemadaman sistem, sehingga membahayakan data. BTT mengurangi risiko ini dengan menyediakan semantik pembaruan sektor atom untuk perangkat memori tetap, yang pada dasarnya memungkinkan penulisan sektor seperti blok sehingga aplikasi bisa menghindari pencampuran data lama dan baru dalam skenario kegagalan. Kami sangat menyarankan agar BTT dinyalakan untuk sebagian besar kasus. Karena BTT adalah properti PmemDisk, maka BTT harus dihidupkan ketika PmemDisk dibuat.

Dalam mode akses blok, Anda sebaiknya menggunakan BTT karena semua data akan menggunakan semantik blok. BTT juga berguna dalam mode DAX karena operasi metadata masih menggunakan semantik blok, bahkan jika operasi data aplikasi tidak menggunakannya. Bahkan jika semua operasi aplikasi menggunakan file yang dipetakan memori dengan semantik DAX, penulisan yang rusak masih bisa terjadi dalam operasi metadata; oleh karena itu, menyalakan BTT masih sangat penting.

Perangkat keras yang didukung

Tabel berikut menunjukkan perangkat keras memori tetap yang didukung untuk Azure Stack HCI serta Windows Server. Memori tetap didukung penuh di Windows Server 2019, termasuk Storage Spaces Direct.

Teknologi Memori Tetap Server Windows 2016 Azure Stack HCI v20H2/Windows Server 2019
NVDIMM-N dalam mode tetap Didukung Didukung
Memori Tetap Intel Optane™ DC dalam Mode App Direct Tidak Didukung Didukung
Memori Tetap Intel Optane™ DC dalam Mode Memori Didukung Didukung

Memori Tetap Intel Optane DC mendukung mode operasi Memori (lambat) dan App Direct (tetap). Untuk menggunakan modul memori tetap sebagai penyimpanan, yang merupakan kasus penggunaan utama untuk beban kerja server, Anda harus memakai mode App Direct. Mode memori pada dasarnya menggunakan memori tetap sebagai RAM yang lebih lambat, yang biasanya tidak memenuhi persyaratan performa beban kerja server. Mode memori berbeda dari DAX, yang merupakan volume penyimpanan tetap yang dapat diakses menggunakan semantik seperti memori.

Mode operasi sering kali dikonfigurasi sebelumnya oleh produsen perangkat asli.

Catatan

Saat Anda memulai ulang sistem yang memiliki beberapa modul memori tetap Intel® Optane™ dalam mode App Direct yang dibagi menjadi beberapa PmemDisk, Anda mungkin kehilangan akses ke beberapa atau semua disk penyimpanan logis yang terkait. Masalah ini terjadi pada versi Windows Server 2019 yang lebih lama dari versi 1903.

Hilangnya akses ini terjadi karena modul memori tetap tidak terlatih atau gagal ketika sistem dimulai. Dalam kasus seperti itu, semua PmemDisk pada modul memori tetap pada sistem gagal, termasuk yang tidak secara fisik memetakan ke modul yang gagal.

Untuk memulihkan akses ke semua PmemDisk, ganti modul yang gagal.

Jika modul gagal di Windows Server 2019 versi 1903 atau versi yang lebih baru, Anda hanya kehilangan akses ke PmemDisks yang secara fisik membuat pemetaan ke modul yang terpengaruh; sedangkan yang lain tidak terpengaruh.

Konfigurasi memori tetap

Jika Anda menggunakan memori tetap Intel Optane, ikuti petunjuknya di sini. Jika Anda menggunakan modul memori tetap dari vendor lain, konsultasikan dokumentasi mereka.

Untuk membuat PmemDisk yang mendukung BTT, gunakan cmdlet New-VHD:

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

Ekstensi VHD harus "vhdpmem".

Anda juga bisa mengonversi VHD yang tidak mengaktifkan BTT menjadi yang (dan sebaliknya) menggunakan Convert-VHD cmdlet:

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

Setelah mengonversi, VHD baru akan mempunyai namespace layanan GUID yang sama dengan yang asli. Itu dapat menyebabkan masalah, terutama jika keduanya melekat pada mesin virtual yang sama. Untuk membuat layanan namespace UUID baru untuk VHD yang dikonversi, gunakan Set-VHD cmdlet:

Set-VHD -ResetDiskIdentifier .\pmemtest_btt.vhdpmem

Memahami set yang disisipkan

Set yang disisipkan biasanya dapat dibuat di BIOS platform server untuk membuat beberapa perangkat memori tetap muncul sebagai satu disk ke sistem operasi host, yang meningkatkan throughput untuk disk itu.

Catatan

Windows Server 2016 tidak mendukung set modul memori tetap yang disisipkan.

Ingatlah bahwa modul memori tetap berada di slot DIMM (memori) standar, yang menempatkan data lebih dekat ke prosesor. Konfigurasi ini mengurangi latensi serta meningkatkan performa pengambilan. Untuk lebih meningkatkan throughput, dua modul memori tetap atau lebih membuat set yang disisipi n-way dan memberi stripe pada operasi baca/tulis. Konfigurasi yang paling umum adalah penyisipan dua arah atau empat arah.

Anda dapat menggunakan Get-PmemDisk cmdlet PowerShell untuk meninjau konfigurasi disk logis tersebut, sebagai berikut:

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

Kita dapat melihat bahwa PMem disk 2 logis menggunakan perangkat fisik Id20 dan Id120, serta PMem disk 3 logis menggunakan perangkat fisik Id1020 dan Id1120.

Untuk mengambil informasi lebih lanjut tentang set yang disisipkan yang digunakan drive logis, jalankan Get-PmemPhysicalDevice cmdlet:

(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

Mengonfigurasi set yang disisipkan

Untuk mengonfigurasi set yang disisipkan, jalankan Get-PmemUnusedRegion cmdlet untuk meninjau semua wilayah memori tetap yang tidak ditetapkan ke disk memori tetap logis pada sistem:

Get-PmemUnusedRegion

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

Untuk melihat semua informasi perangkat PMem dalam sistem, termasuk jenis perangkat, lokasi, status kesehatan serta operasional, dan sebagainya, jalankan Get-PmemPhysicalDevice cmdlet:

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

Karena kami memiliki ketersediaan wilayah PMem yang tidak terpakai, kami dapat membuat disk memori tetap baru. Kita dapat menggunakan wilayah yang tidak digunakan untuk membuat beberapa disk memori tetap dengan menjalankan cmdlet berikut:

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

Setelah ini selesai dilakukan, kita dapat melihat hasilnya dengan menjalankan:

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

Perlu diingat bahwa kita dapat menjalankanGet-PhysicalDisk | Where MediaType -eq SCM daripada Get-PmemDisk untuk mendapatkan hasil yang sama. Disk memori tetap yang baru dibuat sesuai untuk satu-ke-satu dengan drive yang muncul di PowerShell dan di Windows Admin Center.

Mengganti memori tetap

Jika Anda harus mengganti modul yang gagal, Anda harus menyediakan kembali disk PMem (lihat langkah-langkah yang telah kami uraikan sebelumnya).

Ketika Anda memecahkan masalah, Anda mungkin harus memakai Remove-PmemDisk. Cmdlet ini menghapus disk memori tetap tertentu. Kita dapat menghapus semua disk memori tetap saat ini dengan menjalankan cmdlet berikut:

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.

Penting

Menghapus disk memori tetap menyebabkan hilangnya data pada disk tersebut.

Cmdlet lain yang mungkin Anda perlukan adalah Initialize-PmemPhysicalDevice. Cmdlet ini menginisialisasi area penyimpanan label pada perangkat memori tetap fisik, dan dapat menghapus informasi penyimpanan label yang rusak pada perangkat.

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.

Penting

Initialize-PmemPhysicalDevice menyebabkan hilangnya data dalam memori tetap. Gunakan hal ini hanya sebagai upaya terakhir untuk memperbaiki masalah terkait memori tetap.

Memori tetap beraksi di Microsoft Ignite 2018

Untuk melihat beberapa manfaat memori tetap, mari kita lihat video ini dari Microsoft Ignite 2018.

Sistem penyimpanan apa pun yang memberikan toleransi kesalahan seharusnya membuat salinan tulis terdistribusi. Operasi tersebut harus melintasi jaringan serta memperkuat lalu lintas tulis backend. Untuk alasan ini, angka tolok ukur IOPS mutlak terbesar biasanya dicapai dengan mengukur baca saja, terutama jika sistem penyimpanan memiliki optimasi akal sehat untuk dibaca dari salinan lokal bila memungkinkan. Storage Spaces Direct dioptimalkan untuk melakukannya.

Bila diukur dengan hanya operasi baca, kluster mengirimkan 13.798.674 IOPS.

Jika Anda menonton video dengan cermat, Anda akan melihat bahwa yang lebih mengejutkan adalah latensinya. Bahkan di lebih dari 13,7 M IOPS, sistem file di Windows melaporkan latensi yang secara konsisten kurang dari 40 μs! (Itu simbol untuk mikrodetik, sepersejuta detik.) Kecepatan ini adalah urutan besarnya lebih cepat daripada yang diiklankan oleh vendor all-flash khas hari ini.

Bersama-sama, Storage Spaces Direct di Windows Server 2019 dan memori tetap Intel® Optane™ DC memberikan performa terobosan. Tolok ukur HCI lebih dari 13,7 juta IOPS ini, yang disertai dengan latensi yang dapat diprediksi dan juga sangat rendah, besarnya lebih dari dua kali lipat tolok ukur terkemuka industri kami sebelumnya sebesar 6,7 juta IOPS. Terlebih lagi, kali ini kami hanya membutuhkan 12 node server — 25 persen lebih sedikit daripada sebelumnya.

Perangkat keras ujinya adalah kluster 12-server yang dikonfigurasi untuk menggunakan pencerminan tiga arah dan membatasi volume ReFS, 12 x Intel® S2600WFT, memori 384 GiB, 2 x 28-core "CascadeLake," 1,5 TB Intel® Optane™ DC memori tetap sebagai cache, 32 TB NVMe (4 x 8 TB Intel® DC P4510) sebagai kapasitas, 2 x Mellanox ConnectX-4 25 Gbps.

Tabel berikut menunjukkan angka performa yang penuh.

Tolok Ukur Performa
4K 100% baca acak 13,8 juta IOPS
4K 90/10% baca/tulis acak 9,45 juta IOPS
2 MB baca berurutan 549 GB/s throughput

Langkah berikutnya

Untuk informasi terkait, lihat juga: