GFS: Menggotong-royongkan Ribuan Komputer ala Google
Dengan teknologi crawler-nya Google telah
mampu mendownload seluruh web page yang ada di dunia maya Internet dan
terus-menerus meng-update-nya. Lalu, dimana dan bagaimana Google bisa menyimpan
dan mengolah file berukuran super besar ini? Apakah Google menyimpannya dalam
Hard Disk Drive (HDD) yang super besar juga? Jawabannya, tentu tidak. Solusinya
bukan HDD super besar tapi gotong-royong. Gotong-royong dapat membuat pekerjaan
yang besar menjadi lebih ringan, dan budaya ini sudah biasa dilakukan bangsa
kita sejak ratusan tahun yang lalu. Pertanyaannya, bagaimana komputer bisa
bergotong-royong?
Dalam artikel "Big
Data dan Rahasia Kejayaan Google" telah disebutkan bahwa Google
menggunakan teknologi yang disebut Google File System (GFS), Google MapReduce
dan Google Bigtable untuk mengolah dan memberdayakan Big Data. Kemudian MapReduce
dibahas lebih detail pada artikel "Google
MapReduce: Besar dan Powerful tapi tidak Ribet". Pada kesempatan ini
kita akan berbincang tentang Google File System, sebuah teknologi yang bisa
menggotong-royongkan ribuan komputer.
Segala
sesuatu mulai dari definisi.
Google File System adalah salah satu jenis
dari media penyimpanan data seperti halnya hard disk drive (HDD), flash disk,
DVD-R dan sebagainya. Bedanya, GFS menyimpan data-nya secara terdistribusi pada
komputer-komputer dalam suatu cluster. Lalu cluster itu apa? Cluster dalam
konteks ini adalah network atau jaringan komputer yang terdiri atas ratusan atau
bahkan ribuan komputer. Yang namanya network berarti komputer yang ada
didalamnya sudah dalam kondisi saling berhubungan, bisa saling berkomunikasi,
bisa saling tukar data. Berkat kemampuannya yang bisa menyimpan data secara
terdistribusi ini GFS bisa menyimpan data super besar yang tidak bisa disimpan
dalam suatu HDD paling besar sekalipun.
Struktur
dan Unsur-unsur Dasar.
GFS memiliki tiga entitas / unsur utama,
yaitu: Master Servers, Chunkservers, dan Clients. Master Servers adalah server
central yang mengendalikan dan memonitor kondisi GFS secara keseluruhan.
Chunkservers adalah bagian yang bertanggungjawab menyimpan dan membaca file ke/dari
HDD tiap node (node: satu komputer yang berada dalam cluster GFS). Chunkservers
yang jumlahnya banyak ini berada dibawah kendali Master Servers. Terakhir,
Clients adalah aplikasi yang menggunakan GFS yang menyimpan dan membaca file
ke/dari GFS (Gambar 1). Tiap chunk (blok data) akan direplikasi secara
otomatis dan disimpan dalam tiga Chunkservers. Ini berguna sebagai cadangan
jika terdapat Chunkservers yang rusak. Kemudian Master Servers akan mengatur
distribusi chunks (block-block data) ke tiap Chunkservers sedemikian rupa
sehingga terdistribusi secara merata. Tidak ada yang mendapat chunk berlebih,
juga tidak ada yang mendapat terlalu sedikit.
Gambar 1. Tiga
unsur utama Google File System
Pada saat membaca data, GFS akan memilih
servers yang terdekat, sedangkan pada saat menulis/menyimpan data, GFS akan
melakukannya dalam beberapa servers sekaligus. GFS tidak memfasilitasi
penyimpanan / penulisan data secara bersamaan, melainkan dilakukan secara
atomic. Artinya, selama data masih dalam proses penyimpanan / penulisan oleh
suatu aplikasi, maka data tersebut beserta lokasinya dalam memory tidak akan
bisa diakses oleh aplikasi lain sampai proses penyimpanan tersebut benar-benar
selesai.
Karakteristik
yang membuatnya unggul.
Salah satu kelebihan GFS adalah GFS
dijalankan pada cluster yang terdiri atas komputer-komputer biasa yang relatif
tidak mahal. Google tidak menjalankan GFS dengan menggunakan komputer-komputer
handal dengan spesifikasi dan kualitas super melebihi komputer biasa yang
beredar dipasaran. Oleh karena itu, kerusakan atau kegagalan pada suatu node
(titik yang mengacu pada satu komputer pada suatu cluster) adalah hal yang
lumrah terjadi dan sudah diprediksi sebelumnya. Untuk mengantisipasi hal ini,
GFS didesain untuk tetap dapat berjalan
normal walaupun terjadi kegagalan dalam suatu node. Singkatnya, GFS itu tahan
banting.
Selain tahan banting, GFS juga scalable.
Artinya GFS bisa di-scale up dan di-scala out (maaf meminjam istirlah bahasa
tetangga). Di-scale up artinya GFS bisa ditingkatkan kapasitasnya dengan
meningkatkan spesifikasi komputer-komputer yang mengusungnya. Sedangkan
di-scale out artinya GFS dapat diperbesar kapasitasnya dengan menambah jumlah
komputer pada cluster tempat ia dijalankan. Kedua proses ini dapat dilakukan
tanpa harus men-set up dari awal, tidak perlu setting ulang dan tak perlu
melalukan pemindahan data dari sistem lama ke sistem baru yang telah
di-upgrade. Beda halnya kalau kita menggunakan system konvensional. Pada saat
akan mengganti atau mengupgrade kapasitas komputer, kita harus melakukan
setting ulang. Proses pemindahan data dari system lama ke system yang baru juga
merupakan hal yang mutlak.
Silakan
dicoba.
Demikian pembahasan singkat tentang GFS
yang merupakan media penyimpanan data secara terdistribusi dalam suatu cluster
yang terdiri dari ratusan hingga ribuan komputer. Seperti halnya HDD, USB Flash
Disk dan media penyimpanan data lainnya, GFS tidak bisa menghasilkan apa-apa
bila tidak ada program yang mampu mengoperasikan dan memberdayakannya. Sebagai
pasangannya, Google telah menciptakan MapReduce, yaitu software yang berjalan
diatas GFS. Dengan menggunakan MapReduce-lah kita bisa memberdayakan GFS.
Silakan simak artikel "MapReduce:
besar dan powerful, tapi tidak Ribet" untuk penjelasan lebih rinci tentang
MapReduce. Dalam artikel tersebut juga dijelaskan bagaimana cara menjalankan
MapReduce dan GFS versi Open Source lansiran Apache, pada komputer berbasis
Windows maupun Linux. Metode menjalankannya dapat dilakukan dengan hanya
menggunakan satu PC Windows/Linux maupun dengan beberapa PC, dan disertai
dengan contoh program.
Selamat Mencoba!
Referensi:
"Google を支える技術", Nishida Keisuke, WEB+DB PRESS 2008
"The Google File System", Sanjay
Ghemawat et al, Google Inc. 2003
Comments
Ditunggu kunjungan baliknya ke Postingan terbaru Saya ya di Trik Mengembalikan Data / File yang Terhapus dengan Easeus Data Recovery Wizard atau Web saya di Toko Komputer Online Terpercaya