ZFS – Part 1 (Konsep FS yang mengagumkan)

zfs_feature_2

Sebelum kita ketahap implementasi, ada baiknya saya terangkan sedikit tentang konsep yang melatar belakangi hadirnya ZFS. Mohon untuk dipahami bahwa yang kita bahas ini adalah Zettabyte File Systems (ZFS) dari pihak pengembang Sun Microsystems, bukan Z-series File Systems (zFS) dari pengembang IBM.

Perlu kita ketahui, bahwa cara pandang baru yang ditawarkan oleh ZFS memang mengagumkan dan lebih ke masa depan. Tapi harus kita garis bawahi, bahwa beberapa teknologi yang ditawarkan, bukanlah sebuah teknologi yang baru. Kebanyakan adalah adopsi dari sistem yang lain semisal database system.

– 128 bit block-adressing. Disaat para desainer file system yang lain berpikir untuk 64 bit, pengembang dari Sun Microsystems melangkah sangat jauh menurut saya dengan 128 bit. Dengan 128 bit, kita akan mendapatkan maksimum yang dapat di handle oleh satu ZFS yaitu : 2 pangkat 128 dikali block sizenya. Itu adalah angka yang sangat besar dan mungkin akan membuat orang terkadang tertawa. Belum lagi, block size di ZFS, tidak static melainkan dinamis. Dimulai dari 512 byte sampai 128 KB. Berbeda dengan file system lainnya yang  rata-rata menggunakan static block size sebesar 4 KB. Tetapi ada alasan SUn dibalik keputusan itu. mereka menginginkan bahwa ZFS ini masih layak pake sampai 2 dekade ke depan.

– Pooled Storage. Jadi ZFS akan memakai pool untuk setiap storage yang kita punyai. Bayangkanlah itu seperti sebuah pool taksi. Dimana taksi berjumlah banyak, yang dipoolkan disuatu terminal. Konsep yang mendasari ide inilah datangnya dari teknologi virtual memory. Sewaktu anda, menambahkan suatu memory ke slot memori, yang perlu anda lakukan cukup, tanamkan ke slotnya, biarkan system yang mengenalinya, setelah itu secara akan otomatis ditambahkan langsung ke pool memory. Jadi tidak perlu configurasi apapun lagi. Kalau memory bisa seperti itu, alangkah baiknya kalau storage juga bisa begitu bukan? Nah seperti itulah kira-kira pendekatan yang dipakai oleh ZFS.

– Transactional Object System. Dalam suatu RDBMS, anda pasti tahukan ada property ACID. Nah ZFS memakai salah satu propertynya yaitu atomicity. Journaling FS menggunakan konsep yang sama pula. Dengan begitu NTFS dari microsoft, atau EXT4 di GNU/Linux juga menerapkan hal yang sama. Tapi perlu diingat, cara pengimplementasiannya sangat berbeda. NTFS disatu pihak, akan membuat jurnal khusus, tentang perubahan yang terjadi di file system. Sedangkan ZFS berbeda. ZFS akan menyalin dulu data yang diakan dirubah di suatu blok yang free di storage, kemudian apabila telah selesai perubahan itu, maka pointer bloknya akan diarahkan ke blok yang baru tersebut. Karena itulah, ZFS akan selalu stabil, dan tidak membutuhkan FSCK.

– Integritas data yang terjamin. ZFS melakukan pengecekan kevalidan datanya dengan sangat baik. Kerusakan akan data, bagaimanapun juga merupakan mimpi buruk bagi setiap orang. Tetapi kerusakan akan data yang dideteksi oleh suatu system, dan memperingatkan penggunanya, bahwa data yang diinginkan itu telah rusak, akan lebih baik, daripada data yang rusak dilewatkan ke pengguna, dan pengguna itupun tidak sadar data itu telah rusak. Permasalahan inilah yang coba diselesaikan oleh ZFS. Istilahnya adalah Silent Data Corruption. Jadi dengan menggunakan ZFS dipastikan tidak akan terjadi lagi silent data corruption tersebut. Harus kita ketahui bahwa, bisa saja terjadi  kerusakan suatu sistem storage bisa di kabelnya, atau terjadi kegagalan pada firmwire storage tersebut, ataupun pada controller storage. Jadi bayangkan sajalah, suatu server ratusan juta, yang memorynya tanpa ECC. Ngak lucukan?

– Administrasi yang dipermudah. Ini sangat jelas. Sekadar kita tahu, bahwa konsep dari Volume Manager telah ditanamkan langsung ke ZFS. Ini tentunya sangat menyenangkan, apalagi kepada admin data center. Dengan disatukannya, kita tidak perlu lagi 2 system dalam menangani storage kita. Jadi pengaturan akan solusi RAID misalnya  akan langsung di file systems. Salah satu klien dari Sun mengatakan, bahwa administrasi yang mudah ini, akan membuat banyak orang di PHK. Sebuah candaan, yang tapi memang benar adanya.

– Sangat cepat dan segala sesuatunya online. Harus kita tahu, bahwa file system jaman dahulu, sangat lambat. Ketika anda akan memformat semisal NTFS, saya rasa anda akan bosan menunggu lamanya proses pemformatan bukan. Bayangkan saja kalaulah data kita sampa terra byte. mungkin malam minggu anda, akan habis hanya untuk menunggu selesai. Tapi tidak dengan ZFS. ZFS melakukannya dengan sangat cepat. Nah kenapa bisa begitu? Karena dia menggunakan konsep kedinamisan. ZFS tidak akan mereservasi apapun semisal untuk inode data ZFS. Tidak ada pembuatan blok-blok, karena ZFS blok sizenya sangat dinamis. ZFS akan menggunakan block size yang  terkececil mulai dari 512 byte, sampai yang terbesar 128 KB. Jadi disatu saat akan mempercepat transaksi file, disatu saat dia akan lumayan memampatkan file lebih baik dari file system manapun.

– Endian Independency

Kita harus tahu bahwa Sun selama ini pengusung Big Endian. Processor buatan Sun selama ini setahu saya adalah big endian semisal ULTRA SPARC. Nah yang jadi masalahnya keluarga X86 semisal Intel dan AMD menggunakan little Endian.

Jadi solusi damai dari Sun bagaimana? Akhirnya diputuskan jangan pakai manapun. Jadi  ZFS akan dinamis. Ketika ZFS di X86 akan bersifat little endian, di UltraSparc, ZFS akan memakai big endian. Tapi akan ada flag khusus yang menunjukan status ke endianannya. Jadi ketika terjadi migrasi system, tidak akan terjadi perubahan solusi di storagenya.

– Copy on Write Transaction. Jadi ketika akan terjadi perubahan suatu blok data, ZFS tidak akan pernah menimpa blok yang lama. ZFS akan selalu mengkopikan blok data  tersebut ke suatu blok yang free kemudian di redirect permintaan itu ke alamat yang baru. Inilah yang membuat ZFS akan selalu stabil. Jadi ketika ada failure semisal power down, minimal data yang lama akan tetap bertahan. Tetapi apabila tahap pengkopian dan pengubahan selesai, ZFS akan mengganti pointernya ke blok yang baru. Nah, implementasi ini jugalah yang membuat NetAppliance marah, karena mereka menganggap bahwa teknologi tersebut harusnya tidak diopensourcekan oleh pihak SUN tahun 2005 silam.  ZFS diklaim oleh NetApp melanggar 7 patent dari NetApp’s WAFL mereka. (Sebagai tambahan banyak yang mengatakan  NetApp’s WAFL adalah sebuah file system, tapi sebenarnya tidak.). Perbandingan antara ZFS dan NetApp’s WAFL dapat anda lihat di link ini http://unixconsult.org/wafl/ZFS%20vs%20WAFL.html . Sekedar informasi netAplliance telah menggunakan teknologi ini di solusi storagenya mulai tahun 1990an. Permasalahan ini dapat anda ikuti kronologisnya di :  http://www.sun.com/lawsuit/zfs/index.jsp

– Snapshot. Snapshot merupakan bonus dari copy on write Transaction. Jadi begini. Ketika pointer diarahkan ke blok data yang baru. Blok data yang lama sebenarnya, tidak dihapus atau dialokasikan sebagai sebuah blok yang free. Block itu tidak pernah dihapus kalau kita mengaktifkan snapshot. Jadi ketika ada kesalahan semisal salah pengetikan suatu file word, atau salah hapus dokumen yang penting, kita tidak perlu kuatir karena data kita akan aman. Dan yang paling menguntukan, ketika kita mengaktikan fitur snapshot, storage kita tidak akan terpakai dikarenakan snapsho itu.  Bayangkan saja ketika kita berpoto  close-up sekarang. Tahun depan kita kemudian  berpoto dan mungkin rambut kita telah lebih panjang dari sebelumnya. Jadi apapun  tetap sama kan? Kecuali rambu kita. Jadi yang disimpan dobel adalah rambut kita saja. Satu sewaktu masih pendek, satu lagi semasih panjang. Kesimpulannya sewaktu kita mengaktifkannya, tidak akan ada penambahan pemakaian di storage alias nol byte.  Jadi sangat berbeda dengan solusi backup lainnya, yang harus menggunakan storage tambahan. Menyenangkan bukan? (akan sangat jelas terlihat diposting berikutnya tentang Time Slider)

image

(sumber : Sun Microsystems)

– Defragmentation. Tidak dibutuhkan defragmnetasi di ZFS. Salah satu teknikal pengembang di ZFS mengatakan, kalaulah suatu saat kami menemukan suaru algoritma yang baik dan akan dapat meningkatkan performansi dari ZFS, kami pasti akan memasukkannya ke ZFS. Tapi menurutku, untuk apa ya? Wong data di ZFS itu disebar di pooled nya bukan?

– Solusi RAIDZ. solusi Raid sudah langsung ditanamkan ke file system. Ini akan mempermudah kita. Solusi software RAID seperti ini, akan menjamin, apabila terjadi kegagalan data di salah satu storage kita, maka ZFS akan mencarikannya di mirornya atau mengkalkulasi kembali dari paritasnya, kemudian akan men-self healingkan yang lama. RAID-Z1 itu similiar dengan Raid 5 dengan single parity, sedangkan RAID-Z2 similiar dengan RAID 6 dengan dua parity. Anda dapat lihat di youtube untuk demonya.

– Porting ZFS ke beberapa Operating System telah dilakukan sejak lama. BSD telah melakukannya dan terbukti sangant baik di implementasikan di BSD. Di GNU/Linux karena permasalahan lisensi, ZFS akan berjalan di user land lewat program FUSE. Tapi bagaimanapun fiturnya tidak akan sebaik di (Open)Solaris semisal terjadi pemborosan atau leak di memory.

– Layer layer yang ada di ZFS (tidak dapat saya terangkan di posting ini, akan ada di posting berikutnya)

zfstour

Dan yang terakhir adalah trend sekarang ini, storage akan beralih ke SSD. Walaupun sampai saat ini, solusi yang ada di pasaran adalah bersifat hybrid yaitu perpaduan antara SSD dan magnetic, tapi ini hanya persoalan waktu saja, sampai masalah yang terdapat di SSD sudah sepenuhnya dapat diatasi. Dan tentunya ZFS akan sangat baik berjalan di SSD ketimbang di magetic storage. Jadi tidak salah dikatakan ZFS adalah masa depan suatu filse system dengan pendekatan pengimplementasian yang  baru ada di file system tersebut.

Bahan presentasi ZFS – The Last Word in File system dari pihak pengembang Sun Microsystems , sebuah powerpoint yang sangat terkenal, dapat anda download dari URL ini: (telah dibahasa indonesiakan walau belum sempurna)

http://www.4shared.com/file/145889681/f94d504/ZFS.html

Advertisements

About lathyka
Nice Girl

4 Responses to ZFS – Part 1 (Konsep FS yang mengagumkan)

  1. agina says:

    bang,istilah2 komputernya itu kemungkinan besar masih kurang bersahabat sama pembaca, lebih bagus lagi kalo ada penjelasan lebih rincinya, karna pembacanya itu lebih banyak yang masih awam daripada yang advance, jd supaya informasinya ‘nyampe’ kita harus lebih sabar lagi untuk nulis sesuatu yang mudah dipahami. o ia, sama point2 pentingnya kalo bisa di-bold ato warna, ato apapun yg pnting dibeda’in supaya lebih menarik untuk dibaca.

  2. lathyka says:

    ok. thanks. Kuusahin untuk posting brikutnya. Karna aku bingung caranya buat di bold ama diwarna ei . Ntar aku tanya2 kaulah ya gin. Ok!

  3. omenkzz says:

    hoho .. setuju banget ma agina 😀

  4. Dimas says:

    Lanjutannya yang implementasinya mana nih??,. menarik

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: