Bangun sistem file terdistribusi Anda sendiri

Salah satu komponen penting yang membuat Google begitu efektif adalah sistem file terdistribusinya, yang mendasari semua aplikasi seperti Mail, Dokumen, dan layanan foto Picasa.

Bangun sistem file terdistribusi Anda sendiri

Sistem File Google membagi file pengguna ke dalam paket-paket dan mendistribusikannya ke kumpulan server, yang didistribusikan sendiri ke banyak pusat hosting.

Banyak orang menginginkan sistem file yang andal untuk aplikasi mereka sendiri, tetapi Google saat ini tidak mengizinkan akses API langsung (walaupun layanan Amazon S3 sangat mirip).

Sampai saat ini, sebagian besar sistem file yang andal memusatkan data ke node penyimpanan yang dibangun dari perangkat keras khusus yang mahal – misalnya jaringan area penyimpanan dengan duplikasi pengontrol, catu daya, dan drive disk, menggunakan interkoneksi saluran fiber yang berjalan dengan kecepatan gigabit – sedangkan penyiapan Google menggunakan perangkat keras komoditas yang murah sebagai perangkat bangunan blok.

Kami sekarang dapat mendistribusikan penyimpanan di server yang sangat murah, yang mungkin hanya memiliki satu soket prosesor tetapi ruang disk terabyte

Kemajuan terbaru dalam teknologi membuat simpul khusus seperti itu terasa usang. Di mana Anda mungkin telah membuat node tangguh 1TB dari selusin disk 250GB (lima drive sebagai RAID5 plus satu hot cadangan, digandakan ke dalam cermin RAID10), tahun ini drive tunggal 1TB sedang dijual dan yang lebih besar akan segera tersedia tersedia.

Kami sekarang dapat mendistribusikan penyimpanan di server yang sangat murah, yang mungkin hanya memiliki satu soket prosesor tetapi ruang disk terabyte.

Sebagian besar aplikasi modern sebenarnya tidak menggunakan banyak penyimpanan: kita mungkin memiliki disk multi-terabyte, tetapi jarang menggunakan semua ruang tersebut. Misalnya, saya mulai menulis kolom 3.000 kata ini beberapa tahun yang lalu dan telah menggunakan tiga versi baru Word pada waktu itu, tetapi ukuran dokumen hampir tidak bertambah sama sekali – kecepatan yang jauh lebih lambat daripada drive kapasitas.

Jadi, inilah model baru kami untuk membangun ketahanan – lakukan Google menggunakan perangkat keras sederhana dan murah serta perangkat lunak sumber terbuka untuk mengikatnya ke dalam sistem file yang dapat digunakan oleh aplikasi yang ada. Kami tidak ingin menulis ulang aplikasi kami untuk menggunakan sistem file ini, seperti yang terjadi pada beberapa sistem file paralel masif.

Nyalakan FUSE

FUSE (Sistem file di ruang USE) adalah paket sumber terbuka untuk membuat sistem file baru, yang paling menyenangkan di Linux tetapi dapat dijalankan di Mac OS X dan, dalam beberapa kasus, bahkan Windows.

Sistem file biasanya dibuat dan dikelola melalui OS di ruang memori "kernel" atau "istimewa", tetapi sementara FUSE sendiri menggunakan modul yang berjalan di bawah kendali kernel OS, ini memungkinkan aplikasi pengguna biasa untuk membuat sistem file yang dapat digunakan oleh orang lain aplikasi.

Kami telah menyebutkan FUSE sebelumnya di kolom ini sebagai dasar dari berbagai ekstensi sistem file yang berguna: untuk misalnya, untuk sistem Unix terdapat utilitas berbasis FUSE untuk mengaktifkan enkripsi (berguna untuk mengelola USB dengan aman tongkat); akses ke file arsip (perlakukan zip sebagai satu set direktori); dan sistem file asing seperti gambar NTFS di dalam Unix.

Dengan mengimplementasikan antarmuka tertentu ke kernel OS, FUSE memungkinkan aplikasi muncul dan berperilaku sebagai sistem file, sambil memantau apa yang dilakukan aplikasi tersebut ke sistem file.

Aspek terakhir ini akan menjadi sangat penting untuk implementasi kita, karena ini akan menjadi kunci untuk mendistribusikan data file. Katakanlah aplikasi kita adalah server email yang mengakses kumpulan file di sistem file tangguh kita – untuk memastikan ketahanan kita perlu memastikan setiap file digandakan setidaknya sekali, dan itu terjadi secara terpisah mesin.