Tag Archives

7 Articles
Pasang ZFS Terbaru pada Ubuntu Xenial 16.04

Pasang ZFS Terbaru pada Ubuntu Xenial 16.04

Ubuntu Xenial secara baku memasang ZFS. Sayangnya, saya sering pindah-pindah sistem operasi sehingga versi ZFS yang dimiliki oleh Ubuntu Xenial tidak memadai. Ada fitur yang tidak kompatibel dengan versi ZFS Ubuntu.

Untungnya, perkakas ZFS yang sudah ada di Xenial sudah mumpuni. Yang perlu diperbaiki hanya versi kernelnya. Jadi, itulah yang hendak kita lakukan: memasang kernel ZFS terbaru pada Ubuntu Xenial sehingga fitur-fitur terbaru didukung.

Saya belum tahu efeknya, tetapi mohon berhati-hati bila menggunakan perkakas berbeda dengan kernel. Kalau saya, saya punya cadangan. Lagipula, saya biasa melakukan ini dari CD Pemasangan KDE Neon, distro GNU/Linux berdasarkan Ubuntu Xenial.

Mohon berhati-hati.  Saya tidak bertanggung jawab atas risiko yang Anda lakukan.

Teknis Setelah Mukadimah

Untuk kernel dari Ubuntu, hapus kernel ZFS yang sudah ada:

Pasang ketergantungan:

Unduh SPL:

Buat:

Unduh ZFS:

Buat:

Selesai.

Pasang ZFS GIT di Ubuntu 16.04 Xenial

Pasang ZFS GIT di Ubuntu 16.04 Xenial

Set:

Cuma memastikan versi yang lama tidak ada:

Pasang ketergantungan:

INI IMPLEMENTASI YANG RUSAK UNTUK XENIAL. SAYA TIDAK MENGHAPUS KARENA UNTUK KEPERLUAN RISET DI VERSI OS YANG LAIN. MOHON IKUTI CARA DI TULISAN INI.

 

Bacaan Lebih Lanjut

Catatan Pribadi: Pemasangan ZFS Pada Ubuntu 16.04 Xenial

Catatan Pribadi: Pemasangan ZFS Pada Ubuntu 16.04 Xenial

Versi kernel disesuaikan dengan kebutuhan, namun untuk kesederhanaan anggap saja versi yang sama dengan kernel yang sedang berjalan.

Pasang hal-hal yang dibutuhkan sesuai panduan pada ZFSOnLinux. Saya menambahkan GIT dan GNU Autoconf karena hendak memasang versi GIT.

Setelah ini, mari bangun komponen-komponen ZFS, yakni: SPL dan ZFS itu sendiri.

Memasang SPL

Unduh:

Sebenarnya tidak perlu dengan –with-linux. Sebagai pengingat saja kalau misalnya mau memasang untuk kernel versi lainnya. Misalnya, ada versi kernel terbaru dan sebelum masuk dengan kernel tersebut, kita pasang terlebih dahulu modul kernel. Jalankan skrip konfigurasi untuk mendapatkan skrip configure yang lazim dipakai untuk mengompilasi. Biasanya kalau unduh dari SCM (CVS, SVN, Mercurial, GIT, dan sebagainya), skrip tersebut belum ada. Lalu, lakukan stanza yang seperti biasanya.

Tentu saja, biasakan untuk mengompilasi dengan pengguna biasa. Baru setelah mau dipasang, dieskalasi jadi administrator.

Memasang ZFS

Unduh:

Lakukan empat stanza standar.

Selesai. Bagaimana menjalankan ZFS sudah ada di tulisan yang lain.

WordPress JP: Installing MariaDB

WordPress JP: Installing MariaDB

THERE WAS A BUG IN THE SERVER THAT MADE ME LOST THIS POST. THIS IS THE RETRIEVED VERSION THAT I BACK UP.

It’s obvious that I speed write and take everything from guide. As I said before, writing this in Bahasa Indonesia kind of hard for me. So, I write this as I do in parallel.

Setup Filesystem

Disable ZFS file-level prefetch as in the guide:

That would be last on the next reboot, but for now disable:

Create the dataset and the optimizations:

It is optimized to use cache for metadata only if we are going to use INNODB. Its chunk is 16k, so we set it also in ZFS. In the guide we are told that MariaDB log is a 128k chunk — default chunk in ZFS.

Remember that ZFSOnLinux Bug early on? Yeah, we should regenerate Ramdisk everytime we’ve done something to /etc/zfs/zpool.cache. To be honest, I don’t know if any of the operation we did earlier warrant such action. But, just do that for precaution.

And now, we go with installing MariaDB server.

Installing Database Server

According to MariaDB Repository configuration page, let’s set MariaDB:

Import its key and update our list:

Install MariaDB server:

Disable MariaDB server double buffer by add a line (mine, vanilla at line 142) with:

And restart MariaDB server:

From this onward, we are ready to install WordPress, NGINX and such.

Bacaan Lebih Lanjut

WordPress JP: Installing LAMP Stack with ZFS

WordPress JP: Installing LAMP Stack with ZFS

A REVISION WAS LOST! PLEASE TAKE A LOOK AT THE BOTTOM PAGE FOR GRUB SETTING BEFORE REBOOT.

I’m in fast writing mode as this is probably won’t intended to be understood by most people. I’m writing in this blog as I moving forward installing. To keep writing  and translating from my tacit into Bahasa Indonesia is kind of laboring. Perhaps, if you want, I would reiterate what I do here with better Bahasa Indonesia. But, now, let’s live speed writing.

Preparations

I’ve got Ubuntu 14.04 Live USB on my arsenal. Boot it up and setup some trivial like IP, DNS and stuff. I modify APT sources.list to match my nearest server.

Do the update and install SSH and VIM.

I need SSH because I can’t stand on server room too long. I’m not going to go on religious war on ViM vs Emacs. Last, change ubuntu user password.

And now the show live from my comfy SSH terminal laptop.

Install Ubuntu ZFS for Ubuntu Live Session

Straight from the doc.

You may wondering why I’m not upgrading first. Upgrading a temporary system is wasting time, especially one with GUI installed. Okay, now we get to the formatting.

Create A ZFS Pool

I have 2 SATA and 1 SSD. The best for server should be two SSDs. But, hey, beggar can’t choose.

ZFS config: 2 Disks + 1 SSD.

ZFS config: 2 Disks + 1 SSD.

Using GParted, I turned SSD into GPT with 3 partitions:

  • The first 200MB for /boot partition. Some twisted soul refused to use separated partition for /boot, well, good for you! I go with the conservative.
  • 8GB used for ZIL (ZFS Intent Log) drive. ZFS usually use 8GB max for journaling.
  • The rest used for ZFS Cache (ZARC).

But, hey, where is the EFI partition?

I’ve just recently found out that when you give your whole disk to ZFS, it would format the disk into two partitions. One big partition (sX1) for the use of ZFS and one 8MB partition (sdX9) for EFI partition (FAT). Yeah, ZFS automatically turn the disk into GPT partitioning scheme. After adding the two disks into a ZFS pool, the partitions will be like this:

I’m doing mirroring for sda and sdb. I wish I have one more SSD. I would mirror two partitions on separated SSDs for ZIL. If you are luckier than me, do it! It is for safety measure. But, don’t mirror the cache because it’s wasting space.

Here’s the reality:

If I may have a dream with two SSDs:

Disable access time, enable relative time and enable LZ4 compression on tanks.

If nothing is wrong, we would got:

Next, the partitioning. After this, I’m doing things from Crossroad’s tutorial with some tweaks.

Create Partition

As Debian configuration:

What? Yes, I’m installing Debian not Ubuntu.

Last, export the pool we’ve created for later import. We do this so that the ZFS config would read from disk by ID instead of common UDEV naming. Believe me, you don’t want to use UDEV naming (sda, sdb, etc.) on ZFS.

Now, we can start installing Debian system.

Install Debian

Reimport ZFS pool and create a ZFS configuration cache file.

REMEMBER: (Straight from the ZFS FAQ)

Run update-initramfs -c -k all after any /sbin/zpool command changes the /etc/zfs/zpool.cache file.

This is the reason of random failures from mounting ZFS root partition.

Install the system and mount all the basic system partitions.

And now, configure.

Configure Debian

Hostname.

Create configuration for network interfaces. In the spirit of new configuration scheme, I put two files in /etc/network/interfaces.d/

and

Mount all the system filesystems.

Chroot there

In Debian Configuration

Locales.

Timezone.

Remember when I said I’m going to put /boot on different partition? Now is the time.

Remember also what I said about using the ninth partition of the first disk? Now is the time.

Install ZFS packages with Debian style. ZFS needs lsb-release package.

Last, add a login.

Setup GRUB For ZFS Boot

There is a bug in Debian’s GRUB that makes the system unbootable. First, let’s reconfigure GRUB Default command line:

Change Linux default command line (second screen after Linux command line) from

to

After this, update grub and we are done.

Booting to New System

After all preparations, unmount all the filesystems

Reboot.

Final Thought

Well, you might find some faults here and there. If not, everything after this is straightforward.

Bacaan Lebih Lanjut

Adding device to ZFS on Linux
This Way Up

Adding device to ZFS on Linux

After cleaning up my motherboard, I reconnected all of my hard drive to it. ZFS couldn’t found all of the disks because I was carelessly put the disks back. Alas, lesson learnt! I have to figure out the right combo of my SATA disks.

The Internet suggested that I should have reattached the disks with export and import it back. Thus:

My friend, Idur, suggested that I should’ve use UUID like LVM did. But, on some bizzare cases a system could have redundant UUID. Going by safe bet, I use the Disk ID instead. I should have attached it like this:

Oh, well, YOLO! In fact, it was not I who cleaned the motherboard and the solution that I’ve chose was to reattach the disks into the right sequence — kind of solving a puzzle.

Perjalanan Membangun Sistem (ZFS)

Perjalanan Membangun Sistem (ZFS)

My PC, built with Gentoo

My PC, built with Gentoo inside.

Ada dua WDC Green 1 TB yang bertengger di atas. Dua itu adalah milik rekan saya. Dia sedang melakukan forensik dengan salah satunya. Katanya chipset AMD lebih cepat dan stabil dalam melakukan operasi salin daripada Intel. Meh, he’s the hardware guy, /me dunno…

Punya saya yang ada di salah satu tiga itu cuma sebesar 300 GB. Satu penyimpan di bawah monitor, SATA3 Cheetah 10K RPM 300 GB, saya pakai buat direktori pusat (root directory). Satu lagi di sebelahnya juga 250 GB.

Dari set tersebut, 2 penyimpan (300 GB dan 250 GB) saya ambil untuk iseng-iseng. Tadinya, saya menggunakan 250 GB saja. Tapi, seiring dengan perkembangan kepercayaan diri yang tinggi, saya mencopot penyimpan saya dari komputer kerja dan menaruh di komputer ini.

Sistemberkas

Kebutuhan saya akan sistemberkas kali ini adalah untuk memanajemennya dengan mudah. Kebutuhan yang paling utama adalah untuk virtualisasi. Saya butuh setiap VM untuk sebuah lingkungan pengembangan yang terisolasi.

Yang kedua, saya butuh untuk bisa secara daring memperbesar ruang penyimpan. Hal ini karena terkadang ketika saya membangun sistem dalam VM, ruang yang disediakan ternyata tidak cukup. Saya perlu menambah ruang dengan dinamis tanpa harus memindah-mindahkan data.

Saya menguji 3 sistem berkas: LVM, BTRFS, dan ZFS. Dari ketiganya, yang paling familiar adalah LVM. Namun, entah mengapa Device Mapper gagal membuatkan node di “/dev” untuk LVM. Saya jadi tidak bisa memasangnya.

Hal serupa juga terjadi dengan BTRFS. Ternyata BTRFS juga menggunakan menggunakan Device Mapper. Saya jadi tak bisa memasang BTRFS. Hal ini ditambah pula dengan kegamangan menggunakan BTRFS.

Kemudian, saya mencoba memasang ZFS. Memasangnya cukup sederhana di Gentoo. Karena faktor itu, saya jadinya suka ZFS. Mungkin tulisan ini lebih menjelaskan mengapa sederhana itu indah. Mengingat terminologi setiap sistem berkas berbeda, ZFS memiliki konsep yang sama dengan LVM tapi jauh lebih canggih.

Saya menggunakan versi GIT. Jangan salah, saya bukannya penyuka ketidakstabilan. Akan tetapi, menurut saya, teknologi terbaru seharusnya menggunakan kode yang terbaru. Selain lebih stabil, beberapa fitur lebih didukung. Apalagi, pengembangan ZFS di GNU/Linux sangat cepat.

Pasang ZFS

Aktifkan versi GIT.

Saya lupa, bila ada sesuatu yang salah, aktifkan “–autowrite-unmask” pada emerge. Selain itu, pastikan bahwa header kernel merupakan versi yang terpasang dan aktif. Saya sempat gagal memasang SPL karena dia membutuhkan versi header yang valid.

Lanjut pasang:

Selanjutnya tentang jenis-jenis volum.

Sekilas mengenai ZFS

ZFS mengenal konsep pool yang kalau dalam LVM itu artinya volume group. Berhubung saya hanya memiliki 1 penyimpan saja (waktu itu). Saya hanya menambahkan:

Sistemberkas utama saya ada di /dev/sdb1, jadi hati-hati kawan. Saya tidak menambahkan /dev/sdb1 ke dalam ZFS saya. Saya masih belum tahu cara memasangnya ZFS sebagai berkas utama.

Baru-baru ini, saya menemukan bahwa ternyata subvolum ZFS terdiri atas dua:

  1. Sebuah blok yang bisa diformat
  2. Sebuah direktori

Berikut bedanya.

Subvolum Blok

Saya membutuhkan sebuah partisi untuk BlankOn Rote. Sistem ini sangat stabil dan cocok untuk membangun OpenELEC. Saya selalu gagal bila melakukan di Gentoo. Hal ini karena Python yang digunakan sama. Entahlah, saya hanya percaya BlankOn untuk sistem stabil.

Dengan menyatakan ukuran, ZFS secara otomatis menganggap bahwa yang hendak dibuat adalah sebuah subvolum blok. Ia akan otomatis membuat node di /dev/vmdisk/blankon dan /dev/zvol/vmdisk/blankon.

Subvolum Direktori

Subvolum yang kedua adalah membuat sebuah direktori khusus (child node) di bawah sebuah pool (vmdisk). Beda dengan subvolum blok, ia tidak memiliki node di /dev, ia hanya sebuah direktori biasa. Namun, ia bisa diisolasi dengan memberikan kuota dan hak khusus kepada beberapa orang misalnya.

Cara buatnya:

Lalu buat kuota untuk direktori itu:

Entah mengapa, subvolum ZFS jenis ini di Gentoo belum terintegrasi. Jadinya, saya harus memasang manual. Yah, saya juga belum eksplorasi lebih lanjut dengan ZFS. Yang keren dari cara memasang ZFS adalah kita bisa mengubah titik pemasangan subvolum ini:

Lalu pasang:

Seperti sistemberkas lainnya, biasanya direktori tersebut dimiliki oleh root. Saya harus mengganti menjadi milik pengguna biasa:

Tidak ada yang istimewa dengan perintah ini. Namun saat kita memasang ulang, direktori ini tetap menjadi milik pengguna biasa.

Hasil penyalinan yang saya lakukan dengan memindahkan berkas Musik ke dalam subvolum vmdisk/musik.

Lumayanlah.

Tambahan

Ada banyak properti yang bisa diubah untuk sebuah subvolum. Untuk tahu lebih lanjut apa saja properti yang bisa diubah-ubah:

Saya sendiri telah mengubah properti kuota sebelumnya. Saya juga mengaktifkan kompresi [pasti, dong., Vishera 8 inti sayang kalau tak digunakan] untuk sistem berkas saya:

Kalau mau tahu tentang nilai sebuah properti, silakan:

Silakan eksplorasi sendiri. Oh, iya, ZFS menghabiskan banyak memori. Katanya, sih, yang ideal itu minimal memori 4GB.

Kesimpulan

ZFS memiliki zona-zona yang terisolasi dan hak akses yang terintegrasi. Cocok sekali digunakan untuk sistem yang memiliki banyak pengguna. Saya belum sempat membahas, namun ZFS bisa diekspor sebagai NFS, iSCSI, dan SMB. Tak heran banyak pusat data yang menggunakan ZFS sebagai sistemberkas dasar. Saya juga belum membahas mengenai format RAIDZ yang dimilikinya dan fasilitas membuat cuplikan secara daring. Maklum, ruang penyimpan saya belum banyak.