On 20 January, 2010 - Richard Elling sent me these 2,7K bytes:

> Hi Lutz,
> 
> On Jan 20, 2010, at 3:17 AM, Lutz Schumann wrote:
> 
> > Hello, 
> > 
> > we tested clustering with ZFS and the setup looks like this: 
> > 
> > - 2 head nodes (nodea, nodeb)
> > - head nodes contain l2arc devices (nodea_l2arc, nodeb_l2arc)
> 
> This makes me nervous. I suspect this is not in the typical QA 
> test plan.
> 
> > - two external jbods
> > - two mirror zpools (pool1,pool2)
> >   - each mirror is a mirror of one disk from each jbod
> > - no ZIL (anyone knows a well priced SAS SSD ?)
> > 
> > We want active/active and added the l2arc to the pools. 
> > 
> > - pool1 has nodea_l2arc as cache
> > - pool2 has nodeb_l2arc as cache
> > 
> > Everything is great so far. 
> > 
> > One thing to node is that the nodea_l2arc and nodea_l2arc are named equally 
> > ! (c0t2d0 on both nodes).
> > 
> > What we found is that during tests, the pool just picked up the device 
> > nodeb_l2arc automatically, altought is was never explicitly added to the 
> > pool pool1.
> 
> This is strange. Each vdev is supposed to be uniquely identified by its GUID.
> This is how ZFS can identify the proper configuration when two pools have 
> the same name. Can you check the GUIDs (using zdb) to see if there is a
> collision?

Reproducable:

itchy:/tmp/blah# mkfile 64m 64m disk1
itchy:/tmp/blah# zfs create -V 64m rpool/blahcache
itchy:/tmp/blah# zpool create blah /tmp/blah/disk1 
itchy:/tmp/blah# zpool add blah cache /dev/zvol/dsk/rpool/blahcache 
itchy:/tmp/blah# zpool status blah
  pool: blah
 state: ONLINE
 scrub: none requested
config:

        NAME                             STATE     READ WRITE CKSUM
        blah                             ONLINE       0     0     0
          /tmp/blah/disk1                ONLINE       0     0     0
        cache
          /dev/zvol/dsk/rpool/blahcache  ONLINE       0     0     0

errors: No known data errors
itchy:/tmp/blah# zpool export blah
itchy:/tmp/blah# zdb -l /dev/zvol/dsk/rpool/blahcache 
--------------------------------------------
LABEL 0
--------------------------------------------
    version=15
    state=4
    guid=6931317478877305718
....
itchy:/tmp/blah# zfs destroy rpool/blahcache
itchy:/tmp/blah# zfs create -V 64m rpool/blahcache
itchy:/tmp/blah# dd if=/dev/zero of=/dev/zvol/dsk/rpool/blahcache bs=1024k 
count=64
64+0 records in
64+0 records out
67108864 bytes (67 MB) copied, 0.559299 seconds, 120 MB/s
itchy:/tmp/blah# zpool import -d /tmp/blah
  pool: blah
    id: 16691059548146709374
 state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:

        blah                             ONLINE
          /tmp/blah/disk1                ONLINE
        cache
          /dev/zvol/dsk/rpool/blahcache
itchy:/tmp/blah# zdb -l /dev/zvol/dsk/rpool/blahcache
--------------------------------------------
LABEL 0
--------------------------------------------
--------------------------------------------
LABEL 1
--------------------------------------------
--------------------------------------------
LABEL 2
--------------------------------------------
--------------------------------------------
LABEL 3
--------------------------------------------
itchy:/tmp/blah# zpool import -d /tmp/blah blah
itchy:/tmp/blah# zpool status
  pool: blah
 state: ONLINE
 scrub: none requested
config:

        NAME                             STATE     READ WRITE CKSUM
        blah                             ONLINE       0     0     0
          /tmp/blah/disk1                ONLINE       0     0     0
        cache
          /dev/zvol/dsk/rpool/blahcache  ONLINE       0     0     0

errors: No known data errors
itchy:/tmp/blah# zdb -l /dev/zvol/dsk/rpool/blahcache
--------------------------------------------
LABEL 0
--------------------------------------------
    version=15
    state=4
    guid=6931317478877305718
...


It did indeed overwrite my formerly clean blahcache.

Smells like a serious bug.

/Tomas
-- 
Tomas Ögren, st...@acc.umu.se, http://www.acc.umu.se/~stric/
|- Student at Computing Science, University of Umeå
`- Sysadmin at {cs,acc}.umu.se

>  -- richard
> 
> > We had a setup stage when pool1 was configured on nodea with nodea_l2arc 
> > and pool2 was configured on nodeb without a l2arc. Then we did a failover. 
> > Then pool1 pickup up the (until then) unconfigured nodeb_l2arc. 
> > 
> > Is this intended ? Why is a L2ARC device automatically picked up if the 
> > device name is the same ? 
> > 
> > In a later stage we had both pools configured with the corresponding l2arc 
> > device. (po...@nodea with nodea_l2arc and po...@nodeb with nodeb_l2arc). 
> > Then we also did a failover. The l2arc device of the pool failing over was 
> > marked as "too many corruptions" instead of "missing". 
> > 
> > So from this tests it looks like ZFS just picks up the device with the same 
> > name and replaces the l2arc without looking at the device signatures to 
> > only consider devices beeing part of a pool.
> > 
> > We have not tested with a data disk as "c0t2d0" but if the same behaviour 
> > occurs - god save us all.
> > 
> > Can someone clarify the logic behind this ? 
> > 
> > Can also someone give a hint how to rename SAS disk devices in opensolaris 
> > ? 
> > (to workaround I would like to rename c0t2d0 on nodea (nodea_l2arc) to 
> > c0t24d0 and c0t2d0 on nodeb (nodea_l2arc) to c0t48d0). 
> > 
> > P.s. Release is build 104 (NexentaCore 2). 
> > 
> > Thanks!
> > -- 
> > This message posted from opensolaris.org
> > _______________________________________________
> > zfs-discuss mailing list
> > zfs-discuss@opensolaris.org
> > http://mail.opensolaris.org/mailman/listinfo/zfs-discuss
> 
> _______________________________________________
> zfs-discuss mailing list
> zfs-discuss@opensolaris.org
> http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

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

Reply via email to