>>>>> "et" == Erik Trimble <erik.trim...@oracle.com> writes:

    et> With NFS-hosted VM disks, do the same thing: create a single
    et> filesystem on the X4540 for each VM.

previous posters pointed out there are unreasonable hard limits in
vmware to the number of NFS mounts or iSCSI connections or something,
so you will probably run into that snag when attempting to use the
much faster snapshotting/cloning in ZFS.

    >>> * Are the FSYNC speed issues with NFS resolved?
    >>> 
    et> The ZIL SSDs will compensate for synchronous write issues in
    et> NFS.

okay, but sometimes for VM's I think this often doesn't matter because
NFSv3 and v4 only add fsync()'s on file closings, and a virtual disk
is one giant file that the client never closes.  There may still be
synchronous writes coming through if they don't get blocked in LVM2
inside the guest or blocked in the VM software, but whatever comes
through ought to be exactly the same number of them for NFS or iSCSI,
unless the vm software has different bugs in the nfs vs iscsi
back-ends.

the other difference is in the latest comstar which runs in
sync-everything mode by default, AIUI.  Or it does use that mode only
when zvol-backed?  Or something.  I've the impression it went through
many rounds of quiet changes, both in comstar and in zvol's, on its
way to its present form.  I've heard said here you can change the mode
both from the comstar host and on the remote initiator, but I don't
know how to do it or how sticky the change is, but if you didn't
change and stuck with the default sync-everything I think NFS would be
a lot faster.  This is if we are comparing one giant .vmdk or similar
on NFS, against one zvol.  If we are comparing an exploded filesystem
on NFS mounted through the virtual network adapter, then of course
you're right again Erik.

The tradeoff integrity tests are, (1) reboot the solaris storage host
without rebooting the vmware hosts & guests and see what happens, (2)
cord-yank the vmware host.  Both of these are probably more dangerous
than (3) command the vm software to virtual-cord-yank the guest.

    >>> * Should I go with fiber channel, or will the 4 built-in 1Gbe
    >>> NIC's give me enough speed?

FC has different QoS properties than Ethernet because of the buffer
credit mechanism---it can exert back-pressure all the way through the
fabric.  same with IB, which is HOL-blocking.  This is a big deal with
storage, with its large blocks of bursty writes that aren't really the
case for which TCP shines.  I would try both and compare, if you can
afford it!

    je> IMHO Solaris Zones with LOFS mounted ZFSs gives you the
    je> highest flexibility in all directions, probably the best
    je> performance and least resource consumption, fine grained
    je> resource management (CPU, memory, storage space) and less
    je> maintainance stress etc...

yeah zones are really awesome, especially combined with clones and
snapshots.  For once the clunky post-Unix XML crappo solaris
interfaces are actually something I appreciate a little, because lots
of their value comes from being able to do consistent repeatable
operations on them.

The problem is that the zones run Solaris instead of Linux.  BrandZ
never got far enough to, for example, run Apache under a
2.6-kernel-based distribution, so I don't find it useful for any real
work.  I do keep a CentOS 3.8 (I think?) brandz zone around, but not
for anything production---just so I can try it if I think the
new/weird version of a tool might be broken.

as for native zones, the ipkg repository, and even the jucr
repository, has two years old versions of everything---django/python,
gcc, movabletype.  Many things are missing outright, like nginx.  I'm
very disappointed that Solaris did not adopt an upstream package
system like Dragonfly did.  Gentoo or pkgsrc would have been very
smart, IMHO.  Even opencsw is based on Nick Moffitt's GAR system,
which was an old mostly-abandoned tool for building bleeding edge
Gnome on Linux.  The ancient perpetually-abandoned set of packages on
jucr and the crufty poorly-factored RPM-like spec files leave me with
little interest in contributing to jucr myself, while if Solaris had
poured the effort instead into one of these already-portable package
systems like they poured it into Mercurial after adopting that, then
I'd instead look into (a) contributing packages that I need most, and
(b) using whatever system Solaris picked on my non-Solaris systems.
This crap/marginalized build system means I need to look at a way to
host Linux under Solaris, using Solaris basically just for ZFS and
nothing else.  The alternative is to spend heaps of time re-inventing
the wheel only to end up with an environment less rich than
competitors and charge twice as much for it like joyent.

But, yeah, while working on Solaris I would never install anything in
the global zone after discovering how easy it is to work with ipkg
zones.  They are really brilliant, and unlike everyone else's attempt
at these superchroot's like freebsd jails/johncompanies.com I feel
like zones are basically finished.

however...  because of:

  http://mail.opensolaris.org/pipermail/zfs-discuss/2009-October/032878.html

I wonder if it might be better to mount ZFS datasets directly in the
zones, not lofs mount them.  It's easy to do this.  Short version is:

 1. create dataset outside the zone with mountpoint=none
 2. add dataset to the zone with zonecfg
 3. set the dataset's mountpoint from a shell inside the zone

Long version below.

postgres cheatsheet:
-----8<-----
http://blogs.sun.com/jkshah/entry/opensolaris_2008_11_and_postgresql

need to make a dataset outside the zbe for postgres data so it'll escape beadm 
snapshotting/cloning
once that's working within zones for image-update.  setting mountpoints for 
zoned datasets is
weird, though: 
http://mail.opensolaris.org/pipermail/zones-discuss/2009-January/004661.html

outside the zone:
 zfs list -r tub/export/zone
  NAME                                                USED  AVAIL  REFER  
MOUNTPOINT
  tub/export/zone                                    27.1G   335G  40.3K  
/export/zone
  tub/export/zone/awabagal                            917M   335G  37.4K  
/export/zone/awabagal
  tub/export/zone/awabagal/ROOT                       917M   335G  31.4K  legacy
  tub/export/zone/awabagal/ROOT/zbe                   917M   335G  2.72G  legacy
 zfs create -o mountpoint=none tub/export/zone/awabagal/postgres-data
 zonecfg -z awabagal
 zonecfg:awabagal> add dataset
 zonecfg:awabagal:dataset> set name=tub/export/zone/awabagal/postgres-data
 zonecfg:awabagal:dataset> end
 zonecfg:awabagal> commit
 zonecfg:awabagal> exit
inside the zone:
 zfs list
  NAME                                     USED  AVAIL  REFER  MOUNTPOINT
  tub                                     1.33T   335G   498K  /tub
  tub/export                               295G   335G  63.2M  /export
  tub/export/zone                         27.1G   335G  40.3K  /export/zone
  tub/export/zone/awabagal                 919M   335G  37.4K  
/export/zone/awabagal
  tub/export/zone/awabagal/ROOT            919M   335G  31.4K  legacy
  tub/export/zone/awabagal/ROOT/zbe        919M   335G  2.73G  legacy
  tub/export/zone/awabagal/postgres-data  31.4K   335G  31.4K  none
 zfs set mountpoint=/var/postgres tub/export/zone/awabagal/postgres-data

the /var/postgres directory is magical and hardcoded into the package.

the rest, you do inside the zone:
pkg install SUNWpostgr-83-server SUNWpostgr-83-client SUNWpostgr-jdbc 
SUNWpostgr-83-contrib SUNWpostgr-83-docs \
 SUNWpostgr-83-devel SUNWpostgr-83-tcl SUNWpostgr-83-pl SUNWpgadmin3
svccfg import /var/svc/manifest/application/database/postgresql_83.xml
svcadm enable postgresql_83:default_64bit

add /usr/postgres/8.3/bin to {,SU}PATH in /etc/default/{login,su}
-----8<-----

Attachment: pgpbWmnHKhmIf.pgp
Description: PGP signature

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

Reply via email to