Neil,

many thanks for publishing this doc - it is exactly
what I was looking for !


On 7/9/07, Neil Perrin <[EMAIL PROTECTED]> wrote:
> Er with attachment this time.
>
>
> > So I've attached the accepted proposal. There was (as expected) not
> > much discussion of this case as it was considered an obvious extension.
> > The actual psarc case materials when opened will not have much more info
> > than this.
>
> PSARC CASE: 2007/171 ZFS Separate Intent Log
>
> SUMMARY:
>
>         This is a proposal to allow separate devices to be used
>         for the ZFS Intent Log (ZIL). The sole purpose of this is
>         performance. The devices can be disks, solid state drives,
>         nvram drives, or any device that presents a block interface.
>
> PROBLEM:
>
>         The ZIL satisfies the synchronous requirements of POSIX.
>         For instance, databases often require their
>         transactions to be on stable storage on return from the system
>         call.  NFS and other applications can also use fsync() to ensure
>         data stability. The speed of the ZIL is therefore essential in
>         determining the latency of writes for these critical applications.
>
>         Currently the ZIL is allocated dynamically from the pool.
>         It consists of a chain of varying block sizes which are
>         anchored in fixed objects. Blocks are sized to fit the
>         demand and will come from different metaslabs and thus
>         different areas of the disk. This causes more head movement.
>
>         Furthermore, the log blocks are freed as soon as the intent
>         log transaction (system call) is committed. So a swiss cheesing
>         effect can occur leading to pool fragmentation.
>
> PROPOSED SOLUTION:
>
>         This proposal takes advantage of the greatly faster media speeds
>         of nvram, solid state disks, or even dedicated disks.
>         To this end, additional extensions to the zpool command
>         are defined:
>
>         zpool create <pool> <pool devices> log <log devices>
>                 Creates a pool with a separate log. If more than one
>                 log device is specified then writes are load-balanced
>                 between devices. It's also possible to mirror log
>                 devices. For example a log consisting of
>                 two sets of two mirrors could be created thus:
>
>                 zpool create <pool> <pool devices> \
>                     log mirror c1t8d0 c1t9d0 mirror c1t10d0 c1t11d0
>
>                 A raidz/raidz2 log is not supported
>
>         zpool add <pool> log <log devices>
>                 Creates a separate log if it doesn't exist, or
>                 adds extra devices if it does.
>
>         zpool remove <pool> <log devices>
>                 Remove the log devices. If all log devices are removed
>                 we revert to placing the log in the pool.  Evacuating a
>                 log is easily handled by ensuring all txgs are committed.
>
>         zpool replace <pool> <old log device> <new log device>
>                 Replace old log device with new log device.
>
>         zpool attach <pool> <log device> <new log device>
>                 Attaches a new log device to an existing log device. If
>                 the existing device is not a mirror then a 2 way mirror
>                 is created. If device is part of a two-way log mirror,
>                 attaching new_device creates a three-way log mirror,
>                 and so on.
>
>         zpool detach pool <log device>
>                 Detaches a log device from a mirror.
>
>         zpool status
>                 Additionally displays the log devices
>
>         zpool iostat
>                 Additionally shows IO statistics for log devices.
>
>         zpool export/import
>                 Will export and import the log devices.
>
>         When a separate log that is not mirrored fails then
>         logging will start using chained logs within the main pool.
>
>         The name "log" will become a reserved word. Attempts to create
>         a pool with the name "log" will fail with:
>
>                 "cannot create 'log': name is reserved
>                  pool name may have been omitted"
>
>         Hot spares cannot replace log devices.
>
>
>


-- 
Regards,
        Cyril
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to