Menerapkan caching SSD dalam penyimpanan QSAN XCubeSAN

Teknologi peningkatan kinerja berbasis SSD yang banyak digunakan dalam sistem penyimpanan telah lama ditemukan. Pertama-tama, ini adalah penggunaan SSD sebagai ruang penyimpanan, yang 100% efisien tetapi mahal. Oleh karena itu, teknologi peering dan caching digunakan, di mana SSD hanya digunakan untuk data yang paling populer ("panas"). Robek bagus untuk skenario penggunaan data "panas" jangka panjang (hari-minggu). Dan caching, sebaliknya, hanya untuk penggunaan jangka pendek (menit-jam). Kedua opsi ini diimplementasikan dalam penyimpanan QSAN XCubeSAN . Pada artikel ini, kami akan mempertimbangkan implementasi algoritma kedua - caching SSD .




Inti dari teknologi caching SSD adalah penggunaan SSD sebagai cache perantara antara hard disk dan memori pengontrol. Kinerja SSD, tentu saja, lebih rendah dari kinerja cache controller sendiri, tetapi volumenya adalah urutan besarnya lebih tinggi. Karenanya, kami mendapat kompromi antara kecepatan dan volume.


Indikasi untuk menggunakan cache read SSD:


  • Dominasi operasi baca dibandingkan operasi tulis (paling sering karakteristik basis data dan aplikasi web);
  • Kehadiran hambatan dalam bentuk kinerja berbagai hard drive;
  • Jumlah data yang diminta kurang dari ukuran cache SSD.

Indikasi untuk menggunakan cache SSD baca / tulis adalah alasan yang sama, dengan pengecualian sifat operasi - tipe campuran (misalnya, file server).


Sebagian besar vendor penyimpanan menggunakan cache SSD hanya-baca dalam produk mereka. Perbedaan mendasar antara QSAN dan mereka adalah kemampuan untuk menggunakan cache juga untuk menulis. Untuk mengaktifkan fungsionalitas caching SSD dalam penyimpanan QSAN, diperlukan lisensi terpisah (dikirim dalam bentuk elektronik).


Cache SSD di XCubeSAN secara fisik diimplementasikan sebagai kumpulan cache SSD yang terpisah. Mungkin ada empat dari mereka dalam sistem. Setiap kumpulan, tentu saja, menggunakan set SSDnya sendiri. Dan sudah di properti disk virtual, kami menentukan apakah itu akan menggunakan kolam cache dan yang mana. Mengaktifkan dan menonaktifkan penggunaan cache untuk volume dapat dilakukan secara online tanpa menghentikan I / O. Juga pada "panas" Anda dapat menambahkan SSD ke kolam dan menghapusnya dari sana. Saat membuat cache kumpulan SSD, Anda harus memilih dalam mode mana itu akan berfungsi: baca saja atau baca + tulis. Organisasi fisiknya tergantung padanya. Karena cache pool bisa beberapa, fungsinya bisa berbeda (yaitu, sistem bisa memiliki cache pool untuk membaca dan membaca + menulis pada saat yang bersamaan).


Jika Anda menggunakan cache pool read-only, ini bisa terdiri dari 1-8 SSD. Disk tidak harus memiliki volume yang sama dan satu vendor, karena mereka digabungkan ke dalam struktur NRAID +. Semua SSD di pool dibagi. Sistem secara independen mencoba untuk memaralisasi permintaan yang masuk di antara semua SSD untuk mencapai kinerja maksimum. Jika terjadi kegagalan salah satu SSD, tidak ada hal buruk yang akan terjadi: lagipula, cache hanya berisi salinan data yang disimpan pada larik hard drive. Hanya saja jumlah cache SSD yang tersedia akan berkurang (atau nol jika Anda menggunakan cache SSD asli dari satu drive).



Jika cache digunakan untuk operasi baca + tulis, maka jumlah SSD di kumpulan harus merupakan kelipatan dari dua, karena konten dicerminkan pada pasangan drive (menggunakan struktur NRAID 1+). Duplikasi cache diperlukan karena fakta bahwa mungkin berisi data yang belum ditulis ke hard drive. Dan dalam hal ini, kegagalan SSD dari kumpulan cache akan menyebabkan hilangnya informasi. Dalam kasus NRAID 1+, kegagalan SSD hanya akan menyebabkan transisi cache ke status hanya-baca dengan membuang data tidak tertulis ke array dari hard drive. Setelah mengganti SSD yang gagal, cache akan kembali ke mode operasi semula. Omong-omong, untuk keamanan yang lebih baik, cache yang berfungsi untuk membaca + menulis dapat diberikan cadangan panas khusus.



Saat menggunakan fungsi caching SSD di XCubeSAN, ada sejumlah persyaratan untuk kapasitas penyimpanan pengontrol penyimpanan: semakin banyak memori sistem, semakin besar kumpulan cache cache akan tersedia.



Tidak seperti, sekali lagi, sebagian besar produsen penyimpanan, yang hanya menawarkan opsi on / off sebagai pengaturan cache SSD, QSAN menyediakan lebih banyak opsi. Secara khusus, Anda dapat memilih mode operasi cache tergantung pada sifat beban. Ada tiga templat yang telah ditentukan sebelumnya yang terdekat dalam pekerjaan mereka dengan layanan yang sesuai: database, sistem file, layanan web. Selain itu, administrator dapat membuat profilnya sendiri dengan menetapkan nilai parameter yang diperlukan:


  • Ukuran Blok (Ukuran Blok Cache) - 1/2/4 MB
  • Jumlah permintaan untuk membaca blok sehingga disalin ke cache (Populate-on-Read Threshold) adalah 1..4
  • Jumlah permintaan untuk menulis blok sehingga disalin ke cache (Populate-on-Write Threshold) adalah 0..4


Profil dapat diubah dengan cepat, tetapi, tentu saja, dengan memusatkan isi cache dan "pemanasan" baru.


Mempertimbangkan prinsip pengoperasian cache SSD, kita dapat membedakan operasi utama saat bekerja dengannya:







Membaca data saat itu tidak ada dalam cache


  1. Permintaan dari tuan rumah pergi ke controller;
  2. Karena yang diminta tidak ada dalam cache SSD, mereka dibaca dari hard drive;
  3. Data yang sudah dibaca dikirim ke tuan rumah. Pada saat yang sama, pemeriksaan sedang dilakukan untuk melihat apakah blok-blok ini β€œpanas”;
  4. Jika demikian, mereka disalin ke cache SSD untuk referensi di masa mendatang.





Membaca data saat itu ada dalam cache


  1. Permintaan dari tuan rumah pergi ke controller;
  2. Karena data yang diminta ada dalam cache SSD, itu dibaca dari sana;
  3. Data yang sudah dibaca dikirim ke tuan rumah.





Tulis data saat menggunakan read cache


  1. Permintaan tulis dari tuan rumah pergi ke controller;
  2. Data ditulis ke hard drive;
  3. Tuan rumah mengembalikan respons tentang rekaman yang berhasil;
  4. Pada saat yang sama, ini diperiksa apakah blok "panas" (parameter Ambang Batas Tuliskan dibandingkan). Jika demikian, itu disalin ke cache SSD untuk digunakan di masa mendatang.





Menulis data saat menggunakan cache baca / tulis


  1. Permintaan tulis dari tuan rumah pergi ke controller;
  2. Data ditulis ke cache SSD;
  3. Tuan rumah mengembalikan respons tentang rekaman yang berhasil;
  4. Data dari cache SSD di latar belakang ditulis ke hard drive;



Verifikasi dalam bisnis


Test stand

2 server (CPU: 2 x Xeon E5-2620v3 2.4Hz / RAM: 32GB) dihubungkan oleh dua port melalui Fibre Channel 16G langsung ke penyimpanan XCubeSAN XS5224D (16GB RAM / controller).


Digunakan 16 x Seagate Constellation ES, ST500NM0001, 500GB, SAS 6Gb / s, dikombinasikan dalam RAID5 (15 + 1), untuk array data dan 8 x HGST Ultrastar SSD800MH.B, HUSMH8010BSS200, 100GB, SAS 12Gb / s sebagai cache


2 volume dibuat: satu untuk setiap server.



Tes 1. Cache read-only SSD dengan 1-8 SSD


Cache SSD


  • Tipe I / O: Kustomisasi
  • Ukuran Blok Cache: 4MB
  • Ambang Batas baca-baca: 1
  • Ambang Kependudukan pada saat menulis: 0

Pola I / O


  • Alat: IOmeter V1.1.0
  • Pekerja: 1
  • Posisi (Kedalaman Antrian): 128
  • Spesifikasi Akses: 4KB, 100% Baca, 100% Acak



Secara teori, semakin banyak SSD dalam cache pool, semakin tinggi kinerjanya. Dalam praktiknya, ini dikonfirmasi. Satu-satunya peningkatan yang signifikan dalam jumlah SSD dengan jumlah volume yang kecil tidak menyebabkan efek ledakan.


Tes 2. Cache SSD dalam mode baca + tulis dengan 2-8 SSD


Cache SSD


  • Tipe I / O: Kustomisasi
  • Ukuran Blok Cache: 4MB
  • Ambang Batas baca-baca: 1
  • Ambang Kependudukan pada saat menulis: 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 kinerja yang eksplosif dan penskalaan dengan peningkatan jumlah SSD.


Dalam kedua pengujian, jumlah data operasional kurang dari ukuran total cache. Oleh karena itu, seiring waktu, semua blok disalin ke cache. Dan pekerjaan itu, pada kenyataannya, dilakukan dengan SSD, praktis tanpa mempengaruhi hard drive. Tujuan dari tes ini adalah untuk menunjukkan dengan jelas efektivitas pemanasan cache dan meningkatkan kinerjanya tergantung pada jumlah SSD.


Sekarang, mari kita kembali dari surga ke bumi dan memeriksa situasi yang lebih vital ketika jumlah data lebih besar dari ukuran cache. Agar tes lulus dalam waktu yang waras (istilah "pemanasan" cache meningkat secara signifikan dengan meningkatnya ukuran volume), kami membatasi diri pada ukuran volume 120GB.


Uji 3. Emulasi basis data


Cache SSD


  • Tipe I / O: Database
  • Ukuran Blok Cache: 1MB
  • Ambang Batas baca-baca: 2
  • Ambang Kependudukan pada saat menulis: 1

Pola I / O


  • Alat: IOmeter V1.1.0
  • Pekerja: 1
  • Posisi (Kedalaman Antrian): 128
  • Spesifikasi Akses: 8KB, 67% Membaca, 100% Acak


Putusan


Sebagai kesimpulan yang jelas, tentu saja, efisiensi yang baik dalam menggunakan cache SSD menyarankan dirinya untuk meningkatkan kinerja sistem penyimpanan apa pun. Berkenaan dengan QSAN XCubeSAN pernyataan ini sepenuhnya berlaku: fungsi caching SSD diimplementasikan dengan sempurna. Ini berlaku untuk dukungan untuk membaca dan membaca + menulis, pengaturan kerja yang fleksibel untuk setiap kasus penggunaan, serta kinerja akhir sistem secara keseluruhan. Oleh karena itu, untuk biaya yang sangat wajar (harga lisensi sebanding dengan biaya 1-2 SSD), Anda dapat secara signifikan meningkatkan kinerja secara keseluruhan.

Source: https://habr.com/ru/post/id432366/


All Articles