• Tidak ada hasil yang ditemukan

Rancang Bangun File System Menggunakan NFS Semantic yang Berjalan pada User Space

N/A
N/A
Protected

Academic year: 2021

Membagikan "Rancang Bangun File System Menggunakan NFS Semantic yang Berjalan pada User Space"

Copied!
7
0
0

Teks penuh

(1)

1

Rancang Bangun File System Menggunakan NFS

Semantic yang Berjalan pada User Space

Lanang Aditya Nugraha, Wahyu Suadi, Baskoro Adi Pratomo Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember

1 lanang@its.ac.id 2 wahyu@its-sby.edu 3 baskoro@if.its.ac.id

Abstract— Kebutuhan komputasi meningkat seiring dengan banyaknya manfaat dan kemudahan yang disediakan untuk membantu berbagai macam pekerjaan manusia. Perkembangan teknologi dan tingginya kebutuhan terhadap teknologi yang dapat mempermudah pekerjaan manusia menuntut komputasi yang cepat untuk data dalam skala besar. Hal ini tentu saja berimbas pada kebutuhan storage yang juga semakin meningkat. Untuk itu perlu adanya perhatian khusus terhadap masalah pengembangan dan improvisasi dari sisi storage itu sendiri. Dari sana muncul ide untuk menempatkan storage secara terpisah dari workstation. Sehingga dimunculkanlah ide untuk adanya sebuah storage server atau file server yang terpusat.

Perkembangan teknologi storage ke arah model klien-server

membangkitkan munculnya gairah baru dan improvisasi

perkembangan protokol penyimpanan data yang dapat berjalan pada suatu jaringan. Munculnya berbagai macam protokol penyimpanan data dalam jaringan seperti NFS, AFS, dan CIFS. Dimana setiap jenis protokolnya memiliki fitur-fitur tertentu dan memiliki kemampuan spesifik masing-masing teknologi. Dari kesemuanya itu menunjukkan bahwa perkembangan storage di arahkan pada penyimpanan data secara terpusat. Mungkin mendatang diharapkan adanya penerapan teknologi baru semacam load balancer, fail over dan single mount point untuk meningkatkan realibilitas dari klien server storage itu sendiri. Pengaturan berkas dan system call akan menggunakan fungsi-fungsi yang disediakan oleh FUSE dengan memanfaatkan Pyro RPC sebagai media komunikasi dari klien ke server. Sehingga memungkinkan segala operasi berkas dilakukan langsung pada sisi remote.

Dari uji performa FUSEFS (FUSE File System) ini didapat bahwa FUSEFS ini mampu beroperasi 20,08% lebih cepat dari NFS dan 42,24% lebih cepat daripada SMBFS.

.

Keywords

FUSEFS, Pyro, Python-fuse, RPC, NFS Semantic

I. PENDAHULUAN

1.1 Latar belakang masalah

Kebutuhan komputasi meningkat seiring dengan banyaknya manfaat dan kemudahan yang disediakan untuk membantu berbagai macam pekerjaan manusia. Perkembangan teknologi dan tingginya kebutuhan terhadap teknologi yang dapat mempermudah pekerjaan manusia menuntut komputasi yang cepat. Hal ini tentu saja berimbas pada kebutuhan storage yang juga semakin meningkat. Untuk itu perlu adanya perhatian khusus terhadap masalah pengembangan dan improvisasi dari sisi storage itu sendiri.

Dari kenyataan yang ada tersebut muncul keinginan untuk mewujudkan adanya sistem penyimpanan terpusat yang

berjalan pada level user space. Sistem ini dibuat sebagai alternatif dari sistem penyimpanan yang ada saat ini. Harapannya dengan adanya sistem storage yang dibuat sendiri dan berjalan pada level user space ini fleksibilitas dari sistem

storage akan sangat bermanfaat dan membantu. Dimana

nantinya setiap orang dapat saling membantu menambahkan fitur pada sistem ini. Entah itu berupa permodelan fail over maupun implementasi single mount point pada sistem tersebut.

Pemilihan penggunaan FUSE lebih dititik beratkan pada kemudahan pengaksesan, implementasi, dan penggunaan dari sistem itu sendiri nantinya. Sehingga apabila sistem tersebut telah dapat diselesaikan, maka user dapat

menggunakan dalam sebuah jaringan. Ide pengambilan komunikasi melalui jaringan didapat dari protokol NFS yang kemudian akan didefinisikan sendiri tentang bagaimana media dan alur komunikasinya.

1.2 Tujuan

Tujuan dari pembuatan tugas akhir ini adalah untuk mengimplementasikan sebuah filesystem yang memungkinkan pengguna untuk melakukan operasi berkas yang berada pada suatu storage server khusus.

Dengan hadirnya ini, diharapkan akan membantu pengguna ketika menginginkan adanya alternatif penyimpanan data terpusat yang dapat dijalankan dari klien yang mampu menjalankan program berbasis python.

Adapun manfaat yang dapat diambil dari aplikasi yang dibangun pada tugas akhir ini adalah memberikan sumbangsih pemikiran dan aplikasi bagi masyarakat, khususnya yang sering memanfaatkan dan melakukan perubahan pada data yang tersimpan secara terpusat.

1.3 Batasan masalah

Permasalahan yang dibahas dalam Tugas Akhir ini memiliki beberapa batasan, diantaranya sebagai berikut:

 Filesystem dibuat agar berjalan memanfaatkan FUSE-python.

 Filesystem dibuat agar bisa diakses dengan model klien-server dalam jaringan lokal.

 Semantic yang ada pada filesystem ini nantinya adalah: create_file read_file create_directory delete_directory chmod_file chown_file list_file

(2)

2

 Protokol yang digunakan adalah TCP.

II. TINJAUAN PUSTAKA A. FUSE

Filesystem in Userspace (FUSE) merupakan kernel

modul untuk sistem operasi Unix-like yang memungkinkan semua user dapat membuat file system mereka sendiri tanpa harus merubah kode kernelnya.

FUSE berguna untuk membuat sebuah file system virtual. Tidak seperti file system pada umumnya yang benar-benar menyimpan data dan membaca data langsung dari media penyimpanan, virtual file system tidak benar-benar menyimpannya. Virtual file system berperan sebagai penerjemah dari file system sesungguhnya yang sudah ada pada suatu komputer.

FUSE disediakan dalam berbagai macam bahasa pemrograman, salah satunya adalah dalam bahasa python. Walaupun FUSE mendukung berbagai macam bahasa pemrograman, namun FUSE masih kesulitan untuk dapat diterapkan pada sistem operasi windows.

B. Python

Python adalah bahasa pemrograman tingkat tinggi yang dibuat dengan filosofi untuk mempermudah pembacaan kode. Python adalah bahasa intepreter yang mengklaim dirinya sebagai bahasa yang memiliki syntax yang jelas dan memiliki dukungan library yang lengkap. Penggunaan indentasi sebagai pemisah blok membuatnya unik apabila dibandingkan dengan bahasa pemrograman lainnya.

Python mendukung berbagai macam paradigma pemrograman tidak hanya objek oriented saja. Memiliki fitur manajemen memori otomatis yang sama seperti apa yang dimiliki oleh Ruby dan Perl.

C. PYRO

Pyro adalah kependekan dari Python Remote Objects. Merupakan teknologi sistem pendistribusian objek yang memiliki performa tinggi dan ditulis dengan bahasa python.

Pyro didesain untuk kemudahan pengguna. Dengan menggunakan pyro tidak perlu lagi mengkhawatirkan bagaimana komunikasi berlangsung, karena saat menggunakan pyro, objek yang didefinisikan dapat dituliskan dengan cara seperti biasa.

Dengan hanya beberapa potongan kode saja pyro mengatur segala komunikasi antara objek walaupun mereka terpisahkan pada mesin yang berbeda dalam sebuah jaringan. Segala hal terperinci mengenai komunikasi soket telah diambil alih, pemanggilan remote objek dapat dilakukan dengan mudah semudah memanggil lokal objek.

D. File System

File system adalah metode untuk menyimpan dan mengorganisir kumpulah data ke dalam bentuk yang dapat dengan mudah dibaca oleh manusia. Sebuah file system menata data menjadi database data yang mudah untuk dimanipulasi biasanya dengan hirarki organisasi data yang

mudah dibaca. Setiap data yang ada pada file system disebut dengan file.

E. Distributed File System

File system terdistribusi adalah file system yang memungkinkan adanya pengaksesan dari host lain menggunakan jaringan komputer. Hal ini memungkinkan banyak pengguna dalam banyak komputer untuk saling berbagi data.

Sisi klien tidak memiliki akses langsung kepada blok penyimpanan, namun berinteraksi melalui jaringan menggunakan protokol. Hal ini memungkinkan adanya pembatasan akses terhadap file system bergantung kepada kemampuan dan akses yang diberikan kepada klien dan bagaimana protokol itu sendiri dibentuk.

F. NFS (Network File System)

NFS adalah sebuah file system terdistribusi yang memungkinkan komputer pada host lain pada suatu jaringan mengakses data yang tersimpan pada sisi server. NFS menggunakan RPC dalam komunikasinya antara klien dengan server yang dibungkus dengan protokol TCP sebagai kontrol dan UDP sebagai data.

Dalam hal pengaksesannya sendiri, NFS mengolah data di sisi server dan tidak melakukan caching data seperti yang dilakukan pada AFS (Andrew File System). Apabila klien hendak memproses suatu berkas, maka klien akan mengirimkan request-request apa saja yang berhubungan dengan bagaimana berkas itu diolah. Server akan mengolah data dan hanya memberikan apa yang diminta oleh klien.

G. RPC (Remote Procedure Call)

RPC adalah inter-process communication yang memungkinkan sebuah aplikasi untuk memanggil prosedur dan mengeksekusi sebuah alamat memori tanpa harus adanya koding mendetail mengenai interaksi remote tersebut. Yang dibutuhkan hanyalah kode penting dimana pengeksekusian aplikasi berada pada sisi lokal. Komunikasi yang digunakan adalah menggunakan protokol TCP.

III. PERANCANGAN PERANGKAT LUNAK

Implementasi NFS-like ini menggunakan sistem FUSE (Filesystem in Userspace) yang memanfaatkan keistimewaan media sistem berkas virtual yang dikembangkan dengan bahasa pemrograman Python. Sistem dikembangkan berbasiskan kerangka FUSE dan memanfaatkan semua kelebihan yang dimiliki oleh sistem berkas virtualnya. Pemakaian bahasa pemrograman Python menjadikan sistem dikembangkan diatas library yang sepenuhnya mendukung kerangka FUSE atau yang lebih dikenal dengan Library Python FUSE sehingga semua fungsi dasar yang terdapat pada kerangka FUSE lebih disederhanakan dan tentunya memiliki semua kelebihan yang dimiliki oleh bahasa pemrograman Python yang berbasiskan bahasa pemrograman intrepeter.

(3)

3

Cara kerja ini, sepenuhnya dijalankan dalam area pengguna biasa dan tidak membutuhkan suatu hak akses istimewa. Ketika modul daemon dijalankan dengan menggunakan suatu direktori sebagai mountpointnya, semua operasi sistem berkas yang terjadi di dalam direktori tersebut ditangani oleh library utama yang membangun sistem operasi UNIX (glibc) dan diteruskan pada area kernel. Pada area kernel ini FUSE yang telah menjadi modul standar kernel sekarang ini menggunakan sebuah perkakas virtual (/dev/fuse) sebagai media komunikasi dengan area pengguna yang tentu saja modul FUSE pada tingkatan kernel ini yang menanganinya. Dari area kernel, modul FUSE akan meneruskan permintaan berkas dari pengguna di dalam direktori mountpoint tersebut pada proses daemon melalui library glibc dan library FUSE dan Python FUSE. Pada proses daemon ini semua permintaan file dari pengguna akan diterjemahkan dan disederhanakan oleh PythonFUSE untuk kemudian dilanjutkan dan dapat dilakukan operasi riil pada storage server sepertin yang ditunjukkan pada gambar 3.1.

Gambar 3.1 Arsitektur FUSEFS

Proses pengiriman data dari klien ke server diusahakan semirip mungkin dengan apa yang dilakukan oleh NFS, yaitu menggunakan RPC. Untuk itu digunakanlah salah satu library RPC yang tersedia untuk bahasa pemrograman Python yang dinamakan dengan PyRO (Python Remote Object).

Pyro akan mengatur semua mekanisme pemanggilan prosedur dan pengiriman parameter yang diinginkan oleh pengguna. Pengguna hanya perlu memperlakukan Pyro sebagai sebuah objek remote dimana dia memiliki semua prosedur yang sebenarnya ada pada sisi remote.

Pyro Server Daemon akan menyediakan layanan pengaksesan berbagai macam prosedur yang telah disediakan. Klien hanya perlu mengakses alamat pyro tersebut dan langsung memanggil prosedur yang diinginkannya seperti yang ditunjukkan pada gambar 3.2.

KLIEN SERVER PERMINTAAN PROGRAM RPC MELAYANI PERMINTAAN PANGGIL PROSEDUR PROSES KEMBALI REQUEST SELESAI PROGRAM JALAN KEMBALI

Gambar 3.2 Arsitektur Pyro I

Dalam mengimplementasikan aplikasi ini digunakan standar yang ada dalam mendefinisikan sebuah sistem berkas. Pada sistem operasi yang berbasiskan UNIX terdapat standar operasi pada sistem berkas yang biasa disebut dengan UNIX FILESYSTEM SEMANTICS. Pada standar ini semua operasi pada sistem berkas mulai dari operasi direktori hingga operasi pada suatu berkas memiliki aturan-aturan tersendiri. Aliran data diagram untuk ini adalah seperti yang ditunjukkan pada gambar 3.3.

MULAI

INISIALISASI PYRO DAN FUSE Proses pembacaan root path

SELESAI

Pengecekan root path

MOUNTING

TIDAK VALID

VALID

(4)

4 Gambar 3.4 Arsitektur pyro II

Dari gambar 3.4 dapat ditunjukkan bahwa komunikasi yang terjadi antara klien dan server seolah-olah terjadi komunikasi langsung antara aplikasi klien dengan aplikasi server yang pada kenyataannya komunikasi terjadi pada level yang lebih rendah yang ditangani langsung oleh library RPC.

IV. IMPLEMENTASI PERANGKAT LUNAK

NFS-like menggunakan Python-fuse yang kemudian diberi nama FUSEFS ini diimplementasikan sepenuhnya menggunakan bahasa pemrograman python. Berikut adalah beberapa bagian prosedur-prosedur yang diterapkan di dalam FUSEFS ini.

4.1 Operasi GETATTR

Operasi GETATTR merupakan operasi dalam sistem berkas untuk mendapatkan atribut suatu objek dalam sistem berkas.

Implementasi operasi GETATTR ini menggunakan data struktur untuk mendefinisikan atribut sebuah inode. Atribut tersebut didefinisikan pada sebuah klas tersendiri seperti terlihat pada gambar 4.1.1 berikut:

class MyStat(fuse.Stat): def __init__(self): self.st_mode = 0 self.st_ino = 0 self.st_dev = 0 self.st_nlink = 0 self.st_uid = 0 self.st_gid = 0 self.st_size = 0 self.st_atime = 0 self.st_mtime = 0 self.st_ctime = 0

Gambar 4.1.1 Pseudocode atribut

Proses-proses utama dalam operasi GETATTR ini diimplementasikan pada gambar 4.1.2 dan gambar 4.1.3 berikut:

Sisi klien:

def getattr(self, path):

stfusefs = MyStat() stfusefs = ambil.atribut(path) if ( stfusefs.st_ino == 0 ): stfusefs.st_ino = 1 if ( stfusefs.st_atime == 0 ): stfusefs.st_atime = int(time()) if ( stfusefs.st_mtime == 0 ): stfusefs.st_mtime = st.st_atime if ( stfusefs.st_ctime == 0 ): stfusefs.st_ctime = st.st_atime return stfusefs

Gambar 4.1.2 Pseudocode getattr klien

Sisi server:

def atribut(self, path):

return os.lstat(pathRoot + path)

Gambar 4.1.3 Pseudocode atribut server 4.2 Operasi READDIR

Operasi READDIR merupakan operasi pembacaan direktori / melihat isi daripada suatu direktori pada suatu sistem berkas. Oleh aplikasi ini, operasi READDIR akan diarahkan pada path root di sisi remote. Nantinya isi dari direktori tersebut merupakan data sebenarnya yang berada pada sisi remote.

Implementasi dari proses READDIR adalah seperti pada gambar 4.2.1 dan gambar 4.2.2 berikut:

Sisi klien:

def readdir(self, path, offset): folder = ambil.bcdir(path) for e in folder:

yield fuse.Direntry(e)

Gambar 4.2.1 Pseudocode readdir klien

Sisi server:

def bcdir(self, path):

return os.listdir(pathRoot + path)

Gambar 4.2.2 Pseudocode bcdir server 4.3 Operasi UNLINK

Operasi UNLINK atau yang biasanya lebih dikenal sebagai operasi delete atau operasi penghapusan.

Operasi UNLINK dapat diimplementasikan melalui baris kode pada gambar 4.3.1 dan gambar 4.3.2 berikut:

Sisi klien:

def unlink(self, path):

return ambil.hpslink(path)

Gambar 4.3.1 Pseudocode unlink klien

Sisi server:

def hpslink(self, path):

return os.unlink(pathRoot + path)

Gambar 4.3.2 Pseudocode hpslink server

Operasi unlink ini merupakan salah satu operasi yang sederhana dimana dia tinggal menghapus berkas yang berada

(5)

5

pada path yang telah diberikan tanpa perlu memberikan kembalian nilai apapun.

4.4 Operasi RMDIR

Operasi RMDIR adalah operasi untuk menghapus suatu direktori. Karena direktori yang dihapus berada pada sisi remote maka operasi penghapusan direktori yang sebenarnya adalah dilakukan di sisi remote.

Implementasi dari proses RMDIR adalah seperti pada gambar 4.4.1 dan gambar 4.4.2 berikut:

Sisi klien:

def rmdir(self, path): ambil.hpsdir(path)

Gambar 4.4.1 Pseudocode rmdir klien

Sisi server:

def hpsdir(self, path):

os.rmdir(pathRoot + path)

Gambar 4.4.2 Pseudocode hpsdir server 4.5 Operasi MKDIR

Operasi MKDIR adalah operasi yang dilakukan untuk membuat suatu direktori. Pembuatan direktori baru dilakukan secara tidak langsung karena harus memanggil prosedur pembuatan direktori baru yang terletak pada sisi remote.

Implementasi dari operasi MKDIR adalah seperti gambar 4.5.1 dan gambar 4.5.2 berikut:

Sisi klien:

def mkdir(self, path, mode):

return ambil.bkindir(path, mode)

Gambar 4.5.1 Pseudocode mkdir klien

Sisi server:

def bkindir(self, path, mode):

os.mkdir(pathRoot + path, mode)

Gambar 4.5.2 Pseudocode bkindir server 4.6 Operasi UTIME

Operasi UTIME merupakan operasi untuk merubah atribut waktu suatu berkas, dapat berupa waktu akses, dan waktu modifikasi. Perubahan waktu ini juga dikerjakan di sisi remote menggunakan standar waktu yang ada pada sisi remote. Implementasi dari operasi UTIME ini dapat dilihat dari potongan kode pada gambar 4.6.1 dan gambar 4.6.2.

Sisi klien:

def utime(self, path, times): ambil.waktu(path, times)

Gambar 4.6.1 Pseudocode utime klien

Sisi server:

def waktu(self, path, times):

os.utime(pathRoot + path, times)

Gambar 4.6.2 Pseudocode waktu server 4.7 Operasi OPEN

Operasi OPEN merupakan operasi untuk membuka suatu berkas yang hendak diakses. Dari operasi open inilah nantinya suatu berkas dapat diakses atau diolah lebih lanjut oleh prosedur-prosedur yang lain.

Implementasi dari operasi OPEN adalah seperti pada gambar 4.7.1 dan gambar 4.7.2 berikut:

Sisi klien:

def open(self, path,flags): ambil.buka(path,flags)

Gambar 4.7.1 Pseudocode open klien

Sisi server:

def buka(self, path, flags, *mode): hasil = os.open(pathRoot + path, flags, *mode)

kirim = os.fdopen(hasil) return kirim

Gambar 4.7.2 Pseudocode buka server 4.8 Operasi READ

Operasi READ merupakan proses pembacaan isi dari suatu berkas.

Implementasi operasi READ pada operasi-operasi berkas secara garis besar dapat diperhatikan pada potongan kode seperti pada gambar 4.8.1 dan gambar 4.8.2 berikut:

Sisi klien:

def read(self, path, size, offset): return ambil.baca(path, size, offset)

Gambar 4.8.1 Pseudocode read klien

Sisi server:

def baca(self, path, size, offset): f = open(pathRoot + path, 'r') hasilbaca = f.read()

f.close()

return hasilbaca

Gambar 4.8.2 Pseudocode baca server 4.9 Operasi WRITE

Operasi WRITE merupakan proses penulisan berkas, operasi ini memiliki beberapa kondisi yang bergantung pada tanda maupun mode ketika berkas dibuka.

Proses-proses dalam operasi WRITE dapat didefi-nisikan seperti seperti gambar 4.9.1 dan gambar 4.9.2 berikut:

Sisi klien:

def write(self, path, buf, offset): return ambil.tulis(path, buf, offset)

Gambar 4.9.1 Pseudocode write klien

Sisi server:

def tulis(self, path, buf, offset): f = open(pathRoot + path, 'w') f.seek(offset)

f.write(buf) f.close()

return len(buf)

Gambar 4.9.2 Pseudocode tulis server 4.10 Operasi ACCESS

Operasi ACCESS merupakan operasi untuk mendapatkan informasi mengenai apakah pengguna memiliki hak akses terhadap suatu berkas ataupun direktori. Karena berkas atau direktori tersebut berada pada sisi remote, maka operasi ACCESS sebenarnya dilakukan pada sisi remote. Sisi klien hanyalah melakukan panggilan terhadap prosedur ACCESS pada sisi remote.

(6)

6

Potongan kode berikut akan membantu menjelaskan bagaimana kerja dari operasi ACCESS pada sisi klien maupun sisi server seperti yang ditunjukkan pada gambar 4.10.1 dan gambar 4.10.2 berikut:

Sisi klien:

def access(self, path, mode):

return ambil.akses(path, mode)

Gambar 4.10.1 Pseudocode access klien

Sisi server:

def akses(self, path, mode):

if not os.access(pathRoot + path, mode):

return -EACCES

Gambar 4.10.2 Pseudocode akses server

Data di atas adalah sebagian saja dari sekian banyak operasi yang ada pada fuse. Sebenarnya fuse menyediakan banyak sekali system call yang mendukung untuk pengembangan ke arah file system yang lebih rumit.

Fuse tidak memaksakan pengembangnya untuk wajib menggunakan semua fitur-fitur yang disediakan oleh fuse. Apabila system call memanggil fungsi dari fuse yang belum didefinisikan oleh pengguna maka akan muncul pesan error

‘function not implemented’ yang menunjukkan bahwa operasi

tersebut tidak dapat dilakukan karena fungsi yang dipanggil belum didefinisikan.

V. UJI COBA DAN EVALUASI

Lingkungan implementasi perangkat lunak yang digunakan dalam pembuatan tugas akhir ini meliputi perangkat lunak dan perangkat keras. Lingkungan implementasi program diberikan sebagai berikut:

1. Perangkat keras

Server:

Komputer dengan dukungan prosesor Intel Core 2 Duo 2,93 GHz dengan 2 GB DDR2

 Klien:

Laptop dengan dukungan prosesor Intel Core 2 Duo 1,83 GHz dengan 2 GB DDR2

2. Perangkat lunak

 Server:

Sistem operasi GNU Linux Debian Squeeze 6.0, Python 2.6.6, Pyro-3.9

 Klien:

Sistem operasi GNU Linux Debian Squeeze 6.0, Python-2.6.6, Pyro-3.9, python-2.4-fuse

Uji coba dilakukan dan dibandingkan dengan NFS dan CIFS. Uji coba diambil data sebanyak 5 kali untuk operasi yang sama dan diambil waktu yang diperlukan untuk melakukan operasi untuk masing operasi pada masing-masing file system. Dari lima data untuk masing-masing-masing-masing operasi tersebut maka akan diambil rata-ratanya.

Berikut tabel 5.1 merupakan data uji performa dari FUSEFS ini:

Tabel 5.1 Perbandingan kecepatan

Response Time (milisecond)

NFS FUSEFS SMBFS LOCAL touch 20.784 9.940 516.392 1.771 rm 9.461 5.408 460.421 1.672 cat 3.562 6.295 7.810 1.604 mkdir 10.516 8.443 19.615 1.815 rmdir 27.373 21.060 20.040 1.568

chown denied 6.208 denied 2.142 chmod 12.931 5.810 5.835 1.563

ls 6.261 4.733 6.490 2.866

Data di atas ini adalah data yang diambil setelah dilakukan ujicoba sebanyak lima kali untuk masing-masing operasi yang kemudian dicari nilai rata-ratanya untuk masing-masing operasi.

Data di atas masih dibandingkan dengan pengaksesan dengan file system lokal yang menunjukkan bahwa file system lokal unggul di segala bidang karena memang file system lokal mengabaikan faktor-faktor yang ada pada jaringan pada saat menjalankan operasi-operasi tersebut.

Gambar 5.1 Perbandingan keseluruhan

Dari gambar 5.1 di atas terlihat bahwa pengaksesan langsung pada local storage menghasilkan waktu eksekusi yang paling kecil di antara yang lain. Hal ini berarti pengaksesan berkas pada local storage jauh lebih cepat daripada menuju distributed storage.

Namun apabila mengindahkan pengaksesan yang dilakukan secara lokal dan dibandingkan murni antara

distributed file system maka hasilnya diperoleh seperti pada

tabel 5.2 berikut:

Tabel 5.2 Perbandingan kecepatan distributed system

Response Time (milisecond)

NFS FUSEFS SMBFS touch 20.784 9.940 516.392 rm 9.461 5.408 460.421 cat 3.562 6.295 7.810 NFS 0 200 400 600 to u ch rm cat mk d ir rm d ir ch mo d ls NFS FUSEFS SMBFS LOCAL

(7)

7

mkdir 10.516 8.443 19.615 rmdir 27.373 21.060 20.040 chown denied 6.208 denied chmod 12.931 5.810 5.835 ls 6.261 4.733 6.490

VI. KESIMPULAN DAN SARAN

Dari serangkaian uji coba dan analisa yang dilakukan terhadap sistem dan telah dibandingkan dengan sistem sejenis yang lain, maka dapat dibuat sebuah kesimpulan antara lain:

1. Telah diimplementasikan pengiriman data antara

klien-server dan penyimpanan berkas (storage klien-server)

menggunakan FUSE yang dapat diterapkan dengan fitur-fitur:

a. Komunikasi seperti NFS (RPC) b. Standar operasi berkas NFS c. Pengoperasian berkas secara remote

2. Telah diimplementasikan semantic FUSE seperti

write(), read(), open(), dan close() dengan hasil, sistem

mampu beroperasi 20,08% lebih cepat dibandingkan dengan NFS dan 42,24% lebih cepat daripada SMBFS. 3. FUSEFS ini dapat sebagai alternatif distributed file

system NFS dan telah diimplementasikan semirip

mungkin dengan NFS dalam hal penggunaan RPC sebagai media komunikasinya.

VII. DAFTAR PUSTAKA

1. Martins, Carlos Wilkins, 2006. The Python Tutorial – The Python v2.7.1., http://docs.python.org/tutorial/

2. Martins, Carlos Wilkins, 2006. The Python Standard Library Python v2.7,

http://docs.python.org/library/index.html/

3. Jeff Epler, Csaba Henk, 2009. Fuse Developers.

http://fuse.scourgeforge.net/

4. B. Callaghan, Juni 1995. NFS Version 3 Protocol Spesification. London. Sun Microsystem, Inc.

5. Mark Lutz dan David Ascher, 1999, Learning Python, O’Reilly

6. Wesley J.Chun, 2000, Core Python Programming, Prentice Hall PTR

Gambar

Gambar 3.1 Arsitektur FUSEFS
Gambar 4.1.1 Pseudocode atribut
Gambar 4.4.1 Pseudocode rmdir klien  Sisi server:
Gambar 4.10.2 Pseudocode akses server

Referensi

Dokumen terkait

Gambar 4 Hubungan antara head pada pipa penghantar dengan debit pompa hidram uuntuk diameter katup 3:4 dan variasi beban.. Grafik hubungan antara head pada pipa penghantar

3) Target penggunaan dari aplikasi yang akan dibuat adalah masyarakat umum. 4) Dalam aplikasi ini, sistem memelukan jawaban ya atau tidak dari user. Dimana jawaban dari

Dan mengacu pada gambar 4-7 dapat dilihat bahwa aplikasi dapat memberikan output yang berupa informasi alternatif atau solusi dalam memilih angkutan umum lyn dan bis

Desain tampilan menu aplikasi mobile tour dapat dilihat pada Gambar 3 berikut ini :.

Gambar 4 : Bagian – Bagian Strain Gauge Untuk mendapatkan hasil yang akurat strain gauge harus direkatkan di area yang mempunyai tegangan maksimum terhadap load

Functional domain workflow diagram adalah desain diagram yang menggambarkan alur kerja dari setiap proses bisnis dalam aplikasi sistem persediaan ini.. Gambar

aplikasi dapat dijalankan. Proses pertama yang dilakukan oleh aplikasi adalah menelusuri device yang terhubung dengan server aplikasi Gambar 7 adalah peta yang dihasilkan

Tabel 4.1 Hasil pengujian Buzzer Bylink Buzzer Jarak meter Output Suara On On 1 Terdengar Jelas On On 2 Terdengar Jelas On On 3 Terdengar Samar On On 4