Memahami cache kumpulan penyimpanan

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

Storage Spaces Direct, teknologi virtualisasi penyimpanan dasar di balik Azure Stack HCI, memiliki tembolokan bawaan pada sisi server guna memaksimalkan performa penyimpanan sekaligus mengurangi biaya. Ini adalah cache baca dan tulis real-time yang besar dan persisten, yang dikonfigurasi secara otomatis saat penyebaran. Dalam kebanyakan kasus, tidak ada manajemen manual apa pun yang diperlukan. Cara cache bekerja tergantung pada jenis driver yang ada.

Jenis drive dan opsi penyebaran

Storage Spaces Direct saat ini bekerja dengan empat jenis drive:

Jenis drive Deskripsi
PMem PMem mengacu pada memori persisten, jenis penyimpanan baru dengan performa tinggi dan latensi rendah.
NVMe NVMe (Non-Volatile Memory Express) mengacu pada drive solid-state yang langsung ada di bus PCIe. Bentuk dan ukuran umum adalah 2,5 "U.2, PCIe Add-In-Card (AIC), dan M.2. NVMe menawarkan throughput IOPS dan I/O yang lebih tinggi dengan latensi yang lebih rendah daripada jenis drive lain yang kami dukung saat ini, kecuali PMem.
SSD SSD mengacu pada drive solid-state, yang terhubung melalui SATA atau SAS konvensional.
HDD HDD mengacu pada hard disk drive rotasi magnetik, yang menawarkan kapasitas penyimpanan yang luas dengan biaya rendah.

Ini dapat dikombinasikan dengan berbagai cara, yang kami kelompokkan menjadi dua kategori: "all-flash" dan "hibrida". Penyebaran dengan semua HDD tidak didukung.

Catatan

Artikel ini mencakup konfigurasi cache dengan NVMe, SSD, dan HDD. Untuk informasi tentang penggunaan memori persisten sebagai cache, lihat Memahami dan menyebarkan memori persisten.

Kemungkinan penyebaran all-flash

Penyebaran all-flash bertujuan untuk memaksimalkan performa penyimpanan dan tidak meliputi HDD.

Diagram menunjukkan penyebaran semua lampu kilat, termasuk NVMe untuk kapasitas, NVMe untuk cache dengan SSD untuk kapasitas, dan SSD untuk kapasitas.

Kemungkinan penyebaran hibrida

Penyebaran hibrida bertujuan untuk menyeimbangkan performa dan kapasitas atau untuk memaksimalkan kapasitas dan meliputi HDD.

Diagram menunjukkan penyebaran hibrid, termasuk NVMe untuk cache dengan HDD untuk kapasitas, SSD untuk cache dengan HDD untuk kapasitas, dan NVMe untuk cache dengan HDD ditambah SSD untuk kapasitas.

Catatan

Penyebaran hibrid tidak didukung dalam konfigurasi server tunggal. Semua konfigurasi jenis penyimpanan tunggal datar (misalnya all-NVMe atau all-SSD) adalah satu-satunya jenis penyimpanan yang didukung untuk server tunggal.

Drive cache dipilih secara otomatis

Dalam penyebaran dengan beberapa jenis drive, Storage Spaces Direct secara otomatis menggunakan semua drive dari jenis yang tercepat untuk penembolokan. Drive yang tersisa digunakan untuk kapasitas.

Jenis drive mana yang "tercepat" ditentukan sesuai dengan hierarki berikut.

Diagram menunjukkan jenis disk yang disusun lebih cepat hingga lebih lambat dalam urutan NVMe, SSD, disk tanpa label yang mewakili HDD.

Misalnya, jika Anda memiliki NVMe dan SSD, NVMe akan melakukan cache untuk SSD.

Jika Anda memiliki SSD dan HDD, SSD akan melakukan penembolokan untuk HDD.

Catatan

Drive cache tidak memberikan kapasitas penyimpanan yang dapat digunakan ke kluster. Semua data yang disimpan dalam cache juga disimpan di tempat lain, atau akan disimpan, setelah de-stage. Artinya, total kapasitas penyimpanan mentah kluster Anda adalah jumlah dari drive kapasitas Anda saja.

Ketika semua drive memiliki jenis yang sama, tidak ada cache yang dikonfigurasi secara otomatis. Anda memiliki opsi untuk melakukan konfigurasi drive dengan daya tahan lebih tinggi secara manual ke cache untuk drive dengan daya tahan lebih rendah dengan jenis yang sama – lihat bagian Konfigurasi manual untuk mempelajari caranya.

Tip

Dalam beberapa kasus, menggunakan cache kumpulan penyimpanan bukan langkah yang baik. Misalnya, dalam semua NVMe atau penyebaran semua SSD, terutama pada skala yang sangat kecil, tidak memiliki drive yang "dihabiskan" untuk cache dapat meningkatkan efisiensi penyimpanan dan memaksimalkan performa. Demikian juga, penyebaran kantor jarak jauh atau cabang kecil mungkin memiliki ruang terbatas untuk drive cache.

Perilaku cache diatur secara otomatis

Perilaku cache ini ditentukan secara otomatis berdasarkan jenis drive yang sedang diproses untuk penembolokan. Saat penembolokan untuk flash drive (seperti penembolokan NVMe untuk SSD), hanya penulisan yang diproses untuk penembolokan. Saat penembolokan untuk disk drive rotasi (seperti penembolokan SSD untuk HDD), membaca dan menulis diproses untuk penembolokan.

Diagram membandingkan penembolokan untuk semua lampu kilat, di mana tulisan di-cache dan bacaan tidak, dengan hibrid, di mana baca dan tulis di-cache.

Penembolokan khusus tulis untuk penyebaran all-flash

Penembolokan dapat digunakan dalam skenario all-flash, misalnya menggunakan NVMe sebagai cache untuk mempercepat performa SSD. Saat penembolokan untuk penyebaran all-flash, hanya menulis yang diproses dengan penembolokan. Ini mengurangi keausan pada drive kapasitas karena banyak menulis dan menulis ulang dapat digabungkan dalam cache dan kemudian de-stage dilakukan sesuai kebutuhan, sehingga mengurangi lalu lintas kumulatif ke drive kapasitas dan memperpanjang umur mereka. Untuk alasan ini, kami merekomendasikan pemilihan drive yang berdaya tahan lebih tinggi dan dioptimalkan untuk menulis bagi cache. Drive kapasitas mungkin memiliki daya tahan tulis yang lebih rendah.

Karena membaca tidak secara signifikan memengaruhi umur flash, dan karena SSD secara universal menawarkan latensi baca yang rendah, pembacaan tidak diproses untuk penembolokan: tetapi disajikan langsung dari drive kapasitas (kecuali ketika data baru saja ditulis sehingga belum dilakukan de-stage). Hal ini memungkinkan cache untuk didedikasikan sepenuhnya bagi menulis, sehingga memaksimalkan efektivitasnya.

Karena itulah, karakteristik tulis, seperti latensi tulis, didikte oleh drive cache, sementara karakteristik baca ditentukan oleh drive kapasitas. Keduanya konsisten, dapat diprediksi, dan seragam.

Penembolokan baca/tulis untuk penyebaran hibrida

Saat penembolokan untuk HDD, baik baca dan tulis diproses dengan penembolokan, untuk memberikan latensi seperti flash (sering kali~10x lebih baik) bagi keduanya. Cache baca menyimpan data yang baru saja dan sering dibaca untuk akses cepat dan untuk meminimalkan lalu lintas acak ke HDD. (Karena penundaan pencarian dan rotasi, latensi, dan waktu yang hilang yang dikeluarkan oleh akses acak ke HDD adalah signifikan.) Menulis di-cache untuk menyerap semburan dan, seperti sebelumnya, untuk menyatukan tulisan dan menulis ulang serta meminimalkan lalu lintas kumulatif ke drive kapasitas.

Storage Spaces Direct mengimplementasikan algoritma yang membatalkan pengacakan tulis sebelum melakukan de-stage, untuk meniru pola IO untuk disk yang tampaknya berurutan bahkan ketika I/O yang sebenarnya berasal dari beban kerja (seperti mesin virtual) bersifat acak. Ini memaksimalkan IOPS dan throughput ke HDD.

Penembolokan dalam penyebaran dengan NVMe, SSD, dan HDD

Ketika drive dari ketiga jenis hadir, drive NVMe menyediakan penembolokan untuk SSD dan HDD. Perilakunya seperti yang dijelaskan di atas: hanya menulis yang diproses dengan penembolokan untuk SSD, sedangkan membaca dan menulis diproses dengan penembolokan untuk HDD. Beban penembolokan untuk HDD didistribusikan secara merata di antara drive cache.

Ringkasan

Tabel ini merangkum drive mana yang digunakan untuk penembolokan, yang digunakan untuk kapasitas, dan apa perilaku penembolokan untuk setiap kemungkinan penyebaran.

Penyebaran Drive cache Drive kapasitas Perilaku cache (default)
Semua NVMe Tidak ada (Opsional: konfigurasikan secara manual) NVMe Hanya tulis (jika dikonfigurasi)
Semua SSD Tidak ada (Opsional: konfigurasikan secara manual) SSD Hanya tulis (jika dikonfigurasi)
NVMe + SSD NVMe SSD Hanya tulis
NVMe + HDD NVMe HDD Baca + Tulis
SSD + HDD SSD HDD Baca + Tulis
NVMe + SSD + HDD NVMe SSD + HDD Baca + Tulis untuk HDD, Hanya Tulis untuk SSD

Arsitektur sisi server

Cache diimplementasikan pada tingkat drive: drive cache individu dalam satu server terikat pada satu atau banyak drive kapasitas dalam server yang sama.

Karena cache berada di bawah sisa tumpukan penyimpanan yang ditentukan perangkat lunak Windows, cache tidak memiliki atau memerlukan kesadaran akan konsep seperti Storage Spaces atau toleransi kegagalan. Anda dapat menganggapnya sebagai membuat drive "hibrida" (sebagian flash, sebagian disk) yang kemudian disajikan ke sistem operasi. Seperti halnya drive hibrida yang sebenarnya, pergerakan real-time data panas dan dingin antara bagian media fisik yang lebih cepat dan lebih lambat hampir tidak terlihat dari luar.

Karena ketahanan dalam Storage Spaces Direct setidaknya setingkat server (artinya salinan data selalu ditulis ke server yang berbeda; paling banyak satu salinan per server), data dalam cache mendapat keuntungan dari ketahanan yang sama dengan data yang tidak ada dalam cache.

Diagram mewakili tiga server yang bergabung dengan cermin tiga arah di lapisan Ruang Penyimpanan, yang mengakses lapisan cache drive NVMe yang mengakses drive kapasitas yang tidak berlabel.

Misalnya, ketika menggunakan mirroring tiga arah, tiga salinan data apa pun ditulis ke server yang berbeda, yang berakhir di cache. Terlepas dari apakah mereka kemudian diproses dengan de-stage atau tidak, akan selalu ada tiga salinan.

Pengikatan drive bersifat dinamis

Ikatan antara cache dengan drive kapasitas dapat memiliki rasio berapa pun, dari 1:1 hingga 1:12 dan seterusnya. Secara dinamis, ini disesuaikan setiap kali drive ditambahkan atau dihapus, seperti saat peningkatan skala atau setelah kegagalan. Artinya, Anda dapat menambahkan drive cache atau drive kapasitas secara independen, kapan pun Anda mau.

Diagram animasi menunjukkan dua drive cache NVMe secara dinamis memetakan ke empat pertama, lalu enam, lalu delapan drive kapasitas.

Sebaiknya, buatlah jumlah drive kapasitas beberapa kali lipat dari jumlah drive cache, agar seimbang. Misalnya, jika Anda memiliki 4 drive cache, Anda akan mengalami performa yang lebih merata dengan 8 drive kapasitas (rasio 1:2) dibandingkan dengan 7 atau 9.

Menangani kegagalan drive cache

Ketika drive cache gagal, setiap penulisan yang belum diproses dengan de-stage hilang ke server lokal, yang berarti mereka hanya ada pada salinan lain (di server lain). Sama seperti pasca kegagalan drive lainnya, Storage Spaces dapat dan tidak secara otomatis pulih dengan mengacu pada salinan yang masih bertahan.

Untuk waktu yang singkat, drive kapasitas yang terikat pada drive cache yang hilang akan terlihat tidak sehat. Setelah pengikatan kembali cache telah terjadi (otomatis) dan perbaikan data telah selesai (otomatis), mereka akan kembali terlihat sehat.

Karena skenario ini, setidaknya dua drive cache diperlukan oleh tiap server untuk mempertahankan performa.

Diagram animasi menunjukkan dua drive cache SSD yang dipetakan ke enam drive kapasitas hingga satu drive cache gagal, yang menyebabkan keenam drive dipetakan ke drive cache yang tersisa.

Anda kemudian dapat mengganti drive cache seperti penggantian drive lainnya.

Catatan

Anda mungkin perlu mematikan daya untuk mengganti NVMe berupa Add-In Card (AIC) atau bentuk dan ukuran M.2 dengan aman.

Hubungan dengan cache lain

Ada beberapa cache tidak terkait lain dalam tumpukan penyimpanan yang ditentukan perangkat lunak Windows. Contohnya termasuk cache tulis-balik Storage Spaces dan cache baca dalam memori Cluster Shared Volume (CSV).

Dengan Azure Stack HCI, cache tulis balik Storage Spaces tidak boleh dimodifikasi dari perilaku defaultnya. Misalnya, parameter seperti -WriteCacheSize pada cmdlet Volume-Baru tidak boleh digunakan.

Anda dapat memilih untuk menggunakan cache CSV atau tidak - sesuai pilihan Anda. Secara default, ini aktif di Azure Stack HCI, tetapi sama sekali tidak bertentangan dengan cache yang dijelaskan dalam topik ini. Dalam skenario tertentu, ini dapat memberikan keuntungan performa yang berharga. Untuk informasi selengkapnya, lihat Gunakan cache baca dalam memori CSV dengan Azure Stack HCI.

Konfigurasi manual

Untuk sebagian besar penyebaran, konfigurasi manual tidak diperlukan. Jika Anda membutuhkannya, lihat bagian berikut.

Jika Anda perlu membuat perubahan pada model perangkat cache setelah pengaturan, edit Dokumen Komponen Dukungan Layanan Kesehatan, seperti yang dijelaskan dalam Gambaran Umum Layanan Kesehatan.

Tentukan model drive cache

Dalam penyebaran ketika semua drive memiliki jenis yang sama, seperti penyebaran all-NVMe atau all-SSD, tidak ada cache yang dikonfigurasi karena Windows tidak dapat membedakan karakteristik seperti daya tahan tulis secara otomatis di antara drive dengan jenis yang sama.

Untuk menggunakan drive dengan daya tahan lebih tinggi ke cache untuk drive dengan daya tahan lebih rendah dari jenis yang sama, Anda dapat menentukan model drive mana yang akan digunakan dengan parameter -CacheDeviceModel dari cmdlet Enable-ClusterS2D. Semua drive dari model itu akan digunakan untuk penembolokan.

Tip

Pastikan untuk mencocokkan untai (karakter) model persis seperti yang muncul dalam output Get-PhysicalDisk.

Contoh

Pertama, dapatkan daftar disk fisik:

Get-PhysicalDisk | Group Model -NoElement

Berikut adalah beberapa contoh output:

Count Name
----- ----
    8 FABRIKAM NVME-1710
   16 CONTOSO NVME-1520

Kemudian masukkan perintah berikut, yang menentukan model perangkat cache:

Enable-ClusterS2D -CacheDeviceModel "FABRIKAM NVME-1710"

Anda dapat memverifikasi bahwa drive yang Anda inginkan digunakan untuk penembolokan dengan menjalankan Get-PhysicalDisk di PowerShell dan memverifikasi bahwa properti Penggunaannya bertuliskan "Jurnal".

Kemungkinan penyebaran manual

Konfigurasi manual mengaktifkan kemungkinan penyebaran berikut:

Diagram menunjukkan kemungkinan penyebaran, termasuk NVMe untuk cache dan kapasitas, SSD untuk cache dan kapasitas, dan SSD untuk cache dan SSD campuran dan HDD untuk kapasitas.

Mengatur perilaku cache

Perilaku default cache dapat diambil alih. Misalnya, Anda dapat mengaturnya ke cache baca bahkan dalam penyebaran all-flash. Sebaiknya jangan memodifikasi perilaku kecuali Anda yakin default tidak sesuai dengan beban kerja Anda.

Untuk mengambil alih perilaku, gunakan cmdlet Set-ClusterStorageSpacesDirect dan parameter -CacheModeSSD serta -CacheModeHDD miliknya. Parameter CacheModeSSD menetapkan perilaku cache saat penembolokan untuk SSD. Parameter CacheModeHDD menetapkan perilaku cache saat penembolokan untuk HDD.

Anda dapat menggunakan Get-ClusterStorageSpacesDirect untuk memastikan bahwa perilaku telah disetel.

Contoh

Pertama, dapatkan pengaturan Storage Spaces Direct:

Get-ClusterStorageSpacesDirect

Berikut adalah beberapa contoh output:

CacheModeHDD : ReadWrite
CacheModeSSD : WriteOnly

Kemudian, lakukan hal berikut:

Set-ClusterStorageSpacesDirect -CacheModeSSD ReadWrite

Get-ClusterS2D

Berikut adalah beberapa contoh output:

CacheModeHDD : ReadWrite
CacheModeSSD : ReadWrite

Mengukur cache

Cache harus diukur untuk mengakomodasi set kerja (data yang secara aktif dibaca atau ditulis pada waktu tertentu) dari aplikasi dan beban kerja Anda.

Ini sangat penting dalam penyebaran hibrida dengan drive hard disk. Jika set kerja aktif melebihi ukuran cache, atau jika set kerja aktif melintas terlalu cepat, cache baca yang meleset akan meningkat dan menulis akan memerlukan proses de-stage lebih agresif, sehingga mengganggu performa secara keseluruhan.

Anda dapat menggunakan utilitas Performance Monitor (PerfMon.exe) bawaan di Windows untuk memeriksa tingkat melesetnya cache. Secara khusus, Anda dapat membandingkan Cache Baca Meleset/detik dari penghitung Kluster Penyimpanan Disk Hibrida yang diatur ke IOPS baca keseluruhan dari penyebaran Anda. Setiap "Disk Hibrida" sesuai dengan satu drive kapasitas.

Misalnya, 2 drive cache yang terikat pada 4 drive kapasitas menghasilkan 4 instans objek "Disk Hibrida" tiap server.

Monitor Performa.

Tidak ada aturan universal, tetapi jika terlalu banyak bacaan yang kehilangan cache, mungkin ukurannya terlalu kecil dan Anda harus mempertimbangkan untuk menambahkan drive cache untuk memperluas cache Anda. Anda dapat menambahkan drive cache atau drive kapasitas secara independen, kapan pun Anda mau.

Langkah berikutnya

Untuk pengetahuan penyimpanan tambahan, lihat juga: