|
|
Flag Day: ZFS - the last word in filesystems
Date: Mon, 31 Oct 2005 11:38:08 -0800 (PST)
From: Jeff Bonwick <bonwick at zion dot eng dot sun dot com>
To: onnv-gate at onnv dot sfbay dot sun dot com, on-all at eng dot sun dot com
Subject: Flag Day: ZFS - the last word in filesystems
Sun Proprietary/Confidential: For Internal Use Only
**** ZFS WILL BE ANNOUNCED THROUGH OPENSOLARIS THE WEEK OF 11/14 ****
Please do not publicly discuss ZFS or the impending announcement. We are
planning a community launch. If you want to be involved in the launch
through blogging, please subscribe to 'zfs-opensolaris-announce at sun dot com'.
More details will be forthcoming on that alias shortly.
**** ZFS IS A FLAG DAY FOR CAP-EYE-INSTALL USERS ****
Engineers: you'll need to do a full bfu across today's putback.
No other special action is required.
**** NOW THE FUN PART ****
Welcome to ZFS.
ZFS is a new kind of filesystem that provides simple administration,
transactional semantics, end-to-end data integrity, and immense scalability.
ZFS presents a pooled storage model that completely eliminates the concept
of volumes and the associated problems of partition management, provisioning,
and filesystem grow/shrink. Thousands of filesystems can all draw from a
common storage pool, each one consuming only as much space as it actually
needs. The combined I/O bandwidth of all devices in the pool is available
to all filesystems at all times.
All operations are copy-on-write transactions, so the on-disk state
is always valid. There is no need to fsck(1M) a ZFS filesystem, ever.
Every block is checksummed to prevent silent data corruption, and the
data is self-healing in mirrored or RAID-Z configurations. If one
copy is damaged, ZFS will detect it and use another copy to repair it.
ZFS provides unlimited constant-time snapshots and clones. A snapshot
is a read-only point-in-time copy of a filesystem, while a clone is a
writable fork of a snapshot. Clones are a great way to create workspaces,
perform upgrades, etc.
There are no hard limits in ZFS. You can have as many files as you want;
full 64-bit files offsets; unlimited links, directory entries, snapshots,
and so on.
And oh yeah -- it's fast.
Getting Started
---------------
Everything you hate about managing filesystems and volumes is gone:
you don't have to format, newfs, mount, edit /etc/vfstab, fsck, growfs,
metadb, metainit, etc.
Meet your new best friends: zpool(1M) and zfs(1M). Draft man pages are here:
# man -M /ws/zfs-gate/usr/src/man zpool
# man -M /ws/zfs-gate/usr/src/man zfs
or on the web here:
http://zfs.sfbay/docs.shtml
But ZFS is easy, so let's get on with it! It's time to create your first pool:
# zpool create tank c1t2d0
You now have a single-disk storage pool named tank, with a single
filesystem mounted at /tank. There is *nothing* else to do.
If you want mirrored storage for mail and home directories, that's easy too:
Create the pool:
# zpool create tank mirror c1t2d0 c2t2d0
Create the /var/mail filesystem:
# zfs create tank/mail
# zfs set mountpoint=/var/mail tank/mail
Create home directories, and mount them all in /export/home/<username>:
# zfs create tank/home
# zfs set mountpoint=/export/home tank/home
# zfs create tank/home/ahrens
# zfs create tank/home/billm
# zfs create tank/home/bonwick
# zfs create tank/home/eschrock
...
Filesystems in ZFS are hierarchical: each one inherits properties from above.
In this example, the mountpoint property is inherited as a pathname prefix.
That is, tank/home/ahrens is automatically mounted at /export/home/ahrens
because tank/home is mounted at /export/home. You don't have to specify
the mountpoint for each individual user -- you just tell ZFS the pattern.
This is how we actually set up home directory and mail service on zion.eng,
which has been running ZFS for over a year and a half.
But wait, there's more!
ZFS provides built-in compression. To compress all home directories:
# zfs set compression=on tank/home
To give ahrens a 10G quota:
# zfs set quota=10g tank/home/ahrens
To give bonwick a 100G reservation (membership has its privileges):
# zfs set reservation=100g tank/home/bonwick
To automatically NFS-export all home directories read/write:
# zfs set sharenfs=rw tank/home
To scrub all disks and verify the integrity of all data in the pool:
# zpool scrub tank
To replace a flaky disk:
# zpool replace tank c2t2d0 c4t1d0
To add more space:
# zpool add tank mirror c5t1d0 c6t1d0
To move your pool from SPARC machine 'sparky' to AMD machine 'amdy':
On sparky:
# zpool export tank
Physically move your disks from sparky to amdy.
Then, on amdy:
# zpool import tank
Everything will just work -- ZFS has 'adaptive endianness' to cope
with different byte order on different platforms.
You get the idea: it's simple. Any common ZFS operation can be done
with a single short command.
Documentation
-------------
For now, please use the draft man pages in /ws/zfs-gate/usr/src/man.
Our admin guide will be available on the opensolaris web page soon.
Bugtraq Categories
------------------
kernel/zfs ZFS kernel bugs
utility/zfs zfs(1M) and zpool(1M) bugs
Contact Information
-------------------
To contact the ZFS team, send mail to 'zfs-team at sun dot com'.
Join the ZFS discussion at 'zfs-interest at sun dot com'. This list will be
automatically migrated to 'zfs-discuss at opensolaris dot org' the week of 11/14.
You can get more information at:
http://www.opensolaris.org/community/os/zfs
This community is currently under development. Archived information
can be found at http://zfs.eng.
Give it a spin and let us know what you think!
-- The ZFS Team
Development:
Jeff Bonwick
Matt Ahrens
Lori Alt
Bill Baker
Rich Brown
Noel Dellofano
Eric Kustarz
Tabriz Leman
Lin Ling
Mark Maybee
Bill Moore
Neil Perrin
Bill Ricker
Eric Schrock
Mark Shellenbaum
Steve Talley
Test:
Jim Walker
Mike Byrne
Tim Foster
Robin Guo
Brian Keane
Sean McGrath
Martin Mei
Lance Owens
Marvin Wang
Forrest Wu
Management:
Dave Brittle
Bev Crair
Eric Ray
Fred Zlotnick
Program Management:
Gina Chua
Docs:
Cindy Swearingen
|