LU-4606 utils: Bump libzfs library version

The libzfs library version changed on master (pre-0.6.3) from
libzfs.so.1 to libzfs.so.2.  We change the versionin Lustre's
mount util to match.  Note that a better long term fix _should_
be developed under LU-4606 so that this patch can be dropped.

Change-Id: Ic657317d83fbe7c7d5e20f153399ad6ed42ba5f7
Signed-off-by: Christopher J. Morrone <morrone2@llnl.gov>
Add lu_object cache site_stats for OFD

While exposed for the MDT the lu_object cache site stats are not
available for the OFT.  This small patch makes those same stats
available under /proc/fs/lustre/obdfilter/lustre-OST0001/site_stats.

Change-Id: Iea7347b3bde6237be955a198dcbd3dd7fa8fca64
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Limit lu_object cache

Allow the lu_object cache to be limited to a maximum number of objects.
A person might reasonably assume that the lu_cache_percent option already
allows this.  However, that option only sizes the default hash table size
based on an assumed 1K object size.  It does not actually limit the number
of objects cached until the kernel invokes the registered shrinker.

In order to be able to quickly determine the number of objects in the hash
table the CFS_HASH_COUNTER flag is added.  This adds an atomic_inc/dec to
the hash insert/remove paths but is not expected to have any measurable
impact of performance.

This option is disabled by default until we can determine the impact
of limiting the cache.  The correct value is likely OSD specific.  For
example, when using ZFS OSDs it may be best to size the cache based on
the maximum number of busy objects.  This allows the ZFS ARC cache the
maximum amount of flexibility in selection what buffers to cache.

Change-Id: Ia64838d50395f1d22e558631adbfa39d44e91606
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Revert "Limit lu_object cache"

This reverts commit 2e24a5c828303d4a906fdd8f09da5897e96a635f.
Limit lu_object cache

For OSDs like ZFS to perform optimally it's import that they be allowed
to manage their own cache.  This maximizes the likelyhood that the ARC
will prefetch and cache the right buffers.  In the existing ZFS OSD
code a cached LU object pins buffers in the ARC preventing them from
being dropped.  As the LU cache grows it can consume the entire ARC
preventing buffers for other objects, such as the OIs, from being
cached and severely impacting the performance for FID lookups.

By default this patch will only limit the LU cache for ZFS OSDs.

NOTES:

* Setting LU_CACHE_NR_ZFS_LIMIT to 0 results in an LBUG on the MDS.
  This may be because an object is being used without a reference.
  Setting a minimum value of 256 was arbitrary, ideally we would
  set this value to 0.

* I'm fully aware this patch is a horible layering violation.  Before
  it can be merged upstream a cleaner interface should be agreed upon
  to allow an OSD to limit/disable the LU cache.  Or an alterate
  approach could be used, if the LU object didn't hold a reference
  on the object and dbufs ZFS could release them as needed.

* In order to be able to quickly determine the number of objects in
  the hash table the CFS_HASH_COUNTER flag is added.  This adds an
  atomic_inc/dec to the hash insert/remove paths but is not expected
  to have any measurable impact of performance.

Change-Id: Ia64838d50395f1d22e558631adbfa39d44e91606
Revision-Id: 2
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>