On Thu, Nov 13, 2014 at 1:30 PM, Spencer Krum <[email protected]>
wrote:

> Josh, What version of solaris were you testing this on?
>

Solaris 11.1


> Its possible that the zpool command has changed behavior more recently
> than Puppet 3.0, thus making it look like this has been broken that long.
>

Yep, that's a good point, though I am fairly certain the old code assumed
all devices were part of the same mirror. For example:

zpool { tstpool:
  ensure => present,
  mirror => ['/ztstpool/dsk1', '/ztstpool/dsk2', '/ztstpool/dsk3',
'/ztstpool/dsk4']
}

Would result in one mirror with 4 virtual devices:

Debug: Executing '/usr/sbin/zpool create tstpool mirror /ztstpool/dsk1
/ztstpool/dsk2 /ztstpool/dsk3 /ztstpool/dsk4'
Notice: /Stage[main]/Main/Zpool[tstpool]/ensure: created
...
root@yscuew2s4qea3eu:~/puppet# zpool status -v tstpool
  pool: tstpool
 state: ONLINE
  scan: none requested
config:

        NAME                STATE     READ WRITE CKSUM
        tstpool             ONLINE       0     0     0
          mirror-0          ONLINE       0     0     0
            /ztstpool/dsk1  ONLINE       0     0     0
            /ztstpool/dsk2  ONLINE       0     0     0
            /ztstpool/dsk3  ONLINE       0     0     0
            /ztstpool/dsk4  ONLINE       0     0     0

And trying to specify multiple mirrors, each containing a set of virtual
devices:

zpool { tstpool:
  ensure => present,
  mirror => ['/ztstpool/dsk1 /ztstpool/dsk2', '/ztstpool/dsk3
/ztstpool/dsk4']
}

Would outright fail:

Debug: Executing '/usr/sbin/zpool create tstpool mirror /ztstpool/dsk1
/ztstpool/dsk2 /ztstpool/dsk3 /ztstpool/dsk4'
Error: Execution of '/usr/sbin/zpool create tstpool mirror /ztstpool/dsk1
/ztstpool/dsk2 /ztstpool/dsk3 /ztstpool/dsk4' returned 1: Unable to build
pool from specified devices: cannot open '/ztstpool/dsk1 /ztstpool/dsk2':
No such file or directory

Furthermore I'm not sure if the different zfs implementations all use the
> exact same command structure at this point.
>
> With Geoffery stepping up to take ownership of this stuff, and some
> consensus around spitting out the zfs stuff, I think we should split out
> the zfs/zpool types and providers into puppet-community/puppet-module-zfs
> and give Geoffery commit access.
>

+1


> We should do this with at least a ping to the FreeBSD folks in case they
> want to get involved as well.
>

Makes sense.


> Thanks,
> Spencer
>
> On Thu, Nov 13, 2014 at 7:35 PM, Geoffrey Gardella <[email protected]>
> wrote:
>
>> Hi Josh!
>> I am with Oracle and have just been assigned to work on Puppet in
>> Solaris. I am just getting oriented, but this looks like something we
>> should be working on. Is this functionality being covered elsewhere? If
>> not, I can open an internal ticket to get this covered.
>>
>> So far, we aren't even pushing our changes back upstream, so fixing that
>> that is my first order of business.
>>
>> Cheers,
>> Geoffrey
>>
>>
>> On Monday, November 10, 2014 11:06:51 PM UTC-8, Josh Cooper wrote:
>>>
>>> There looks to be a bug in the current zpool provider, where if you have
>>> a manifest like:
>>>
>>>     mirror => ["disk1 disk2", "disk3 disk4"],
>>>
>>> Puppet will execute:
>>>
>>>     zpool create data mirror "disk1 disk2" "disk3 disk4"
>>>
>>> Instead of:
>>>
>>>     zpool create data mirror disk1 disk2 mirror disk3 disk4
>>>
>>> Adam put together a PR at https://github.com/
>>> Incognito1992/puppet/compare/ticket/master/PUP-3388-zpool-mirrors, but
>>> while researching it, I think this is really a regression due to
>>> http://projects.puppetlabs.com/issues/16157, commit https://github.com/
>>> puppetlabs/puppet/commit/4a6853e1de083842362dc30d0842bbbb9b029f64,
>>> first introduced in Puppet 3.0.
>>>
>>> The Oracle docs[1] seem to support that Puppet is now doing the wrong
>>> thing:
>>>
>>> Virtual devices are specified one at a time on the command line,
>>> separated by whitespace. The keywords “mirror” and “raidz” are used to
>>> distinguish where a group ends and another begins. For example, the
>>> following creates two root vdevs, each a mirror of two disks:
>>>
>>>    # zpool create mypool mirror c0t0d0 c0t1d0 mirror c1t0d0 c1t1d0
>>>
>>> This seems pretty straightforward, but I wanted to raise the issue here,
>>> because I am not a Solaris expert, and it's been broken for awhile without
>>> anyone noticing... I've submitted a PR at https://github.com/
>>> puppetlabs/puppet/pull/3299, comments welcome.
>>>
>>> Josh
>>>
>>> [1] https://docs.oracle.com/cd/E23824_01/html/821-1462/zpool-1m.html
>>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "Puppet Developers" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/puppet-dev/7dd557f6-cac1-4d99-a9c5-89dfc6158b82%40googlegroups.com
>> <https://groups.google.com/d/msgid/puppet-dev/7dd557f6-cac1-4d99-a9c5-89dfc6158b82%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> --
> Spencer Krum
> (619)-980-7820
>
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/puppet-dev/CADt6FWOCNxR3h-ORpPFsjmYcGY-96byotGm8Hj7q9EH81M0aEA%40mail.gmail.com
> <https://groups.google.com/d/msgid/puppet-dev/CADt6FWOCNxR3h-ORpPFsjmYcGY-96byotGm8Hj7q9EH81M0aEA%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Josh Cooper
Developer, Puppet Labs

*Join us at **PuppetConf 2015, October 5-9 in Portland, OR - *
http://2015.puppetconf.com.
*Register early to save 40%!*

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-dev/CA%2Bu97um5D9Z9KrFhBwtr-9hJ_wgsSgH1miSZcU3S5xtO5ZjBSg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to