[Review] CacheFS: File System Hibrida Antara RAM, SSD, dan HDD

Projek CacheFS merupakan riset tentang sistem berkas (file system); yang dilakukan oleh Ioan Ovidiu Hupca, Ionuţ Bogdan Petre, dan Alexandru Cristian Stan. Telah dipublikasikan pada tahun 2010, riset tersebut dapat diakses secara terbuka di Google Project.

Fokus projek ini adalah hybrid file system, yaitu penggunaan gabungan Random-Access Memory (RAM), solid-state drive (SSD), dan hard disk drive (HDD), dengan tujuan:

  • mempercepat waktu akses file dan throughput file,
  • merealisasikan kemungkinan perbaikan konsumsi daya.

Ide utama projek ini adalah menggunakan memori cepat (RAM dan SSD) sebagai cache dua-tingkat. File yang terbanyak diakses akan disimpan ke RAM, sedangkan yang diakses lebih sedikit akan berada di SSD. Ketika sebuah file tidak terletak dalam cache, maka terjadilah cache-miss, dan akhirnya data dibaca dari HDD.

Riset pendahulu projek ini adalah Conquest-2 di UCLA. Conquest-2 hanya menggunakan RAM dan HDD saja, tetapi menerapkan profiling pola pengaksesan file yang lebih canggih. Kontribusi yang dihadirkan oleh projek CacheFS antara lain:

  • CacheFS menggunakan SSD sebagai cache tingkat-dua.
  • SSD dapat digunakan untuk menyimpan file-file besar, yang tidak dapat disimpan di RAM.
  • Prioritas penyimpanan file setelah RAM tidak langsung ke HDD, sehingga bisa lebih menghemat daya.

Namun demikian, kontribusi tersebut tak lepas pula dari kelemahan. Penggunaan cache dua-tingkat memerlukan penggunaan algoritma caching yang lebih spesifik untuk memindah-mindahkan data antara dua penyimpan data (RAM dan SSD), sehingga untuk aplikasi yang berbeda bisa membutuhkan algoritma yang berbeda-beda.

Bagaimana metode yang dimiliki oleh CacheFS? Berikut adalah arsitekturnya:

Gambar 1. Arsitektur CacheFS
(klik pada gambar untuk mengunduhnya dalam ukuran yang lebih besar)

File  System  Driver

File System Driver merupakan modul inti projek ini. Tugasnya adalah menyediakan file-file dari tiga media penyimpan data yang tersedia (berdasarkan kecepatan: RAM, SSD dan HDD) dan menerapkan algoritma caching dan prefetching yang berbeda-beda untuk memindahkan data di antara media penyimpan data tersebut.

Pada implementasi saat ini, dengan pertimbangan kepraktisan, yaitu memungkinkan untuk pengujian performansi dan debugging yang lebih mudah, digunakan FUSE untuk mengimplementasikan driver. Rutin-rutin sistem file dijalankan di dalam ruang pengguna (user space). Rencana ke depannya, jika kelayakannya telah terbukti, rutin-rutin tersebut dapat di-porting ke ruang kernel (kernel space).

Sistem file FUSE, ketika dipasang (mounted), memberikan pandangan virtual terhadap file-file yang di-cache. Oleh karenanya, aplikasi bisa mendapatkan keuntungan dari fitur-fitur CacheFS tanpa perlu melakukan modifikasi atau kompilasi ulang.

Application Profile Builder

Profil-profil aplikasi dapat dibangun dengan Application Profile  Builder. Profil aplikasi digunakan agar algoritma caching dan prefetching bekerja secara optimal untuk aplikasi tertentu. Profil aplikasi menunjukkan:

  • file apa yang diakses,
  • kapan mereka diakses,
  • dan bagaimana urutan file tersebut biasanya dimuat.

Dengan menandai titik awal urutan, driver dapat melakukan file prefetching, yaitu memuat file berikutnya sebelum permintaan pengaksesannya benar-benar dikirim.

Dengan menggunakan function  interception dan library  preloading, Application Profile  Builder “membajak” semua rutin pengaksesan file tersebut, dan menggunakannya untuk membuat deskripsi pola-pola interaksi file.

Cache Algorithms Simulator

Ada beberapa algoritma caching yang diimplementasikan. Performansi mereka diuji dalam perbandingan antara hasil praktis dan hasil teoritis, melalui Cache  Algorithms  Simulator. Simulator tersebut menjalankan algoritma-algoritma dan menghasilkan beberapa metrik. Mereka yang menghasilkan hasil terbaik diimplementasikan ke dalam driver, dan kinerja mereka dibandingkan.

Beberapa algoritma caching dapat memuat profil aplikasi untuk menyempurnakan diri mereka sendiri pada aplikasi tertentu. Misalnya, dengan menggunakan profil aplikasi, file-file yang terbanyak diakses dapat dimuat langsung ke RAM sementara file lain dapat disalin ke SSD atau dibiarkan saja di HDD. Hal ini dilakukan tanpa menggunakan metadata dan counter akses yang ada (karena itu overhead lebih sedikit).

Kritikan

Metode yang ditawarkan dalam CacheFS sebenarnya cukup menjanjikan. Sayangnya, masih terdapat beberapa kelemahan pada riset yang dilakukan, antara lain:

  • Benchmarking terhadap file  system  driver  hanya dilakukan di lingkungan VMWare virtual machine, sehingga tidak dapat sepenuhnya mencerminkan kondisi riil.
  • Pengujian tidak menggunakan SSD yang sebenarnya, melainkan hanya menggunakan mount-point HDD. Hal ini mengakibatkan tidak bisa didapatkannya kecepatan yang sebenarnya.
  • Pengukuran waktu akses hanya dilakukan dengan menghitung selisih antara dua nilai hasil pemanggilan fungsi pustaka gettimeofday().

Future Works

Beberapa aspek yang masih dapat dikembangkan lebih lanjut untuk memberikan kontribusi baru antara lain:

  1. Masih belum disinggung bagaimana mekanisme sinkronisasi data, terutama pada lingkungan multitasking; jika file pada HDD termodifikasi setelah ia disimpan ke dalam cache. Sehingga perlu adanya pengembangan mekanisme sinkronisasi data; misalnya jika file yang diambil dari cache termodifikasi sebelum dikirim kembali ke HDD, perubahan pada salinan file di HDD akan di-overwrite.
  2. Pemaparan mengenai kapan dan bagaimana daftar hasil monitoring pengaksesan file yang dihasilkan oleh Application Profile Builder di-recycle.
  3. Implementasi dan pengujian hendaknya dilakukan dalam lingkungan riil, sehingga didapatkan hasil yang lebih akurat.
  4. Implementasi algoritma caching yang lebih baik, yang dapat di-tuning secara spesifik untuk aplikasi-aplikasi tertentu.
  5. Pencarian metode yang lebih baik untuk pengukuran waktu akses file.
  6. Pengembangan simulator yang lebih canggih, yang dapat mempertimbangkan lebih banyak faktor/parameter.
Memang tidak ada riset yang sempurna. Setiap penelitian pastilah punya kekurangan, dan itu berarti kesempatan baru bagi peneliti berikutnya untuk memperbaiki atau mengembangkannya.. ;)

Referensi

Conquest-2 project at UCLA – http://www.lasr.cs.ucla.edu/Conquest-2.html

cachefs – Hybrid RAM, SSD, HDD file system. http://code.google.com/p/cachefs/

Leave a Response

CAPTCHA Image
*