Tinjauan Teknis Arsitektur Penyimpanan Infinidat

InfiniBox adalah sistem penyimpanan modern yang segera jatuh ke sisi kanan kotak ajaib. Apa keunikannya?

Latar Belakang Singkat

Apa itu InfiniBox? Ini adalah sistem penyimpanan Infinidat. Apa itu Infinidat? Ini adalah perusahaan yang diciptakan oleh Moshe Yanay (pencipta Symmetrix dan XIV) untuk mengimplementasikan proyek penyimpanan tingkat Enterprise yang ideal.

Perusahaan ini dibuat sebagai pengembang perangkat lunak, yang memakai peralatan yang sudah terbukti, yaitu SDS, tetapi hadir sebagai perangkat monolitik tunggal.

pengantar

Pada artikel ini kita akan melihat sistem penyimpanan InfiniBox, arsitekturnya, cara kerjanya, dan bagaimana keandalan tinggi (99,99999%) dicapai, kinerja, kapasitas dengan harga yang relatif rendah. Karena dasar dari sistem penyimpanan adalah perangkat lunaknya, dan untuk sistem ini khususnya, penekanan utama akan pada perangkat lunak, tidak akan ada kelenjar foto yang indah.

Mengapa Anda membutuhkan sistem penyimpanan lain di pasaran?

Ada sejumlah tugas yang membutuhkan kapasitas yang sangat besar, sementara keandalan dan kinerja juga penting. Misalnya, sistem cloud, tugas standar perusahaan besar, Internet hal-hal, riset gen, sistem keamanan untuk struktur besar. Sangat sulit untuk menemukan sistem penyimpanan yang optimal untuk tugas-tugas seperti itu, terutama jika Anda melihat harganya. Dengan memperhatikan tugas-tugas tersebut, arsitektur perangkat lunak InfiniBox dibangun.

Mengatasi

Bagaimana saya bisa menyimpan data dalam jumlah tidak terbatas? Dengan menyediakan ruang alamat tanpa batas. Untuk melakukan ini, InfiniBox menggunakan VUA - ruang Alamat Pengguna Virtual. Semua objek yang dibuat di InfiniBox yang dapat diakses oleh pengguna (volume, snapshot, sistem file) termasuk dalam VUA ini, dan ukuran total objek ini adalah ukuran VUA saat ini. Mengatasi adalah tipis dan tidak terkait dengan disk: yaitu, ukuran VUA bisa jauh lebih besar dari kapasitas disk yang tersedia dan sebenarnya tidak terbatas.



Selanjutnya, kita perlu membagi ruang ini menjadi bagian-bagian yang akan kita layani, sehingga lebih mudah untuk bekerja dengannya.



Seluruh ruang alamat dibagi menjadi 6 bagian - VU (unit virtual - bagian virtual). Ruang alamat setiap objek, seperti volume, didistribusikan secara merata di antara bagian-bagian ini. Rekaman berjalan dalam blok 64kB, dan dalam prosesnya, Anda dapat dengan mudah dan cepat memahami VU mana yang menjadi alamat volume ini (sisa divisi LBA / 64kB, fungsi modulo, dilakukan dengan sangat cepat untuk jumlah minimum siklus CPU).

Selain menyederhanakan pekerjaan dengan ruang yang lebih kecil, VU adalah level pertama abstraksi dari disk fisik dan dasar untuk toleransi kesalahan sistem pada level controller. Misalnya, ada 3 pengontrol (server fisik), yang masing-masing bertanggung jawab atas operasi dan merupakan utama untuk dua VU, serta cadangan untuk dua VU lainnya. Pengontrol tidak melayani VU yang merupakan cadangan, tetapi pada saat yang sama menerima metadata dan menulis operasi dari pengontrol lain untuk VU ini, sehingga jika terjadi kegagalan pengontrol utama, ia segera mengambil semua pekerjaan dengan VU ini.



Jika terjadi kegagalan satu pengontrol, dua lainnya mengambil alih tugasnya - bekerja dengan VU-nya.



Mengatasi, Snapshots, Caching



VUA adalah ruang alamat virtual yang tersedia untuk pengguna dan hampir tidak terbatas. VDA (Virtual Disk Address) adalah ruang penyimpanan internal virtual. Ukurannya ditentukan secara ketat terlebih dahulu oleh jumlah dan kapasitas hard drive (dikurangi paritas, metadata, dan ruang untuk mengganti drive yang gagal). Koneksi antara VUA dan VDA diatur melalui trie (pohon awalan). Setiap entri di pohon adalah pointer dari ruang pengguna (VUA) ke ruang interior (VDA). Mengatasi dalam bentuk pohon awalan memungkinkan Anda untuk mengatasi blok dengan berbagai ukuran. Yaitu, ketika elemen dari berbagai ukuran (file, aliran data serial, objek) ditambahkan ke disk, itu dapat diatasi dengan satu catatan di pohon dan pohon tetap kompak.

Namun, fitur terpenting dari pohon adalah kinerja tinggi saat mencari dan memperluas pohon. Pencarian dilakukan selama operasi baca, ketika perlu untuk menemukan blok dengan alamat yang diberikan pada disk. Perpanjangan pohon terjadi selama operasi penulisan, ketika kami menambahkan data baru ke disk dan harus menambahkan alamat ke pohon di mana ia dapat ditemukan. Kinerja sangat penting ketika bekerja dengan struktur besar, dan pohon awalan memungkinkan Anda untuk mencapainya dengan margin besar untuk masa depan, misalnya, jika terjadi peningkatan volume disk.

Apa yang bisa dikatakan tentang hubungan antara VUA dan VDA:

  1. Ukuran VUA bisa jauh melebihi ukuran VDA
  2. VUA tidak ada hubungannya dengan VDA sampai provisi tipis ditulis di sana
  3. Lebih dari satu VUA dapat merujuk satu VDA (snapshot / klon)

Dengan demikian, organisasi VUA dan VDA, koneksi di antara mereka dan pengalamatan koneksi ini memungkinkan Anda untuk menerapkan snapshot yang sangat cepat dan provisi tipis. Karena membuat snapshot hanya memperbarui metadata dalam memori dan merupakan operasi yang terus-menerus terjadi saat bekerja, sebenarnya operasi ini tidak memakan waktu lama. Biasanya, ketika membuat snapshot, sistem penyimpanan klasik berhenti memperbarui metadata dan / atau I / O untuk menjamin integritas transaksi. Ini menyebabkan latensi I / O tidak merata. Sistem yang dipermasalahkan bekerja secara berbeda: tidak ada yang berhenti, dan cap waktu dari blok metadata (64 + 4KB) digunakan untuk menentukan apakah operasi ada dalam snapshot. Dengan demikian, sistem dapat mengambil ratusan ribu tembakan tanpa memperlambat pekerjaan,dan kinerja volume dengan ratusan snapshot dan volume tanpa snapshot tidak berbeda. Karena semuanya dilakukan dalam memori dan ini adalah proses reguler, puluhan foto per detik dapat diambil pada grup volume. Ini memungkinkan Anda untuk menerapkan replikasi asinkron pada foto dengan perbedaan antara salinan dalam hitungan detik atau bahkan kurang dan tanpa mempengaruhi kinerja, yang juga penting.

Mari kita lihat sistem secara keseluruhan, bagaimana data berjalan. Operasi diterima melalui port ketiga pengontrol (server). Driver port bekerja di ruang Pengguna, yang memungkinkan Anda untuk me-restart mereka jika ada kombinasi peristiwa di port yang menunda driver. Dalam implementasi klasik, ini dilakukan di kernel dan masalahnya diselesaikan dengan me-restart seluruh controller.

Selanjutnya, aliran dibagi menjadi beberapa bagian dari 64KB + 4KB. Apa 4KB tambahan ini? Ini adalah perlindungan terhadap kesalahan diam, dan itu berisi checksum, waktu, dan informasi tambahan tentang operasi, yang digunakan untuk mengklasifikasikan operasi ini dan digunakan untuk mengoptimalkan caching dan membaca ke depan.



Merekam caching adalah hal yang sangat sederhana yang tidak bisa dikatakan untuk dibaca. Baca caching berfungsi dengan baik jika kita tahu harus membaca apa. Sistem klasik menggunakan algoritma baca-depan akses berurutan. Tapi apa yang harus dilakukan dengan sewenang-wenang? Akses acak sepenuhnya sangat jarang dalam pekerjaan aplikasi nyata, bahkan meniru dengan benar cukup sulit, menulis generator angka acak nyata adalah tugas yang agak menarik. Tetapi jika kita mempertimbangkan setiap operasi I / O secara terpisah, seperti yang dilakukan dalam sistem klasik, maka semuanya adalah arbitrer dan tidak dapat diprediksi, kecuali untuk yang benar-benar berurutan. Namun, jika Anda melihat seluruh aliran I / O untuk beberapa waktu, Anda dapat melihat pola yang menggabungkan berbagai operasi.

Cache sistem pada dasarnya tidak tahu apa-apa tentang volume, file, struktur logis apa pun yang dibangun di atas VUA. Cache hanya melihat bagian dan metadata-nya, berdasarkan caching pada perilaku dan atributnya, yang memungkinkan Anda untuk menemukan ketergantungan antara berbagai aplikasi yang benar-benar terhubung. Untuk operasi input-output, vektor aktivitas dibuat.



Sistem mengakumulasi statistik, membuat vektor aktivitas ini, lalu mencoba mengidentifikasi I / O saat ini dan mengikatnya ke vektor yang diketahui atau membuat yang baru. Setelah identifikasi, pembacaan prediktif menurut vektor terjadi, yaitu perilaku aplikasi diprediksi, dan pembacaan prediktif dilakukan untuk beban yang tampaknya arbitrer.

Bakar ke cakram

14 bagian dirakit dalam garis untuk discing. Ini dilakukan oleh proses khusus yang memilih bagian untuk strip tersebut.



Selanjutnya, dua bagian paritas dipertimbangkan - strip siap untuk menulis ke disk. Paritas dihitung melalui beberapa operasi berdasarkan XOR, yang dua kali lebih cepat daripada berdasarkan pada kode Reed-Solomon. Strip selanjutnya (14 + 2 bagian) ditetapkan ke grup RAID (RG). Grup RAID hanyalah objek untuk menyimpan beberapa strip, tidak lebih. Strip dikelompokkan seperti yang ditunjukkan di bawah ini, satu di atas yang lain, dan kolom vertikal disebut anggota grup RAID. VDS (Virtual Disk Space) adalah ruang disk yang tersedia untuk data pengguna, dan VDA adalah alamat di dalamnya.



Kolom atau anggota grup RAID ditulis ke satu disk (Drive PD - Fisik) di satu rak (Unit Disk). Tempat di mana anggota grup RAID ditulis disebut Partisi Disk (DP - Drive Partition). Jumlah DP pada disk adalah konstan dan sama dengan 264, ukurannya tergantung pada ukuran disk. Desain ini memungkinkan Anda untuk memuat semua disk secara merata. Pada saat yang sama, algoritma mendistribusikan kolom dari satu kelompok RAID sejauh mungkin dari satu sama lain, pada disk dan rak yang berbeda. Ini mengarah pada fakta bahwa ketika dua disk gagal, jumlah strip umum pada mereka minimal pada saat yang sama, dan sistem beralih dari status perlindungan N ke N + 1 dalam beberapa menit, membangun kembali strip-strip di mana dua kolom hilang segera (keandalan adalah tujuh sembilan) )



Hasilnya, desain logis sistem secara keseluruhan terlihat cukup sederhana dan disajikan dalam diagram di bawah ini.



Implementasi fisik

Sistem ini dibuat sehingga semua komponennya dilindungi sesuai dengan skema N + 2 atau 2N, termasuk daya dan saluran data di dalam array. Berikut adalah diagram implementasi catu daya.

ATS (Sakelar Transfer Otomatis) - ATS, sakelar fase
BBU (Unit Cadangan Baterai) - UPS, catu daya tak terputus
Node - controller



Skema ini memungkinkan Anda untuk melindungi pengontrol dan integritas memori selama peristiwa kompleks, misalnya, jika terjadi kegagalan pasokan daya dan pematian sementara satu sirkuit daya. UPS dapat dikelola, yang memungkinkan Anda untuk mendapatkan informasi biaya yang akurat dan secara fleksibel mengubah ukuran cache sehingga pengontrol selalu punya waktu untuk mengatur ulang. Artinya, sistem akan mulai menggunakan cache lebih awal secara aktif, tidak seperti skema klasik, ketika cache diaktifkan hanya ketika baterai terisi penuh.

Berikut adalah diagram saluran data dalam sistem.



Kontroler saling terhubung melalui Infiniband, dan mereka terhubung ke drive melalui SAS. Setiap pengontrol dapat mengakses setiap disk dalam sistem. Selain itu, jika koneksi antara pengontrol dan disk tidak berfungsi, maka pengontrol dapat meminta data melalui pengontrol lain yang bertindak sebagai proxy melalui Infiniband. Rak berisi sakelar SAS untuk akses simultan ke disk. Setiap rak berisi 60 disk, rak bisa dua, empat atau delapan, berjumlah hingga 480 disk dengan 3, 4, 6, 8 atau 12 TB. Total kapasitas yang tersedia untuk pengguna lebih dari 4.1PB tanpa kompresi. Berbicara tentang kompresi, untuk menerapkan kompresi tanpa kehilangan kinerja, memori tidak dikompresi, akibatnya, sistem kadang-kadang bekerja dengan kompresi dihidupkan lebih cepat - saat membaca, Anda perlu membaca lebih sedikit, ada daya prosesor yang cukup dengan margin,dan saat merekam, jawabannya langsung dari memori dan kompresi dilakukan secara serempak selama perekaman langsung ke disk.

Pengontrol berisi dua kelompok disk dalam diri mereka: satu, sistem, untuk pembilasan RAM dan yang kedua, pada SSD, untuk operasi pembacaan caching (hingga 368TB per sistem). Cache yang begitu besar memungkinkan pembacaan prediktif dalam potongan besar, dan karena data dalam strip dipilih dengan kira-kira frekuensi akses yang sama, potongan besar tersebut tidak hanya mengurangi beban pada disk fisik, tetapi juga memiliki peluang besar untuk diminati dalam waktu dekat.

Ringkasan

Jadi, kami berbicara tentang satu sistem penyimpanan yang sangat menarik, yang memiliki arsitektur modern dan menyediakan kapasitas tinggi, keandalan tinggi, kinerja luar biasa, dan biaya yang memadai.



Sumber
1 https://techfieldday.com/video/infinidat-solution-deep-dive/
2 https://support.infinidat.com/hc/en-us

All Articles