Install Freebsd dengan ZFS (termasuk root)

By | August 8, 2008

ZFS adalah file system yang di desain oleh Sun Microsystems untuk Solaris Operating System.
ZFS merupakan file system tercepat yang ada saat ini, keuntungan/kelebihan dari ZFS adalah (saya ambil dari websitenya freebsd.org) :

* Support for high storage capacities
* Integration of the concepts of filesystem and volume management, snapshots and copy-on-write clones
* On-line integrity checking and repair, and RAID-Z.
* Increased reliability through checksums, multiple copies of data and self-healing RAID.
* Very similar to LVM (snapshots, rollbacks, etc), the partitions can be resized at any time, and in fact can be allocated up to the full size of the storage media.
* Built-in Compression and encryption, also NFS file sharing.
* Easy toolset for creation and manipulation.
* Many more

Kebutuhan System

Minimum processor: 1.2Ghz (Pentium4/Athlon-XP bagus juga)
Minimum memory: 768Mb of RAM (1Gb or more is recommended).

Instalasi

Disini saya menggunakan Harddisk dengan kapasitas 40Gb :

1. Boot dari CD FreeBSD 7.0
2. Pakai semua partisi yang ada
3. Buatlah 3 buah slices
/ -> 1Gb
swap -> Sesuai rekomendasi freebsd.org 2-3x RAM
Sisanya buat sembarang mount point kemudian tekan tombol M agar clear. Hal ini untuk meyakinkan mount point yang kita pilih tidak di mount atau dibuat sebagai file system.
4. Pilih Instalasi Minimal, kemudian reboot.

Membuat pool untuk ZFS

Setelah instalasi selesai, masuk dalam mode single user dan mount / dalam mode RW dengan perintah :

# mount -w /

Sekarang kita membuat disk pool, misal partisi yang kita buat adalah ad0s1d:

# zpool create rootvg /dev/ad0s1d

disk pool jangan di mount dahulu, stop automount dengan perintah :

# zfs set mountpoint=none rootvg

kemudian buat beberapa mount point :

# zfs create rootvg/root
# zfs create rootvg/usr
# zfs create rootvg/var
# zfs create rootvg/tmp

Kemudian set mount point :

# zfs set mountpoint=/rootvg rootvg/root
# zfs set mountpoint=/rootvg/usr rootvg/usr
# zfs set mountpoint=/rootvg/var rootvg/var
# zfs set mountpoint=/rootvg/tmp rootvg/tmp

Cek dengan perintah df untuk melihat kalau perintah set sudah sukses.
Kemudian copy UFS bootable slice ke ZFS mountpoint.

# find -x / | cpio -pmd /rootvg

Hapus folder boot dari /rootvg:

# rm -fr /rootvg/boot

Buat folder baru di dalam /rootvg dan buat link ke folder boot di luar :

# mkdir /rootvg/bootdist
# cd /rootvg
# ln -s bootdist/boot boot

Kemudian kita tambahkan baris berikut di /boot/loader.conf agar zfs bisa langsung di load
jangan lupa tambahkan setting vm (karena ZFS di FreeBSD statusnya masih experimental, kemungkinan masih ada crash di kernel).

# echo ‘zfs_load=”YES”‘ >> /boot/loader.conf
# echo ‘vfs.root.mountfrom=”zfs:rootvg/root”‘ >> /boot/loader.conf
# echo ‘vm.kmem_size_max=”512M”‘ >> /boot/loader.conf
# echo ‘vm.kmem_size=”512M”‘ >> /boot/loader.conf
# echo ‘vfs.zfs.zil_disable=1′ >> /boot/loader.conf

Tambahkan juga baris berikut ke /etc/fstab :

/dev/ad0s1a /bootdist ufs rw 1 1

Kemudian lakukan langkah berikut :

# cd /
# zfs set mountpoint=/tmp rootvg/tmp
# zfs set mountpoint=/usr rootvg/usr
# zfs set mountpoint=/var rootvg/var

# zfs set mountpoint=legacy rootvg/root

Beres sudah, reboot FreeBSD dan lets rock 🙂