Memahami model penyimpanan cloud

Siapa yang mengira bahwa menyimpan bit bisa menjadi sangat rumit? Penyimpanan selalu berisi sejumlah besar protokol, dari Fibre Channel hingga iSCSI hingga SMB dalam semua variasinya, tetapi kedatangan flash dan pertumbuhan virtualisasi yang terus-menerus telah mengubah topik yang sudah padat menjadi rimba akronim, protokol, dan abstraksi yang kusut.

Virtualisasi pusat data telah mendorong gelombang virtualisasi dalam penyimpanan juga, secara bertahap menarik penyimpanan dari protokol fisik dan menuju model penyimpanan abstrak yang logis seperti penyimpanan contoh dan penyimpanan volume. Dengan menyediakan abstraksi, pusat data terus memisahkan mesin virtual dari protokol penyimpanan.

Munculnya pusat data cloud juga telah melahirkan kelas penyimpanan baru yang disebut penyimpanan objek, yang mengorbankan konsistensi yang kuat dari protokol penyimpanan tradisional untuk menyediakan ruang nama tunggal dalam skala global.

Dalam artikel ini saya akan memberikan beberapa kejelasan dengan menempatkan contoh, volume, dan penyimpanan objek ke dalam evolusi pusat data, dan menunjukkan bagaimana abstraksi baru ini sesuai di atas, atau di samping, protokol penyimpanan yang ada.

Kisah penyimpanan cloud dalam banyak hal adalah kisah virtualisasi. Saya akan mulai dengan lingkungan fisik, pindah ke virtualisasi, di mana model virtual dan fisik mulai menyimpang, dan selesai dengan cloud, di mana fisik hampir sepenuhnya diabstraksi oleh model virtual.

Penyimpanan fisik

Di root dari semua penyimpanan ada beberapa set protokol penyimpanan fisik, jadi saya akan mulai dengan rekap cepat penyimpanan fisik. Tiga kelas utama model penyimpanan fisik yang digunakan saat ini: penyimpanan terpasang langsung (DAS), jaringan area penyimpanan (SAN), dan penyimpanan terpasang jaringan (NAS).

DAS.  Penyimpanan terpasang langsung adalah model penyimpanan paling sederhana. Kita semua akrab dengan DAS; ini adalah model yang digunakan oleh kebanyakan laptop, ponsel, dan komputer desktop. Unit fundamental dalam DAS adalah komputer itu sendiri; penyimpanan untuk server tidak dapat dipisahkan dari server itu sendiri. Dalam kasus telepon, secara fisik tidak mungkin untuk menghapus penyimpanan dari komputasi, tetapi bahkan dalam kasus server, di mana secara teoritis dimungkinkan untuk menarik drive disk, setelah drive dipisahkan dari server, biasanya dihapus sebelumnya penggunaan kembali. SCSI dan SATA adalah contoh protokol DAS.

SAN.  Akhirnya industri penyimpanan mengakui kegunaan memisahkan penyimpanan dari komputasi. Daripada memasang disk ke setiap komputer, kami menempatkan semua disk pada satu kelompok server dan mengakses disk melalui jaringan. Ini menyederhanakan tugas manajemen penyimpanan seperti pencadangan dan perbaikan kegagalan. Pembagian penyimpanan dan komputasi ini sering disebut penyimpanan bersama , karena beberapa komputer akan menggunakan satu kumpulan penyimpanan.

Itu paling mudah untuk berkomunikasi antara klien dan server melalui jaringan menggunakan protokol blok yang sama (atau sangat mirip) yang digunakan untuk berkomunikasi dengan drive disk yang terpasang secara lokal. Penyimpanan yang diekspos dengan cara ini disebut jaringan area penyimpanan. Fibre Channel dan iSCSI adalah contoh protokol SAN.

Dalam SAN seorang administrator akan mengelompokkan satu set disk (atau bagian dari satu set disk) ke dalam LUN (unit logis), yang kemudian berperilaku seperti drive disk tunggal ke komputer luar. LUN adalah unit dasar yang digunakan untuk mengelola penyimpanan SAN.

NAS.  Meskipun SAN memungkinkan kita untuk memindahkan LUN antara satu komputer dan komputer lainnya, protokol blok yang mereka gunakan tidak dirancang untuk berbagi data secara bersamaan dalam LUN yang sama antar komputer. Untuk mengizinkan jenis berbagi ini, kita memerlukan jenis penyimpanan baru yang dibangun untuk akses bersamaan. Dalam jenis penyimpanan baru ini, kami berkomunikasi dengan penyimpanan menggunakan protokol sistem file, yang sangat mirip dengan sistem file yang dijalankan di komputer lokal. Jenis penyimpanan ini dikenal sebagai penyimpanan terpasang jaringan. NFS dan SMB adalah contoh protokol NAS.

Abstraksi sistem file memungkinkan beberapa server untuk mengakses data yang sama pada waktu yang sama. Beberapa server dapat membaca file yang sama pada waktu yang sama, dan beberapa server dapat menempatkan file baru ke dalam sistem file pada saat yang bersamaan. Jadi, NAS adalah model yang sangat nyaman untuk pengguna bersama atau data aplikasi.

Penyimpanan NAS memungkinkan administrator untuk mengalokasikan sebagian penyimpanan ke dalam sistem file individu. Setiap sistem file adalah satu namespace, dan sistem file adalah unit utama yang digunakan untuk mengelola NAS.

Penyimpanan virtual

Virtualisasi mengubah lanskap pusat data modern untuk penyimpanan seperti yang dilakukannya untuk komputasi. Sama seperti mesin fisik yang diabstraksi menjadi mesin virtual, penyimpanan fisik juga diabstraksi menjadi disk virtual.

Dalam virtualisasi, hypervisor menyediakan lingkungan perangkat keras yang diemulasi untuk setiap mesin virtual, termasuk komputer, memori, dan penyimpanan. VMware, hypervisor modern awal, memilih untuk meniru drive disk fisik lokal sebagai cara untuk menyediakan penyimpanan untuk setiap VM. Dengan kata lain, VMware memilih model drive disk lokal (DAS) sebagai cara untuk mengekspos penyimpanan ke mesin virtual.

Sama seperti unit dasar penyimpanan di DAS adalah mesin fisik, unit dasar dalam penyimpanan disk virtual adalah VM. Disk virtual tidak diekspos sebagai objek independen, tetapi sebagai bagian dari mesin virtual tertentu, persis seperti disk lokal secara konseptual merupakan bagian dari komputer fisik. Seperti DAS, disk virtual hidup dan mati dengan VM itu sendiri; jika VM dihapus, maka disk virtual juga akan terhapus.

Kebanyakan platform virtualisasi konvensional menggunakan model penyimpanan disk virtual. Misalnya, penyimpanan di lingkungan VMware vSphere, Microsoft Hyper-V, Red Hat Enterprise Virtualization, dan Xen semuanya dikelola dan dipasang dengan cara yang serupa.

Menerapkan disk virtual

Karena VMware ingin terus memberikan manfaat penyimpanan bersama ke mesin virtual, VMware tidak dapat mengandalkan protokol DAS untuk mengimplementasikan disk virtual. Pilihan selanjutnya yang jelas adalah menggunakan SAN, karena SAN LUN sangat mirip dengan drive disk lokal.

Namun, LUN fisik memiliki keterbatasan yang membuatnya menjadi tantangan yang cocok untuk disk virtual. Lingkungan virtual menggabungkan sejumlah komputer logis ke dalam satu server fisik, yang berarti jumlah disk virtual pada host tertentu akan jauh lebih besar daripada jumlah LUN fisik untuk host di lingkungan fisik. Jumlah maksimum LUN yang dapat dipasang ke server fisik tertentu terlalu rendah untuk mendukung jumlah disk virtual yang diperlukan.

Mungkin yang lebih penting, disk virtual, seperti halnya dengan CPU virtual, harus merupakan objek logis yang dapat dibuat, dihancurkan, dan dipindahkan secara terprogram, dan ini bukanlah operasi yang dirancang untuk dilakukan oleh penyimpanan SAN. Misalnya, VMware perlu memindahkan VM di antara host fisik secara dinamis, yang memerlukan akses penyimpanan bersama selama migrasi.

Karena alasan ini, VMware memilih untuk mengimplementasikan disk virtual sebagai file dalam sistem file (NFS) atau dalam sistem file terdistribusi (VMFS) di SAN, daripada sebagai LUN mentah.

Dari protokol penyimpanan hingga model penyimpanan

VMware memilih untuk mengimplementasikan disk virtual, model penyimpanan blok gaya DAS, di atas NAS atau SAN, menggambarkan salah satu karakteristik menarik dari penyimpanan pusat data modern. Karena IO dari mesin virtual diserahkan ke perangkat lunak di hypervisor, bukan ke perangkat keras di bus perangkat, protokol yang digunakan oleh VM untuk berkomunikasi dengan hypervisor tidak perlu mencocokkan protokol yang digunakan hypervisor untuk berkomunikasi dengan penyimpanan itu sendiri.

Ini mengarah pada pemisahan antara model penyimpanan yang diekspos ke atas ke VM dan administrator, dan protokol penyimpanan yang digunakan oleh hypervisor untuk benar-benar menyimpan data. Dalam kasus disk virtual, VMware merancangnya sesuai dengan model penyimpanan DAS, kemudian menggunakan protokol penyimpanan NAS untuk mengimplementasikannya.

Ini adalah lapisan tipuan yang kuat; ini memberi kami fleksibilitas untuk mencampur dan mencocokkan model penyimpanan dan protokol penyimpanan, dan bahkan secara dinamis mengubah protokol penyimpanan tanpa memengaruhi mesin virtual. Misalnya, disk virtual diimplementasikan menggunakan file di NFS, file di VMFS yang disimpan di Fiber Channel LUN, atau bahkan (di VVols, atau Volume Virtual) secara langsung sebagai LUN iSCSI. Pilihan implementasi sepenuhnya transparan untuk aplikasi, karena pada akhirnya semua protokol ini akan terlihat sama bagi VM dan administrator; mereka akan terlihat seperti drive disk fisik lokal yang terpasang ke VM.

Dengan demikian, pengembang aplikasi di sebagian besar infrastruktur cloud publik tidak dapat mengetahui protokol penyimpanan apa yang digunakan; pada kenyataannya, protokol tersebut bahkan dapat berubah secara dinamis. Kami tidak tahu protokol penyimpanan apa yang digunakan Amazon untuk Elastic Block Storage, juga tidak penting bagi kami untuk mengetahuinya.

Karena pemisahan antara model penyimpanan dan protokol penyimpanan, protokol penyimpanan menjadi masalah yang dihadapi infrastruktur, terutama penting untuk biaya dan kinerja, daripada keputusan menghadapi aplikasi yang menentukan fungsionalitas.

Penyimpanan awan

Lanskap pusat data bergeser lagi saat lingkungan tervirtualisasi berubah menjadi lingkungan cloud. Lingkungan cloud merangkul model disk virtual yang dipelopori dalam virtualisasi, dan menyediakan model tambahan untuk mengaktifkan tumpukan penyimpanan yang tervirtualisasi sepenuhnya. Lingkungan cloud berusaha untuk memvirtualisasikan seluruh tumpukan penyimpanan sehingga dapat menyediakan layanan mandiri dan pemisahan yang bersih antara infrastruktur dan aplikasi.

Lingkungan cloud datang dalam berbagai bentuk. Mereka dapat diimplementasikan oleh perusahaan sebagai cloud pribadi menggunakan lingkungan seperti OpenStack, CloudStack, dan suite VMware vRealize. Mereka juga dapat diimplementasikan oleh penyedia layanan seperti cloud publik seperti Amazon Web Services, Microsoft Azure, dan Rackspace.

Menariknya, model penyimpanan yang digunakan di lingkungan cloud mencerminkan model yang digunakan di lingkungan fisik. Namun, seperti halnya disk virtual, mereka adalah model penyimpanan yang dipisahkan dari beberapa protokol penyimpanan yang dapat digunakan untuk mengimplementasikannya.

Penyimpanan instan: Disk virtual di cloud

Model penyimpanan disk virtual adalah model utama (atau satu-satunya) untuk penyimpanan di lingkungan tervirtualisasi konvensional. Namun, dalam lingkungan cloud, model ini adalah salah satu dari tiga. Oleh karena itu, model diberi nama khusus di lingkungan cloud: penyimpanan instance, artinya penyimpanan yang digunakan seperti disk virtual konvensional.

Penting untuk diperhatikan bahwa penyimpanan instans adalah model penyimpanan, bukan protokol penyimpanan, dan dapat diterapkan dengan berbagai cara. Misalnya, penyimpanan instance terkadang diimplementasikan menggunakan DAS pada node komputasi itu sendiri. Diterapkan dengan cara ini, ini sering disebut penyimpanan sementara karena penyimpanan biasanya tidak dapat diandalkan.

Penyimpanan instans juga dapat diimplementasikan sebagai penyimpanan yang andal menggunakan NAS atau penyimpanan volume, model penyimpanan kedua yang dijelaskan selanjutnya. Misalnya, OpenStack memungkinkan pengguna untuk mengimplementasikan penyimpanan instance sebagai penyimpanan sementara pada host, sebagai file pada titik pemasangan NFS, atau sebagai volume Cinder menggunakan boot-from-volume.

Penyimpanan volume: SAN sans fisik

Namun, penyimpanan instans memiliki batasannya. Pengembang aplikasi cloud-native sering kali secara eksplisit membedakan data konfigurasi, seperti OS dan data aplikasi, dari data pengguna, seperti tabel database atau file data. Dengan memisahkan keduanya, pengembang kemudian dapat membuat konfigurasi sementara dan dapat dibangun kembali sambil tetap mempertahankan keandalan yang kuat untuk data pengguna.

Perbedaan ini, pada gilirannya, mengarah ke jenis penyimpanan lain: penyimpanan volume, hibrid penyimpanan instans, dan SAN. Volume adalah unit utama penyimpanan volume, bukan VM. Volume dapat dilepaskan dari satu VM dan dilampirkan ke VM lainnya. Namun, seperti disk virtual, volume lebih mirip dengan file daripada LUN dalam skala dan abstraksi. Berbeda dengan penyimpanan instans, penyimpanan volume biasanya dianggap sangat andal dan sering digunakan untuk data pengguna.

OpenStack's Cinder adalah contoh penyimpanan volume, seperti abstraksi volume independen Docker. Perhatikan lagi bahwa penyimpanan volume adalah model penyimpanan, bukan protokol penyimpanan. Penyimpanan volume dapat diimplementasikan di atas protokol file seperti NFS atau protokol blok seperti iSCSI secara transparan ke aplikasi.

Penyimpanan objek: NAS skala web

Aplikasi cloud native juga membutuhkan tempat untuk data yang dibagikan antar VM, tetapi sering kali aplikasi tersebut membutuhkan namespace yang dapat diskalakan ke beberapa pusat data di seluruh region geografis. Penyimpanan objek menyediakan penyimpanan semacam ini. Misalnya, Amazon S3 menyediakan satu namespace logis di seluruh wilayah dan, bisa dibilang, di seluruh dunia. Untuk mencapai skala ini, S3 perlu mengorbankan konsistensi yang kuat dan pembaruan mendetail dari NAS konvensional.

Penyimpanan objek menyediakan abstraksi seperti file yang disebut objek, tetapi pada akhirnya menyediakan konsistensi. Ini berarti bahwa meskipun semua klien pada akhirnya akan mendapatkan jawaban yang sama untuk permintaan mereka, mereka mungkin menerima jawaban yang berbeda untuk sementara. Konsistensi ini mirip dengan konsistensi yang disediakan oleh Dropbox antara dua komputer; klien mungkin untuk sementara tidak sinkron, tetapi pada akhirnya semuanya akan bertemu.

Penyimpanan objek tradisional juga menyediakan rangkaian operasi data yang disederhanakan yang disesuaikan untuk digunakan melalui koneksi WAN latensi tinggi: mencantumkan objek dalam "keranjang", membaca objek secara keseluruhan, dan mengganti data dalam objek dengan data yang sepenuhnya baru. Model ini menyediakan rangkaian operasi yang lebih mendasar daripada NAS, yang memungkinkan aplikasi membaca dan menulis blok kecil di dalam file, memotong file ke ukuran baru, memindahkan file antar direktori, dan sebagainya.