<?xml version="1.0"?>
<rss version="2.0">

<channel>
	<title>Planet OpenSolaris</title>
	<link>http://planet.opensolaris.org/</link>
	<language>en</language>
	<description>Planet OpenSolaris - http://planet.opensolaris.org/</description>

<item>
	<title>Dave Miner: OpenSolaris Power User Tutorial at OSCON</title>
	<guid isPermaLink="false">http://blogs.sun.com/dminer/entry/opensolaris_power_user_tutorial_at</guid>
	<link>http://blogs.sun.com/dminer/entry/opensolaris_power_user_tutorial_at</link>
	<description>
	&lt;img src=&quot;heads/dminer.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;
I really should have posted this quite some time ago, but between getting the OpenSolaris 2009.06 release out, speaking at CommunityOne, speaking at the OpenSolaris user group in New York, and trying to sleep once in a while, it's been a little tough to keep up.&amp;nbsp; Anyway, &lt;a href=&quot;http://blogs.sun.com/nsolter&quot;&gt;Nick&lt;/a&gt; and I are giving a three-hour &lt;a href=&quot;http://en.oreilly.com/oscon2009/public/schedule/detail/8327&quot;&gt;OpenSolaris tutorial&lt;/a&gt; at &lt;a href=&quot;http://en.oreilly.com/oscon2009&quot;&gt;OSCON 2009&lt;/a&gt; on July 21. Looking at the content draft, we've probably got more like five hours of material, but we'll figure out how to cram most of it in.&amp;nbsp; Even if you've read &lt;a href=&quot;http://www.wiley.com/WileyCDA/WileyTitle/productCd-0470385480.html&quot;&gt;OpenSolaris Bible&lt;/a&gt; you're likely to learn a lot, as a fair amount of the material is on technology that's not covered in the book, such as &lt;a href=&quot;http://www.opensolaris.org/os/project/crossbow/&quot;&gt;Crossbow&lt;/a&gt; and the &lt;a href=&quot;http://www.opensolaris.org/os/project/caiman/auto_install/&quot;&gt;Automated Installer&lt;/a&gt;.&amp;nbsp; I'm also expecting to spend some time wandering around at the conference, so hope to see you there!&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://conferences.oreilly.com/oscon&quot;&gt;&lt;br /&gt;&lt;img border=&quot;0&quot; width=&quot;210&quot; height=&quot;60&quot; title=&quot;OSCON 2009&quot; alt=&quot;OSCON 2009&quot; src=&quot;http://assets.en.oreilly.com/1/event/27/oscon2009_banner_speaking_210x60.gif&quot; /&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
  &lt;div class=&quot;zemanta-pixie&quot;&gt;&lt;img src=&quot;http://img.zemanta.com/pixy.gif?x-id=5113030d-c055-86a0-85d1-a09a22a397d9&quot; class=&quot;zemanta-pixie-img&quot; /&gt;&lt;/div&gt;	</description>
	<pubDate>Thu, 02 Jul 2009 18:04:13 +0000</pubDate>
</item>
<item>
	<title>Glenn Brunette: NEW: OpenSolaris Immutable Service Containers</title>
	<guid isPermaLink="false">http://blogs.sun.com/gbrunett/entry/new_opensolaris_immutable_service_containers</guid>
	<link>http://blogs.sun.com/gbrunett/entry/new_opensolaris_immutable_service_containers</link>
	<description>
While the need for security and integrity is well-recognized, it is less often
well-implemented.  Security assessments and industry reports regularly show
how sporadic and inconsistent security configurations become for organizations
both large and small.  Published recommended security practices and settings
remain unused in many environments and existing, once secured, deployments
suffer from atrophy due to neglect.
&lt;p&gt;&lt;p&gt;

Why is this?  There is no one answer.  Some organizations are simply unaware of
the security recommendations, tools, and techniques available to them.  Others
lack the necessary skill and experience to implement the guidance and maintain
secured configurations.  It is not uncommon for these organizations to feel
overwhelmed by the sheer number of recommendations, settings and options.  Still
others may feel that security is not an issue in their environment.  The list goes
on and on, yet the need for security and integrity has never been more important.
&lt;p&gt;&lt;p&gt;

Interestingly, the evolution and convergence of technology is
cultivating new ideas and solutions to help organizations better protect their
services and data.  One such idea is being demonstrated by the &lt;a href=&quot;http://wikis.sun.com/display/ISC/Home&quot;&gt;Immutable Service Container&lt;/a&gt;
(ISC) project.  Immutable Service Containers are an architectural deployment pattern
used to describe a platform for highly secure service delivery.  Building upon concepts
and functionality enabled by operating systems, hypervisors, virtualization, and
networking, ISCs provide a secured container into which a service or set of
services is deployed.  Each ISC embodies at its core the key principles inherent
in the &lt;a href=&quot;http://www.sun.com/blueprints/0206/819-5605.pdf&quot;&gt;Sun Systemic
Security&lt;/a&gt; framework including: self-preservation, defense in depth, least
privilege, compartmentalization and proportionality.  Further, ISC design borrows
from Cloud Computing principles such as service abstraction, micro-virtualization,
automation, and &amp;quot;fail in place&amp;quot;.
&lt;p&gt;&lt;p&gt;

By designing service delivery platforms using the Immutable Service Containers mode,
a number of significant security benefits:
&lt;p&gt;&lt;p&gt;
&lt;ul&gt;
&lt;li&gt;For application owners:
&lt;ul&gt;
&lt;li&gt;ISCs help to protect applications and services from tampering&lt;/li&gt;
&lt;li&gt;ISCs provide a consistent set of security interfaces and resources for applications
and services to use&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;&lt;p&gt;
&lt;li&gt;For system administrators:
&lt;ul&gt;
&lt;li&gt;ISCs isolate services from one another to avoid contamination&lt;/li&gt;
&lt;li&gt;ISCs separate service delivery from security enforcement/monitoring&lt;/li&gt;
&lt;li&gt;ISCs can be (mostly) pre-configured by security experts&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;&lt;p&gt;
&lt;li&gt;For IT managers:
&lt;ul&gt;
&lt;li&gt;ISCs creation can be automated, pre-integrating security functionality making them
faster and easier to build and deploy&lt;/li&gt;
&lt;li&gt;ISCs leverage industry accepted security practices making them easier to audit and
support&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/p&gt;&lt;/p&gt;&lt;/ul&gt;
&lt;p&gt;&lt;p&gt;

It is expected that Immutable Service Containers will form the most basic
architectural building block for more complex,
&lt;a href=&quot;http://mapping.sun.com/profile/offer.jsp?id=108&quot;&gt;highly
dynamic&lt;/a&gt; and &lt;a href=&quot;http://kenai.com/projects/isc/pages/Autonomic&quot;&gt;autonomic&lt;/a&gt;
architectures.  The goal of the ISC project is to more fully describe the architecture
and attributes of ISCs, their inherent benefits, their construction as well as to
document practical examples using various software applications.
&lt;p&gt;&lt;p&gt;

While the notion of ISCs is not based upon any one product or technology, an
instantiation has been recently developed using &lt;a href=&quot;http://www.opensolaris.com/&quot;&gt;
OpenSolaris 2009.06&lt;/a&gt;.  This instantiation offers a pre-integrated configuration
leveraging OpenSolaris security recommended practices and settings.  With ISCs,
you are not starting from a blank slate, but rather you can now build upon the
security expertise of others.  Let's look at the OpenSolaris-based ISC more closely.
&lt;p&gt;&lt;p&gt;

In an ISC configuration, the global zone is treated as a system controller and
exposed services are deployed (only) into their own non-global zones.  From a
networking perspective, however, the entire environment is viewed as a single
entity (one IP address) where the global zone acts as a security monitoring and
arbitration point for all of the services running in non-global zones.&lt;p&gt;&lt;p&gt;

As a foundation, this highly optimized environment is pre-configured with:
&lt;p&gt;&lt;p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://blogs.sun.com/gbrunett/tags/noexstk&quot;&gt;non-executable stack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blogs.sun.com/gbrunett/entry/encrypted_swap_in_opensolaris_2009&quot;&gt;encrypted swap space&lt;/a&gt; (w/ephemeral key)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blogs.sun.com/gbrunett/entry/encrypted_scratch_space_in_opensolaris&quot;&gt;encrypted scratch space&lt;/a&gt; (w/ephemeral key)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://blogs.sun.com/gbrunett/entry/free_security_hardened_virtual_machine&quot;&gt;security hardened operating system&lt;/a&gt; (global and non-global zones)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;p&gt;

Further, the default OpenSolaris ISC uses:&lt;p&gt;&lt;p&gt;&lt;ul&gt;
&lt;li&gt;&lt;u&gt;Non-Global Zone&lt;/u&gt;.  Exposed services are deployed in a non-global zone.  There they can take advantage of the core security benefits enabled by OpenSolaris non-global zones such as restricted access to the kernel, memory, devices, etc.  For more information on non-global zone security capabilities, see the Sun BluePrint titled &amp;quot;&lt;a href=&quot;http://mapping.sun.com/profile/offer.jsp?id=120&quot;&gt;Understanding the Security Capabilities of Solaris Zones Software&lt;/a&gt;&amp;quot;.  Using a fresh ISC, you can simply install your service into the provided non
-global zone as you normally would.&lt;p&gt;&lt;p&gt;Further in the ISC model, each non-global zone has its own encrypted scratch space (w/its own ephemeral key), its own persistent storage location, as well as a pre-configured auditing and networking configuration that matches that of the global zone.  You do not need to use the
 encrypted scratch space or persistent storage, but it is there if you want to take advantage of it.  Obviously, additional resource controls (CPU, memory, etc.) can be added as necessary.  These are not pre-configured due to the variability of service payloads.&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;p&gt;&lt;li&gt;&lt;u&gt;Solaris Auditing&lt;/u&gt;.  A default audit policy is implemented in the global zone and all non-global zones that tracks login and logout events, administrative events as well as all commands (and command line arguments) executed on the system.  The audit configuration and audit trail are kept in the global zone where they cannot be accessed by any of the non-global zones.  The audit trail is also pre-configure
d to be delivered by SYSLOG (by default this information is captured in &lt;i&gt;/var/log/auditlog&lt;/i&gt;).&lt;/li&gt;&lt;p&gt;
&lt;li&gt;&lt;u&gt;Private Virtual Network&lt;/u&gt;.  A private virtual network is configured by default for all of the non-global zones.  This network isolates each non-global zone to its own virtual NIC.  By default, the global and non-global zones can freely initiate external communications, although this can be restricted if needed.  A non-global zone is not permitted to accept connections, by default.  Non-global zone service
s can be exposed through the global zone IP address by adjusting the IP Filter and IP NAT policies (below).&lt;/li&gt;&lt;p&gt;
&lt;li&gt;&lt;u&gt;Solaris IP NAT&lt;/u&gt;.  Each non-global zone is pre-configured to have a private address assigned to its virtual NIC.  To allow the non
-global zone to communicate with external systems and networks, an IP NAT policy is implemented.  Outgoing connections are masked using the
 IP address of the global zone.  Incoming connections are redirected based upon the port used to communicate.  Beyond simple hardening of the non-global zone (a state which can be altered from within the non-global zone itself), this mechanism ensures that the global zone can control which services are exposed by the non-global zone and on which ports.&lt;/li&gt;&lt;p&gt;&lt;li&gt;&lt;u&gt;Solaris IP Filter&lt;/u&gt;.  A default packet filtering policy is implemented in the global zone allowing only DHCP (for the exposed network interface) and SSH (to the global zone).  Additional rules are available (but disabled) to allow access to non-global zones on an as-needed basis.  Further, rules are implemented to deny external access to any non-global zone that has changed its pre-assigned (private) IP address.  Packet filtering is pre-configured to log packets to SYSLOG (by default this information is captured in &lt;i&gt;/var/log/ipflog&lt;/i&gt;).
&lt;/li&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/ul&gt;
&lt;p&gt;&lt;p&gt;

So what does all of this really mean?  Using the ISC model, you can deploy your services in a micro-virtualized environment that offers protection against kernel-based root kits (and some forms of user-land root kits), offers flexible file system immutability (based upon read-only file systems mounted into the non-global zone), can take advantage of process least privilege and resource controls, and is operated in
 a hardened environment where there is a packet filtering, NAT and auditing policy that is effectively out of the reach of the deployed service.  This means that should a service be compromised in a non-global zone, it will not be able to impact the integrity or validity of the auditing, packet filtering, and NAT configuration or logs.  While you may not be able to stop every form of attack, having reliable audit trails can significantly help to determine the extent of the breach and facilitate recovery.&lt;p&gt;&lt;p&gt;The following diagram puts all of the pieces together:
&lt;p&gt;&lt;p&gt;

&lt;center&gt;&lt;img src=&quot;http://kenai.com/attachments/wiki_images/isc/isc-diagram-v0.1.png&quot; width=&quot;497&quot; height=&quot;346&quot; /&gt;&lt;/center&gt;&lt;p&gt;&lt;p&gt;

Additional &lt;a href=&quot;http://kenai.com/projects/isc/pages/Networking&quot;&gt;private virtual networking models&lt;/a&gt; are also being considered.  All in all, the ISC model offers a very compelling deployment model.  The accessiblity and attractiveness of this model is further enhanced by the availability of an &lt;a href=&quot;http://kenai.com/projects/isc/pages/Home&quot;&gt;ISC construction kit&lt;/a&gt; that allows you to take an OpenSolaris 2009.06 system and convert it to the ISC model with a single command.  Sound interesting?  &lt;a href=&quot;http://kenai.com/projects/isc/pages/
Home&quot;&gt;Give it a try&lt;/a&gt;, come join the project and be sure to send along your &lt;a href=&quot;http://kenai.com/projects/isc/forums/forum&quot;&gt;feedback
&lt;/a&gt;!
&lt;p&gt;&lt;p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;	</description>
	<pubDate>Wed, 01 Jul 2009 22:06:25 +0000</pubDate>
</item>
<item>
	<title>Ghee Teo: Desktop Summit - Here I come!</title>
	<guid isPermaLink="false">http://blogs.sun.com/gheet/entry/desktop_summit_here_i_come</guid>
	<link>http://blogs.sun.com/gheet/entry/desktop_summit_here_i_come</link>
	<description>
	&lt;img src=&quot;heads/gheet.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;
&lt;p&gt;&lt;a href=&quot;http://www.grancanariadesktopsummit.org/&quot;&gt; Desktop Summit &lt;/a&gt; which is made up of GUADEC and AKademy will be held this year in the Gran Canaria from 3rd-11th July. This is by far the biggest events on its nature, FOSS and totally Desktop oriented. &lt;/p&gt;


&lt;p&gt;I will be arriving on the 2nd July evening with the whole bunch from the Desktop group in Sun. Now that some of the people, Alberto, Luis are native Canarians. I am looking forwards to their local hospitality &lt;img src=&quot;http://blogs.sun.com/images/smileys/smile.gif&quot; class=&quot;smiley&quot; alt=&quot;:)&quot; title=&quot;:)&quot; /&gt; Also we meet up hackers old and new. &lt;/p&gt;


&lt;p&gt;Many of the exciting talks including GNOME Shell, GNOME 3.0, Mobile Development are so exciting topics that I look forward to hear and see! I will be there until 9th July. &lt;/p&gt;	</description>
	<pubDate>Wed, 01 Jul 2009 21:44:38 +0000</pubDate>
</item>
<item>
	<title>OpenSolaris Observatory: Zones</title>
	<guid isPermaLink="false">http://blogs.sun.com/observatory/entry/zones</guid>
	<link>http://blogs.sun.com/observatory/entry/zones</link>
	<description>
	&lt;img src=&quot;heads/observatory.gif&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;
&lt;p&gt;
The installation of a &lt;a href=&quot;http://opensolaris.org/os/community/zones/&quot;&gt;zone&lt;/a&gt; in OpenSolaris is a bit different than in Solaris 10 (or SXCE) and it's due to &lt;a href=&quot;http://opensolaris.org/os/project/pkg/&quot;&gt;IPS&lt;/a&gt;, which is unique to OpenSolaris. When you create a zone in Solaris 10, you get a &lt;i&gt;native&lt;/i&gt; zone, which is very lightweight because it shares much of its system software with the base Solaris 10 installation. However, native zones presume you are using the &lt;a href=&quot;http://opensolaris.org/os/project/svr4_packaging/&quot;&gt;SVR4&lt;/a&gt; packing system (as opposed to IPS). Therefore, OpenSolaris uses a &lt;i&gt;branded&lt;/i&gt; zone called &lt;font&gt;ipkg&lt;/font&gt;.&lt;/p&gt; 
  &lt;p&gt;The &lt;font&gt;ipkg&lt;/font&gt; branded zone doesn't share any of its system information with base OpenSolaris installation. As a matter of fact, when installed, it's not even copied from the base installation, but rather downloaded from an IPS repository. Obviously this makes working with zones in OpenSolaris a bit more restrictive (it took about 10 minutes to download and install on my machine). Supposedly, work is underway to add IPS support to native zones. But until that happens, here's my guide to working with zones in OpenSolaris.&lt;br /&gt;&lt;/p&gt; 
  &lt;p&gt;Setting up a zone involves 4 steps: create, install, boot and configure.&lt;/p&gt; 
  &lt;h3&gt;Step 1: Create the Zone &lt;br /&gt;&lt;/h3&gt; 
  &lt;p&gt;If you're not interested in zones, you should at least be aware that you're already running in one - the &lt;b&gt;&lt;font&gt;global&lt;/font&gt;&lt;/b&gt; zone:&lt;br /&gt; &lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;bleonard@opensolaris:~$ &lt;b&gt;zoneadm list -v&lt;/b&gt;
  ID NAME             STATUS     PATH                           BRAND    IP    
   0 global           running    /                              native   shared
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt;Zones must be installed within a ZFS file system, otherwise the &lt;font&gt;zone install&lt;/font&gt; command will generate the error &amp;quot;no zonepath dataset&amp;quot; (see defect &lt;a href=&quot;http://blogs.sun.com/observatory/feed/entries/%28see%20defect%208468%20for%20details%29&quot;&gt;8468&lt;/a&gt; for details). You can either use an existing ZFS file system, such as &lt;font&gt;/export/home&lt;/font&gt; or create a new one, as I chose to do here:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;&lt;b&gt;pfexec zfs create -o mountpoint=/zones rpool/zones&lt;/b&gt;&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;Before we actually create the zone, let's pre-determine some information that will be required. I'm going to set the zone name to &lt;font&gt;&lt;b&gt;myzone&lt;/b&gt;&lt;/font&gt;. The zone needs a network interface, which can match that of the global zone. This is easiest to figure out by hovering over the connection properties icon in the top panel and noting the Network Connection:&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://blogs.sun.com/observatory/resource/200905_zones/ConnectionProperties.png&quot; /&gt;&lt;/p&gt; 
  &lt;p&gt;In my case it's &lt;b&gt;&lt;font&gt;e1000g0&lt;/font&gt;&lt;/b&gt;.&lt;/p&gt; 
  &lt;p&gt;Since we'll be using a shared IP stack with the global zone, the non-global zone is not at liberty to select its own IP address (or use DHCP). I may talk about exclusive IP stacks in another entry, but for now we need to choose a free IP address on the subnet (I'm running OpenSolaris in VirtualBox, which provides it's own subnet). I'll be using &lt;b&gt;&lt;font&gt;10.0.2.25&lt;/font&gt;&lt;/b&gt;.&lt;/p&gt; 
  &lt;p&gt;Once you have that information collected, you can begin to create the zone:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;bleonard@opensolaris:~$ &lt;b&gt;pfexec zonecfg -z myzone&lt;/b&gt;
myzone: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:myzone&amp;gt; &lt;b&gt;create&lt;/b&gt;
zonecfg:myzone&amp;gt; &lt;b&gt;set zonepath=/zones/myzone&lt;/b&gt;
zonecfg:myzone&amp;gt; &lt;b&gt;add net&lt;/b&gt; 
zonecfg:myzone:net&amp;gt; &lt;b&gt;set physical=e1000g0&lt;/b&gt;
zonecfg:myzone:net&amp;gt; &lt;b&gt;set address=10.0.2.25&lt;/b&gt;
zonecfg:myzone:net&amp;gt; &lt;b&gt;end&lt;/b&gt;
zonecfg:myzone&amp;gt; &lt;b&gt;exit&lt;/b&gt;
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt;To see your zone's current configuration, run:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;bleonard@opensolaris:~$ &lt;b&gt;zonecfg -z myzone info&lt;/b&gt;
zonename: myzone
zonepath: /zones/myzone
brand: ipkg
autoboot: false
bootargs: 
pool: 
limitpriv: 
scheduling-class: 
ip-type: shared
net:
	address: 10.0.2.25
	physical: e1000g0
	defrouter not specified  &lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;List the zones again, using the &lt;font&gt;-c&lt;/font&gt; option to show all zones (not just those installed):&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;bleonard@opensolaris:~$ &lt;b&gt;zoneadm list -cv&lt;/b&gt;
  ID NAME             STATUS     PATH                           BRAND    IP    
   0 global           running    /                              native   shared
   - myzone           &lt;b&gt;configured&lt;/b&gt; /zones/myzone                  &lt;b&gt;ipkg&lt;/b&gt;     shared
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;Notice the brand is &lt;font&gt;ipkg&lt;/font&gt;.&lt;/p&gt; 
  &lt;h3&gt;Step 2: Install the Zone&lt;br /&gt;&lt;/h3&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt;Now that the zone's configured, let's install it. Zone installation on OpenSolaris is a much different experience than on Solaris 10, as the zone must be downloaded from the package repository rather then simply copied from the global zone:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;bleonard@opensolaris:~$ &lt;b&gt;pfexec zoneadm -z myzone install&lt;/b&gt;
A ZFS file system has been created for this zone.
  Authority: Using http://pkg.opensolaris.org/release/.
      Image: Preparing at /zones/myzone/root ... done.
 Installing: (output follows)
DOWNLOAD                                    PKGS       FILES     XFER (MB)
Completed                                  52/52   7862/7862   72.41/72.41 

PHASE                                        ACTIONS
Install Phase                            12939/12939 
PHASE                                          ITEMS
Reading Existing Index                           9/9 
Indexing Packages                              52/52 

       Note: Man pages can be obtained by installing SUNWman
Postinstall: Copying SMF seed repository ... done.
Postinstall: Working around http://defect.opensolaris.org/bz/show_bug.cgi?id=741
       Done: Installation completed in 595.162 seconds.

 Next Steps: Boot the zone, then log into the zone console
             (zlogin -C) to complete the configuration process
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;We can verify the installation via it's status:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt; bleonard@opensolaris:~$ &lt;b&gt;zoneadm list -cv&lt;/b&gt;
  ID NAME             STATUS     PATH                           BRAND    IP    
   0 global           running    /                              native   shared
   - myzone           &lt;b&gt;installed&lt;/b&gt;  /zones/myzone                  ipkg     shared
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;h3&gt;Steps 3 &amp;amp; 4: Boot and Configure&lt;/h3&gt;The next steps are to boot and configure the zone. When the zone boots for the first time, &lt;a href=&quot;http://docs.sun.com/app/docs/doc/816-5166/sysidtool-1m?l=ja&amp;amp;a=view&quot;&gt;sysidtool&lt;/a&gt; is going to run to configure the system. We will boot the zone using two terminal windows: one to boot the system and the other to configure it. Note, it is possible to automate these system configuration steps, which I'll cover in a future blog.&lt;br /&gt; 
  &lt;p&gt;Log into the zone and wait for it to boot:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;bleonard@opensolaris:~$ &lt;b&gt;pfexec zlogin -C myzone&lt;/b&gt;
[Connected to zone 'myzone' console]  &lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt;Open a 2nd terminal window and boot the zone. If you see the warning like I did, don't worry about it, I address this at the end of the entry.&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;bleonard@opensolaris:~$ &lt;b&gt;pfexec zoneadm -z myzone boot&lt;/b&gt;
zone 'myzone': WARNING: e1000g0:1: no matching subnet found in netmasks(4) for 10.0.2.25; using default of 255.0.0.0.
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;Then back in the 1st terminal, proceed with system configuration:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;[NOTICE: Zone booting up]


SunOS Release 5.11 Version snv_101b 32-bit
Copyright 1983-2008 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Hostname: myzone
Loading smf(5) service descriptions: 68/68
Reading ZFS config: done.
Mounting ZFS filesystems: (5/5)
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;What type of terminal are you using?
 1) ANSI Standard CRT
 2) DEC VT100
 3) PC Console
 4) Sun Command Tool
 5) Sun Workstation
 6) X Terminal Emulator (xterms)
 7) Other
Type the number of your choice and press Return: &lt;b&gt;6 
&lt;/b&gt;Creating new rsa public/private host key pair
Creating new dsa public/private host key pair
Configuring network interface addresses: e1000g0.
&lt;/p&gt;&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;pre id=&quot;comment_text_0&quot;&gt;&lt;/pre&gt; 
  &lt;p&gt; Give the zone a host name (or select the default):&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;─ Host Name for e1000g0:1 ─────────────────────────────────────────────────────

  Enter the host name which identifies this system on the network.  The name
  must be unique within your domain; creating a duplicate host name will cause
  problems on the network after you install Solaris.

  A host name must have at least one character; it can contain letters,
  digits, and minus signs (-).


    Host name for e1000g0:1 myzone                          











────────────────────────────────────────────────────────────────────────────────
    F2_Continue    F6_Help
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;Note, for some reason the &amp;quot;Continue&amp;quot; command switches from F2, as in the screen shot above, to Esc+2, as seen in the following screens. &lt;br /&gt;&lt;br /&gt;Confirm the host name:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;─ Confirm Information for e1000g0:1 ────────────────────────────────────────────

  &amp;gt; Confirm the following information.  If it is correct, press F2;
    to change any information, press F4.


    Host name: myzone















────────────────────────────────────────────────────────────────────────────────
    Esc-2_Continue    Esc-4_Change    Esc-6_Help
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt;Configure the security policy:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;─ Configure Security Policy: ───────────────────────────────────────────────────

  Specify Yes if the system will use the Kerberos security mechanism.

  Specify No if this system will use standard UNIX security.

      Configure Kerberos Security
      ───────────────────────────
      [ ] Yes
      [X] No












────────────────────────────────────────────────────────────────────────────────
    Esc-2_Continue    Esc-6_Help
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt;Confirm the security policy:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt; ─ Confirm Information ──────────────────────────────────────────────────────────

  &amp;gt; Confirm the following information.  If it is correct, press F2;
    to change any information, press F4.


    Configure Kerberos Security: No















────────────────────────────────────────────────────────────────────────────────
    Esc-2_Continue    Esc-4_Change    Esc-6_Help
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt;Set the name service. I will be using DNS:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;─ Name Service ─────────────────────────────────────────────────────────────────

  On this screen you must provide name service information.  Select the name
  service that will be used by this system, or None if your system will either
  not use a name service at all, or if it will use a name service not listed
  here.

  &amp;gt; To make a selection, use the arrow keys to highlight the option
    and press Return to mark it [X].


      Name service
      ────────────
      [ ] NIS+
      [ ] NIS
      [X] DNS
      [ ] LDAP
      [ ] None




────────────────────────────────────────────────────────────────────────────────
    Esc-2_Continue    Esc-6_Help
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;If you also selected DNS, set the domain name, DNS severs and search domains. I'm using the same settings as my global zone, which you can find in &lt;font&gt;/etc/resolve.conf&lt;/font&gt;:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;bleonard@opensolaris:~$ &lt;b&gt;cat /etc/resolv.conf &lt;/b&gt;
domain hsd1.ct.comcast.net.
nameserver 10.0.2.3
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
Set the domain name:


  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  &lt;blockquote&gt; 
    &lt;pre&gt;─ Domain Name ──────────────────────────────────────────────────────────────

  On this screen you must specify the domain where this system resides.  Make
  sure you enter the name correctly including capitalization and punctuation.


    Domain name: &lt;b&gt;hsd1.ct.comcast.net &lt;/b&gt;            















────────────────────────────────────────────────────────────────────────────────

    Esc-2_Continue    Esc-6_Help
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;Add the DNS Server Addresses:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;─ DNS Server Addresses ─────────────────────────────────────────────────────────

  On this screen you must enter the IP address of your DNS server(s).  You
  must enter at least one address.  IP addresses must contain four sets of
  numbers separated by periods (for example 129.200.9.1).



    Server's IP address: &lt;b&gt;10.0.2.3  &lt;/b&gt;      
    Server's IP address:
    Server's IP address:











───────────────────────────────────────────────────────────────────────────────
    Esc-2_Continue    Esc-6_Help
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;And any search domains:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;─ DNS Search List ──────────────────────────────────────────────────────────────

  On this screen you can enter a list of domains that will be searched when a
  DNS query is made.  If you do not enter any domains, DNS will only search
  the DNS domain chosen for this system.  The domains entered, when
  concatenated, may not be longer than 250 characters.



    Search domain:                                 
    Search domain:
    Search domain:
    Search domain:
    Search domain:
    Search domain:







────────────────────────────────────────────────────────────────────────────────
    Esc-2_Continue    Esc-6_Help
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;Confirm the network information:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;─ Confirm Information ──────────────────────────────────────────────────────────

  &amp;gt; Confirm the following information.  If it is correct, press F2;
    to change any information, press F4.


          Name service: DNS
           Domain name: hsd1.ct.comcast.net
    Server address(es): 10.0.2.3













────────────────────────────────────────────────────────────────────────────────
    Esc-2_Continue    Esc-4_Change    Esc-6_Help
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt;Ignore the Name Service Error (i.e., do not enter new name service information):&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;─ Name Service Error ───────────────────────────────────────────────────────────

  Unable to find an address entry for myzone with the specified DNS
  configuration.


      Enter new name service information?
      ───────────────────────────────────
      [ ] Yes
      [&lt;b&gt;X&lt;/b&gt;] No












────────────────────────────────────────────────────────────────────────────────
    Esc-2_Continue    Esc-6_Help
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt;NFSv4 Domain Name:&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;─ NFSv4 Domain Name ────────────────────────────────────────────────────────────

  NFS version 4 uses a domain name that is automatically derived from the
  system's naming services. The derived domain name is sufficient for most
  configurations. In a few cases, mounts that cross domain boundaries might
  cause files to appear to be owned by &quot;nobody&quot; due to the lack of a common
  domain name.

  The current NFSv4 default domain is: &quot;hsd1.ct.comcast.net&quot;


      NFSv4 Domain Configuration
      ──────────────────────────────────────────────
      [X] Use the NFSv4 domain derived by the system
      [ ] Specify a different NFSv4 domain







────────────────────────────────────────────────────────────────────────────────
    Esc-2_Continue    Esc-6_Help
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;Confirm:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;─ Confirm Information for NFSv4 Domain ─────────────────────────────────────────

  &amp;gt; Confirm the following information.  If it is correct, press F2;
    to change any information, press F4.



    NFSv4 Domain Name:  &amp;lt;&amp;lt; Value to be derived dynamically &amp;gt;&amp;gt;















────────────────────────────────────────────────────────────────────────────────
    Esc-2_Continue    Esc-4_Change    Esc-6_Help
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;Select your time zone:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;─ Time Zone ────────────────────────────────────────────────────────────────────

  On this screen you must specify your default time zone.  You can specify a
  time zone in three ways:  select one of the continents or oceans from the
  list, select other - offset from GMT, or other - specify time zone file.

  &amp;gt; To make a selection, use the arrow keys to highlight the option and
    press Return to mark it [X].


      Continents and Oceans
      ──────────────────────────────────
  -   [ ] Africa
  │   [X] Americas
  │   [ ] Antarctica
  │   [ ] Arctic Ocean
  │   [ ] Asia
  │   [ ] Atlantic Ocean
  │   [ ] Australia
  │   [ ] Europe
  v   [ ] Indian Ocean

──────────────────────────────────────────────────────────────────────────────
    Esc-2_Continue    Esc-6_Help
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;Country:&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;─ Country or Region ────────────────────────────────────────────────────────────

  &amp;gt; To make a selection, use the arrow keys to highlight the option and
    press Return to mark it [X].


      Countries and Regions
      ───────────────────────────
  -   [X] United States
  │   [ ] Anguilla
  │   [ ] Antigua &amp;amp; Barbuda
  │   [ ] Argentina
  │   [ ] Aruba
  │   [ ] Bahamas
  │   [ ] Barbados
  │   [ ] Belize
  │   [ ] Bolivia
  │   [ ] Brazil
  │   [ ] Canada
  │   [ ] Cayman Islands
  v   [ ] Chile

──────────────────────────────────────────────────────────────────────────────
    Esc-2_Continue    Esc-6_Help
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;Time Zone:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;─ Time Zone ───────────────────────────────────────────────────────────────────

  &amp;gt; To make a selection, use the arrow keys to highlight the option and
    press Return to mark it [X].


      Time zones
      ──────────────────────────────────────────────────────────────────────────
  -   [X] Eastern Time
  │   [ ] Eastern Time - Michigan - most locations
  │   [ ] Eastern Time - Kentucky - Louisville area
  │   [ ] Eastern Time - Kentucky - Wayne County
  │   [ ] Eastern Time - Indiana - most locations
  │   [ ] Eastern Time - Indiana - Daviess, Dubois, Knox &amp;amp; Martin Counties
  │   [ ] Eastern Time - Indiana - Starke County
  │   [ ] Eastern Time - Indiana - Pulaski County
  │   [ ] Eastern Time - Indiana - Crawford County
  │   [ ] Eastern Time - Indiana - Switzerland County
  │   [ ] Central Time
  │   [ ] Central Time - Indiana - Perry County
  v   [ ] Central Time - Indiana - Pike County

────────────────────────────────────────────────────────────────────────────────
    Esc-2_Continue    Esc-6_Help
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;Confirm Time Zone:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;─ Confirm Information ─────────────────────────────────────────────────────────

  &amp;gt; Confirm the following information.  If it is correct, press F2;
    to change any information, press F4.


    Time zone: Eastern Time
               (US/Eastern)














──────────────────────────────────────────────────────────────────────────────
    Esc-2_Continue    Esc-4_Change    Esc-6_Help
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;And finally, set the root password:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;─ Root Password ────────────────────────────────────────────────────────────────

  Please enter the root password for this system.

  The root password may contain alphanumeric and special characters.  For
  security, the password will not be displayed on the screen as you type it.

  &amp;gt; If you do not want a root password, leave both entries blank.


    Root password:  *********
    Root password:  *********       










────────────────────────────────────────────────────────────────────────────────
    Esc-2_Continue    Esc-6_Help
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;Zone configuration is complete. You can now log into the zone:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;System identification is completed.

myzone console login: &lt;b&gt;root&lt;/b&gt;
Password: 
Apr  1 21:48:04 myzone login: ROOT LOGIN /dev/console
Sun Microsystems Inc.   SunOS 5.11      snv_101b        November 2008
root@myzone:~# 
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;From the other terminal, the zone's status now shows as &lt;font&gt;running&lt;/font&gt;:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;bleonard@opensolaris:~$ &lt;b&gt;zoneadm list -v&lt;/b&gt;
  ID NAME             STATUS     PATH                           BRAND    IP    
   0 global           running    /                              native   shared
   1 myzone           &lt;b&gt;running&lt;/b&gt;    /zones/myzone                  ipkg     shared

&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;h3&gt;Working with the Zone&lt;/h3&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt;To drop off the zone console, exit the shell prompt and then type &lt;font&gt;~.&lt;/font&gt; at the console login prompt:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;root@myzone:~# &lt;b&gt;exit&lt;/b&gt;
logout

myzone console login: &lt;b&gt;~.&lt;/b&gt;
[Connection to zone 'myzone' console closed]
bleonard@opensolaris:~$ 
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;The zone is still running. Log in again:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;bleonard@opensolaris:~$ &lt;b&gt;pfexec zlogin -C myzone&lt;/b&gt;
[Connected to zone 'myzone' console]
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;Hit return to get the login prompt:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;myzone console login: &lt;b&gt;root&lt;/b&gt;
Password: 
Last login: Wed Apr  1 22:00:12 on console
Sun Microsystems Inc.   SunOS 5.11      snv_101b        November 2008
root@myzone:~# 
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;The zone can be shutdown, halted or rebooted from within the zone (here's a reboot example):&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;root@myzone:~# &lt;b&gt;reboot&lt;/b&gt;
Apr  2 01:18:50 myzone reboot: initiated by root on /dev/console

[NOTICE: Zone rebooting]


SunOS Release 5.11 Version snv_101b 32-bit
Copyright 1983-2008 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Hostname: myzone
Reading ZFS config: done.
Mounting ZFS filesystems: (5/5)

myzone console login: 
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;Or from the global zone:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;&lt;b&gt;pfexec zoneadm -z myzone reboot&lt;/b&gt;
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;Now that we have a zone, there's plenty of opportunity to experiment...&lt;/p&gt; 
  &lt;h3&gt;Deleteing the Zone &lt;/h3&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;&lt;b&gt;pfexec zoneadm -z myzone uninstall&lt;/b&gt; 
&lt;/pre&gt;
    &lt;pre&gt;&lt;b&gt;pfexec zonecfg -z myzone delete -F&lt;/b&gt;
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;h3&gt;Fixing the &lt;font&gt;netmask&lt;/font&gt; Warnings&lt;br /&gt;&lt;/h3&gt; 
  &lt;p&gt;If you're getting the &lt;font&gt;netmask&lt;/font&gt; warning as I did when the zone boots:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;zone 'myzone': WARNING: e1000g0:1: no matching subnet found in netmasks(4) for 10.0.2.25;⁞ using default of 255.0.0.0.
&lt;/pre&gt; 
  &lt;/blockquote&gt;You can eliminate it by adding the zone's IP subnet into &lt;font&gt;/etc/inet/netmasks&lt;/font&gt;. However, before we can edit the &lt;font&gt;netmasks&lt;/font&gt; file, we need to make it writable:&lt;br /&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;&lt;b&gt;pfexec chmod u+w /etc/inet/netmasks&lt;/b&gt;
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;Then add the proper subnet for you network. For example:&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;&lt;b&gt;10.0.2.0 255.255.255.0&lt;/b&gt;&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt;Now the zone will boot cleanly. For more information see &lt;a href=&quot;http://docs.sun.com/app/docs/doc/819-2251/netmasks-4?a=view&quot;&gt;&lt;tt&gt;netmasks&lt;/tt&gt; Warning Displayed When Booting Zone&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;	</description>
	<pubDate>Wed, 01 Jul 2009 18:49:45 +0000</pubDate>
</item>
<item>
	<title>OpenSolaris Observatory: Codeina</title>
	<guid isPermaLink="false">http://blogs.sun.com/observatory/entry/codeina</guid>
	<link>http://blogs.sun.com/observatory/entry/codeina</link>
	<description>
	&lt;img src=&quot;heads/observatory.gif&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;
&lt;p&gt;Codeina's a nifty little feature of OpenSolaris 2009.06. It's an application from &lt;a href=&quot;http://www.fluendo.com&quot;&gt;Fluendo&lt;/a&gt; that points applications such as Totem or Rhythmbox to Fluendo's web shop if you are missing the codec for the file you are trying to play. In the case of MP3s, the codec is free. For other audio and video formats, you'll have to pay a small license fee.&lt;/p&gt; 
  &lt;p&gt;For example, when I attempt to play an MP3 in Totem, I'm presented with the following:&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://blogs.sun.com/observatory/resource/200907_codeina/Codeina.png&quot; /&gt;&lt;/p&gt; 
  &lt;p&gt;Clicking Install launches the Codeina Web Shop application where I can register to &amp;quot;buy&amp;quot; the free MP3 decoder:&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://blogs.sun.com/observatory/resource/200907_codeina/Screenshot-CodeinaWebShop.png&quot; /&gt;&lt;/p&gt; 
  &lt;p&gt;&lt;img src=&quot;http://blogs.sun.com/observatory/resource/200907_codeina/Screenshot-CodeinaWebShopRegister.png&quot; /&gt;&lt;br /&gt;And then Install the decoder:&lt;br /&gt;&lt;/p&gt; 
  &lt;p&gt;&lt;img src=&quot;http://blogs.sun.com/observatory/resource/200907_codeina/Screenshot-CodeinaWebShopInstall.png&quot; /&gt;&lt;br /&gt;&lt;/p&gt; 
  &lt;p&gt;Which will quickly complete:&lt;/p&gt; 
  &lt;p&gt;&lt;img src=&quot;http://blogs.sun.com/observatory/resource/200907_codeina/Screenshot-CodeinaInstallComplete.png&quot; /&gt;&lt;/p&gt; 
  &lt;p&gt;After which my song will automatically start playing.&lt;/p&gt; 
  &lt;p&gt;Note, if Codeina isn't working for you, you may be running into issue &lt;a href=&quot;http://defect.opensolaris.org/bz/show_bug.cgi?id=9265&quot;&gt;Codeina fails to start&lt;/a&gt;. The quick fix for this is to remove the Fluendo configuration file and try again.&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;&lt;b&gt;rm ~/.local/share/codeina/providers/fluendo.xml&lt;/b&gt;&lt;/pre&gt; 
  &lt;/blockquote&gt;	</description>
	<pubDate>Wed, 01 Jul 2009 17:07:22 +0000</pubDate>
</item>
<item>
	<title>OpenSolaris Observatory: Just enough Web Space Server</title>
	<guid isPermaLink="false">http://blogs.sun.com/observatory/entry/just_enough_web_space_server</guid>
	<link>http://blogs.sun.com/observatory/entry/just_enough_web_space_server</link>
	<description>
	&lt;img src=&quot;heads/observatory.gif&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;
&lt;p&gt;
I was poking around with the &lt;a href=&quot;http://wikis.sun.com/display/jeos/OpenSolaris+JeOS+Project&quot;&gt;Just enough Operation System (JeOS) delivery form of OpenSolaris&lt;/a&gt;, when I found the &lt;a href=&quot;http://wikis.sun.com/display/Appliance/Web+Space+Server+10+VM+Template&quot;&gt;Web Space Server&lt;/a&gt; project built on top of that platform. The Web Space Server project is based on the &lt;a href=&quot;http://www.liferay.com/web/guest/home&quot;&gt;Liferay Portal&lt;/a&gt; and it has been packaged up nicely into a &lt;a href=&quot;https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_SMI-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=GF_WebSpace-10-VMT-1.0-OTH-G-F@CDS-CDS_SMI&quot;&gt;variety of virtual machines&lt;/a&gt; for both VirtualBox and VMware.&lt;/p&gt; 
  &lt;p&gt;For this example I grabbed the OVF (&lt;a href=&quot;http://en.wikipedia.org/wiki/Open_Virtual_Machine_Format&quot;&gt;Open Virtualization Format&lt;/a&gt;) which is designed for packaging up such appliances and was a snap to import into VirtualBox (File &amp;gt; Import Appliance):&lt;/p&gt; 
  &lt;p&gt;&lt;a href=&quot;http://blogs.sun.com/observatory/resource/200906_web_space_server/Screenshot-ApplianceImportWizard.png&quot;&gt;&lt;img src=&quot;http://blogs.sun.com/observatory/resource/200906_web_space_server/Screenshot-ApplianceImportWizard.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
  &lt;p&gt; When the import is complete, go ahead and start the WebSpaceServer. As this is a &amp;quot;just enough&amp;quot; distribution of OpenSolaris, there is no GUI. When the machine boots up, it will give you the HTTP address of the server, which in my case is &lt;font&gt;10.0.1.14&lt;/font&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://blogs.sun.com/observatory/resource/200906_web_space_server/Screenshot-WebSpaceServer%5BRunning%5D-SunVirtualBox.png&quot;&gt;&lt;img src=&quot;http://blogs.sun.com/observatory/resource/200906_web_space_server/Screenshot-WebSpaceServer%5BRunning%5D-SunVirtualBox.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;/p&gt; 
  &lt;p&gt;Note, the machine takes anywhere from 5-10 minutes to complete service startup. To monitor its progress, you can log in using &lt;font&gt;template&lt;/font&gt; / &lt;font&gt;template&lt;/font&gt;.&lt;/p&gt; 
  &lt;p&gt;One thing you probably want to do right off bat is enable ssh so you can log into the server remotely:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;&lt;b&gt;svcadm enable ssh&lt;/b&gt;&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;Then, from another host:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;bleonard@opensolaris:~$ &lt;b&gt;ssh template@10.0.1.14&lt;/b&gt;
The authenticity of host '10.0.1.14 (10.0.1.14)' can't be established.
RSA key fingerprint is 7c:6d:df:62:e2:ec:1f:a5:d7:2a:5f:3f:72:9a:ac:45.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.1.14' (RSA) to the list of known hosts.
Password: 
Last login: Tue Jun 30 03:55:15 2009

Welcome to a Sun GlassFish Web Space Server and OpenSolaris virtual 
machine image.

Use of this virtual machine image is subject to the license terms found 
in /etc/notices.

template@webspace:~$ 
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;You need to wait for the GlassFish server to finish starting up. You can check the domain2 SMF service:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;template@webspace:~$ &lt;b&gt;svcs -l domain2&lt;/b&gt;
fmri         svc:/application/SUNWappserver/domain2:default
name         Appserver Domain Administration Server
enabled      true
&lt;b&gt;state        offline&lt;/b&gt;
&lt;b&gt;next_state   online&lt;/b&gt;
state_time   Tue Jun 30 04:35:59 2009
logfile      /var/svc/log/application-SUNWappserver-domain2:default.log
restarter    svc:/system/svc/restarter:default
contract_id  46 
dependency   require_all/none svc:/milestone/network:default (online)
dependency   require_all/none svc:/system/filesystem/local:default (online)
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;Here you can see its current state is &lt;font&gt;offline&lt;/font&gt;, but it's transitioning to &lt;font&gt;online&lt;/font&gt;. You can tail the server log file to track its progress:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;&lt;b&gt;tail -f /opt/webspace/glassfish2/domains/domain2/logs/server&lt;/b&gt;&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt;Ultimately, you'll see a line like the following:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;[#|2009-06-30T11:44:37.899+0000|INFO|sun-appserver2.1|javax.enterprise.system.core|_ThreadID=10;_ThreadName=main;|Application server startup complete.|#&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt;Once that is complete, you can then browse to the server. It has a professional home page with links to try the Web Space Server and a &lt;a href=&quot;http://docs.sun.com/app/docs/doc/820-7053/ghpew?a=view&quot;&gt;Quick Start Tour&lt;/a&gt;. &lt;a href=&quot;http://blogs.sun.com/observatory/entry/webmin&quot;&gt;Webmin&lt;/a&gt; is also included for managing MySQL and OpenSolaris.&lt;br /&gt;&lt;/p&gt; 
  &lt;p&gt;&lt;a href=&quot;http://blogs.sun.com/observatory/resource/200906_web_space_server/Screenshot-GlassFishWebSpaceServerVMTemplate-MozillaFirefox3.1Beta3.png&quot;&gt;&lt;img src=&quot;http://blogs.sun.com/observatory/resource/200906_web_space_server/Screenshot-GlassFishWebSpaceServerVMTemplate-MozillaFirefox3.1Beta3.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://blogs.sun.com/observatory/resource/200906_web_space_server/Screenshot-GlassFishWebSpaceServerVMTemplate-MozillaFirefox3.1Beta3.png&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
  &lt;p&gt;When you first try the Web Space Server, be patient as it configures itself to run for the first time. Eventually, the Welcome page will appear:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://blogs.sun.com/observatory/resource/200906_web_space_server/Screenshot-example.com-Welcome-MozillaFirefox3.1Beta3.png&quot;&gt;&lt;img src=&quot;http://blogs.sun.com/observatory/resource/200906_web_space_server/Screenshot-example.com-Welcome-MozillaFirefox3.1Beta3.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt; 
  &lt;h2&gt;Resources&lt;/h2&gt; 
  &lt;ul&gt; 
    &lt;li&gt;&lt;a href=&quot;http://wikis.sun.com/display/Appliance/Web+Space+Server+10+VM+Template&quot;&gt;Web Space Server 10 VM Template&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href=&quot;https://webspace.dev.java.net/&quot;&gt;GlassFish Web Space Server&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href=&quot;https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_SMI-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=GF_WebSpace-10-VMT-1.0-OTH-G-F@CDS-CDS_SMI&quot;&gt;Download Sun GlassFish Web Space Server 10 VM Template 1.0 for Multi-Platform, English&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href=&quot;http://docs.sun.com/app/docs/coll/1863.3&quot;&gt;Sun GlassFish Web Space Server 10.0 Documentation Set&lt;/a&gt; &lt;br /&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href=&quot;http://www.liferay.com/web/guest/home&quot;&gt;Liferay&lt;/a&gt;&lt;/li&gt; 
    &lt;li&gt;&lt;a href=&quot;http://wikis.sun.com/display/jeos/OpenSolaris+JeOS+Project&quot;&gt;OpenSolaris JeOS Project&lt;/a&gt;&lt;br /&gt;&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src=&quot;file://tmp/moz-screenshot-2.png&quot; /&gt;	</description>
	<pubDate>Wed, 01 Jul 2009 14:17:48 +0000</pubDate>
</item>
<item>
	<title>Marcelo Leal: FMA Messages WIKI way…</title>
	<guid isPermaLink="false">http://www.eall.com.br/blog/?p=1285</guid>
	<link>http://feedproxy.google.com/~r/LealsBlog/~3/qdyYh7y_Xho/</link>
	<description>
	&lt;img src=&quot;heads/leal.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;
Almost perfect!!
Wow, that was a really, really nice surprise! I do like all the new stuff from Solaris 10/OpenSolaris, and i say that in every opportunity, like now. I did write some posts about FMA, like this one&amp;#8230; but one problem about the fmdump messages IMHO, was the fact that the messages on console were [...]
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/Mq4hCLcvoVTG61XlFi2fmfUMvg8/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/Mq4hCLcvoVTG61XlFi2fmfUMvg8/0/di&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/Mq4hCLcvoVTG61XlFi2fmfUMvg8/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/Mq4hCLcvoVTG61XlFi2fmfUMvg8/1/di&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/LealsBlog/~4/qdyYh7y_Xho&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;	</description>
	<pubDate>Tue, 30 Jun 2009 23:48:26 +0000</pubDate>
</item>
<item>
	<title>Jim Grisanzio: 1 Minute at CommunityOne</title>
	<guid isPermaLink="false">http://blogs.sun.com/jimgris/entry/1_minute_at_communityone</guid>
	<link>http://blogs.sun.com/jimgris/entry/1_minute_at_communityone</link>
	<description>
	&lt;img src=&quot;heads/jimgris.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;
&lt;b&gt;&lt;a href=&quot;http://www.facebook.com/photo.php?pid=2904430&amp;amp;l=add970eb81&amp;amp;id=604333454&quot;&gt;Ashwin Bhat and Angad Singh&lt;/a&gt;&lt;/b&gt; asked me for &lt;b&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=xb_REovPNkc&quot;&gt;one minute of my time outside the keynote hall at CommunityOne&lt;/a&gt;&lt;/b&gt; a few weeks ago. Hey, what's a minute, right? Happy to. But this minute was to be digitally recorded. Uha. Video. I generally shy away from such things because I`m shy about being interviewed. But these are really good guys and they`ve done great work as Campus Ambassadors in India, so I felt safe in front of their camera (though I`d clearly much rather be behind the camera). It wasn't too bad, though. But the 1 minute ran for 2 minutes and 21 seconds! Anyway. Thanks, guys. Great fun. Hope to get back to India sometime soon.&lt;br /&gt;	</description>
	<pubDate>Tue, 30 Jun 2009 13:10:48 +0000</pubDate>
</item>
<item>
	<title>OpenSolaris Observatory: Fun with Crossbow</title>
	<guid isPermaLink="false">http://blogs.sun.com/observatory/entry/fun_with_crossbow</guid>
	<link>http://blogs.sun.com/observatory/entry/fun_with_crossbow</link>
	<description>
	&lt;img src=&quot;heads/observatory.gif&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;
&lt;p&gt;The &lt;a href=&quot;http://www.opensolaris.org/os/project/crossbow/&quot;&gt;Crossbow&lt;/a&gt; project is probably the most exciting new feature in OpenSolaris 2009.06. It a nutshell, project Crossbow brings virtualization to the networking layer. In this quick example I'm going to create a virtual network interface card (VNIC) and dynamically alter it's maximum bandwidth as traffic is flowing over it.&lt;/p&gt; 
  &lt;p&gt;The VNIC must be linked to an actual network interface device. To see the existing devices on the system:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;bleonard@opensolaris:~$ &lt;b&gt;dladm show-phys&lt;/b&gt;
LINK         MEDIA                STATE      SPEED  DUPLEX    DEVICE
e1000g0      Ethernet             up         1000   full      e1000g0
iwh0         WiFi                 down       0      unknown   iwh0
vboxnet0     Ethernet             unknown    0      unknown   vboxnet0
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;The current device in use is &lt;font&gt;e1000g0&lt;/font&gt;, so I'll create my VNIC over that device:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;&lt;b&gt;pfexec dladm create-vnic -l e1000g0 vnic0&lt;/b&gt;&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;View the new VNIC:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;bleonard@opensolaris:~$ &lt;b&gt;dladm show-vnic&lt;/b&gt;
LINK         OVER         SPEED  MACADDRESS           MACADDRTYPE         VID
vnic0        e1000g0      1000   2:8:20:e2:77:62      random              0
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;Note its speed matches that of the physical link. Let's reduce this from 1000 megabits/second to 2 megabits/second:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;&lt;b&gt;pfexec dladm set-linkprop -p maxbw=2 vnic0&lt;/b&gt;&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;Before the VNIC can be used, it must be plumbed:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;&lt;b&gt;pfexec ifconfig vnic0 plumb&lt;/b&gt;&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;And assigned an IP address. If you're using DHCP, the following will work:&lt;br /&gt; &lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;&lt;b&gt;pfexec ifconfig vnic0 dhcp start&lt;/b&gt;&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;Now you can see &lt;font&gt;vnic0&lt;/font&gt; using ifconfig:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;bleonard@opensolaris:~$ &lt;b&gt;ifconfig vnic0&lt;/b&gt;
vnic0: flags=1104843&amp;lt;UP,BROADCAST,RUNNING,MULTICAST,DHCP,ROUTER,IPv4&amp;gt; mtu 1500 index 7
	inet 10.0.1.16 netmask ffffff00 broadcast 10.0.1.255
&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;The VNIC has been assigned IP address &lt;font&gt;10.0.1.16&lt;/font&gt; and is now ready for use. To test it out, we'll copy a large file from one host to another, over the VNIC. To test this on a single machine, use a virtual machine configured with bridged networking or a zone. From the other host:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;bleonard@os200906:~$ &lt;b&gt;mkfile 100M big-file&lt;/b&gt;
bleonard@os200906:~$ &lt;b&gt;scp big-file bleonard@10.0.1.16:bile-file&lt;/b&gt;
The authenticity of host '10.0.1.16 (10.0.1.16)' can't be established.
RSA key fingerprint is f7:1d:2c:d7:24:e3:1c:57:53:0f:59:75:31:4a:0f:7d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.1.16' (RSA) to the list of known hosts.
Password: 
big-file               0% |                             |   128 KB    13:22 ETA&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;Notice it's estimated to take over 13 minutes to copy this file. While the file is being copied, back on the host machine, change the &lt;font&gt;maxbw&lt;/font&gt; property to 1000 megabits / second:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;&lt;b&gt;pfexec dladm set-linkprop -p maxbw=1000 vnic0&lt;/b&gt;&lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt; Immedially you'll notice the copy operation speed up and quickly complete:&lt;br /&gt;&lt;/p&gt; 
  &lt;blockquote&gt; 
    &lt;pre&gt;big-file&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 100% |*****************************|&amp;nbsp;&amp;nbsp; 100 MB&amp;nbsp;&amp;nbsp;&amp;nbsp; 00:37 &lt;/pre&gt; 
  &lt;/blockquote&gt; 
  &lt;p&gt;Very cool!&lt;br /&gt;&lt;/p&gt;	</description>
	<pubDate>Tue, 30 Jun 2009 01:02:45 +0000</pubDate>
</item>
<item>
	<title>Jim Grisanzio: Japan OpenSolaris Community Meeting 062709</title>
	<guid isPermaLink="false">http://blogs.sun.com/jimgris/entry/japan_opensolaris_community_meeting_062709</guid>
	<link>http://blogs.sun.com/jimgris/entry/japan_opensolaris_community_meeting_062709</link>
	<description>
	&lt;img src=&quot;heads/jimgris.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;
&lt;p&gt;The &lt;a href=&quot;http://mail.opensolaris.org/pipermail/opensolaris-announce/2009-June/002202.html&quot;&gt;Japan
OpenSolaris Community&lt;/a&gt; together on Saturday. Nice day (and night).
About 60 people came by for the three sessions, two of which were in
Japanese and the third in English. Then all three groups came together
for a nomikai. I think the model works well to start integrating the
Japanese and international OpenSolaris communities. &lt;/p&gt; 
  &lt;p&gt;I used a new lens
for this event. My f/1.4 lens is getting fixed, so I borrowed Jon`s
50mm f/1.2, which is one scary smart lens. It`s a tad expensive, too,
so I was more than a little nervous shooting with it. Anyway, at f/1.2 the
focus is just razor thin. Focus on someone`s glasses and their entire face
is out. I messed up a few images that way, but by the end of the night
I was getting used to it. Amazing piece of glass. By the way, &lt;a href=&quot;http://www.flickr.com/photos/ashura666/&quot;&gt;you can see Jon`s stuff
here&lt;/a&gt;. He`s one of the best photographers around. &lt;br /&gt; &lt;/p&gt; 
  &lt;div align=&quot;center&quot;&gt; 
    &lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666922690/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3299/3666922690_ae5f39daa3_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666923374/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm3.static.flickr.com/2429/3666923374_2493f2333d_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666118825/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3618/3666118825_ce90daf519_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666119251/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3315/3666119251_2e76cfc111_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666956164/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3364/3666956164_d83120cc76_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666122973/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3342/3666122973_0e4cfe57c3_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666123571/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm3.static.flickr.com/2575/3666123571_fca591a984_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666929072/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm3.static.flickr.com/2433/3666929072_37a44c1d85_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666126883/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3553/3666126883_4efe4ddc65_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666127377/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3337/3666127377_55b675a3f7_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666131233/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3372/3666131233_2a035fa7a9_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666127987/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm3.static.flickr.com/2449/3666127987_62481ee518_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666128305/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3316/3666128305_a5b3d0f988_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666128927/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm3.static.flickr.com/2592/3666128927_2dd31fac9e_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666131777/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3355/3666131777_981f075279_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666132263/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3547/3666132263_8753835c2a_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666942684/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3624/3666942684_84fba859fd_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666938042/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm3.static.flickr.com/2552/3666938042_262d4ffec7_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666137971/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm3.static.flickr.com/2471/3666137971_9695a65a67_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666943654/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3602/3666943654_2f76347681_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666924670/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm3.static.flickr.com/2451/3666924670_3922c4a4ba_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666944230/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3404/3666944230_bb8b58668e_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666944660/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm3.static.flickr.com/2462/3666944660_e884915f30_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666139835/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3558/3666139835_e74f6c75c7_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666129797/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3546/3666129797_7a958e9227_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666930132/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm3.static.flickr.com/2568/3666930132_34267c52b0_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666930904/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm3.static.flickr.com/2427/3666930904_f4da5b93f0_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666931552/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3659/3666931552_147074aaed_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666130583/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3387/3666130583_acb9180ab8_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666945696/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm3.static.flickr.com/2434/3666945696_7efa703b28_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666141017/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm3.static.flickr.com/2568/3666141017_db1efcf012_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666141623/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3621/3666141623_e4106fce3d_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666947558/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3311/3666947558_abce2aa198_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666948112/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3640/3666948112_0ba11c6e8e_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666143221/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm3.static.flickr.com/2426/3666143221_309e5a8459_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666949054/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3558/3666949054_9cc315b74b_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666144269/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3661/3666144269_7f835015cd_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666144749/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3394/3666144749_252ab03151_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666950936/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3120/3666950936_0e13204d55_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666951596/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3375/3666951596_a2b845cb53_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666954802/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3586/3666954802_3f44a6554b_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666955340/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3620/3666955340_6a416a79d6_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666148383/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3373/3666148383_367e1cd507_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666147691/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3364/3666147691_ecdb063d5d_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666136963/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3385/3666136963_4993718377_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666147181/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3369/3666147181_8dc518c1aa_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666941602/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3380/3666941602_1aaeba453e_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666135799/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3652/3666135799_0e9bd1e882_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666940254/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm3.static.flickr.com/2557/3666940254_df24ded740_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666134587/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3303/3666134587_dc3d3a60af_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666148873/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3301/3666148873_1e5c97570f_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666134083/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3568/3666134083_2b05d92842_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666938762/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm3.static.flickr.com/2480/3666938762_5bc50350a0_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/jimgris/3666124529/&quot; title=&quot;Japan OSUG 062709 by jimgris, on Flickr&quot;&gt;&lt;img width=&quot;240&quot; height=&quot;160&quot; src=&quot;http://farm4.static.flickr.com/3664/3666124529_743c75f807_m.jpg&quot; alt=&quot;Japan OSUG 062709&quot; /&gt;&lt;/a&gt;&lt;/p&gt; 
    &lt;p&gt;&lt;b&gt;&lt;a href=&quot;http://blogs.sun.com/jimgris/tags/jposug&quot;&gt;Japan OpenSolaris Community: &lt;span&gt;http://blogs.sun.com/jimgris/tags/jposug&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;a href=&quot;http://www.kamiogi.net/Kamiogi/Frame_Dragging/Entries/2009/6/29_ZFS_and_NAS_Presentation_for_Tokyo_OpenSolaris_Users_Group.html&quot;&gt;Michael Sullivan presentation on OpenSolaris &amp;amp; Storage: OSol + ZFS = NAS&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;/p&gt; 
  &lt;/div&gt;	</description>
	<pubDate>Mon, 29 Jun 2009 14:44:37 +0000</pubDate>
</item>
<item>
	<title>Simon Phipps: links for 2009-06-29</title>
	<guid isPermaLink="false">http://blogs.sun.com/webmink/entry/links_for_2009_06_29</guid>
	<link>http://blogs.sun.com/webmink/entry/links_for_2009_06_29</link>
	<description>
	&lt;img src=&quot;heads/webmink.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;
&lt;ul class=&quot;delicious&quot;&gt;&lt;li&gt;
                &lt;div class=&quot;delicious-link&quot;&gt;&lt;a href=&quot;http://www.ranum.com/security/computer_security/editorials/dumb/&quot;&gt;The Six Dumbest Ideas in Computer Security&lt;/a&gt;&lt;/div&gt;
                &lt;div class=&quot;delicious-extended&quot;&gt;Deliciously direct and deep paper looks at the assumptions behind our security thinking and confronts them head-on. Still relevant after 4 years, which is good going for anything geeky.&lt;/div&gt;
                &lt;div class=&quot;delicious-tags&quot;&gt;(tags: &lt;a href=&quot;http://delicious.com/webmink/Computer&quot;&gt;Computer&lt;/a&gt; &lt;a href=&quot;http://delicious.com/webmink/Security&quot;&gt;Security&lt;/a&gt; &lt;a href=&quot;http://delicious.com/webmink/networking&quot;&gt;networking&lt;/a&gt; &lt;a href=&quot;http://delicious.com/webmink/Hack&quot;&gt;Hack&lt;/a&gt; &lt;a href=&quot;http://delicious.com/webmink/hacking&quot;&gt;hacking&lt;/a&gt; &lt;a href=&quot;http://delicious.com/webmink/network&quot;&gt;network&lt;/a&gt; &lt;a href=&quot;http://delicious.com/webmink/software&quot;&gt;software&lt;/a&gt; &lt;a href=&quot;http://delicious.com/webmink/internet&quot;&gt;internet&lt;/a&gt; &lt;a href=&quot;http://delicious.com/webmink/sysadmin&quot;&gt;sysadmin&lt;/a&gt;)&lt;/div&gt;
            &lt;/li&gt;&lt;/ul&gt;	</description>
	<pubDate>Mon, 29 Jun 2009 14:30:40 +0000</pubDate>
</item>
<item>
	<title>Jim Grisanzio: Tokyo Hackerspace</title>
	<guid isPermaLink="false">http://blogs.sun.com/jimgris/entry/tokyo_hackerspace</guid>
	<link>http://blogs.sun.com/jimgris/entry/tokyo_hackerspace</link>
	<description>
	&lt;img src=&quot;heads/jimgris.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;
&lt;a href=&quot;http://tokyohackerspace.com/index.php/Main_Page&quot;&gt;&lt;img hspace=&quot;10&quot; align=&quot;left&quot; src=&quot;http://blogs.sun.com/jimgris/resource/tokyohackerspace.jpg&quot; /&gt;&lt;/a&gt;I've been checking out the &lt;a href=&quot;http://groups.google.com/group/tokyohackerspace/?pli=1&quot;&gt;Tokyo Hackerspace gmail list&lt;/a&gt; for a few weeks. Looks very interesting. The project grew out of some discussions at &lt;a href=&quot;http://blogs.sun.com/jimgris/entry/barcamp_tokyo_051609_photos&quot;&gt;BarCamp Tokyo&lt;/a&gt;
a couple of months ago, and I spoke to &lt;b&gt;&lt;a href=&quot;http://twitter.com/karamoon&quot;&gt;Karamoon&lt;/a&gt;&lt;/b&gt; about it at the OpenSolaris community event this weekend. In a world of ever expanding global digital communities, it
seems like a nice idea to have a very local a very physical space to
hang out in and hack on things that need hacking. Global and digital are
fine, but local and physical are needed too. &lt;a href=&quot;http://tokyohackerspace.com/index.php/Main_Page&quot;&gt;For info, check it out on the wiki&lt;/a&gt;.	</description>
	<pubDate>Mon, 29 Jun 2009 08:20:22 +0000</pubDate>
</item>
<item>
	<title>Jim Grisanzio: Website Transition: Two Phase 1 Documents Posted</title>
	<guid isPermaLink="false">http://blogs.sun.com/jimgris/entry/website_transition_two_phase_1</guid>
	<link>http://blogs.sun.com/jimgris/entry/website_transition_two_phase_1</link>
	<description>
	&lt;img src=&quot;heads/jimgris.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;
This morning &lt;a href=&quot;http://blogs.sun.com/bjc&quot;&gt;Bonnie&lt;/a&gt; posted &lt;a href=&quot;http://opensolaris.org/os/community/web/#transition-phases&quot;&gt;two
documents supporting the Phase 1 website transition plans&lt;/a&gt;: &lt;br /&gt; 
  &lt;ol&gt; 
    &lt;li&gt;The plan to implement the governance and website roles and
collectives, and&lt;/li&gt; 
    &lt;li&gt;The data migration strategy outlining how data will be migrated
from existing databases into the new Auth database. &lt;/li&gt; 
  &lt;/ol&gt;
Bonnie and Alan drafted the documents and all three of us iterated for
a couple of weeks as they went through multiple drafts. It`s
amazing experiencing the distinction between writing a document that
articulates some issue in theory and writing a document that
articulates a specific implementation that has to actually work. It`s
the distinction between night and day. Ideas are fine, but if you don`t
build them they are not real. That lesson is learned. &lt;br /&gt; &lt;br /&gt;
Also, I appreciate more than ever the process I went
through in the recent past attempting to re-write the OpenSolaris Constitution. Building
and describing the new site would have been &lt;span&gt;so&lt;/span&gt; &lt;span&gt;much&lt;/span&gt; &lt;span&gt;easier&lt;/span&gt; had that
Constitution been approved in March. &lt;b&gt;&lt;a href=&quot;http://www.opensolaris.org/os/community/ogb/elections/2009/&quot;&gt;But it wasn`t&lt;/a&gt;&lt;/b&gt;. That`s life I suppose. So,
now we have to implement the old Constitution while also accounting for
things that document doesn`t even mention because it came about after
the original site was designed. Not to mention all the odd stuff that evolved (and broke) on the current site -- all of which has to be migrated to the new site. As a result, in August we will have
some things covered under Governance and some things covered under
generally accepted practice -- and that last bit was really the basis
of the concept we were trying to move toward with the proposed
Constitution. Hopefully, the OGB will at some point this year take up that
proposed Constitution again, get it updated, and get it approved so our
Governance documents reflect the reality of how the community operates in real life.&lt;br /&gt; &lt;br /&gt;
Anyway, until that happens we will continue building what we have to
build, and it will be good to finally break with the past of the old site. So, it`s important for anyone with an account on opensolaris.org
to review these new documents and the other information we have posted
in the Website community recently to be prepared for the changes coming
in July and August. All users on the site will be affected by this
multi-phase transition (hopefully in a good way, of course). More
documents will be posted in the coming weeks on website feature
mappings, Auth transition instructions, and content migration plans.
And that`s just Phase 1 and Phase 2. There will be a Phase 3 that will
take us well into the fall. &lt;span&gt;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://opensolaris.org/os/community/web/&quot;&gt;Website Transition
Documentation&lt;/a&gt; | &lt;a href=&quot;http://auth.opensolaris.org/&quot;&gt;Auth System Beta&lt;/a&gt; | &lt;a href=&quot;http://hub.opensolaris.org/&quot;&gt;XWiki
Website Beta&lt;/a&gt; | &lt;a href=&quot;http://www.opensolaris.org/os/about/roadmap/&quot;&gt;&lt;span&gt;Program Roadmap&lt;/span&gt;&lt;/a&gt;	</description>
	<pubDate>Mon, 29 Jun 2009 02:35:55 +0000</pubDate>
</item>
<item>
	<title>Jim Grisanzio: OpenSolaris PDAs?</title>
	<guid isPermaLink="false">http://blogs.sun.com/jimgris/entry/opensolaris_pdas</guid>
	<link>http://blogs.sun.com/jimgris/entry/opensolaris_pdas</link>
	<description>
	&lt;img src=&quot;heads/jimgris.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;
&amp;quot;I hope that after some time we'll see OpenSolaris powered PDAs.&amp;quot; -- &lt;a href=&quot;http://alexeremin.blogspot.com/2009/06/first-opensolaris-arm-release.html&quot;&gt;&lt;b&gt;Alexander Eremin&lt;/b&gt;&lt;/a&gt;	</description>
	<pubDate>Mon, 29 Jun 2009 02:33:29 +0000</pubDate>
</item>
<item>
	<title>Glynn Foster: OpenSolaris on FLOSS Weekly</title>
	<guid isPermaLink="false">http://blogs.gnome.org/gman/?p=669</guid>
	<link>http://blogs.gnome.org/gman/2009/06/29/opensolaris-on-floss-weekly/</link>
	<description>
	&lt;img src=&quot;heads/gman.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;
&lt;p&gt;
I had the privilege to be a guest on &lt;a href=&quot;http://twit.tv/floss75&quot;&gt;FLOSS Weekly&lt;/a&gt; with Leo Laporte and Jono Bacon this week, thanks guys! Of course Aaron and David had done awesome groundwork with an &lt;a href=&quot;http://twit.tv/floss58&quot;&gt;interview on ZFS&lt;/a&gt; a few weeks earlier. It was a fun hour, and I enjoyed it though can think of many thing I&amp;#8217;d answer differently now! Looking forward to catching up with Jono and others at the &lt;a href=&quot;http://www.communityleadershipsummit.com/&quot;&gt;Community Leadership Summit&lt;/a&gt; next month in San Jose, the weekend before OSCON.
&lt;/p&gt;
&lt;p&gt;
And yes, OpenSolaris is officially &amp;#8216;not bollocks&amp;#8217;. &lt;a href=&quot;http://twit.tv/floss75&quot;&gt;Check it out&lt;/a&gt;!&lt;/p&gt;	</description>
	<pubDate>Mon, 29 Jun 2009 00:59:15 +0000</pubDate>
</item>
<item>
	<title>Jim Grisanzio: New ZFS Book Coming to Japan</title>
	<guid isPermaLink="false">http://blogs.sun.com/jimgris/entry/new_zfs_book_coming_to</guid>
	<link>http://blogs.sun.com/jimgris/entry/new_zfs_book_coming_to</link>
	<description>
	&lt;img src=&quot;heads/jimgris.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;
&lt;p&gt;Four members of the Japan OpenSolaris Community wrote a book on ZFS
recently. It`s coming out in July, and it`s specifically for the
Japanese market. The cover has not been selected yet, but here are the
early details: &lt;a href=&quot;http://www.amazon.co.jp/ZFS-%E4%BB%AE%E6%83%B3%E5%8C%96%E3%81%95%E3%82%8C%E3%81%9F%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%AE%E5%BE%B9%E5%BA%95%E6%B4%BB%E7%94%A8-%E9%95%B7%E5%8E%9F-%E5%AE%8F%E6%B2%BB/dp/4048676547/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1246096290&amp;amp;sr=8-1&quot;&gt;&lt;span&gt;ZFS 仮想化されたファイルシステムの徹底活用 (大型本)&lt;/span&gt;&lt;/a&gt; by Hisayoshi Kato, Michitoshi Sato, Nagahara Niroharu, and Imai Satoshi. This is quite a significant contribution to the community in Japan because it`s important to have technical content written by Japanese engineers for Japanese engineers. Translating English content from the west good, of course, but the generation of original content in Japanese also needs to be part of this community`s growth plans. &lt;/p&gt; 
  &lt;p&gt;Here are some more books on OpenSolaris: &lt;b&gt;&lt;a href=&quot;http://blogs.sun.com/jimgris/tags/book&quot;&gt;http://blogs.sun.com/jimgris/tags/book&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;/p&gt;	</description>
	<pubDate>Sun, 28 Jun 2009 06:50:41 +0000</pubDate>
</item>
<item>
	<title>Yong Sun: Photos of AGC Family Party</title>
	<guid isPermaLink="false">http://blogs.sun.com/yongsun/entry/photos_of_agc_family_party</guid>
	<link>http://blogs.sun.com/yongsun/entry/photos_of_agc_family_party</link>
	<description>
&lt;br /&gt;&lt;br /&gt;

见到了好多老朋友，真是很高兴！希望不必”再过二十年，我们来相聚” ...	</description>
	<pubDate>Sun, 28 Jun 2009 05:13:36 +0000</pubDate>
</item>
<item>
	<title>Jim Grisanzio: Japan Linux Symposium: Tokyo, October 2009</title>
	<guid isPermaLink="false">http://blogs.sun.com/jimgris/entry/japan_linux_symposium_tokyo_october</guid>
	<link>http://blogs.sun.com/jimgris/entry/japan_linux_symposium_tokyo_october</link>
	<description>
	&lt;img src=&quot;heads/jimgris.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;
It's excellent to see the &lt;a href=&quot;http://events.linuxfoundation.org/events/kernel-summit&quot;&gt;9th Annual Linux Kernel Summit&lt;/a&gt; and the &lt;a href=&quot;http://events.linuxfoundation.org/events/japan-linux-symposium/&quot;&gt;1st Annual Japan Linux Symposium&lt;/a&gt;
coming to Tokyo in October. Check out this language from the LF
website: &amp;quot;The Japan Linux Symposium will be the showcase Japan and Asia
Pacific conference for The Linux Foundation.&amp;quot; &lt;u&gt;Showcase&lt;/u&gt;. This is
significant. The Japanese may not shout about it much, but developers
in this country are contributing to FOSS and their contributions are
growing. The potential in Japan for open source is huge. I've been
saying it since I got here. So cool that the LF clearly recognizes this
potential by bringing their conferences here. Also interesting: the LF website appears in two languages -- English and Japanese. &lt;br /&gt; &lt;br /&gt; 
  &lt;div align=&quot;center&quot;&gt;&lt;a href=&quot;http://events.linuxfoundation.org/events/japan-linux-symposium/&quot;&gt;&lt;img border=&quot;0&quot; width=&quot;512&quot; height=&quot;99&quot; src=&quot;http://blogs.sun.com/jimgris/resource/japan-linux-symposium.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt; &lt;br /&gt;
I already hang out with the Tokyo Linux User Group (&lt;b&gt;&lt;a href=&quot;http://blogs.sun.com/jimgris/tags/tlug&quot;&gt;here&lt;/a&gt;&lt;/b&gt;, &lt;b&gt;&lt;a href=&quot;http://tlug.jp/&quot;&gt;here&lt;/a&gt;&lt;/b&gt;), so I hope to attend this gig in October.	</description>
	<pubDate>Sat, 27 Jun 2009 02:53:52 +0000</pubDate>
</item>
<item>
	<title>Jim Grisanzio: OpenSolaris in Brazil: Right at the Top!</title>
	<guid isPermaLink="false">http://blogs.sun.com/jimgris/entry/opensolaris_in_brazil_right_at</guid>
	<link>http://blogs.sun.com/jimgris/entry/opensolaris_in_brazil_right_at</link>
	<description>
	&lt;img src=&quot;heads/jimgris.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;
Nothing like going right to the &lt;u&gt;very&lt;/u&gt; top, eh? My goodness. Here's the &lt;b&gt;&lt;a href=&quot;http://br.opensolaris.org/&quot;&gt;OpenSolaris community in Brazil&lt;/a&gt;&lt;/b&gt; at &lt;b&gt;&lt;a href=&quot;http://fisl.softwarelivre.org/10/www/&quot;&gt;FISL&lt;/a&gt;&lt;/b&gt; hanging out with &lt;b&gt;&lt;a href=&quot;http://picasaweb.google.com/ludovic.poitou/FISL10#5351725438451892914&quot;&gt;Brazil's President Luiz Inácio Lula da Silva&lt;/a&gt;&lt;/b&gt;.
I think this sets a new standard in government relations for the entire
OpenSolaris community, don't you think? So, each one of us around the
world now has to go out and shoot some images (video is fine, too) of
our country's leader standing with our respective communities all
dressed up in OpenSolaris stuff. Ok. Should be easy enough. Just send
your images to &lt;b&gt;&lt;a href=&quot;http://opensolaris.org/jive/thread.jspa?threadID=106715&amp;amp;tstart=0&quot;&gt;osug-leaders or advocacy-discuss&lt;/a&gt;&lt;/b&gt;, and we'll collect them there. &lt;br /&gt; &lt;br /&gt;
Absolutely. Outrageous.&lt;br /&gt;	</description>
	<pubDate>Sat, 27 Jun 2009 02:04:39 +0000</pubDate>
</item>
<item>
	<title>Marcelo Leal: FISL 10</title>
	<guid isPermaLink="false">http://www.eall.com.br/blog/?p=1277</guid>
	<link>http://feedproxy.google.com/~r/LealsBlog/~3/e1IVDIW7lhs/</link>
	<description>
	&lt;img src=&quot;heads/leal.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;
Congratulations to Vitório Sassi and all OSOL users from OpenSolaris-BR (special to PoaOSUG ;-) that are doing a great work at FISL 10!
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/q9WFrxncQrRJn9F0vTlOAI3NBQ8/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/q9WFrxncQrRJn9F0vTlOAI3NBQ8/0/di&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/q9WFrxncQrRJn9F0vTlOAI3NBQ8/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/q9WFrxncQrRJn9F0vTlOAI3NBQ8/1/di&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/LealsBlog/~4/e1IVDIW7lhs&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;	</description>
	<pubDate>Fri, 26 Jun 2009 23:38:46 +0000</pubDate>
</item>
<item>
	<title>Brendan Gregg: SLOG Screenshots</title>
	<guid isPermaLink="false">http://blogs.sun.com/brendan/entry/slog_screenshots</guid>
	<link>http://blogs.sun.com/brendan/entry/slog_screenshots</link>
	<description>
&lt;p&gt;I previously posted
&lt;a href=&quot;http://blogs.sun.com/brendan/entry/l2arc_screenshots&quot;&gt;screenshots of the L2ARC&lt;/a&gt;:
the &lt;a href=&quot;http://opensolaris.org/os/community/zfs/&quot;&gt;ZFS&lt;/a&gt; second level cache which
uses read optimized SSDs (&quot;Readzillas&quot;) to cache random read workloads.
That's the read side of the
&lt;a href=&quot;http://blogs.sun.com/ahl/entry/fishworks_launch&quot;&gt;Hybrid Storage Pool&lt;/a&gt;.  On
the write side, the ZFS
&lt;a href=&quot;http://blogs.sun.com/perrin/entry/slog_blog_or_blogging_on&quot;&gt;separate intent log&lt;/a&gt;
(SLOG) can use write optimized SSDs (which we call &quot;Logzillas&quot;) to accelerate performance
of &lt;i&gt;synchronous write&lt;/i&gt; workloads.&lt;/p&gt;

&lt;p&gt;In the screenshots that follow I'll show how Logzillas have delivered
&lt;b&gt;12x more IOPS&lt;/b&gt; and &lt;b&gt;over 20x reduced latency&lt;/b&gt; for a synchronous write
workload over NFS.  These screenshots are
from &lt;a href=&quot;http://blogs.sun.com/bmc/resource/cec_analytics.pdf&quot;&gt;Analytics&lt;/a&gt;
on the Sun Storage
&lt;a href=&quot;http://www.sun.com/storage/disk_systems/unified_storage&quot;&gt;7000 series&lt;/a&gt;.
In particular, the following heat
map shows the dramatic reduction in NFS latency when turning on the Logzillas:&lt;/p&gt;

&lt;span&gt;&lt;a href=&quot;http://blogs.sun.com/brendan/resource/logzilla-1/logzilla-1-zoom-crop.png&quot;&gt;
&lt;img src=&quot;http://blogs.sun.com/brendan/resource/logzilla-1/logzilla-1-zoom-700px.png&quot; /&gt;&lt;/a&gt;&lt;/span&gt;

&lt;p&gt;Before the 17:54 line, latency was at the mercy of spinning 7200 RPM disks, and
reached as high as 9 ms.  
After 17:54, these NFS operations were served from Logzillas, which consistently
delivered latency much lower than 1 ms.  Click for a larger screenshot.&lt;/p&gt;

&lt;h3&gt;What is a Synchronous Write?&lt;/h3&gt;

&lt;p&gt;While the use of Logzilla devices can dramatically improve the performance of
synchronous write workloads, what is a synchronous write?&lt;/p&gt;

&lt;p&gt;When an application writes data, if it waits for that data to complete writing
to stable storage (such as a hard disk), it is a &lt;i&gt;synchronous&lt;/i&gt; write.  If the
application requests the write but continues on without waiting (the data may is buffered
in the filesystem's DRAM cache, but not yet written to disk), it is an
&lt;i&gt;asynchronous&lt;/i&gt; write.  Asynchronous writes are faster for the application, and
is the default behavior.&lt;/p&gt;

&lt;p&gt;There is a down side to asynchronous writes - the application doesn't know if the
write completed successfully.  If there is a power outage before the write could be
flushed to disk, the write will be lost.  For some applications such as database log
writers, this risk is unacceptable - and so they perform &lt;i&gt;synchronous&lt;/i&gt; writes
instead.&lt;/p&gt;

&lt;p&gt;There are two forms of synchronous writes: individual I/O which is written
synchronously, and groups of previous writes which are synchronously committed.&lt;/p&gt;

&lt;h4&gt;Individual synchronous writes&lt;/h4&gt;

&lt;p&gt;Write I/O will become synchronous when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A file is opened using a flag such as &lt;tt&gt;O_SYNC&lt;/tt&gt; or &lt;tt&gt;O_DSYNC&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;NFS clients use the mount option (if available):&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&quot;sync&quot;: to force all write I/O to be synchronous&lt;/li&gt;
&lt;li&gt;&quot;forcedirectio&quot;: which avoids caching, and the client may decide to make write
I/O synchronous as part of avoiding its cache&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;

&lt;h4&gt;Synchronously committing previous writes&lt;/h4&gt;

&lt;p&gt;Rather than synchronously writing each individual I/O, an application may
synchronously commit previous writes at logical checkpoints in the code.  This
can improve performance by grouping the synchronous writes.  On ZFS these may
also be handled by the SLOG and Logzilla devices.  These are performed by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An application calling fsync()&lt;/li&gt;
&lt;li&gt;An NFS client calling commit.  It can do this because:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;It closed a file handle that it wrote to (Solaris clients can avoid this using the
&quot;nocto&quot; mount option)&lt;/li&gt;
&lt;li&gt;Directory operations (file creation and deletion)&lt;/li&gt;
&lt;li&gt;Too many uncommitted buffers on a file (eg, FreeBSD/MacOS X)&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;

&lt;h3&gt;Examples of Synchronous Writes&lt;/h3&gt;

&lt;p&gt;Applications that are expected to perform synchronous writes include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Database log writers: eg, Oracle's LGWR.&lt;/li&gt;
&lt;li&gt;Expanding archives over NFS: eg, &lt;tt&gt;tar&lt;/tt&gt; creating thousands of small files.&lt;/li&gt;
&lt;li&gt;iSCSI writes on the Sun Storage 7000 series (unless lun write cache is enabled.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The second example is easy to demonstrate.  Here I've taken 
&lt;tt&gt;firefox-1.5.0.6-source.tar&lt;/tt&gt;, a tar file containing 43,000 small files, and
unpacked it to an NFS share (&lt;tt&gt;tar xf&lt;/tt&gt;.)  This will create thousands of small
files, which becomes a synchronous write workload as these files are created.
Writing of the file contents will be asynchronous, it is just the act of creating
the file entries in their parent directories which is synchronous.
I've unpacked this tar file twice, the first time
without Logzilla devices and the second time with.  The difference is clear:&lt;/p&gt;

&lt;span&gt;&lt;a href=&quot;http://blogs.sun.com/brendan/resource/logzilla-1/logzilla-1-firefox-crop.png&quot;&gt;
&lt;img src=&quot;http://blogs.sun.com/brendan/resource/logzilla-1/logzilla-1-firefox-700px.png&quot; /&gt;&lt;/a&gt;&lt;/span&gt;

&lt;p&gt;Without logzillas, it took around 20 minutes to unpack the tar file.  With logzillas, 
it took around 2 minutes - 10x faster.  This improvement is also visible as the higher
number of NFS ops/sec, and the lower NFS latency in the heat map.&lt;/p&gt;

&lt;p&gt;For this example I used a Sun Storage 
&lt;a href=&quot;http://www.sun.com/storage/disk_systems/unified_storage/7410&quot;&gt;7410&lt;/a&gt; 
with 46 disks and 2 Logzillas, stored in 2 JBODs.  The disks and Logzillas can
serve many more IOPS than I've demonstrated here, as I'm only running a single
threaded application from a single modest client as a workload.&lt;/p&gt;

&lt;h3&gt;Identifying Synchronous Writes&lt;/h3&gt;

&lt;p&gt;How do you know if your particular write workload is
&lt;i&gt;synchronous&lt;/i&gt; or &lt;i&gt;asynchronous&lt;/i&gt;?  There are many ways to check, here
I'll describe a scenario where a client side application is performing 
writes to an NFS file server.&lt;/p&gt;

&lt;h4&gt;Client side&lt;/h4&gt;

&lt;p&gt;To determine if your application is performing synchronous writes, one way is to
debug the open system calls.  The following example uses &lt;tt&gt;truss&lt;/tt&gt; on Solaris
(try &lt;tt&gt;strace&lt;/tt&gt; on Linux) on two different programs:&lt;/p&gt;

&lt;ul&gt;&lt;pre&gt;
client# truss -ftopen ./write
4830:   open64(&quot;outfile&quot;, O_WRONLY|O_CREAT, 0644)            = 3

client# truss -ftopen ./odsync-write
4832:   open64(&quot;outfile&quot;, O_WRONLY|&lt;b&gt;O_DSYNC&lt;/b&gt;|O_CREAT, 0644)    = 3   
&lt;/pre&gt;&lt;/ul&gt;

&lt;p&gt;The second program (&lt;tt&gt;odsync-write&lt;/tt&gt;) opened its file with the O_DSYNC
flag, so subsequent writes will be synchronous.  In these examples, the program
was executed by the debugger, &lt;tt&gt;truss&lt;/tt&gt;.  If the application is already running,
on Solaris you can use &lt;tt&gt;pfiles&lt;/tt&gt; to examine the file flags for processes
(on Linux, try &lt;tt&gt;lsof&lt;/tt&gt;.)&lt;/p&gt;

&lt;p&gt;Apart from tracing the open() syscall, also look for frequent fsync() or
fdsync() calls, which synchronously commit the previously written data.&lt;/p&gt;

&lt;h4&gt;Server side&lt;/h4&gt;

&lt;p&gt;If you'd like to determine if you have a synchronous write workload from the
NFS server itself, you can't run debuggers like &lt;tt&gt;truss&lt;/tt&gt; on the target
process (since it's running on another host), so instead we'll need to examine
the NFS protocol.  You can do this either with packet sniffers (&lt;tt&gt;snoop&lt;/tt&gt;,
&lt;tt&gt;tcpdump&lt;/tt&gt;), or with 
&lt;a href=&quot;http://opensolaris.org/os/community/dtrace&quot;&gt;DTrace&lt;/a&gt; if it and its
NFS provider are available:&lt;/p&gt;

&lt;ul&gt;&lt;pre&gt;
topknot# dtrace -n 'nfsv3:::op-write-start { @[args[2]-&amp;gt;stable] = count(); }'
dtrace: description 'nfsv3:::op-write-start ' matched 1 probe
^C
        2             1398
&lt;/pre&gt;&lt;/ul&gt;

&lt;p&gt;Here I've frequency counted the &quot;stable&quot; member of the NFSv3 write protocol,
which was &quot;2&quot; some 1,398 times.  2 is a synchronous write workload (FILE_SYNC),
and 0 is for asynchronous:&lt;/p&gt;

&lt;ul&gt;&lt;pre&gt;
enum stable_how {
        UNSTABLE = 0,
        DATA_SYNC = 1,
        FILE_SYNC = 2
};
&lt;/pre&gt;&lt;/ul&gt;

&lt;p&gt;If you don't have DTrace available, you'll need to dig this out of the NFS protocol
headers.  For example, using &lt;tt&gt;snoop&lt;/tt&gt;:&lt;/p&gt;

&lt;ul&gt;&lt;pre&gt;
# snoop -d nxge4 -v | grep NFS
[...]
NFS:  ----- Sun NFS -----
NFS:  
NFS:  Proc = 7 (Write to file)
NFS:  File handle = [A2FC]
NFS:   7A6344B308A689BA0A00060000000000073000000A000300000000001F000000
NFS:  Offset = 96010240
NFS:  Size   = 8192
NFS:  &lt;b&gt;Stable = FSYNC&lt;/b&gt;
NFS:  
&lt;/pre&gt;&lt;/ul&gt;

&lt;p&gt;That's an example of a synchronous write.&lt;/p&gt;

&lt;p&gt;The NFS client may be performing a synchronous-write-like workload by frequently
calling the NFS commit operation.  To identify this, use whichever tool is available
to show NFS operations broken down by type (Analytics on the Sun Storage 7000;
&lt;tt&gt;nfsstat -s&lt;/tt&gt; on Solaris)&lt;/p&gt;


&lt;h3&gt;SLOG and Synchronous Writes&lt;/h3&gt;

&lt;p&gt;The following diagram shows the difference when adding a seperate intent log
(SLOG) to ZFS:&lt;/p&gt;

&lt;span&gt;&lt;a href=&quot;http://blogs.sun.com/brendan/resource/logzilla-1/logzilla-1-slog-crop.png&quot;&gt;
&lt;img src=&quot;http://blogs.sun.com/brendan/resource/logzilla-1/logzilla-1-slog-700px.png&quot; /&gt;&lt;/a&gt;&lt;/span&gt;

&lt;p&gt;Major components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ZPL: ZFS POSIX Layer.  Primary interface to ZFS as a filesystem.&lt;/li&gt;
&lt;li&gt;ZIL: ZFS Intent Log.  Synchronous write data for replay in the event of a crash.&lt;/li&gt;
&lt;li&gt;DMU: Data Management Unit.  Transactional object management.&lt;/li&gt;
&lt;li&gt;ARC: Adaptive Replacement Cache.  Main memory filesystem cache.&lt;/li&gt;
&lt;li&gt;ZIO: ZFS I/O Pipeline.  Processing of disk I/O.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For the most detailed information of these and the other components of ZFS,
you can browse their source code at the
&lt;a href=&quot;http://www.opensolaris.org/os/community/zfs/source/&quot;&gt;ZFS Source Tour&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;When data is asynchronously written to ZFS, it is buffered in memory and
gathered periodically by the DMU as transaction groups, and then
written to disk.  Transaction groups either succeed or fail as a whole, and are part
of the ZFS design to always deliver on disk data consistency.&lt;/p&gt;
&lt;p&gt;This periodical writing of transaction groups can improve asynchronous writes
by aggregating data and streaming it to disk.  However the interval of these writes is in
the order of seconds, which makes it unsuitable to serve synchronous writes directly -
as the application would stall until the next transaction group was synced.
Enter the ZIL.&lt;/p&gt;

&lt;h4&gt;ZFS Intent Log&lt;/h4&gt;

&lt;p&gt;The ZIL handles synchronous writes by 
immediately writing their data and information to stable storage, an &quot;intent log&quot;,
so that ZFS can claim that the write completed.  The written data hasn't reached
its final destination on the ZFS filesystem yet, that will happen sometime later
when the transaction group is written.  In the meantime, if there is a system failure,
the data will not be lost as ZFS can replay that intent log and write the data to
its final destination.  This is a similar principle as Oracle redo logs, for example.&lt;/p&gt;

&lt;h4&gt;Separate Intent Log&lt;/h4&gt;

&lt;p&gt;In the above diagram on the left, the ZIL stores the log data on the same disks as
the ZFS pool.  While this works, the performance of synchronous writes can suffer
as they compete for disk access along with the regular pool requests (reads, and
transaction group writes.)  Having two different workloads compete for the same
disk can negatively effect both workloads, as the heads seek between the hot data
for one and the other.  The solution is to give the ZIL its own dedicated
&quot;log devices&quot; to write to, as pictured on the right.  These dedicated log devices
form the separate intent log: the SLOG.&lt;/p&gt;

&lt;h4&gt;Logzilla&lt;/h4&gt;

&lt;p&gt;By writing to dedicated log devices, we can improve
performance further by choosing a device which is best suited for fast writes.  
Enter Logzilla.  Logzilla was the name we gave to write-optimized
flash-memory-based solid state disks (SSDs.)  Flash memory is known for slow
write performance, so to improve this the Logzilla device buffers the write in DRAM
and uses a super-capacitor to power the device long enough to write the DRAM buffer
to flash, should it lose power.  These devices can write an I/O as fast as 0.1 ms
(depends on I/O size), and do so consistently.  By using them as our SLOG, we can
serve synchronous write workloads consistently fast.&lt;/p&gt;

&lt;h4&gt;Speed + Data Integrity&lt;/h4&gt;

&lt;p&gt;It's worth mentioning that when ZFS synchronously writes to disk, it uses
new &lt;tt&gt;ioctl()s&lt;/tt&gt;
to ensure that the data is flushed properly to the disk platter, and isn't just
buffered on the disk's write cache (which is a small amount of DRAM inside the disk
itself.)  Which is exactly what we want to happen - that's
why these writes are synchronous.  Other filesystems didn't bother to do this (eg, UFS),
and believed that data had reached stable storage when it may have just been cached.  If
there was a power outage, and the disk's write cache is not battery backed, then those
writes would be lost - which means &lt;i&gt;data corruption&lt;/i&gt; for the filesystem.  Since
ZFS waits for the disk to properly write out the data, synchronous writes on ZFS
are slower than other filesystems - but they are also &lt;i&gt;correct&lt;/i&gt;.  There is
a way to turn off this behaviour in ZFS (zfs_nocacheflush), and ZFS will perform as
fast or faster than other filesystems for synchronous writes - but you've also
sacrificed data integrity, so this is highly unrecommended.  By using fast SLOG
devices on ZFS, we get both speed and data integrity.&lt;/p&gt;

&lt;p&gt;I won't go into too much more detail of the inner workings of the SLOG, which is best
described by the author
&lt;a href=&quot;http://blogs.sun.com/perrin&quot;&gt;Neil Perrin&lt;/a&gt;.&lt;/p&gt;


&lt;h3&gt;Screenshots&lt;/h3&gt;

&lt;p&gt;To create a screenshot to best show the effect of Logzillas, I applied a synchronous
write workload over NFS from a single threaded process on a single client.
The target was the same 7410 used for 
the &lt;tt&gt;tar&lt;/tt&gt; test, which has 46 disks and 2 Logzillas.  At first I let the 
workload run with the Logzillas disabled, then enbled them:&lt;/p&gt;

&lt;span&gt;&lt;a href=&quot;http://blogs.sun.com/brendan/resource/logzilla-1/logzilla-1-before-after-crop.png&quot;&gt;
&lt;img src=&quot;http://blogs.sun.com/brendan/resource/logzilla-1/logzilla-1-before-after-700px.png&quot; /&gt;&lt;/a&gt;&lt;/span&gt;

&lt;p&gt;This is the effect of adding 2 Logzillas to a pool of 46 disks, on both
latency and IOPS.  My last post discussed the
&lt;a href=&quot;http://blogs.sun.com/brendan/entry/latency_art_x_marks_the&quot;&gt;odd latency pattern&lt;/a&gt;
that these 7200 RPM disks causes for synchronous writes, which looks a bit like an icy
lake.&lt;/p&gt;

&lt;p&gt;The latency heat map shows the improvement very well, but it's also shown
something unintended:  These heat maps use a false color palette which draws
the faintest details much darker than they (linearly) should be, so that they are
visible.  This has made visible a minor and unrelated performance issue: those
faint vertical trails on the
right side of the plot.  These were every 30 seconds, and was when ZFS flushed
a transaction group to disk - which stalled a fraction of NFS I/O while this
happened.  The fraction is so small it's almost lost in the rounding, but appears
to be about 0.17% when 
&lt;a href=&quot;http://blogs.sun.com/brendan/resource/logzilla-1/logzilla-1-txgflush-crop.png&quot;&gt;examining&lt;/a&gt;
the left panel numbers.  While minor, we are working to fix it.  This perf issue
is known internally as the &quot;picket fence&quot;.  Logzilla is still
delivering a fantastic improvement over 99% of the time.&lt;/p&gt;


&lt;p&gt;To quantify the Logzilla improvement, I'll now zoom to the before and after periods
to see the range averages from Analytics:&lt;/p&gt;

&lt;h4&gt;Before&lt;/h4&gt;

&lt;p&gt;With just the 46 disks:&lt;/p&gt;

&lt;span&gt;&lt;a href=&quot;http://blogs.sun.com/brendan/resource/logzilla-1/logzilla-1-before-crop.png&quot;&gt;
&lt;img src=&quot;http://blogs.sun.com/brendan/resource/logzilla-1/logzilla-1-before-700px.png&quot; /&gt;&lt;/a&gt;&lt;/span&gt;

&lt;p&gt;Reading the values from the left panels:
with just the 46 disks, we've averaged 143 NFS synchronous writes/sec.  Latency has reached
as high as 8.93ms - most of the 8 ms would be worst case rotational latency for a
7200 RPM disk.&lt;/p&gt;

&lt;h4&gt;After&lt;/h4&gt;

&lt;p&gt;46 disks + 2 Logzillas:&lt;/p&gt;

&lt;span&gt;&lt;a href=&quot;http://blogs.sun.com/brendan/resource/logzilla-1/logzilla-1-after-crop.png&quot;&gt;
&lt;img src=&quot;http://blogs.sun.com/brendan/resource/logzilla-1/logzilla-1-after-700px.png&quot; /&gt;&lt;/a&gt;&lt;/span&gt;

&lt;p&gt;Nice - a tight latency cloud from 229 to 305 microseconds, showing very fast
and consistent responses from the Logzillas.&lt;/p&gt;

&lt;p&gt;We've now averaged 1,708 NFS synchronous writes/sec - 12x faster than without the
Logzillas.  Beyond 381 us, latency has rounded down to zero ops/sec, and was mostly in the
267 to 304 microsecond range.  Previously latency stretched from a few to over 8 ms,
making the delivered NFS latency improvement reach over 20x.&lt;/p&gt;

&lt;p&gt;This 7410 and these Logzillas can handle much more than 1,708 synchronous writes/sec, 
if I apply more clients and threads (I'll show a higher load demo in a moment.)&lt;/p&gt;

&lt;h3&gt;Disk I/O&lt;/h3&gt;

&lt;p&gt;Another way to see the effect of Logzillas is through disk I/O.  The following
shows before and after in seperate graphs:&lt;/p&gt;

&lt;span&gt;&lt;a href=&quot;http://blogs.sun.com/brendan/resource/logzilla-1/logzilla-1-diskio-crop.png&quot;&gt;
&lt;img src=&quot;http://blogs.sun.com/brendan/resource/logzilla-1/logzilla-1-diskio-700px.png&quot; /&gt;&lt;/a&gt;&lt;/span&gt;

&lt;p&gt;I've used the Hierarchial breakdown feature to highlight the JBODs in green.
In the top plot (before), the I/O to each JBOD was equal - about 160 IOPS.
After enabling the Logzillas, the bottom plot shows one of the JBODs is now
serving over 1800 IOPS - which is the JBOD with the Logzillas in.&lt;/p&gt;

&lt;p&gt;There are spikes of IOPS every 30 seconds in both these graphs.  That is when
ZFS flushes a transaction group to disk - commiting the writes to their final
location.  Zooming into the before graph:&lt;/p&gt;

&lt;span&gt;&lt;a href=&quot;http://blogs.sun.com/brendan/resource/logzilla-1/logzilla-1-diskbefore-crop.png&quot;&gt;
&lt;img src=&quot;http://blogs.sun.com/brendan/resource/logzilla-1/logzilla-1-diskbefore-700px.png&quot; /&gt;&lt;/a&gt;&lt;/span&gt;

&lt;p&gt;Instead of highlighting JBODs, I've now highlighted individual disks (yes,
the pie chart is pretty now.)  The non-highlighted slice is for the system disks,
which are recording the numerous Analytics statistics I've enabled.&lt;/p&gt;

&lt;p&gt;We can see that all the disks have data flushed to them every 30 seconds, but
they are also being written to constantly.  This constant writing is the synchronous
writes being written to the ZFS intent log, which is being served from the pool of
46 disks (since it isn't a &lt;i&gt;separate&lt;/i&gt; intent log, yet.)&lt;/p&gt;

&lt;p&gt;After enabling the Logzillas:&lt;/p&gt;

&lt;span&gt;&lt;a href=&quot;http://blogs.sun.com/brendan/resource/logzilla-1/logzilla-1-diskafter-crop.png&quot;&gt;
&lt;img src=&quot;http://blogs.sun.com/brendan/resource/logzilla-1/logzilla-1-diskafter-700px.png&quot; /&gt;&lt;/a&gt;&lt;/span&gt;

&lt;p&gt;Now those constant writes are being served from 2 disks:
HDD 20 and HDD 16, which are both in the /2029...012 JBOD.  Those are the Logzillas,
and are our separate intent log (SLOG):&lt;/p&gt;

&lt;span&gt;&lt;a href=&quot;http://blogs.sun.com/brendan/resource/logzilla-1/logzilla-1-hw-crop.png&quot;&gt;
&lt;img src=&quot;http://blogs.sun.com/brendan/resource/logzilla-1/logzilla-1-hw-700px.png&quot; /&gt;&lt;/a&gt;&lt;/span&gt;

&lt;p&gt;I've highlighted one in this screenshot, HDD 20.&lt;/p&gt;

&lt;h3&gt;Mirrored Logzillas&lt;/h3&gt;

&lt;p&gt;The 2 Logzillas I've been demonstrating have been acting as individual log
devices.  ZFS lists them like this:&lt;/p&gt;
&lt;pre&gt;
topknot# zpool status
  pool: pool-0
 state: ONLINE
[...]
        NAME                                     STATE     READ WRITE CKSUM
        pool-0                                   ONLINE       0     0     0
[...many lines snipped...]
          mirror                                 ONLINE       0     0     0
            c2t5000CCA216CCB913d0                ONLINE       0     0     0
            c2t5000CCA216CE289Cd0                ONLINE       0     0     0
        &lt;b&gt;logs&lt;/b&gt;
          c2tATASTECZEUSIOPS018GBYTES00000AD6d0  ONLINE       0     0     0
          c2tATASTECZEUSIOPS018GBYTES00000CD8d0  ONLINE       0     0     0
        spares
          c2t5000CCA216CCB958d0                  AVAIL
          c2t5000CCA216CCB969d0                  AVAIL
&lt;/pre&gt;

&lt;p&gt;Log devices can be mirrored instead (see zpool(1M)), and &lt;tt&gt;zpool&lt;/tt&gt; will list them
as part of a &quot;mirror&quot; under &quot;logs&quot;.  On the Sun Storage 7000 series, it's
configurable from the BUI (and CLI) when creating the pool:&lt;/p&gt;

&lt;span&gt;&lt;a href=&quot;http://blogs.sun.com/brendan/resource/logzilla-1/logzilla-1-profile-crop.png&quot;&gt;
&lt;img src=&quot;http://blogs.sun.com/brendan/resource/logzilla-1/logzilla-1-profile-700px.png&quot; /&gt;&lt;/a&gt;&lt;/span&gt;

&lt;p&gt;With a single Logzilla, if there was a system failure when a client was
performing synchronous writes, and if that data was written to the Logzilla
but hadn't been flushed to disk, and if that Logzilla also fails, then data
will be lost.  So it is system failure + drive failure + unlucky timing. ZFS
should still be intact.&lt;/p&gt;

&lt;p&gt;It sounds a little paranoid to use mirroring, however from experience system
failures and drive failures sometimes go hand in hand, so it is understandable
that this is often chosen for high availability environments.  The default for the
Sun Storage 7000 config when you have multiple Logzillas is to mirror them.&lt;/p&gt;

&lt;h3&gt;Expectations&lt;/h3&gt;

&lt;p&gt;While the Logzillas can greatly improve performance, it's important to understand
which workloads this is for and how well they work, to help set realistic expectations.
Here's a summary:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Logzillas do not help every write workload; they are for &lt;i&gt;synchronous&lt;/i&gt;
write workloads, as described earlier.&lt;/li&gt;
&lt;li&gt;Our current Logzilla devices for the Sun Storage 7000 family deliver as high
as 100 Mbytes/sec each (less with small I/O sizes), and as high as 10,000 IOPS
(less with big I/O sizes).&lt;/li&gt;
&lt;li&gt;A heavy multi threaded workload on a single Logzilla device can queue I/O,
increasing latency.  Use multiple Logzilla devices to serve I/O concurrently.&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;Stepping up the workload&lt;/h3&gt;

&lt;p&gt;So far I've only used a single threaded process to apply the workload.
To push the 7410 and Logzillas to their limit, I'll multiply this workload by &lt;i&gt;200&lt;/i&gt;.
To do this I'll use 10 clients, and on each client I'll add another workload thread every
minute until it reaches 20 per client.  Each workload thread performs 512 byte synchronous
write ops continually.  I'll also upgrade the 7410: I'll now use 6 JBODs
containing 8 Logzillas and 132 data disks, to give the 7410 a fighting chance against
this bombardment.&lt;/p&gt;

&lt;h4&gt;8 Logzillas&lt;/h4&gt;

&lt;span&gt;&lt;a href=&quot;http://blogs.sun.com/brendan/resource/logzilla-1/logzilla-1-114k-latest-crop.png&quot;&gt;
&lt;img src=&quot;http://blogs.sun.com/brendan/resource/logzilla-1/logzilla-1-114k-latest-700px.png&quot; /&gt;&lt;/a&gt;&lt;/span&gt;

&lt;p&gt;We've reached 114,000 synchronous write ops/sec over NFS, and the delivered NFS latency
is still mostly less than 1 ms - awesome stuff!  We can study the numbers in the left
panel of the latency heat map to quantify this: there were 132,453 ops/sec total,
and (adding up the numbers) 112,121 of them completed faster than 1.21 ms - which is 85%.&lt;/p&gt;

&lt;p&gt;The bottom plot suggests we have driven this 7410 close to its CPU limit (for what is
measured as CPU utilization, which includes bus wait cycles.)  The Logzillas
are only around 30% utilized.  The CPUs are 4 sockets of 2.3 GHz quad core Opteron - and for
&lt;i&gt;them&lt;/i&gt; to be the limit means a lot of other system components are performing
extremely well.  There are now faster CPUs available, which we need to make available
in the 7410 to push that ops/sec limit much higher than 114k.&lt;/p&gt;

&lt;h4&gt;No Logzillas&lt;/h4&gt;

&lt;span&gt;&lt;a href=&quot;http://blogs.sun.com/brendan/resource/logzilla-1/logzilla-1-7k-latest-crop.png&quot;&gt;
&lt;img src=&quot;http://blogs.sun.com/brendan/resource/logzilla-1/logzilla-1-7k-latest-700px.png&quot; /&gt;&lt;/a&gt;&lt;/span&gt;

&lt;p&gt;Ouch!  We are barely reaching 7,000 sync write ops/sec, and our latency is pretty
ordinary - often 15 ms and higher.  These 7,200 RPM disks are not great to serve
synchronous writes from alone, which is why 
&lt;a href=&quot;http://blogs.sun.com/ahl&quot;&gt;Adam&lt;/a&gt; created the Hybrid Storage Pool model.&lt;/p&gt;

&lt;p&gt;When comparing the above two screenshots, note the change in the vertical scale.
With Logzillas, the NFS latency heat map is plotted to 10 ms; without, it's plotted
to 100 ms to span the higher latency from the disks.&lt;/p&gt;

&lt;h4&gt;Config&lt;/h4&gt;

&lt;p&gt;The full description of the server and clients used in the above demo is:&lt;/p&gt;

&lt;b&gt;Server&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Sun Storage 7410&lt;/li&gt;
&lt;li&gt;Latest software version: 2009.04.10.2.1,1-1.15&lt;/li&gt;
&lt;li&gt;4 x quad core AMD Opteron 2.3 GHz CPUs&lt;/li&gt;
&lt;li&gt;128 Gbytes DRAM&lt;/li&gt;
&lt;li&gt;2 x SAS HBAs&lt;/li&gt;
&lt;li&gt;1 x 2x10 GbE network card (1 port connected)&lt;/li&gt;
&lt;li&gt;6 JBODs (136 disks total, each 1 Tbyte 7,200 RPM)&lt;/li&gt;
&lt;li&gt;Storage configured with mirroring&lt;/li&gt;
&lt;li&gt;8 Logzillas (installed in the JBODs)&lt;/li&gt;
&lt;/ul&gt;

&lt;b&gt;Clients&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;10 x blade servers, each:&lt;/li&gt;
&lt;li&gt;2 x quad core Intel Xeon 1.6 GHz CPUs&lt;/li&gt;
&lt;li&gt;3 Gbytes DRAM&lt;/li&gt;
&lt;li&gt;2 x 1 GbE network ports (1 connected)&lt;/li&gt;
&lt;li&