Performansi Filesystem ZFS
Pengujian performansi file system dibagi menjadi tiga bagian diantaranya adalah storage, data integrity dan kecepatan akses.
SPESIFIKASI PERANGKAT KERAS
Adapun perangkat keras yang digunakan untuk pengujian file system adalah sebagai berikut :
Processor Berkecepatan 2.40 GHz Core I 3
RAM Berkapasitas 2 GB
Resolusi Layar Resolusi 1366x768
Hardisk Berkapasitas 360 GB
Penunjang Lain Mouse, Flashdisk dan Keyboard
Spesifikasi Flashdisk yang digunakan untuk bahan uji coba adalah 2 Flashdisk HP v220w 8GB. Adapun spesifikasinya adalah sebagai berikut :
Write Speed Up to 8.0 MB/Second
Read Speed Up to 25.0 MB/Second
O/S Support Microsoft Windows Linux 2000/XP/Vista/7 and Mac OS
Dimension (WHD) 34.6(L) x 12.2(W) x 4.5(H) mm
Weight 4.5 gram
Others Temperature : 0°C ~ 60°C, Storage Temp : -25°C ~ 85°C
Sumber : [0] http://alnect.net/products.php?/8/33/504/3891/Storage-Media/USB-FlashDisk-8GB/Hewlett-Packard/UFD-Hawlett-Packard-(HP)-v220w-8GB
A. ZFS
Apa ZFS itu?
[1] http://en.wikipedia.org/wiki/ZFS
[2] https://wiki.freebsd.org/ZFS
Pemasangan ZFS pada GNU/Linux membutuhkan diantaranya adalah :
1. SPL (Solaris Porting Layer) berfungsi sebagai Kernel modul Linux yang menyediakan banyak kernel API Solaris. Lapisan ini memungkinkan untuk menjalankan kode kernel Solaris dalam kernel Linux dengan modifikasi yang relatif minim.
2. ZFS yang berfungsi sebagai modul file system zfs yang digunakan di Linux, File system zfs di linux ini belum stabil. Adapaun fitur yang baru dimasukan oleh pengembang : SPA, DMU, ZVOL, ZPL.
SPL dan ZFS dapat diunduh http://zfsonlinux.org.
=========Implementasi dan Pengujian========
A. Storage
Pool Storage dapat dibuat dengan syarat, tabel partisi pada perangkat keras secondary storage adalah GPT (Guid Partition Table). Pembuatan tabel partisi GPT :
1) Lihat daftar perangkat flashdisk yang akan dibuat untuk GPT.
sudo fdisk –l
2) Buat tabel GPT dengan software cgdisk.
cgdisk /dev/sdc1
3) Buat file type partisi GUID dengan kode bf00
4) Pastikan Partition table adalah GPT. parted /dev/sdc1 print.
Pembuatan Pool Storage, contoh kasus menggunakan flashdisk :
1) Tentukan direktori tempat penyimpanan pool dan device, lalu buat pool.
zpool create zfslinika /dev/sdc1
Device dapat ditanamkan lebih dari satu.
2) Pool akan tersedia pada direktori /zfslinika.
3) Pool akan terlihat jika dilihat dengan perintah zpool list.
B. Data Integrity
Data integrity, berperan khusus untuk kepentingan integritas data ataupun untuk keamanan data. ZFS dapat melakukan keamanan data diantaranya dengan snapshot, RAID, cloning, migration dan compressing.
B.2.1 Snaphot
Snapshot dapat dibuat dengan syarat, pool harus memiliki dataset. Dataset ini berfungsi untuk merekam data pada data asli tetapi hanya berupa pointer tujuannya adalah sebagai host checkpoint untuk mengembalikan data saat snapshot dilakukan. Adapun pembuatan dataset adalah
zfs create zfslinika/myfirstDS
Dataset mempunyai ciri khusus yaitu berupa direktori dan tidak bisa dihapus dengan rmdir.
Proses pengembalian data dengan snapshot pada ZFS dapat dilakukan dengan syarat memiliki dataset, Adapun proses snapshot dan pengembalian data adalah sebagai berikut :
1) Duplikasi data yang diinginkan, contoh menduplikasi seluruh file yang berada pada ~/Downloads.
cp –rf ~/Downloads /zfslinika/myfirstDS
2) Snapshot dibuat dengan format pool/dataset@snapshot-name
zfs snapshot zfslinika/myfirstDS@catat1
3) Hapus data pada /zfslinika/myfirstDS
rm –rf /zfslinika/myfirstds
4) Lihat direktori untuk memastikan bahwa data telah terhapus.
ls –l
5) Kembalikan data yang telah terhapus dengan rollback.
zfs rollback zfslinika/myfirstDS@catat1
B.2.2 RAID
ZFS memiliki fitur RAID (Pengertian RAID 1 dan 2) untuk mengamankan data ataupun membuat ukuran media penyimpanan menjadi lebih besar. Spesifikasi perangkat keras yang digunakan pada uji coba ini adalah dua flashdisk kurang lebih berkapaistas 8 GB memiliki spesifikasi yang sama, tercantum pada [0]. RAID yang diuji dalam uji coba ini adalah :
1 Raid0
Perintah :
zpool create zfslinikard0 /dev/sdc1 /dev/sdd1
Keterangan : Kapaistas total menjadi 15 GB pada Raid0 menggunakan 2 secondary storage untuk digabungkan tanpa mirroring.
2 Raid1
Perintah :
zpool create zfslinikard1 mirror /dev/sdc1 /dev/sdd1
Keterangan : Kapasitas 7.5 GB pada Raid1 menggunakan 2 secondary storage untuk digabungkan dengan fitur mirroring.
3 Raid5
Perintah :
zpool create zfslinikard5 raidz /dev/sdc1 /dev/sdd1
Keterangan : 15 GB Pada Raid5 menggunakan 2 secondary storage, dengan pembuatan dan pembagian parity data.
B.2.2.1 Performansi RAID 0 ZFS
Kecepatan Read/Write atau I/O dengan menentukan penulisan block dapat dilakukan dengan dd. Dd adalah software konversi, pembuatan file. Dd dapat membuat file besar secepat mungkin. Hal ini merupakan tes mendasar untuk mengetahui performansi Read/Write atau I/O file system yang digunakan. Kapasitas file yang dibuat harus lebih besar dari jumlah RAM yang digunakan tujuannya menghindari caching file pada memory.
Performansi RAID 0 write (input) dengan dd dapat dilakukan dengan perintah :
time dd if=/dev/zero of=/zfslinikard0/write.tmp bs=4k count=1000000
Hasil yang didapat adalah :
1000000 records in
1000000 records out
4096000000 bytes (4,1 GB)
Dengan waktu 34 menit 0.92 detik.
Rata-rata transfer perdetik dalam MB adalah :
(4096000000/1024/1024)/((34*60)+0.92)=1.91 Mb/sec
Kecepatan transfer write (input) dengan dd pada file system zfs RAID0 dengan 4 block pengulangan 1000000 kali menggunakan flashdisk adalah 1.91 Mb/s.
Performansi RAID 0 read (output) dengan dd dapat dilakukan dengan perintah :
time dd if=/zfslinikard0/write.tmp of=/zfslinikard0/read.tmp bs=4k
Hasil yang didapat adalah :
1000000 records in
1000000 records out
4096000000 bytes (4,1 GB)
Dengan waktu 63 menit 0.494 detik.
Rata-rata transfer perdetik dalam MB adalah :
(4096000000/1024/1024)/((63*60)+0.494)=1.03 Mb/sec
Kecepatan transfer read (output) dengan dd pada file system zfs RAID0 dengan 4 block pengulangan 1000000 kali menggunakan flashdisk adalah 1.03 Mb/s.
B.2.2.2 Performansi RAID 1 ZFS
Kecepatan Read/Write atau I/O dengan menentukan penulisan block dapat dilakukan dengan dd. Dd adalah software konversi, pembuatan file. Dd dapat membuat file besar secepat mungkin. Hal ini merupakan tes mendasar untuk mengetahui performansi Read/Write atau I/O file system yang digunakan. Kapasitas file yang dibuat harus lebih besar dari jumlah RAM yang digunakan tujuannya menghindari caching file pada memory.
Performansi RAID 1 write (input) dengan dd dapat dilakukan dengan perintah :
time dd if=/dev/zero of=/zfslinikard1/write.tmp bs=4k count=1000000
Hasil yang didapat adalah :
1000000 records in
1000000 records out
4096000000 bytes (4,1 GB)
Dengan waktu 76 menit 0.92 detik.
Rata-rata transfer perdetik dalam MB adalah :
(4096000000/1024/1024)/((76*60)+0.92)=0.856 Mb/sec atau 856 Kb/sec.
Kecepatan transfer write (input) dengan dd pada file system zfs RAID1 dengan 4 block pengulangan 1000000 kali menggunakan flashdisk adalah 0.856 Mb/s.
Performansi RAID 1 read (output) dengan dd dapat dilakukan dengan perintah :
time dd if=/home/wajatmaka/write.tmp of=/zfslinikard0/read.tmp bs=4k
Hasil yang didapat adalah :
1000000 records in
1000000 records out
4096000000 bytes (4,1 GB)
Dengan waktu 102 menit 0.839 detik.
Rata-rata transfer perdetik dalam MB adalah :
(4096000000/1024/1024)/((102*60)+0.839)=0.638 Mb/s atau 638 Kb/s
Kecepatan transfer read (output) dengan dd pada file system zfs RAID1 dengan 4 block pengulangan 1000000 kali menggunakan flashdisk adalah 0.638 Mb/s.
B.2.2.3 Performansi RAID 5 ZFS
Kecepatan Read/Write atau I/O dengan menentukan penulisan block dapat dilakukan dengan dd. Dd adalah software konversi, pembuatan file. Dd dapat membuat file besar secepat mungkin. Hal ini merupakan tes mendasar untuk mengetahui performansi Read/Write atau I/O file system yang digunakan. Kapasitas file yang dibuat harus lebih besar dari jumlah RAM yang digunakan tujuannya menghindari caching file pada memory.
Performansi RAID 5 write (input) dengan dd dapat dilakukan dengan perintah :
time dd if=/dev/zero of=/zfslinikard5/write.tmp bs=4k count=1000000
Hasil yang didapat adalah :
1000000 records in
1000000 records out
4096000000 bytes (4,1 GB)
Waktu yang dibutuhkan 82 menit 0.644 detik. Pada RAID5 memiliki total space adalah 7.63 GB dan total tertulis oleh dd adalah 4.1 GB. Paritas yang disediakan oleh RAID5 adalah 7.63 GB-4.1 GB=3.5 GB untuk menangani kesalahan data.
Rata-rata transfer perdetik dalam MB adalah :
(4096000000/1024/1024)/((82*60)+0.644)=0.793 Mb/s atau 793 Kb/s.
Kecepatan transfer write (input) dengan dd pada file system zfs RAID5 dengan 4 block pengulangan 1000000 kali menggunakan flashdisk adalah 0.793 Mb/s.
Performansi RAID 5 read (output) dengan dd dapat dilakukan dengan perintah :
time dd if=/home/wajatmaka/write.tmp of=/zfslinikard0/read.tmp bs=4k
Hasil yang didapat adalah :
1000000 records in
1000000 records out
4096000000 bytes (4,1 GB)
Dengan waktu 250 menit 0.384 detik. Pada RAID5 memiliki total space adalah 7.63 GB dan total tertulis oleh dd adalah 4.1 GB. Paritas yang disediakan oleh RAID5 adalah 7.63 GB-4.1 GB=3.5 GB untuk menangani kesalahan data.
Rata-rata transfer perdetik dalam MB adalah :
(4096000000/1024/1024)/((250*60)+0.384)= 0.2603 Mb/s atau 260 Kb/s.
Kecepatan transfer read (output) dengan dd pada file system zfs RAID5 dengan 4 block pengulangan 1000000 kali menggunakan flashdisk adalah 0.2603 Mb/s.
B.2.3 Clone
Clone adalah fitur zfs untuk membackup, menduplikasi atau memetakan dataset. Sehingga apabila dataset asli mengalami kerusakan, masih ada dataset hasil duplikasi untuk dipakai. Cloning dapat dilakukan dengan cara :
zfs clone zfslinika/myfirstDS@catat2 zfslinika/myfirstDS
Untuk memastikan dataset sudah terduplikasi dengan baik, maka
zfs list –t all
B.2.4. Migration
Migration berfungsi untuk memigrasikan pool dari server lama ke server baru ataupun sebaliknya. Sehingga data dapat dipindahkan dengan mudah. Adapun cara migrasi :
1) Ekpor pool
zpool export zfslinika
2) Import pool
zpool import zfslinika
B.2.5 Compressing
Compressing berguna untuk mengkompresi pool, tujuannya adalah untuk membuat pool memilki ukuran kecil dan untuk keamanan data (efesiensi data). Pengaktifan compressing pada pool dapat dilakukan :
zfs set compression=on zfslinika
C. Kecepatan Akses
Pada poin ini menjelaskan analisis performansi kecepatan akses pada file system zfs dalam Read dan Write dengan satu media flashdisk 8 GB.
C.1. Kecepatan Akses Blok Random
Kecepatan akses ditinjau dari segi read/write suatu data terhadap file system. Diantaranya kecepatan data pada saat melakukan duplikasi, pemotongan dan ekstraksi dari suatu file yang terkompresi. File yang digunakan untuk kecepatan akses ini berkapasitas 480 Mb dengan 1305 direktori utama. Adapun rata-rata waktu yang dibutuhkan sistem pada ZFS adalah sebagai berikut :
1) Kecepatan duplikasi
time cp /home/wajatmaka/file480mb.tar.gz /zfslinika
2) Kecepatam pemotongan
time mv /home/wajatmaka/file480mb.tar.gz /zfslinika
3) Kecepatan ekstraksi /zfslinika
time tar xvf file480mb.tar.gz
Adapun hasil estimasi waktu adalah sebagai berikut :
1 Kecepatan duplikasi 2 menit 0.38 detik
2 Kecepatan pemotongan 2 menit 0.16 detik
3 Kecepatan ekstrak 4 menit 0.86 detik
C.2 Kecepatan Akses I/O Menggunakan DD
Kecepatan Read/Write atau I/O dengan menentukan penulisan block dapat dilakukan dengan dd. Dd adalah software konversi, pembuatan file. Dd dapat membuat file besar secepat mungkin. Hal ini merupakan tes mendasar untuk mengetahui performansi Read/Write atau I/O file system yang digunakan. Kapasitas file yang dibuat harus lebih besar dari jumlah RAM yang digunakan tujuannya menghindari caching file pada memory.
Spesifikasi perangkat keras yang digunakan pada penelitian ini adalah flashdisk 8 GB tercantum pada [0], maka performansi write (input) dengan dd dapat dilakukan dengan perintah :
time dd if=/dev/zero of=/zfslinika/write.tmp bs=4k count=1000000
Hasil yang didapat adalah :
1000000 records in
1000000 records out
4096000000 bytes (4.1 GB)
Dengan waktu 15 menit 2.006 detik.
Rata-rata transfer perdetik dalam MB adalah :
(4096000000/1024/1024)/((15*60)+2.006)=4.3 Mb/sec
Kecepatan transfer write (input) dengan dd pada file system zfs dengan 4 block pengulangan 1000000 kali menggunakan flashdisk adalah 4.3 Mb/s.
Adapun performansi Read (output) dari file write.tmp dapat dilakukan dengan cara sebagai berikut :
time dd if=/home/wajatmaka/write.tmp of=/zfslinika/b.tmp bs=4k
asil yang didapat adalah :
1000000 records in
1000000 records out
4096000000 bytes (4.1 GB)
Dengan waktu 13 menit 23.837 detik
Rata-rata transfer perdetik dalam MB adalah :
(4096000000/1024/1024)/((12*60)+23.837)=5.2 Mb/sec
Kecepatan transfer read (output) dari file write.tmp menggunakan dd pada file system zfs dengan 4 block pengulangan 1000000 kali menggunakan flashdisk adalah 5.2 Mb/s.