On Thu, Nov 13, 2014 at 1:30 PM, Spencer Krum <krum.spen...@gmail.com>
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 <garde...@gmail.com>
> 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 puppet-dev+unsubscr...@googlegroups.com.
>> 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 puppet-dev+unsubscr...@googlegroups.com.
> 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 puppet-dev+unsubscr...@googlegroups.com.
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