BLANTERORBITv102

    Mengenal Google File System

    Senin, 16 Januari 2012
    GOOGLE. Semua orang yang pernah berinteraksi dengan dunia maya hampir bisa dipastikan mengenal nama itu. Google diduga memiliki lebih dari satu juta server yang terdistribusi di seluruh dunia. Namun, siapa sangka jutaan server tersebut bukanlah mesin-mesin canggih keluaran terbaru, melainkan serangkaian komputer Linux yang mengandalkan GFS (Google File System)?

    Google menggunakan GFS untuk mengorganisasi dan memanipulasi file-file raksasa dan mengizinkan para pengembang aplikasi untuk meneliti dan mengembangkan sumber daya yang merek butuhkan. GFS hanya digunakan oleh Google dan tidak dirilis untuk publik, tetapi kita bisa mengetahui keunggulan dan cara kerjanya.

    Google memiliki file-file besar yang sulit dimanipulasi dengan menggunakan file system biasa. Mereka membutuhkan file system khusus untuk memudahkan pekerjaan para pengembang aplikasi yang bekerja di perusahaan ini. Selain itu, hal penting lainnya adalah skalabilitas, yang menyangkut kemudahan menambah kapasitas ke dalam sistem. Sistem dikatakan scalable jika kapasitasnya mudah ditambah.

    Kinerja sistem juga tidak boleh melembek akibat pertumbuhannya. Skalabilitas adalah harga mati bagi Google karena perusahaan ini membutuhkan jaringan yang sangat besar untuk menangani semua file. Memonitor dan merawat jaringan yang sangat besar bukanlah perkara sepele. Para programmer harus mengotomatisasi sebanyak mungkin pekerjaan administratif untuk menjamin kelangsungan waktu "on" server. GFS adalah kata kunci dari otonomi  komputasi, konsep yang memungkinkan komputer mendiagnosis masalah dan memecahkannya secara real-time tanpa intervensi manusia.

    Google mengorganisasi GFS ke dalam cluster-cluster komputer. Secara sederhana, cluster adalah jaringan komputer. Setiap cluster bisa terdiri atas ratusan, bahkan ribuan mesin. Dalam cluster GFS terdapat tiga entitas, yakni client, master dan chunkserver.

    Client adalah entitas yang merequest file. Request disini mencakup aktivitas mengambil dan memanipulasi file yang ada untuk membuat file baru. Client bisa berupa komputer lain atau aplikasi.

    Master bertindak sebagai koordinator cluster. Salah satu tuga master adalah memelihara log operasi, rekam jejak aktivitas yang dilakukan oleh master itu sendiri. Log operasi akan membantu meminimalkan interupsi jika sewaktu-waktu master mengalami kerusakan, server lain yang memonitor log operasi bisa langsung menggantikannya.

    Master juga memelihar rekam metadata, informasi yang menggambarkan chunkserver. Metadata memberi tahu master file-file apa saja yang dimilik oleh chunkserver. Pada startup, master mengabsen semua chunkserver dalam cluster-nya. Chunkserver merespons dengan memberitahukan inventaris mereka.

    Hanya ada satu master yang aktif dalam sebuah cluster pada satu waktu meskipun setiap cluster memiliki beberapa master cadangan yang memiliki catatan metadata yang sama. Bila demikian, apakah tidak terjadi efek leher botol jika ada request dari client? Disinilah kelebihan GFS dalam menangani situasi padatnya arus lalu lintas data. Master hanya mengirimkan dan menerima data yang sangat kecil. Master pada kenyataannya tidak menangani file data sama sekali, melainkan memercayakannya kepada chunkserver.

    Chunkserver adalah kuli dalam GFS. Mereka bertugas menyimpan potongan-potongan data sebesar 64 MB! Chunkserver tidak mengirimkan potongan-potongan data tersebut kepada master, melainkan langsung kepada client yang merequestnya. GFS menyalin setiap potongan data tersebut beberapa kali dan menyimpannya dalam chunkserver yang berbeda. Setiap salinan disebut replika. Secara default, GFS membuat tiga replika untuk setiap potongan data.
    GFS Arsitektur (sumber gambar pada sumber ke - 3 (pdf))
    Tidak ada yang istimewa dalam read request file. Client mengirimkan request kepada master untuk menemukan dimana client bisa mencari file tertentu dalam sistem. Master merespons request dengan mengirimkan lokasi replika utama kepada client.

    Master menentukan replika utama berdasarkan IP address client dan menunjuk chunkserver terdekat dari client untuk menjawab permintaan client. Selanjutnya, client mengontak secara langsung chunkserver yang telah ditunjuk oleh master.

    Write request agak sedikit lebih rumit. Client masih mengirimkan request kepada master, yang menjawab dengan menunjukkan lokasi replika utama dan kedua. Jika replika utama tidak tersedia untuk diubah, client harus kembali berkonsultasi dengan master sebelum mengontak chunkserver. Client kemudian mengirimkan perubahan data kepada semua replika, mulai replika terdekat dan berakhir pada replika terjauh. Tidak peduli apakah replika terdekat dengannya adalah replika utama atau kedua.

    Begitu replika menerima data tersebut, replika utama mulai memproses perubahan data secara berurutan. Perubahan tersebut dikenal dengan nama "mutasi". Setelah mutasi replika utama selesai, barulah write request yang sama dikirimkan kepada replika kedua yang akan menjalankan proses mutasi yang sama.
    Cara Kerja GFS (sumber gambar pada sumber ke 4 (pdf))
    sumber: Tabloid PC Mild
    http://en.wikipedia.org/wiki/Google_File_System
    http://os.inf.tu-dresden.de/Studium/DOS/SS2011/04-GFS-2.pdf
    http://www.cs.brown.edu/courses/cs295-11/2006/gfs.pdf

    Author

    Iqbal Alghifari

    BLOGGER DARI KALIMANTAN SELATAN