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: