VP FAST pada storan Unity: cara ia berfungsi

Hari ini kita akan bercakap tentang teknologi menarik yang dilaksanakan dalam sistem storan Unity / Unity XT - FAST VP. Jika anda pertama kali mendengar tentang Unity, maka pautan di penghujung artikel boleh digunakan untuk membiasakan diri dengan ciri-ciri sistem. Saya bekerja di FAST VP selama lebih setahun dalam pasukan projek Dell EMC. Hari ini saya ingin bercakap tentang teknologi ini dengan lebih terperinci dan mendedahkan beberapa butiran pelaksanaannya. Sudah tentu, hanya yang dibenarkan untuk didedahkan. Jika anda berminat dengan isu penyimpanan data yang cekap atau hanya tidak memahami sepenuhnya dokumentasi, maka artikel ini pastinya berguna dan menarik.

VP FAST pada storan Unity: cara ia berfungsi

Saya akan memberitahu anda dengan segera apa yang tidak akan ada dalam bahan. Tidak akan ada pencarian pesaing dan perbandingan dengan mereka. Saya juga tidak bercadang untuk bercakap tentang teknologi serupa dari sumber terbuka, kerana pembaca yang ingin tahu sudah mengetahui tentangnya. Dan, sudah tentu, saya tidak akan mengiklankan apa-apa.

peringkat simpanan. Matlamat dan objektif FAST VP

FAST VP bermaksud Tiering Storan Automatik Sepenuhnya untuk Kolam Maya. Adakah ia sukar? Tiada apa-apa, kami akan memikirkannya. Tiering ialah cara mengatur penyimpanan data, di mana terdapat beberapa peringkat (peringkat) di mana data ini disimpan. Masing-masing mempunyai ciri-ciri tersendiri. Yang paling penting: prestasi, volum dan harga menyimpan unit maklumat. Sudah tentu, ada hubungan antara mereka.

Ciri penting peringkat ialah akses kepada data disediakan secara seragam tanpa mengira tahap storan yang sedang digunakan, dan saiz kolam adalah sama dengan jumlah saiz sumber yang disertakan di dalamnya. Di sini terletak perbezaan daripada cache: saiz cache tidak ditambah kepada jumlah keseluruhan sumber (kolam dalam kes ini), dan data cache menduplikasi beberapa keping data daripada medium utama (atau akan menduplikasi jika data daripada cache masih belum ditulis). Selain itu, pengedaran data mengikut tahap disembunyikan daripada pengguna. Iaitu, dia tidak melihat dengan tepat data yang terdapat pada setiap peringkat, walaupun dia boleh mempengaruhi ini secara tidak langsung, dengan menetapkan dasar (mengenainya kemudian).

Sekarang mari kita lihat ciri-ciri pelaksanaan peringkat storan dalam Unity. Dalam Unity, terdapat 3 peringkat, atau peringkat:

  • Prestasi melampau (SSD)
  • Prestasi (SAS HDD 10k/15k RPM)
  • Kapasiti (NL-SAS HDD 7200RPM)

Mereka dibentangkan dalam susunan menurun prestasi dan harga. Prestasi melampau termasuk hanya Pemacu Keadaan Pepejal (SSD). Dalam dua peringkat lain terdapat pemacu cakera magnetik, yang berbeza dalam kelajuan putaran dan, dengan itu, dalam prestasi.

Media storan dari tahap yang sama dan saiz yang sama digabungkan ke dalam tatasusunan RAID, membentuk kumpulan RAID (kumpulan RAID, disingkat sebagai RG); anda boleh membaca tentang tahap RAID yang tersedia dan disyorkan dalam dokumentasi rasmi. Daripada kumpulan RAID satu atau lebih peringkat, kumpulan storan terbentuk, yang kemudiannya ruang kosong diedarkan. Dan sudah dari ruang kolam diperuntukkan untuk sistem fail dan LUN.

VP FAST pada storan Unity: cara ia berfungsi

Mengapa saya memerlukan Tiering?

Secara ringkas dan abstrak: untuk mencapai lebih banyak hasil dengan jumlah sumber yang paling sedikit. Lebih khusus lagi, hasilnya biasanya difahami sebagai satu set ciri sistem storan - kelajuan dan masa akses, kos penyimpanan, dan lain-lain. Sumber minimum bermakna kos paling sedikit: wang, tenaga, dan sebagainya. FAST VP hanya melaksanakan mekanisme untuk mengagihkan semula data merentas tahap yang berbeza dalam sistem storan Unity / Unity XT. Jika anda percaya saya, anda boleh melangkau perenggan seterusnya. Untuk selebihnya, saya akan memberitahu anda sedikit lagi.

Dengan menyusun data dengan betul, anda boleh menjimatkan kos keseluruhan storan dengan mengorbankan kelajuan akses kepada beberapa maklumat yang jarang digunakan dan meningkatkan prestasi dengan mengalihkan data yang kerap diakses ke media yang lebih pantas. Di sini seseorang mungkin membantah bahawa walaupun tanpa peringkat, pentadbir biasa tahu di mana untuk meletakkan data apa, ciri sistem storan yang diinginkan untuk tugasnya, dsb. Sudah tentu, ini benar, tetapi pengedaran data "secara manual" mempunyai kelemahannya:

  • memerlukan masa dan perhatian pentadbir;
  • tidak selalu mungkin untuk "membentuk semula" sumber storan di bawah keadaan yang berubah-ubah;
  • kelebihan penting hilang: akses bersatu kepada sumber yang terletak pada tahap storan yang berbeza.

Untuk mengurangkan kebimbangan pentadbir storan tentang keselamatan kerja, saya akan menambah bahawa perancangan sumber yang cekap juga diperlukan di sini. Memandangkan tugas peringkat telah digariskan secara ringkas, mari lihat apa yang anda boleh jangkakan daripada FAST VP. Inilah masanya untuk kembali kepada definisi. Dua perkataan pertama - Automatik Sepenuhnya - diterjemahkan secara literal sebagai "automatik sepenuhnya" dan bermaksud pengagihan tahap berlaku secara automatik. Nah, Kolam Maya ialah kumpulan data yang merangkumi sumber daripada tahap storan yang berbeza. Inilah rupanya:

VP FAST pada storan Unity: cara ia berfungsi

Melihat ke hadapan, saya akan mengatakan bahawa FAST VP hanya memindahkan data dalam satu kumpulan, dan bukan antara berbilang kumpulan.

Tugas diselesaikan oleh FAST VP

Mari kita bercakap secara abstrak dahulu. Kami mempunyai kumpulan dan beberapa mekanisme yang boleh mengagihkan semula data dalam kumpulan ini. Dengan mengingati bahawa tugas kita adalah untuk mencapai produktiviti maksimum, mari kita tanya diri kita sendiri: dalam cara apakah ia boleh dicapai? Mungkin terdapat beberapa daripada mereka, dan di sini FAST VP mempunyai sesuatu untuk ditawarkan kepada pengguna, kerana teknologi itu lebih daripada sekadar peringkat storan. Berikut ialah beberapa cara FAST VP boleh meningkatkan prestasi kumpulan:

  • Pengagihan data merentasi pelbagai jenis cakera, tahap
  • Pengagihan data antara cakera jenis yang sama
  • Pengagihan data semasa mengembangkan kumpulan

Sebelum melihat cara tugasan ini dicapai, kita perlu mengetahui beberapa fakta penting tentang cara FAST VP berfungsi. FAST VP beroperasi dengan blok saiz tertentu - 256 megabait. Ini ialah "ketulan" bersebelahan terkecil data yang boleh dialihkan. Dalam dokumentasi, ia dipanggil begitu: slice. Dari sudut pandangan FAST VP, semua kumpulan RAID terdiri daripada satu set "kepingan" sedemikian. Sehubungan itu, semua statistik I/O terkumpul untuk blok data tersebut. Mengapa saiz blok ini dipilih dan adakah ia akan dikurangkan? Bloknya agak besar, tetapi ini adalah kompromi antara butiran data (saiz blok yang lebih kecil - pengedaran lebih tepat) dan sumber pengkomputeran yang tersedia: dengan sekatan teruk sedia ada pada RAM dan sejumlah besar blok, data statistik boleh mengambil terlalu banyak, dan bilangan pengiraan akan berkembang secara berkadar.

Betapa CEPAT VP meletakkan data dalam kumpulan. Ahli politik

Untuk mengawal peletakan data dalam kumpulan dengan FAST VP didayakan, terdapat dasar berikut:

  • Peringkat Tertinggi Tersedia
  • Peringkat Auto
  • Mula Tinggi kemudian Auto-Tier (lalai)
  • Peringkat Terendah Tersedia

Ia mempengaruhi kedua-dua peruntukan awal blok (data ditulis pertama) dan pengagihan semula berikutnya. Apabila data sudah diletakkan pada cakera, pengagihan semula akan dimulakan mengikut jadual atau secara manual.

Peringkat Tertinggi Tersedia cuba meletakkan blok baharu pada peringkat berprestasi tertinggi. Jika tidak ada ruang yang cukup padanya, yang seterusnya dari segi prestasi, tetapi kemudian data boleh dialihkan ke tahap yang lebih produktif (jika terdapat ruang atau menyesakkan data lain). Auto-Tier meletakkan data baharu dalam peringkat berbeza berdasarkan jumlah ruang yang tersedia dan mengagihkannya semula berdasarkan permintaan dan ruang kosong. Mula Tinggi kemudian Auto-Tier ialah dasar lalai dan juga disyorkan. Berfungsi sebagai Peringkat Tertinggi Tersedia pada mulanya, dan kemudian memindahkan data berdasarkan statistik penggunaan. Dasar Peringkat Terendah Tersedia bertujuan untuk meletakkan data pada peringkat paling kurang berprestasi.

Pemindahan data berjalan dengan keutamaan yang rendah supaya tidak mengganggu kerja berguna sistem storan, bagaimanapun, terdapat tetapan "Kadar penempatan semula data" yang mengubah keutamaan. Terdapat keanehan di sini: tidak semua blok data mempunyai susunan pengagihan semula yang sama. Sebagai contoh, blok yang ditandakan sebagai metadata akan dialihkan ke peringkat yang lebih pantas terlebih dahulu. Metadata ialah, boleh dikatakan, "data tentang data", beberapa maklumat tambahan yang bukan data pengguna, tetapi menyimpan perihalannya. Sebagai contoh, maklumat dalam sistem fail tentang blok mana fail tertentu berada. Ini bermakna kelajuan akses kepada data bergantung pada kelajuan akses kepada metadata. Memandangkan metadata biasanya jauh lebih kecil, faedah mengalihkannya ke cakera yang lebih pantas dijangka lebih besar.

Kriteria yang digunakan oleh Fast VP dalam kerjanya

Kriteria utama untuk setiap blok, jika sangat kasar, adalah ciri "permintaan" data, yang bergantung pada bilangan operasi baca dan tulis serpihan data. Ciri ini dipanggil "Suhu". Terdapat data panas yang lebih panas daripada data yang tidak dituntut. Ia dikira secara berkala, secara lalai dengan selang satu jam.

Fungsi pengiraan suhu mempunyai sifat berikut:

  • Dengan ketiadaan I / O, data "menyejukkan" dari semasa ke semasa.
  • Dengan lebih kurang beban yang sama dalam masa, suhu mula-mula meningkat dan kemudian stabil dalam julat tertentu.

Selanjutnya, dasar yang diterangkan di atas dan ruang kosong pada setiap peringkat diambil kira. Untuk kejelasan, saya akan memberikan gambar dari dokumentasi. Di sini, warna merah, kuning dan biru menunjukkan blok dengan suhu tinggi, sederhana dan rendah, masing-masing.

VP FAST pada storan Unity: cara ia berfungsi

Tetapi kembali kepada tugas. Jadi, kita boleh mula menganalisis apa yang sedang dilakukan untuk menyelesaikan masalah FAST VP.

A. Pengagihan data merentas pelbagai jenis cakera, tahap

Sebenarnya ini adalah tugas utama FAST VP. Selebihnya, dalam erti kata lain, adalah derivatif daripadanya. Bergantung pada dasar yang dipilih, data akan diedarkan merentas peringkat storan yang berbeza. Pertama sekali, dasar penempatan diambil kira, kemudian suhu blok dan saiz / kelajuan kumpulan RAID.

Untuk dasar Peringkat Tertinggi/Terendah Tersedia, semuanya agak mudah. Untuk dua yang lain, ini adalah kesnya. Data diedarkan pada tahap yang berbeza, dengan mengambil kira saiz dan prestasi kumpulan RAID: supaya nisbah jumlah "suhu" blok kepada "prestasi maksimum bersyarat" setiap kumpulan RAID adalah lebih kurang sama. Oleh itu, beban diagihkan lebih kurang sama rata. Data yang lebih dalam permintaan dialihkan ke media yang lebih pantas, data yang kurang kerap digunakan dialihkan ke media yang lebih perlahan. Sebaik-baiknya, pengedaran sepatutnya kelihatan seperti ini:

VP FAST pada storan Unity: cara ia berfungsi

B. Pengagihan data antara cakera daripada jenis yang sama

Ingat, pada mulanya saya menulis bahawa pembawa maklumat dari satu atau lebih tahap digabungkan menjadi satu kolam? Dalam kes satu tahap, FAST VP juga mempunyai kerja yang perlu dilakukan. Untuk memaksimumkan prestasi pada mana-mana peringkat, adalah wajar untuk mengedarkan data secara sama rata merentas cakera. Ini akan membolehkan (dalam teori) untuk mendapatkan bilangan maksimum IOPS. Data dalam kumpulan RAID boleh dianggap diedarkan secara sama rata merentas cakera, tetapi ini tidak selalu berlaku antara kumpulan RAID. Sekiranya berlaku ketidakseimbangan, FAST VP akan mengalihkan data antara kumpulan RAID mengikut nisbah saiz dan "prestasi bersyarat" mereka (dalam istilah berangka). Untuk kejelasan, saya akan menunjukkan skim pengimbangan semula antara tiga kumpulan RAID:

VP FAST pada storan Unity: cara ia berfungsi

C. Pengagihan data apabila mengembangkan kumpulan

Tugas ini ialah kes khas yang sebelumnya dan dilakukan apabila kumpulan RAID ditambahkan pada kumpulan. Untuk mengelakkan kumpulan RAID yang baru ditambah daripada melahu, beberapa data akan dipindahkan kepadanya, yang bermaksud bahawa beban pada semua kumpulan RAID akan diagihkan semula.

Meratakan Kehausan SSD

Melalui perataan haus, FAST VP boleh memanjangkan hayat SSD, walaupun ciri ini tidak berkaitan secara langsung dengan Tiering Storan. Memandangkan data suhu sudah ada, bilangan operasi tulis juga diambil kira, kami tahu cara mengalihkan blok data, adalah logik untuk FAST VP menyelesaikan masalah ini juga.

Jika bilangan penulisan kepada satu kumpulan RAID dengan ketara melebihi bilangan penulisan kepada yang lain, FAST VP akan mengagihkan semula data mengikut bilangan penulisan. Di satu pihak, ini menghilangkan beban dan menjimatkan sumber beberapa cakera, sebaliknya, ia menambah "kerja" untuk yang kurang dimuatkan, meningkatkan prestasi keseluruhan.

Oleh itu, FAST VP melaksanakan tugas tradisional Tiering Storan dan melakukan lebih daripada itu. Semua ini membolehkan anda menyimpan data dengan cekap dalam sistem storan Unity.

Beberapa tips

  1. Jangan abaikan membaca dokumentasi. Terdapat amalan terbaik, dan ia berfungsi dengan baik. Jika anda mengikuti mereka, maka masalah serius, sebagai peraturan, tidak timbul. Petua yang lain pada dasarnya mengulangi atau menambahnya.
  2. Jika anda mengkonfigurasi dan mendayakan FAST VP, kemudian biarkan ia didayakan. Biarkan ia memperuntukkan data dalam masa yang diperuntukkan dan sedikit demi sedikit daripada sekali setahun dan memberi kesan serius terhadap prestasi tugas lain. Dalam kes sedemikian, pengagihan semula data boleh mengambil masa yang lama.
  3. Berhati-hati apabila memilih tetingkap penempatan semula. Walaupun ini jelas, cuba pilih masa dengan beban paling sedikit pada Unity dan peruntukkan jumlah masa yang mencukupi.
  4. Rancang pengembangan storan anda, lakukan tepat pada masanya. Ini adalah cadangan umum yang penting untuk FAST VP juga. Jika jumlah ruang kosong sangat kecil, maka pergerakan data akan menjadi perlahan atau menjadi mustahil. Terutama jika anda mengabaikan perkara 2.
  5. Apabila mengembangkan kumpulan dengan FAST VP didayakan, jangan mulakan dengan pemacu paling perlahan. Iaitu, sama ada kami menambah semua kumpulan RAID yang dirancang serentak, atau kami menambah cakera terpantas dahulu. Dalam kes ini, mengagihkan semula data ke cakera "pantas" baharu akan meningkatkan kelajuan keseluruhan kumpulan. Jika tidak, bermula dengan cakera "perlahan", anda boleh mendapat situasi yang sangat tidak menyenangkan. Pertama, data akan dipindahkan ke cakera baharu yang agak perlahan, dan kemudian, apabila menambah yang lebih pantas, ke arah yang bertentangan. Terdapat nuansa yang dikaitkan dengan dasar FAST VP yang berbeza, tetapi dalam kes umum, keadaan ini mungkin.

Jika anda melihat produk ini, maka anda boleh mencuba Unity in action secara percuma dengan memuat turun perkakas maya Unity VSA.

VP FAST pada storan Unity: cara ia berfungsi

Pada akhir artikel, saya berkongsi beberapa pautan yang berguna:

Kesimpulan

Saya ingin menulis tentang banyak, tetapi saya faham bahawa tidak semua butiran akan menarik minat pembaca. Sebagai contoh, anda boleh bercakap dengan lebih terperinci tentang kriteria yang FAST VP membuat keputusan untuk memindahkan data, tentang proses untuk menganalisis statistik I / O. Juga, topik interaksi dengan Kolam Dinamik, dan ini menarik artikel yang berasingan. Anda juga boleh berkhayal tentang perkembangan teknologi ini. Saya harap ia tidak membosankan dan saya tidak membosankan awak. Jumpa lagi!

Sumber: www.habr.com

Tambah komen