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 mengacu pada memori persisten, jenis penyimpanan baru dengan performa tinggi dan latensi rendah. | |
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 mengacu pada drive solid-state, yang terhubung melalui SATA atau SAS konvensional. | |
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.
Kemungkinan penyebaran hibrida
Penyebaran hibrida bertujuan untuk menyeimbangkan performa dan kapasitas atau untuk memaksimalkan kapasitas dan meliputi HDD.
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.
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.
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.
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.
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.
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:
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.
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: