Implementasi caching SSD di sistem penyimpanan QSAN XCubeSAN
Teknologi untuk meningkatkan kinerja berdasarkan penggunaan SSD dan banyak digunakan dalam sistem penyimpanan telah lama ditemukan. Pertama-tama, penggunaan SSD sebagai ruang penyimpanan, yang 100% efektif, tetapi mahal. Oleh karena itu, teknologi melelahkan dan caching digunakan, di mana SSD hanya digunakan untuk data (“panas”) yang paling populer. Tiering cocok untuk skenario penggunaan data “panas” dalam jangka panjang (hari-minggu). Sebaliknya, caching ditujukan untuk penggunaan jangka pendek (menit-jam). Kedua opsi ini diterapkan dalam sistem penyimpanan QSAN XCubeSAN. Pada artikel ini kita akan melihat implementasi algoritma kedua - cache SSD.
Inti dari teknologi caching SSD adalah penggunaan SSD sebagai cache perantara antara hard drive dan RAM pengontrol. Kinerja SSD, tentu saja, lebih rendah daripada kinerja cache pengontrol itu sendiri, tetapi volumenya jauh lebih tinggi. Oleh karena itu, kami mendapatkan kompromi tertentu antara kecepatan dan volume.
Indikasi menggunakan cache SSD untuk membaca:
Dominasi operasi baca dibandingkan operasi tulis (paling sering terjadi pada database dan aplikasi web);
Adanya hambatan berupa kinerja susunan harddisk;
Jumlah data yang dibutuhkan lebih kecil dari ukuran cache SSD.
Indikasi untuk menggunakan cache SSD baca+tulis adalah sama, kecuali sifat operasinya – tipe campuran (misalnya, server file).
Sebagian besar vendor penyimpanan menggunakan cache SSD read-only di produk mereka. Perbedaan mendasar QSAN Mereka juga menyediakan kemampuan untuk menggunakan cache untuk menulis. Untuk mengaktifkan fungsionalitas caching SSD di sistem penyimpanan QSAN, Anda harus membeli lisensi terpisah (disediakan secara elektronik).
Cache SSD di XCubeSAN diimplementasikan secara fisik dalam bentuk kumpulan cache SSD terpisah. Mungkin ada hingga empat di antaranya dalam sistem. Setiap kumpulan, tentu saja, menggunakan rangkaian SSDnya sendiri. Dan sudah di properti disk virtual kita menentukan apakah akan menggunakan kumpulan cache dan yang mana. Mengaktifkan dan menonaktifkan penggunaan cache untuk volume dapat dilakukan secara online tanpa menghentikan I/O. Anda juga dapat menambahkan SSD ke kumpulan dan menghapusnya dari sana. Saat membuat cache kumpulan SSD, Anda harus memilih mode operasinya: baca-saja atau baca+tulis. Organisasi fisiknya bergantung pada hal ini. Karena terdapat beberapa kumpulan cache, fungsinya dapat berbeda (yaitu, sistem dapat memiliki kumpulan cache baca dan tulis pada saat yang bersamaan).
Jika kumpulan cache read-only digunakan, maka dapat terdiri dari 1-8 SSD. Disk tidak harus memiliki kapasitas dan vendor yang sama, karena disk tersebut digabungkan ke dalam struktur NRAID+. Semua SSD di kumpulan dibagikan. Sistem secara mandiri mencoba memparalelkan permintaan masuk antara semua SSD untuk mencapai kinerja maksimal. Jika salah satu SSD gagal, tidak ada hal buruk yang akan terjadi: lagi pula, cache hanya berisi salinan data yang disimpan di array hard drive. Hanya saja jumlah cache SSD yang tersedia akan berkurang (atau menjadi nol jika menggunakan cache SSD asli dari satu drive).
Jika cache digunakan untuk operasi baca + tulis, maka jumlah SSD dalam kumpulan harus kelipatan dua, karena kontennya dicerminkan pada pasangan drive (struktur NRAID 1+ digunakan). Menduplikasi cache diperlukan karena mungkin berisi data yang belum ditulis ke hard drive. Dan dalam kasus ini, kegagalan SSD dari kumpulan cache akan menyebabkan hilangnya informasi. Dalam kasus NRAID 1+, kegagalan SSD hanya akan menyebabkan cache dipindahkan ke status hanya-baca, dengan data tidak tertulis dibuang ke susunan hard drive. Setelah mengganti SSD yang rusak, cache akan kembali ke mode operasi aslinya. Omong-omong, untuk keamanan yang lebih baik, Anda dapat menetapkan hot spare khusus ke cache baca + tulis.
Saat menggunakan fungsi caching SSD di XCubeSAN, ada sejumlah persyaratan untuk jumlah memori pengontrol penyimpanan: semakin banyak memori sistem, semakin besar kumpulan cache yang tersedia.
Berbeda dengan kebanyakan produsen sistem penyimpanan yang hanya menawarkan opsi untuk menghidupkan/mematikan cache SSD, QSAN memberikan lebih banyak opsi. Secara khusus, Anda dapat memilih mode operasi cache tergantung pada sifat bebannya. Ada tiga templat preset yang paling dekat pengoperasiannya dengan layanan terkait: database, sistem file, layanan web. Selain itu, administrator dapat membuat profilnya sendiri dengan mengatur nilai parameter yang diperlukan:
Ukuran blok (Ukuran Blok Cache) – 1/2/4 MB
Jumlah permintaan untuk membaca blok sehingga disalin ke cache (Ambang Batas Populate-on-Read) – 1..4
Jumlah permintaan untuk menulis blok sehingga disalin ke cache (Ambang Batas Populate-on-Write) – 0..4
Profil dapat diubah dengan cepat, tetapi, tentu saja, dengan isi ulang cache dan “pemanasan” barunya.
Mengingat prinsip pengoperasian cache SSD, kami dapat menyoroti operasi utama saat bekerja dengannya:
Karena yang diminta tidak ada dalam cache SSD, maka dibaca dari hard drive;
Data yang dibaca dikirim ke host. Pada saat yang sama, pemeriksaan dilakukan untuk melihat apakah blok-blok ini “panas”;
Jika ya, maka mereka disalin ke cache SSD untuk digunakan lebih lanjut.
Membaca data saat ada di cache
Permintaan dari tuan rumah tiba di pengontrol;
Karena data yang diminta ada dalam cache SSD, data tersebut dibaca dari sana;
Data yang dibaca dikirim ke host.
Menulis data saat menggunakan cache baca
Permintaan tulis dari host tiba di pengontrol;
Data ditulis ke hard drive;
Respons yang menunjukkan rekaman berhasil dikembalikan ke host;
Pada saat yang sama, diperiksa apakah blok tersebut “panas” (parameter Populate-on-Write Threshold dibandingkan). Jika ya, maka itu disalin ke cache SSD untuk digunakan nanti.
Menulis data saat menggunakan cache baca+tulis
Permintaan tulis dari host tiba di pengontrol;
Data ditulis ke cache SSD;
Respons yang menunjukkan rekaman berhasil dikembalikan ke host;
Data dari cache SSD ditulis ke hard drive di latar belakang;
Periksa dalam tindakan
Tempat uji coba
2 server (CPU: 2 x Xeon E5-2620v3 2.4Hz / RAM: 32GB) dihubungkan melalui dua port melalui Fibre Channel 16G langsung ke sistem penyimpanan XCubeSAN XS5224D (RAM/pengontrol 16GB).
Kami menggunakan 16 x Seagate Constellation ES, ST500NM0001, 500GB, SAS 6Gb/s, digabungkan dalam RAID5 (15+1), untuk susunan data dan 8 x HGST Ultrastar SSD800MH.B, HUSMH8010BSS200, 100GB, SAS 12Gb/s sebagai cache
2 volume dibuat: satu untuk setiap server.
Pengujian 1. Cache SSD hanya-baca dari 1-8 SSD
Tembolok SSD
Tipe I/O: Kustomisasi
Ukuran Blok Cache: 4MB
Ambang Batas Populasi saat dibaca: 1
Ambang Batas Isi-saat-tulis: 0
Pola I/O
Alat: IOmeter V1.1.0
Pekerja: 1
Luar Biasa (Kedalaman Antrian): 128
Spesifikasi Akses: 4KB, 100% Baca, 100% Acak
Secara teori, semakin banyak SSD dalam kumpulan cache, semakin tinggi kinerjanya. Dalam praktiknya, hal ini telah dikonfirmasi. Satu-satunya peningkatan signifikan dalam jumlah SSD dengan jumlah volume yang kecil tidak menimbulkan efek ledakan.
Tes 2. Cache SSD dalam mode baca + tulis dengan 2-8 SSD
Tembolok SSD
Tipe I/O: Kustomisasi
Ukuran Blok Cache: 4MB
Ambang Batas Populasi saat dibaca: 1
Ambang Batas Isi-saat-tulis: 1
Pola I/O
Alat: IOmeter V1.1.0
Pekerja: 1
Luar Biasa (Kedalaman Antrian): 128
Spesifikasi Akses: 4KB, 100% Tulis, 100% Acak
Hasil yang sama: pertumbuhan dan penskalaan kinerja yang eksplosif seiring dengan meningkatnya jumlah SSD.
Dalam kedua pengujian, jumlah data yang berfungsi kurang dari total ukuran cache. Oleh karena itu, seiring waktu, semua blok disalin ke cache. Dan pekerjaan tersebut, pada kenyataannya, sudah dilakukan dengan SSD, praktis tanpa mempengaruhi hard drive. Tujuan dari pengujian ini adalah untuk menunjukkan dengan jelas keefektifan pemanasan cache dan meningkatkan kinerjanya tergantung pada jumlah SSD.
Sekarang mari kita kembali ke bumi dan memeriksa situasi yang lebih realistis, ketika jumlah data lebih besar dari ukuran cache. Agar pengujian dapat lulus dalam jangka waktu yang wajar (periode "pemanasan" cache meningkat pesat seiring dengan peningkatan ukuran volume), kami akan membatasi ukuran volume hingga 120 GB.
Tes 3. Emulasi basis data
Tembolok SSD
Tipe I/O: Basis Data
Ukuran Blok Cache: 1MB
Ambang Batas Populasi saat dibaca: 2
Ambang Batas Isi-saat-tulis: 1
Pola I/O
Alat: IOmeter V1.1.0
Pekerja: 1
Luar Biasa (Kedalaman Antrian): 128
Spesifikasi Akses: 8KB, 67% Baca, 100% Acak
Putusan
Kesimpulan yang jelas, tentu saja, adalah efisiensi yang baik dalam menggunakan cache SSD untuk meningkatkan kinerja sistem penyimpanan apa pun. Diaplikasikan ke QSAN XCubeSAN Pernyataan ini sepenuhnya berlaku: fungsi caching SSD diterapkan dengan sempurna. Ini menyangkut dukungan untuk mode baca dan baca + tulis, pengaturan fleksibel untuk skenario penggunaan apa pun, serta kinerja sistem secara keseluruhan. Oleh karena itu, dengan biaya yang sangat wajar (harga lisensi sebanding dengan biaya 1-2 SSD), Anda dapat meningkatkan kinerja keseluruhan secara signifikan.