Penerapan Mekanisme Callback Pada
Rancang Bangun File System Menggunakan
Andrew File System
Beggy Fitra Hilla (5108 100 098)
Dosen Pembimbing :
Wahyu Suadi, S.Kom, MM, M.Kom
Baskoro Adi Pratomo, S.Kom, M.Kom
PRESENTASI TUGAS AKHIR – KI091391
Tujuan
Tujuan pembuatan tugas akhir ini adalah untuk dapat menerapkan
mekanisme callback pada sistem berkas yang digunakan supaya
pengguna dapat update terhadap perubahan berkas yang sedang
dibaca pada storage server.
Rumusan Masalah
1. Bagaimana cara kerja Callback pada File System.
2. Bagaimana mengimplementasikan mekanisme Callback
pada Andrew File System (AFS).
Callback
• Suatu janji yang diberikan cache manager kepada client saat
mengakses berkas.
• Penggunaan pada AFS untuk menjaga konsistensi berkas.
• State callback promise : valid dan cancel.
client_1 client_2
server Callback list of file A : - client_1
Gambaran Umum
Aplikasi
Arsitektur Sistem
AFS Client AFS Fuse Client AFS Fuse Server
File Request
Kernel
VFS Interfaces
AFS Module AFS Server Fuse Module VFS Interfaces Kernel Client Process File request Kernel User Space
Trigger Callback
Masalah-masalah yang membutuhkan konsistensi file pada local
storage terhadap fileserver dapat terjadi akibat adanya aksi-aksi
dasar berikut :
1.
Menimpa berkas (overwrite file).
2.
Membuat berkas (create file).
3.
Mengubah nama berkas (rename file).
4.
Menghapus berkas (delete file).
Operasi Callback
Operasi Getattr
Operasi ini dipanggil setiap aksi yang dilakukan oleh pengguna yang berfungsi untuk mendapatkan atribut / informasi file yang terdapat pada fileserver dengan bantuan Pyro untuk dapat mengirim informasi antara klien terhadap server.
Operasi Open
Operasi ini merupakan proses yang akan dilakukan sebelum memanggil operasi READ ataupun WRITE. Akan tetapi, pada aplikasi ini akan berfungsi pada saat pemanggilan operasi READ untuk mengcopi file dari server ke dalam local storage yang kemudian akan dibaca oleh klien pada operasi READ.
Operasi Mknod
Operasi ini berfungsi untuk membuat object node (file, device special file, atau named pipe) pada file system dengan permisi file diberikan oleh parameter mode. Pada aplikasi ini akan digunakan untuk membuat file baru oleh client di fileserver apabila diperbolehkan oleh server.
Operasi Unlink
Operasi ini merupakan proses yang digunakan aplikasi untuk menghapus file yang berada di
server maupun di local storage. Hasil proses ini membuat file sudah tidak tersedia lagi di server,
sehingga cache manager akan menghapus semua janji callback yang diberikan pada klien yang pernah membuka file tersebut
Operasi Rename
Operasi ini berfungsi untuk mengubah nama file yang dituju baik di fileserver maupun local
storage. Akan tetapi, untuk menghindari apabila file di local storage bukan merupakan versi file
terbaru di server, maka proses ini akan menghapus file dengan nama file yang lama, kemudian menyalin file dengan nama file yang baru dari server pada local storage pengguna. Setelah file dengan nama file yang lama terhapus, maka cache manager akan menghapus seluruh janji
callback yang diberikan pada pengguna untuk modifikasi file dengan nama file yang lama. Operasi Read
Operasi ini merupakan proses pembacaan file yang berada pada local storage, sehingga perlu menyalin file yang akan dibaca pada server terlebih dahulu melalui operasi OPEN. Jika file yang akan disalin telah terdapat pada local storage, maka file tersebut tidak perlu disalin lagi apabila cache manager pada server menyatakan bahwa file pada local storage klien masih memiliki janji callback yang valid. Apabila cache manager menyatakan bahwa file yang dimiliki oleh klien tersebut tidak valid / cancelled, maka server akan mengirimkan salinan file yang akan dibuka kepada klien untuk menumpuk / memperbarui file yang lama
Operasi Write
Operasi ini adalah proses untuk menulis atau mengedit data. Hal ini diperbolehkan oleh server apabila janji callback pada file yang akan dimodifikasi bernilai valid. Jika tidak, maka kemungkinan yang terjadi adalah file pada server telah dimodifikasi oleh pengguna lain. Sehingga pengguna yang gagal memodifikasi akibat state callbacknya cancelled, harus membuka kembali dan menyalin file terbaru pada local storage. Apabila file yang akan dibuka tidak disediakan lagi oleh server, maka file pada local storage juga akan dihapus pada saat melakukan proses ini, untuk memberitahukan bahwa file sudah tidak disediakan lagi oleh
server.
Dalam proses ini pula, cache manager bekerja membatalkan atau mengubah state janji seluruh klien yang pernah membuka file tersebut menjadi cancelled.
Lingkungan Uji Coba
Lingkungan implementasi perangkat lunak yang digunakan dalam pembuatan
tugas akhir ini meliputi perangkat lunak dan perangkat keras. Lingkungan
implementasi program diberikan sebagai berikut :
Perangkat Keras
- Server :
Komputer dengan dukungan prosesor Intel Pentium 4 HT 3,00 GHz, memory 2GB.
- Client :
Komputer dengan dukungan prosesor Intel Pentium 4 HT 3,00 GHz, memory 1GB
Perangkat Lunak
- Server :
Sistem operasi GNU Linux Ubuntu Lucid 10.4 , Python 2.6.5, Pyro-3.9.1.
- Client :
Sistem operasi GNU Linux Ubuntu Lucid 10.4, Python 2.6.5, Pyro-3.9.1, nano 2.2.2, fuse_python-0.2.
Skenario Uji Coba
Sebagai perbandingan akan diujikan dengan file
system lain seperti NFS dan Samba.
Uji coba fungsionalitas :
Dimana nantinya pelaksanaan akan dilakukan
pada tiga buah komputer untuk melakukan
operasi yang ada.
Uji coba kecepatan akses :
Menggunakan satu komputer yang sama untuk
melakukan operasi standar yang kemudian
melakukan penghitungan waktu prosesnya.
Uji coba yang dilakukan meliputi :
- Uji coba fungsionalitas.
- Uji coba performa (kecepatan).
client_1 client_2Uji Fungsionalitas
Pada ujicoba fungsionalitas ini akan dicobakan berbagai
macam
proses-proses yang digunakan pada pemakaian
sehari-hari yang mana berhubungan dengan penggunaan
mekanisme callback. Pada uji coba fungsionalitas ini akan
ditemukan beberapa fungsionalitas dari operasi berkas yang
tidak akan dapat dieksekusi dikarenakan tidak semua
fungsionalitasnya diimplementasikan di dalamnya.
Uji Fungsionalitas
:: Overwrite File
Uji Fungsionalitas
:: Create File
Uji Fungsionalitas
:: Rename File
$ nano a.txt
Uji Fungsionalitas
:: Delete File
$ nano a.txt $ rm a.txt
Uji Performa (Kecepatan)
Uji coba performa dilakukan dengan cara melakukan berbagai macam
percobaan untuk proses baca / tulis terhadap berkas pada file system.
Pencatatan diatur dengan cara mencatat waktu sebelum
mengeksekusi perintah yang kemudian dicari selisihnya dengan waktu
setelah operasi selesai dilakukan. Pencatatan waktu menggunakan
satuan milisecond.
Hal ini dilakukan untuk menemukan adanya pengaruh yang
ditimbulkan apabila suatu file sistem diberikan mekanisme callback.
Uji Performa (Kecepatan)
:: Read
Time (milisecond) AFS-FUSE AFS-FUSE + Callback NFS Samba read I 1.368 4.177 0.675 1.373 II 0.506 2.433 0.304 1.44 III 0.635 2.371 0.739 0.996 IV 0.902 2.337 0.307 1.019 V 0.954 2.48 0.332 0.997 0 1 2 3 4 5 1 2 3 4 5 W aktu p ro se s (m ili se co n d ) No. Percobaan Operasi Read AFS-FUSE AFS-FUSE + Callback NFS SambaUji Performa (Kecepatan)
:: Write
AFS NFS Samba write I 16.557 2.953 2.347 II 15.151 2.641 3.756 III 12.866 2.481 3.532 IV 15.219 2.391 3.135 V 12.73 2.368 3.582 0 2 4 6 8 10 12 14 16 18 1 2 3 4 5 Wa kt u P ro se s (m ili se co n d ) No. PercobaanOperasi Write
AFS NFS SambaAFS NFS Samba copy I 16.592 2.879 3.652 II 15.337 2.653 3.602 III 15.002 2.747 3.21 IV 15.389 2.44 3.668 V 13.146 3.079 3.184
Uji Performa (Kecepatan)
:: Copy
0 2 4 6 8 10 12 14 16 18 1 2 3 4 5 Wa kt u P ro se s (m ili se co n d ) No. PercobaanOperasi Copy
AFS NFS SambaUji Performa (Kecepatan)
:: Perbandingan Seluruh Operasi
Time (milisecond)
Operasi AFS NFS Samba READ 11.2644 0.4714 1.165 WRITE 14.5046 2.5668 3.2704 COPY 15.0932 2.7596 3.4632 0 2 4 6 8 10 12 14 16
READ WRITE COPY
w ak tu p ro se s (m ili se co n d ) Proses Percobaan
Seluruh Operasi
AFS NFS SambaKesimpulan
1. Telah diimplementasikannya mekanisme callback pada file system yang digunakan, yaitu Andrew File System
2. Kecepatan proses berkas yang dilakukan oleh AFS yang telah ditambahkan mekanisme callback untuk setiap operasi dapat disimpulkan sebagai berikut : - Operasi READ : 2389% dari kecepatan proses berkas pada NFS. Dan
966% dari kecepatsn proses berkas pada Samba.
- Operasi WRITE : 565% dari kecepatan proses berkas pada NFS. Dan 443% dari kecepatsn proses berkas pada Samba.
- Operasi COPY : 546% dari kecepatan proses berkas pada NFS. Dan 435% dari kecepatsn proses berkas pada Samba
3. Penambahan mekanisme callback pada AFS membuat waktu untuk memproses berkas menjadi lebih lama dibandingkan file system NFS maupun Samba, karena server juga melakukan proses pengaturan callback