Bagikan melalui


Memahami dan menyebarkan memori persisten

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

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

Apa itu memori persisten?

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

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

Konsep memori persisten

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

Metode akses

Ada dua metode untuk mengakses memori persisten. Mereka adalah:

  • Memblokir akses, yang beroperasi seperti penyimpanan untuk kompatibilitas aplikasi. Dalam konfigurasi ini, data mengalir melalui sistem file dan tumpukan penyimpanan seperti biasa. Anda dapat menggunakan konfigurasi ini dalam kombinasi dengan NTFS dan ReFS, dan disarankan untuk sebagian besar kasus penggunaan.
  • Akses langsung (DAX), yang berfungsi seperti memori untuk mencapai latensi terendah. Anda hanya dapat menggunakan DAX dalam kombinasi dengan NTFS. Jika Anda tidak menggunakan DAX dengan benar, ada potensi kehilangan data. Kami sangat menyarankan Anda menggunakan DAX dengan tabel terjemahan Blok (BTT) diaktifkan untuk mengurangi risiko penulisan robek. Untuk mempelajari selengkapnya, lihat Memahami dan mengonfigurasi DAX.

Peringatan

DAX tidak didukung di lingkungan Azure Stack HCI. Azure Stack HCI hanya mendukung akses blokir, dengan BTT diaktifkan.

Daerah

Wilayah adalah satu set modul memori persisten atau lebih. Seringkali, wilayah dibuat sebagai set yang saling berjalin di mana beberapa modul memori persisten tampil sebagai satu ruang alamat virtual logis untuk meningkatkan throughput. Untuk meningkatkan bandwidth yang tersedia, alamat virtual yang berdekatan tersebar di beberapa modul memori persisten. Wilayah biasanya dapat dibuat di BIOS platform server.

PmemDisks

Untuk menggunakan memori persisten sebagai penyimpanan, Anda harus menentukan setidaknya satu PmemDisk, yang merupakan hard disk virtual (VHD) pada host yang menghitung sebagai PmemDisk di dalam komputer virtual (VM). PmemDisk adalah rentang memori non-volatil yang dialamatkan secara berurutan yang dapat Anda bayangkan seperti partisi hard disk atau LUN. Anda dapat membuat beberapa PmemDisks menggunakan cmdlet Windows PowerShell untuk membagi kapasitas mentah yang tersedia. Setiap modul memori persisten berisi Area Penyimpanan Label (LSA) yang menyimpan metadata konfigurasi.

Blokir tabel terjemahan

Tidak seperti drive solid-state, modul memori persisten tidak melindungi dari "penulisan robek" yang dapat terjadi jika terjadi kegagalan daya atau pemadaman sistem, membahayakan data. BTT mengurangi risiko ini dengan menyediakan semantik pembaruan sektor atomik untuk perangkat memori persisten, pada dasarnya memungkinkan penulisan sektor seperti blok sehingga aplikasi dapat menghindari pencampuran data lama dan baru dalam skenario kegagalan. Kami sangat menyarankan untuk mengaktifkan BTT dalam hampir semua kasus. Karena BTT adalah properti dari PmemDisk, BTT harus diaktifkan ketika PmemDisk dibuat.

Dalam mode akses blok, sebaiknya gunakan BTT karena semua data menggunakan semantik blok. BTT juga berguna dalam mode DAX karena operasi metadata masih menggunakan semantik blok, bahkan jika operasi data aplikasi tidak. Bahkan jika semua operasi aplikasi menggunakan file yang dipetakan memori dengan menggunakan semantik DAX, penulisan robek masih dapat terjadi untuk operasi metadata; oleh karena itu, menyalakan BTT tetap penting.

Perangkat keras yang didukung

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

Teknologi Memori Persisten Windows Server 2016 Azure Stack HCI v20H2/Windows Server 2019
NVDIMM-N dalam modus persisten Didukung Didukung
Memori Persisten Intel Optane™ DC dalam Mode Langsung Aplikasi Tidak Didukung Didukung
Memori Persisten Intel Optane™ DC pada Mode Memori Didukung Didukung

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

Mode operasi sering dikonfigurasi sebelumnya oleh produsen perangkat asli.

Nota

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

Hilangnya akses ini terjadi karena modul memori persisten tidak terlatih atau gagal ketika sistem dimulai. Dalam kasus seperti itu, semua PmemDisks di modul memori persisten mana pun pada sistem mengalami kegagalan, termasuk yang tidak dipetakan secara fisik ke modul yang mengalami kegagalan.

Untuk memulihkan akses ke semua PmemDisks, mengganti modul yang gagal.

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

Mengonfigurasi memori persisten

Jika Anda menggunakan memori persisten Intel Optane, ikuti instruksi di sini. Jika Anda menggunakan modul memori persisten dari vendor lain, lihat dokumentasinya.

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

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

Ekstensi VHD harus memiliki "vhdpmem".

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

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

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

Set-VHD -ResetDiskIdentifier .\pmemtest_btt.vhdpmem

Memahami set berselingan

Set yang saling terkait biasanya dapat dibuat di BIOS platform server untuk membuat beberapa perangkat memori persisten muncul sebagai satu disk ke sistem operasi host, meningkatkan throughput untuk disk tersebut.

Nota

Windows Server 2016 tidak mendukung set modul memori persisten yang terjalin.

Ingat bahwa modul memori persisten berada di slot DIMM (memori) standar, yang menempatkan data lebih dekat ke prosesor. Konfigurasi ini mengurangi latensi dan meningkatkan performa pengambilan. Untuk meningkatkan throughput lebih lanjut, dua atau lebih modul memori persisten membentuk set antar-jalan n-way untuk mengatur operasi baca/tulis secara bergaris. Konfigurasi yang paling umum adalah interleaving dua jalur atau empat jalur.

Anda dapat menggunakan cmdlet PowerShell Get-PmemDisk 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 disk PMem logis 2 menggunakan perangkat fisik Id20 dan Id120, dan disk PMem logis 3 menggunakan perangkat fisik Id1020 dan Id1120.

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

(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 rangkaian berseling

Untuk mengonfigurasi set yang saling terkait, jalankan cmdlet Get-PmemUnusedRegion untuk meninjau semua wilayah memori persisten yang tidak ditetapkan ke disk memori persisten 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 dan operasional, dan sebagainya, jalankan cmdlet Get-PmemPhysicalDevice:

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 wilayah PMem yang tidak digunakan yang tersedia, kami dapat membuat disk memori persisten baru. Kita dapat menggunakan wilayah yang tidak digunakan untuk membuat beberapa disk memori persisten dengan menjalankan cmdlet berikut:

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

Setelah ini selesai, 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 dicatat bahwa kita dapat menjalankan Get-PhysicalDisk | Where MediaType -eq SCM alih-alih Get-PmemDisk untuk mendapatkan hasil yang sama. Disk memori persisten yang baru dibuat memiliki padanan satu-satu dengan drive yang muncul di PowerShell dan di Pusat Admin Windows.

Ganti memori persisten

Jika Anda harus mengganti modul yang gagal, Anda harus memprovisikan ulang disk PMem (lihat langkah-langkah yang kami uraikan sebelumnya).

Saat memecahkan masalah, Anda mungkin harus menggunakan Remove-PmemDisk. Cmdlet ini menghapus disk memori persisten tertentu. Kita dapat menghapus semua disk memori persisten 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 persisten menyebabkan kehilangan data pada disk tersebut.

Cmdlet lain yang mungkin Anda butuhkan adalah Initialize-PmemPhysicalDevice. Cmdlet ini menginisialisasi area penyimpanan label pada perangkat memori persisten 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 persisten. Gunakan hanya sebagai upaya terakhir untuk memperbaiki masalah terkait memori persisten.

Memori persisten ditampilkan di Microsoft Ignite 2018

Untuk melihat beberapa manfaat memori persisten, mari kita saksikan video ini dari Microsoft Ignite 2018.

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

Ketika diukur dengan hanya menggunakan operasi baca, kluster mengirimkan 13.798.674 IOPS.

Jika Anda menonton video dengan cermat, Anda akan melihat bahwa apa yang lebih membuat tercengang adalah kelambatannya. Bahkan pada 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 lebih cepat dengan selisih urutan besarnya daripada yang diiklankan oleh vendor all-flash yang umum saat ini.

Bersama-sama, Ruang Penyimpanan Langsung di Windows Server 2019 dan memori persisten Intel® Optane™ DC memberikan performa terobosan. Tolok ukur HCI ini lebih dari 13,7M IOPS, disertai dengan latensi yang dapat diprediksi dan sangat rendah, lebih dari dua kali lipat tolok ukur terdepan di industri sebelumnya sebesar 6,7M IOPS. Terlebih lagi, kali ini kami hanya membutuhkan 12 simpul server—25 persen lebih sedikit dari sebelumnya.

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

Tabel berikut ini memperlihatkan angka performa lengkap.

Tolok ukur Kinerja
Bacaan acak 4K 100% 13,8 juta IOPS
4K 90/10% baca/tulis secara acak 9,45 juta IOPS
Bacaan berurutan 2 MB Laju Pemrosesan 549 GB/detik

Langkah berikutnya

Untuk informasi terkait, lihat juga: