What is ZFS boot file system?
In our last article - 3: Package management of OpenSolaris (http://www.thinkit.co.jp/article/82/3/), a new feature added to the OpenSolaris 2008.05. In the last article of this series, I introduce management features, or OpenSolaris 2008.05's standout features.
OpenSolaris 2008.05 quickly and easily manages Solaris ZFS (ZFS) as the default file system. All files under root (/) can be managed with ZFS, which helped dramatically improve system reliability and scalability.
ZFS makes it easy to expand file systems simply by adding more hard disk drives, and also allows for extension of storage redundancy (mirroring or RAID-Z). Therefore, developers no longer need to worry about disk space being allocated or the building of partition sizes during initial installation.
For example, ZFS makes it quicker to take snapshots (backups) of file systems including a boot environment (BE), to roll back a file system, and to create a clone of a file system from a secured snapshot.
Snapshots guarantee quick recovery from a system or security failure. Unless you have used a ZFS file system with OpenSolaris 2008.05, you will be surprised how quickly it can implement these processes.
File system configuration and administration
Now, let's look at the OpenSolaris 2008.05 file system illustrated in Figure 1. When OpenSolaris is installed on a hard disk, a ZFS storage pool named rpool is created.
Two ZFS file systems are created in a storage pool called "rpool": one is a BE consisting of system files under root (/) and the other is a data space (under /export) that can be shared by multiple BEs The /rpool/boot directory that is created independently of these directories contains the GRUB startup menu used to manage multiple BEs.
The independence of system space including BEs as a file system makes system management more flexible.
Let me introduce an example of using ZFS to manage a file system. For example, when creating a database that requires large storage capacity, file systems can be managed in a more reliable, system-independent scheme by creating a storage pool with redundancy separately from rpool and building a database file system on it.
For example, to create a RAID-Z pool, or db_pool storage pool, and a ZFS file system named /db_pool/mysql_data with four hard disks attached to a system, the following can be used. With ZFS, you can easily create highly reliable file systems in this way.
# zpool create -f db_pool raidz c1t1d0 c1t2d0 c1t3do c1t4d0
# zfs create db_pool/mysql_data