VP CEPAT dalam penyimpanan Unity: cara kerjanya

Hari ini kita akan berbicara tentang teknologi menarik yang diterapkan dalam sistem penyimpanan Unity/Unity XT - FAST VP. Jika ini pertama kalinya Anda mendengar tentang Unity, Anda dapat melihat karakteristik sistem menggunakan tautan di akhir artikel. Saya bekerja sebagai FAST VP di tim proyek Dell EMC selama lebih dari setahun. Hari ini saya ingin membicarakan teknologi ini lebih detail dan mengungkapkan beberapa detail penerapannya. Tentu saja hanya yang diperbolehkan untuk diungkap. Jika Anda tertarik dengan masalah penyimpanan data yang efisien atau sekadar belum sepenuhnya memahami dokumentasinya, maka artikel ini pasti berguna dan menarik.

VP CEPAT dalam penyimpanan Unity: cara kerjanya

Saya akan segera memberi tahu Anda apa yang tidak ada dalam materi. Tidak akan ada pencarian pesaing dan perbandingan dengan mereka. Saya juga tidak berencana membicarakan teknologi serupa dari sumber terbuka, karena pembaca yang penasaran sudah mengetahuinya. Dan, tentu saja, saya tidak akan mengiklankan apa pun.

Tingkat Penyimpanan. Maksud dan tujuan FAST VP

FAST VP adalah singkatan dari Tiering Penyimpanan Otomatis Sepenuhnya untuk Kumpulan Virtual. Sedikit sulit? Tidak masalah, kami akan mencari tahu sekarang. Tiering adalah suatu cara pengorganisasian penyimpanan data yang didalamnya terdapat beberapa tingkatan (tier) tempat penyimpanan data tersebut. Masing-masing mempunyai ciri khas tersendiri. Yang paling penting: kinerja, volume dan harga penyimpanan satu unit informasi. Tentu saja ada hubungan di antara mereka.

Fitur penting dari tiering adalah bahwa akses ke data disediakan secara seragam terlepas dari tingkat penyimpanan di mana data tersebut berada saat ini, dan ukuran kumpulan sama dengan jumlah ukuran sumber daya yang termasuk di dalamnya. Di sinilah letak perbedaan dari cache: ukuran cache tidak ditambahkan ke total volume sumber daya (dalam hal ini kumpulan), dan data cache menduplikasi beberapa fragmen data media utama (atau akan menduplikasi jika data dari cache belum ditulis). Selain itu, distribusi data berdasarkan level disembunyikan dari pengguna. Artinya, ia tidak melihat secara pasti data apa yang ada di setiap tingkatan, meskipun ia dapat mempengaruhinya secara tidak langsung dengan menetapkan kebijakan (akan dibahas lebih lanjut nanti).

Sekarang mari kita lihat fitur implementasi penyimpanan tiering di Unity. Unity memiliki 3 level, atau tingkatan:

  • Performa ekstrim (SSD)
  • Performa (SAS HDD 10k/15k RPM)
  • Kapasitas (NL-SAS HDD 7200 RPM)

Mereka disajikan dalam urutan kinerja dan harga. Performa ekstrem hanya mencakup solid state drive (SSD). Dua tingkatan lainnya mencakup drive disk magnetik, yang berbeda dalam kecepatan rotasi dan, karenanya, kinerja.

Media penyimpanan dari level yang sama dan ukuran yang sama digabungkan menjadi array RAID, membentuk grup RAID (grup RAID, disingkat RG); Anda dapat membaca tentang level RAID yang tersedia dan direkomendasikan di dokumentasi resmi. Kumpulan penyimpanan dibentuk dari grup RAID dari satu tingkat atau lebih, dari mana ruang kosong kemudian didistribusikan. Dan dari kumpulan ruang dialokasikan untuk sistem file dan LUN.

VP CEPAT dalam penyimpanan Unity: cara kerjanya

Mengapa saya memerlukan Tiering?

Singkatnya dan abstrak: untuk mencapai hasil yang lebih besar dengan menggunakan sumber daya minimum. Lebih khusus lagi, hasilnya biasanya dipahami sebagai sekumpulan karakteristik sistem penyimpanan - kecepatan dan waktu akses, biaya penyimpanan, dan lain-lain. Sumber daya minimum berarti pengeluaran paling sedikit: uang, energi, dan sebagainya. FAST VP menerapkan mekanisme untuk mendistribusikan ulang data di berbagai tingkat dalam sistem penyimpanan Unity/Unity XT. Jika Anda percaya kepada saya, Anda dapat melewati paragraf berikutnya. Selebihnya, saya akan memberi tahu Anda lebih banyak.

Distribusi data yang tepat di seluruh tingkat penyimpanan memungkinkan Anda menghemat keseluruhan biaya penyimpanan dengan mengorbankan kecepatan akses ke beberapa informasi yang jarang digunakan, dan meningkatkan kinerja dengan memindahkan data yang sering digunakan ke media yang lebih cepat. Di sini seseorang mungkin berpendapat bahwa bahkan tanpa tiering, administrator normal tahu di mana menempatkan data apa, apa karakteristik yang diinginkan dari sistem penyimpanan untuk tugasnya, dll. Hal ini memang benar, namun pendistribusian data secara manual mempunyai kelemahan:

  • memerlukan waktu dan perhatian pengelola;
  • Tidak selalu mungkin untuk “menggambar ulang” sumber daya penyimpanan agar sesuai dengan perubahan kondisi;
  • keuntungan penting menghilang: akses terpadu ke sumber daya yang terletak di tingkat penyimpanan berbeda.

Untuk mengurangi kekhawatiran administrator penyimpanan tentang keamanan pekerjaan, saya akan menambahkan bahwa perencanaan sumber daya yang kompeten juga diperlukan di sini. Sekarang setelah tugas tiering diuraikan secara singkat, mari kita lihat apa yang dapat Anda harapkan dari FAST VP. Sekarang saatnya kembali ke definisi. Dua kata pertama – Sepenuhnya Otomatis – secara harfiah diterjemahkan sebagai “sepenuhnya otomatis” dan berarti bahwa distribusi antar level terjadi secara otomatis. Nah, Virtual Pool adalah kumpulan data yang mencakup sumber daya dari tingkat penyimpanan berbeda. Ini adalah tampilannya:

VP CEPAT dalam penyimpanan Unity: cara kerjanya

Ke depan, saya akan mengatakan bahwa FAST VP memindahkan data hanya dalam satu kumpulan, dan bukan di antara beberapa kumpulan.

Masalah diselesaikan oleh FAST VP

Mari kita bicara secara abstrak terlebih dahulu. Kami memiliki kumpulan dan beberapa mekanisme yang dapat mendistribusikan ulang data dalam kumpulan ini. Mengingat tujuan kita adalah mencapai produktivitas maksimal, mari kita bertanya pada diri sendiri: cara apa yang bisa kita lakukan untuk mencapainya? Mungkin ada beberapa di antaranya, dan di sini FAST VP memiliki sesuatu untuk ditawarkan kepada pengguna, karena teknologinya lebih dari sekadar tingkatan penyimpanan. Berikut adalah beberapa cara FAST VP dapat meningkatkan kinerja kumpulan:

  • Distribusi data ke berbagai jenis disk, level
  • Mendistribusikan data antar disk dengan tipe yang sama
  • Distribusi data saat memperluas kumpulan

Sebelum kita melihat bagaimana tugas-tugas ini diselesaikan, kita perlu mengetahui beberapa fakta penting tentang cara kerja FAST VP. FAST VP beroperasi dengan blok dengan ukuran tertentu - 256 megabyte. Ini adalah "potongan" data terkecil yang dapat dipindahkan. Dalam dokumentasinya mereka menyebutnya demikian: irisan. Dari sudut pandang FAST VP, semua grup RAID terdiri dari sekumpulan “bagian” tersebut. Oleh karena itu, semua statistik I/O diakumulasikan untuk blok data tersebut. Mengapa ukuran blok ini dipilih dan apakah akan dikurangi? Bloknya cukup besar, namun ini merupakan kompromi antara granularitas data (ukuran blok yang lebih kecil berarti distribusi yang lebih akurat) dan sumber daya komputasi yang tersedia: mengingat keterbatasan yang ketat pada RAM dan sejumlah besar blok, data statistik mungkin memakan waktu terlalu banyak, dan jumlah perhitungan akan meningkat secara proporsional.

Bagaimana FAST VP mengalokasikan data ke kumpulan. Politisi

Untuk mengontrol penempatan data dalam kumpulan dengan FAST VP diaktifkan, ada kebijakan berikut:

  • Tingkat Tertinggi yang Tersedia
  • Tingkat Otomatis
  • Mulai Tinggi lalu Tingkat Otomatis (default)
  • Tingkat Terendah yang Tersedia

Mereka mempengaruhi alokasi blok awal (data pertama kali ditulis) dan realokasi selanjutnya. Ketika data sudah ada di disk, redistribusi akan dimulai sesuai jadwal atau secara manual.

Tingkat Tertinggi yang Tersedia berupaya menempatkan blok baru pada tingkat dengan kinerja tertinggi. Jika ruang di dalamnya tidak cukup, maka ditempatkan pada tingkat paling produktif berikutnya, namun kemudian data dapat dipindahkan ke tingkat yang lebih produktif (jika ada ruang atau dengan menggusur data lain). Tingkat Otomatis menempatkan data baru pada tingkat berbeda bergantung pada jumlah ruang yang tersedia, dan didistribusikan ulang bergantung pada permintaan dan ruang kosong. Mulai Tinggi lalu Tingkat Otomatis adalah kebijakan default dan juga disarankan. Saat pertama kali ditempatkan, ini berfungsi sebagai Tingkat Tertinggi yang Tersedia, dan kemudian data dipindahkan bergantung pada statistik penggunaannya. Kebijakan Tingkat Terendah yang Tersedia berupaya menempatkan data pada tingkat yang paling tidak produktif.

Transfer data terjadi dengan prioritas rendah agar tidak mengganggu pengoperasian sistem penyimpanan yang berguna, namun terdapat pengaturan “Laju relokasi data” yang mengubah prioritas. Ada kekhasan di sini: tidak semua blok data memiliki urutan redistribusi yang sama. Misalnya, blok yang ditandai sebagai metadata akan dipindahkan ke tingkat yang lebih cepat terlebih dahulu. Metadata, bisa dikatakan, adalah “data tentang data”, beberapa informasi tambahan yang bukan data pengguna, tetapi menyimpan deskripsinya. Misalnya, informasi dalam sistem file tentang di blok mana file tertentu berada. Artinya kecepatan akses data bergantung pada kecepatan akses metadata. Mengingat ukuran metadata biasanya jauh lebih kecil, manfaat memindahkannya ke disk dengan kinerja lebih tinggi diharapkan lebih besar.

Kriteria yang digunakan Fast VP dalam pekerjaannya

Kriteria utama untuk setiap blok, secara kasar, adalah karakteristik “permintaan” data, yang bergantung pada jumlah operasi baca dan tulis suatu fragmen data. Kami menyebut karakteristik ini “Suhu”. Ada data yang diminta (panas) yang “lebih panas” dibandingkan data yang tidak diklaim. Ini dihitung secara berkala, secara default dengan interval satu jam.

Fungsi penghitungan suhu memiliki properti berikut:

  • Dengan tidak adanya I/O, data “mendingin” seiring waktu.
  • Di bawah beban yang kurang lebih sama dari waktu ke waktu, suhu pertama-tama meningkat dan kemudian menjadi stabil dalam kisaran tertentu.

Selanjutnya, kebijakan yang dijelaskan di atas dan ruang kosong di setiap tingkatan diperhitungkan. Untuk lebih jelasnya saya akan memberikan gambar dari dokumentasinya. Di sini warna merah, kuning, dan biru masing-masing menunjukkan blok dengan suhu tinggi, sedang, dan rendah.

VP CEPAT dalam penyimpanan Unity: cara kerjanya

Tapi mari kita kembali ke tugas. Jadi, kita bisa mulai menganalisis apa yang dilakukan untuk menyelesaikan masalah FAST VP.

A. Distribusi data ke berbagai jenis disk, level

Sebenarnya ini adalah tugas utama FAST VP. Sisanya, dalam arti tertentu, merupakan turunan darinya. Bergantung pada kebijakan yang dipilih, data akan didistribusikan ke berbagai tingkat penyimpanan. Pertama-tama, kebijakan penempatan diperhitungkan, kemudian suhu blok dan ukuran/kecepatan grup RAID.

Untuk kebijakan Tingkat Tertinggi/Terendah yang Tersedia, semuanya cukup sederhana. Hal ini berlaku untuk dua orang lainnya. Data didistribusikan ke berbagai tingkat dengan mempertimbangkan ukuran dan kinerja grup RAID: sehingga rasio total “suhu” blok terhadap “kinerja maksimum bersyarat” dari setiap grup RAID kira-kira sama. Dengan demikian, beban terdistribusi kurang lebih merata. Data yang lebih banyak diminta dipindahkan ke media yang cepat, dan data yang jarang digunakan dipindahkan ke media yang lebih lambat. Idealnya, distribusinya akan terlihat seperti ini:

VP CEPAT dalam penyimpanan Unity: cara kerjanya

B. Distribusi data antar disk dengan tipe yang sama

Ingat, di awal saya menulis media penyimpanan itu dari satu atau lebih level digabungkan menjadi satu kumpulan? Dalam kasus satu level, FAST VP juga memiliki pekerjaan yang harus dilakukan. Untuk mencapai kinerja maksimal di tingkat mana pun, disarankan untuk mendistribusikan data secara merata antar disk. Ini (secara teori) akan memungkinkan Anda mendapatkan jumlah IOPS maksimum. Data dalam grup RAID dapat dianggap didistribusikan secara merata ke seluruh disk, namun hal ini tidak selalu terjadi di antara grup RAID. Jika terjadi ketidakseimbangan, FAST VP akan memindahkan data antar grup RAID sesuai dengan volume dan “kinerja bersyarat” (dalam istilah numerik). Untuk kejelasan, saya akan menunjukkan skema penyeimbangan kembali antara tiga kelompok RAID:

VP CEPAT dalam penyimpanan Unity: cara kerjanya

B. Distribusi data saat memperluas kumpulan

Tugas ini merupakan kasus khusus dari tugas sebelumnya dan dilakukan ketika grup RAID ditambahkan ke kumpulan. Untuk memastikan bahwa grup RAID yang baru ditambahkan tidak menganggur, sebagian data akan ditransfer ke grup tersebut, yang berarti beban akan didistribusikan ulang ke seluruh grup RAID.

Perataan Keausan SSD

Dengan menggunakan wear leveling, FAST VP dapat memperpanjang umur SSD, meskipun fitur ini tidak terkait langsung dengan Storage Tiering. Karena data suhu sudah tersedia, jumlah operasi penulisan juga diperhitungkan, dan kita tahu cara memindahkan blok data, akan logis jika FAST VP menyelesaikan masalah ini.

Jika jumlah entri dalam satu grup RAID secara signifikan melebihi jumlah entri di grup RAID lainnya, FAST VP akan mendistribusikan ulang data sesuai dengan jumlah operasi penulisan. Di satu sisi, ini mengurangi beban dan menghemat sumber daya beberapa disk, di sisi lain, ini menambah "pekerjaan" untuk disk yang lebih sedikit bebannya, sehingga meningkatkan kinerja secara keseluruhan.

Dengan cara ini, FAST VP mengatasi tantangan tradisional Storage Tiering dan melakukan lebih dari itu. Semua ini memungkinkan Anda menyimpan data dengan cukup efisien di sistem penyimpanan Unity.

Beberapa tips

  1. Jangan mengabaikan membaca dokumentasi. Ada praktik terbaik, dan semuanya berjalan cukup baik. Jika Anda mengikutinya, biasanya tidak ada masalah serius yang muncul. Nasihat lainnya pada dasarnya mengulangi atau melengkapinya.
  2. Jika Anda telah mengkonfigurasi dan mengaktifkan FAST VP, lebih baik biarkan saja diaktifkan. Biarkan ia mendistribusikan data dalam waktu yang ditentukan dan sedikit demi sedikit dari setahun sekali dan berdampak serius pada kinerja tugas lainnya. Dalam kasus seperti ini, redistribusi data mungkin memerlukan waktu lama.
  3. Berhati-hatilah saat memilih jendela relokasi. Meskipun hal ini jelas, cobalah untuk memilih waktu dengan beban paling sedikit pada Unity dan alokasikan jangka waktu yang cukup.
  4. Berencana untuk memperluas sistem penyimpanan Anda, lakukan tepat waktu. Ini adalah rekomendasi umum yang juga penting bagi FAST VP. Jika jumlah ruang kosong sangat kecil, maka pergerakan data akan melambat atau menjadi tidak mungkin dilakukan. Apalagi jika Anda mengabaikan poin 2.
  5. Saat memperluas kumpulan dengan FAST VP diaktifkan, Anda tidak boleh memulai dengan disk yang paling lambat. Artinya, kami menambahkan semua grup RAID yang direncanakan sekaligus, atau menambahkan disk tercepat terlebih dahulu. Dalam hal ini, mendistribusikan ulang data ke disk “cepat” baru akan meningkatkan kecepatan keseluruhan kumpulan. Jika tidak, memulai dengan disk yang "lambat" dapat menyebabkan situasi yang sangat tidak menyenangkan. Pertama, data akan ditransfer ke disk baru yang relatif lambat, dan kemudian, ketika disk yang lebih cepat ditambahkan, ke arah yang berlawanan. Ada beberapa perbedaan di sini terkait dengan kebijakan FAST VP yang berbeda, namun secara umum, situasi serupa mungkin terjadi.

Jika Anda melihat produk ini, Anda dapat mencoba Unity secara gratis dengan mengunduh alat virtual Unity VSA.

VP CEPAT dalam penyimpanan Unity: cara kerjanya

Di akhir materi, saya membagikan beberapa tautan bermanfaat:

Kesimpulan

Saya ingin menulis banyak hal, tetapi saya memahami bahwa tidak semua detailnya menarik bagi pembaca. Misalnya, Anda dapat berbicara lebih detail tentang kriteria yang digunakan FAST VP dalam mengambil keputusan tentang transfer data, tentang proses analisis statistik I/O. Juga, topik interaksi dengan Kolam Dinamis, dan ini layak mendapat artikel terpisah. Anda bahkan bisa berfantasi tentang perkembangan teknologi ini. Saya harap itu tidak membosankan dan saya tidak membuat Anda bosan. Sampai jumpa lagi!

Sumber: www.habr.com

Tambah komentar