Discussion:
Any way to set casesensitivity=mixed on the main pool?
Ross
2009-02-04 08:52:31 UTC
Permalink
I'm looking to create a new pool for storing CIFS files. I know that I need to set casesensitivity=mixed, but appears I can only set this option when using the "zfs create" command, I get told it's not a valid pool property if I try to use it with "zpool create".

Is there no way to create a pool such that the default filesystem will have casesensitivity=mixed? I'd rather not have to remember to apply this setting for every filesystem I create within this pool.
--
This message posted from opensolaris.org
Darren J Moffat
2009-02-04 10:21:27 UTC
Permalink
Post by Ross
I'm looking to create a new pool for storing CIFS files. I know that I need to set casesensitivity=mixed, but appears I can only set this option when using the "zfs create" command, I get told it's not a valid pool property if I try to use it with "zpool create".
Is there no way to create a pool such that the default filesystem will have casesensitivity=mixed? I'd rather not have to remember to apply this setting for every filesystem I create within this pool.
# zpool create -O casesensitivity=mixed foo c1d1 c2d2
# zfs get casesensitivity foo
NAME PROPERTY VALUE SOURCE
foo casesensitivity mixed -

Note the use of -O rather than -o. -O is for setting dataset properties
on the top level dataset, -o is for setting pool properties.
--
Darren J Moffat
Ross
2009-02-04 11:00:56 UTC
Permalink
Good god. Talk about non intuitive. Thanks Darren!

Is it possible for me to suggest a quick change to the zpool error message in solaris? Should I file that as an RFE? I'm just wondering if the error message could be changed to something like:
"property 'casesensitivity' is not a valid pool property. Did you mean to use -O?"

It's just a simple change, but it makes it obvious that it can be done, instead of giving the impression that it's not possible.
--
This message posted from opensolaris.org
Darren J Moffat
2009-02-04 11:14:13 UTC
Permalink
Post by Ross
Good god. Talk about non intuitive. Thanks Darren!
Why isn't that intuitive ? It is even documented in the man page.

zpool create [-fn] [-o property=value] ... [-O file-system-
property=value] ... [-m mountpoint] [-R root] pool vdev ...
Post by Ross
"property 'casesensitivity' is not a valid pool property. Did you mean to use -O?"
It's just a simple change, but it makes it obvious that it can be done, instead of giving the impression that it's not possible.
Feel free to log the RFE in defect.opensolaris.org.
--
Darren J Moffat
Ross Smith
2009-02-04 12:31:55 UTC
Permalink
It's not intuitive because when you know that -o sets options, an
error message saying that it's not a valid property makes you think
that it's not possible to do what you're trying.

Documented and intuitive are very different things. I do appreciate
that the details are there in the manuals, but for items like this
where it's very easy to pick the wrong one, it helps if the commands
can work with you.

The difference between -o and -O is pretty subtle, I just think that
extra sentence in the error message could save a lot of frustration
when people get mixed up.

Ross



On Wed, Feb 4, 2009 at 11:14 AM, Darren J Moffat
Post by Darren J Moffat
Post by Ross
Good god. Talk about non intuitive. Thanks Darren!
Why isn't that intuitive ? It is even documented in the man page.
zpool create [-fn] [-o property=value] ... [-O file-system-
property=value] ... [-m mountpoint] [-R root] pool vdev ...
Post by Ross
Is it possible for me to suggest a quick change to the zpool error message
in solaris? Should I file that as an RFE? I'm just wondering if the error
"property 'casesensitivity' is not a valid pool property. Did you mean to use -O?"
It's just a simple change, but it makes it obvious that it can be done,
instead of giving the impression that it's not possible.
Feel free to log the RFE in defect.opensolaris.org.
--
Darren J Moffat
David Dyer-Bennet
2009-02-04 15:04:42 UTC
Permalink
Post by Darren J Moffat
Post by Ross
Good god. Talk about non intuitive. Thanks Darren!
Why isn't that intuitive ? It is even documented in the man page.
zpool create [-fn] [-o property=value] ... [-O file-system-
property=value] ... [-m mountpoint] [-R root] pool vdev ...
Well, I hadn't previously thought about the fact that the zpool create
command creates both a pool *and a filesystem*. So the fact that
casesensitivity is a filesystem property meant to me that it couldn't be
used on the zpool command. I wouldn't have been looking at the man page
to find the -O switch, because it's obvious from the structure that it
won't be there -- zpool manipulates pools, zfs manipulates filesystems.

So I'm not completely sure "non-intuitive" is how I'd describe it; but
it's off in a weird corner I hadn't even noticed existed.

So I've learned something; I wonder if I'll remember it long enough to do
any good?
--
David Dyer-Bennet, dd-***@dd-b.net; http://dd-b.net/
Snapshots: http://dd-b.net/dd-b/SnapshotAlbum/data/
Photos: http://dd-b.net/photography/gallery/
Dragaera: http://dragaera.info
Ross
2009-02-04 16:39:13 UTC
Permalink
Yeah, I knew that zpool creates a root filesystem (since it's listed in zfs list), but I also knew these properties had to be set on creation, not after, so I figured zpool -o was the way to do it.

Completely threw me when zpool -o said it wasn't a valid property, I'd never have thought to look for a different command to -o.
--
This message posted from opensolaris.org
Frank Cusack
2009-02-04 17:51:21 UTC
Permalink
Post by Ross
Yeah, I knew that zpool creates a root filesystem (since it's listed in
zfs list), but I also knew these properties had to be set on creation,
not after, so I figured zpool -o was the way to do it.
sorry, which properties have to be set on creation and not after?
Darren J Moffat
2009-02-04 17:54:12 UTC
Permalink
Post by Frank Cusack
Post by Ross
Yeah, I knew that zpool creates a root filesystem (since it's listed in
zfs list), but I also knew these properties had to be set on creation,
not after, so I figured zpool -o was the way to do it.
sorry, which properties have to be set on creation and not after?
Those in the out put of 'zfs get' that are marked as not editable but
are marked as inheritable are the "set once" property set.
--
Darren J Moffat
Brad
2009-02-04 16:49:14 UTC
Permalink
If you have an older Solaris release using ZFS and Samba, and you upgrade to a version with CIFS support, how do you ensure the file systems/pools have casesensitivity mixed?
--
This message posted from opensolaris.org
Ross
2009-02-04 17:05:01 UTC
Permalink
You can check whether it's set with:
$ zfs get casesensitivity pool/filesystem

If you're using CIFS, you need that to return "mixed" or "insensitive". If it returns "sensitive", it will cause you problems.

Unfortunately there's no way to change this setting on an existing filesystem, so if you do have the wrong setting you'll need to create a new filesystem and move your files over. If you have enough disk space it's relatively easy to do with CIFS:

- Create a new filesystem on the server using "zfs create -o casesensivity=mixed ...."
- Share it under a new name: "zfs set sharesmb=name=xxxx pool/filesystem"
- Move all the files (I did a cut/paste with windows explorer since this preserves permissions, robocopy would probably work too, mv in solaris might but I've not tried that)
- Delete the original filesystem and change the name the new one is shared under with "zfs set sharesmb=name=yyyy...."
- Rename the new filesystem if needed with "zfs rename"
--
This message posted from opensolaris.org
David Dyer-Bennet
2009-02-04 18:29:15 UTC
Permalink
Post by Ross
$ zfs get casesensitivity pool/filesystem
If you're using CIFS, you need that to return "mixed" or "insensitive".
If it returns "sensitive", it will cause you problems.
It will? What symptoms?
Post by Ross
Unfortunately there's no way to change this setting on an existing
filesystem, so if you do have the wrong setting you'll need to create a
new filesystem and move your files over. If you have enough disk space
- Create a new filesystem on the server using "zfs create -o
casesensivity=mixed ...."
- Share it under a new name: "zfs set sharesmb=name=xxxx pool/filesystem"
- Move all the files (I did a cut/paste with windows explorer since this
preserves permissions, robocopy would probably work too, mv in solaris
might but I've not tried that)
Doing it over the network is going to be disastrously slow.

I'd say "cp -a" is the way to go, but I'm guessing that's not supported
under Solaris (don't have my system handy right now).
--
David Dyer-Bennet, dd-***@dd-b.net; http://dd-b.net/
Snapshots: http://dd-b.net/dd-b/SnapshotAlbum/data/
Photos: http://dd-b.net/photography/gallery/
Dragaera: http://dragaera.info
Ross
2009-02-04 18:49:06 UTC
Permalink
Well for one, occasional 'file not found' errors when programs (or shortcuts) check whether a file exists if the case is wrong.

And you can expect more problems too. Windows systems are case insensitive, so there's nothing stopping a program referring to one of it's files as "file", "File" and "FILE". They'll all refer to the same thing. Under a case sensitive system however, those are three separate files, and there's no way to know what kinds of problems that could cause.

Suffice to say that while you might get away with running ZFS and CIFS in case sensitive mode for a bit, sooner or later it's going to go horribly wrong.
--
This message posted from opensolaris.org
Miles Nordin
2009-02-04 19:27:22 UTC
Permalink
r> Suffice to say that while you might get away with running ZFS
r> and CIFS in case sensitive mode for a bit, sooner or later
r> it's going to go horribly wrong.

It will work okay with Samba, though.

Loading...