Achmad Mardiansyah's Journal

manage your knowledge by writing it

Archive for the ‘zfs’ tag

Silent Data Corruption (SDC)

with 2 comments

Q: apa itu data corruption?
Data corruption artinya data ketika dibaca tidak sama seperti ketika ditulis. Artinya data tersebut berubah.

Q: cara mendeteksi data corruption?
bisa pake checksum (md5, SHA). trus nanti akan keluar sebuah nilai. nilai yang keluar ini bisa dikatakan sebagai fingerprint dari data tersebut.
contoh command: md5sum file_name
Read the rest of this entry »

ZFS deduplication

with 2 comments

semenjak posting saya tentang kernel conference di brisbane, ada rekan yang bertanya tentang ZFS deduplication:

> Jadi deduplication ini bakal diimplementasikan di layer filesystem dari OS?
> Jika maksudnya untuk virtual machine saja, setahu saya Qemu, KVM dan
> User Mode Linux sudah menerapkannya dalam bentuk image yang berbentuk
> COW (Copy On Write). Jadi COW ini berbasis pada suatu image fix, dan
> perubahan yang dilakukan ditulis pada image lain. Dengan demikian jika
> ingin membuat varian baru berdasar image original, tinggal membuat
> image COW lain berdasar image original
> Yang menarik ini tentang hasil speed I/O bisa naik sampai 30%. Ada
> penjelasan metodologi testingnya?

iya. feature ini bakal ditambahkan di ZFS yang sekarang. command untuk eksekusinya adalah:
zfs set dedup=on bla bla bla…
Read the rest of this entry »

Written by Achmad Mardiansyah

July 21st, 2009 at 1:57 pm

kernel conference, brisbane australia

without comments

sekedar mo share info aja.
hari rabu sampe jumat (15-17 july 2009) ada kernel conference di brisbane. topiknya tentang latest issue tentang kernel operating system. pembicara dari macem2: freeBSD, openBSD, linux, sun

agenda bisa dilihat disini:
http://au.sun.com/sunnews/events/2009/kernel/agenda.jsp

salah topik yang banyak mendatangkan pertanyaan peserta hari ini adalah deduplication. feature ini masih testing, tapi sangat menarik untuk diimplementasikan.

contoh kasus deduplikasi:
misalkan kita pake vmware workstation, dan udah buat vm image. kalau kita mau buat vm baru bedasarkan vm image yang kita buat, maka kita tidak perlu copy lagi image tersebut ke tempat yang baru karena vmware bakal ngelink image tersebut dan buat image tambahan jika ada perubahan.
hasilnya:
– hemat space: tidak perlu copy image yang baru
– lebih cepat: karena tinggal ngelink aja.

nah konsep ini yang bakal di implementasikan di ZFS. sehingga jika ada blok yang sama di harddisk, ngak perlu di tulis lagi ditempat lain. tinggal di link aja.
hasil dari testing sejauh ini: space bisa dihemat 40%, speed I/O naik 30%.

buat yang ngak bisa dateng, bisa ikut via internet:
http://www.ustream.tv/channel/kernel-conference-australia
please note: brisbane = GMT+10

Written by Achmad Mardiansyah

July 15th, 2009 at 9:00 pm

Solaris ZFS, basic concepts

without comments

Saya jawab seadanya dulu yah, versi lengkap tentang Solaris ZFS sedang dibuat jadi artikel.

Q: Apa sih yang menyebabkan zfs dikatakan filesystem yang cepat?
A: ini cepat dalam hal apa? read ato write?
operasi read pada ZFS adalah lebih cepat:
– karena dia pake algoritma ARC yang bisa memprediksi data yang akan dibaca.
– karena dia pake COW (lihat penjelasan dibawah)
– pada pool standar, ZFS pake dynamic striping, jadi data yang ditulis akan disebar kebeberapa disks. Sehingga kalo membaca data yang diambil dari beberapa disks, maka hasilnya akan lebih cepat toh? maaf kalo jawabannya baru segini karena saya memang tidak masuk dalam team developer ZFS.
nah, kamu kan kliatannya tertarik tu… kenapa tidak gabung aza? sapa tau bisa jadi employee sun microsystem loh… gimana ngak keren coba? hehehe :-p

Q: Apa itu zpool?
A: zpool adalah pool storage yang dibuat pada ZFS file system. command yang dipakai adalah zpool

Q: Apa keterbatasan dari zfs ? (from wikipedia)
A: ZFS jelas punya limit:
– satu pool ZFS maksimum bisa nampung total data sebesar 128bit. sekitar 18 milyar milyar kali lebih besar dari 64bit filesystem yang ada sekarang. jika lebih dari itu, ZFS ngak bisa.
– maksimum 2^64 ZFS snapshot
– maksimum 2^48 entries dalam sebuah directory
– maksimum bisa membuat single file sebesar 16 EiB (baca: ExbiByte)
1 exbibyte = 260 bytes = 1,152,921,504,606,846,976 bytes = 1,024 pebibytes
– maksimum bisa memiliki file attribute sebesar 16 EiB
– maksimum bisa memiliki pool sebesar 256 ZiB (ZebiByte)
1 zebibyte = 270 bytes = 1,180,591,620,717,411,303,424 bytes = 1,024 exbibytes
– maksimum memiliki 2^56 attributes dalam tiap file
– maksimum memiliki 2^56 file dalam sebuah directory
– maksimum memiliki 2^64 buah devices dalam sebuah zpool
– maksimum memiliki 2^64 zpool salam sebuah system
– maksimum memiliki 2^64 filesystem dalam sebuah zpool

Q: Kenapa sih kok maksimumnya gede banget? kan ngak kepake semua.
A: Ini filesystem untuk masa depan. komputer kamu memang g perlu-perlu amat. Tapi google, yahoo, amazon, friendster, facebook, perlu toh? dimasa depan, storage akan menjadi bigger & bigger. silahkan buka lagi buku sejarahnya, dan analisis bagaimana storage menjadi berlipat2 dalam sebuah interval waktu. dari situ kamu bisa buat interpolasi toh?

Q: ZFS support quota?
A: ya iya lah… masa iya dong?
quota biasanya digunakan untuk membatasi space user toh? kan tinggal buat aja zfs FileSystem untuk user tertentu, trus kasih quota. simple toh? daripada jalanin command edquota?, blom lagi repot untuk edit fstab?

Q: apakah harddisk yang sudah masuk pool bisa di tarik lagi?
A: tergantung kasusnya. kalo masuk ke pool yang mirror, tentu saja bisa. kalo dimasukin ke pool biasa, tentu saja TIDAK bisa, karena kan udah masuk ke ke dynamic striping (RAID0)… untuk cari tahu kelebihan kekurangan RAID0, silahkan tanya google.

Q: ZFS bukan cluster?
A: ya bukan dong…

Q: apa itu Copy-on-write transactional model? di kuliah ga ada…
A: saya dulu pernah ngasih ceramah di ITT. kurikulum cuman ngasih sampe lutut. tapi kebutuhan industri adalah orang kemampuannya sampai ujung kepala. artinya memang ada gap yang jauh antara industri dan kuliah. makanya jangan cuman ngandelin kuliah, makanya sekarang banyak tempat kursus dimana2, makanya ada GLC, makanya ada OSUM, makanya ada OSUG. begituu… kamu beruntung pernah belajar sistem berkas, saya ngak pernah sama sekali. Tapi belum tentu yang ngambil kuliah tersebut bisa ngejelasin dari sisi teknis tentang Ext2, Ext3, UFS, ZFS. hehehe… :-p

ok, back again, ZFS memakai teknologi trasactional model, disebut juga copy-on-write (COW), sama seperti yang dipakai oleh database oracle, postgresql. mysql sangat terbatas kemampuan transactionnya. Inti dari COW adalah: all-or-nothing. yang di tekankan disini adalah teknologi write-nya.

Saya ambil contoh cara kerjanya:
1. ketika kamu buat sebuah file yang bener2 baru, maka akan disimpan dalam blok yang baru di harddisk toh? sampe sini jelas yah?

2. apa yang terjadi ketika file tersebut diedit?
Jika memakai FileSystem biasa, maka blok tersebut akan akan ditulis ulang. kalo filenya menjadi lebih besar, maka akan dicarikan blok lagi untuk nyimpan data yang lokasinya entah dimana, kadang jauh dari data yang lama.
Efek kalo pake FS tradisional:
– setelah beberapa lama, apalagi untuk server yang sibuk (banyak read & write) maka file akan terjadi fragmentasi.
– kemampuan read & write menurun
– kalo komputer mati mendadak, maka akan muncul problem, file INconsistency.
bisa aja sih, diakalin dengan journalling filesystem, tapi ngak membantu karena data yang ditulis udah ngak consistent (baru setengah ditulis, lampunya mati). ini adalah cara kerja FS tradisional.
nah, kalo pake ZFS, ZFS akan mencari blok yang baru untuk menyimpan file yang diedit tersebut. Supaya lebih cepat dalam read/write, ZFS punya algoritma buat nyari lokasi blok baru yang optimal. Blok yang lama tidak diganggu gugat. inilah yang disebut copy-on-write. jadi nulisnya ditempat yang baru (seperti kalo copy file toh?)
efek kalo pake ZFS:
– tidak perlu DEFRAG (emangnya jendela?)
– kemampuan I/O tetap stabil, malahan bisa jadi tambah cepat karena ZFS punya algoritma untuk memprediksi file mana saja yang akan di read.
– ni yang penting lagi: kalo komputer mati mendadak, NGAK perlu panik, NGAK perlu pake fsck. karena ZFS bakal pake blok yang lama toh? blok yang baru kan gagal ditulis karena mati lampu.
teknologi COW ini diambil dari teknologi database dan sukses diimplementasikan ke filesystem. i just only can say one word: AMAZING!!

3. setelah ZFS udah SUKSES nulis di tempat yang baru, maka barulah pointernya di update. jadi konsepnya adalah all-or-nothing. Nunggu keseluruhan file bener2 selesai & sukses ditulis, baru kemudian pointernya di update. Blok yang lama akan dianggap kosong, dan bisa ditulis untuk file yang lain. jika ada gangguan selama proses menulis, maka fallback, pake data yang lama. begichuuu…

Q: mysql, postgres, oracle bisa bekerja lebih baik di ZFS?
A: ya iya laah… FS-nya bagus, DB-nya juga jadi bagus dunk?

ini adalah sebagian kecil bahasan tentang ZFS, nanti akan diceritakan lebih lanjut kok. Sabar yah, skr lagi banyak kerjaan ne…

versi pendek dari URL: http://bit.ly/eHFIU7

Untuk lebih dekat dengan ZFS dan batuk2nya: disini, disini, disini

Instalasi Solaris10 10/08 (update 6)

without comments

Tulisan ini adalah update dari tulisan saya sebelumnya tentang instalasi Sistem Operasi Solaris 10.

Dua hari yang lalu, 31 Oktober 2008, SUN meluncurkan release terbaru dari Sistem Operasi andalannya, Solaris. Release ini adalah release ke-enam setelah pertama kali diluncurkan pertama kali pada february 2005. Diberi nama 10/08 karena diluncurkan pada bulan ke 10 (oktober) tahun 2008. Release ini sangat istimewa dari sebelumnya karena telah diintegrasikannya feature yang telah lama dinanti-nantikan oleh para pengguna Solaris 10 diseluruh dunia, salah satunya adalah ZFS.

Pada bagian pertama artikel akan berbicara tentang feature baru dari release ini, dan pada bagian selanjutnya adalah panduan instalasinya.

artikel dapat diakses Achmad-Solaris10 update6 _october 2008_ installation

Written by Achmad Mardiansyah

November 2nd, 2008 at 12:32 pm