Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Even though OSX has case-sensitive HFS support in place, it doesn't actually work if you try to use it. OSX bombs horribly on case-sensitive HFS boot partitions, and case-sensitive HFS partitions from DMGs also have weird failure modes. For example, if you try to use case-sensitive HFS+ with FileVault you can't log in (password works fine, but hilarity ensues).

Can you elaborate? I have HFSX (i.e., case-sensitive) boot partitions on two machines (no FileVault), and haven't seen any problems with the OS or included apps. The only issue I've seen is that FileMaker's network component fails, so I can't use remote databases.

Also, the iPhone uses HFSX partitions.
 
Does any of you guys have a good idea on how ZFS compares to ntfs or linux's ext3? Is it that much of a quality leap we are talking about?

Are you kidding? It leapfrogs either of those two crufty old filesystems entirely! Leapfrogs them by 2 generations even! ZFS is competition for ext4 (still in beta) and WinFS (supposed to be included with Vista but wasn't - currently not yet released), but contains WAY more features than ext4 or WinFS ever will.

NTFS is garbage and always has been. ext3 is basically journaling capability tacked onto the ancient ext2 filesystem.

The last time I was this excited over a filesystem was a few years ago, when SGI released their very very excellent XFS filesystem as open source - been using that on my Linux machine for a while now and I love it.

Basically ZFS is better than any existing UNIX filesystem in every possible metric *PLUS* it adds full LVM capability into the filesystem layer *PLUS* it adds software RAID into the filesystem layer *PLUS* it adds features only found in high-end enterprise SAN storage arrays such as copy-on-write clones, snapshots, etc. *PLUS* traditional FS maintenance like integrity checking and filesystem repair become non-disruptive online functions! ZFS is also the only 128 bit filesystem - it is impossible to ever fill a ZFS filesystem (all the storage ever created in the whole world couldn't fill a ZFS filesystem). No one else has anything even close to it. ZFS is the One Filesystem to Rule them All.

Apple would be very foolish to omit full ZFS support from 10.6, particularly since HFS+ sucks so so badly. HFS+ is just about one of the worst filesystems out there and should have been replaced years ago. I wish Apple had replaced HFS+ with SGI's XFS a few years ago. would have been a nice improvement for OSX, plus would have made the transition now to ZFS even easier...

Read here for more info: http://en.wikipedia.org/wiki/ZFS
 
Why, because people are too dense to understand case sensitivity?
I know some people don't like it, but I don't agree with their reasons, which to me revolve around laziness. The real problem are apps like Adobe's, which don't work on case-sensitive filesystems. I don't know the exact reasons for why Adobe's apps break, but in general this takes real work to accomplish. Things like internally changing the case of the user's input before looking to the filesystem, assuming two files of the same name in the same directory but different cases are duplicates (which is absurd, if that assumption were true it would indicate the filesystem is trashed and needs reformatting) and ignoring one of them, using inconsistent-case filenames throughout the app to refer to the same file, and so on. Rather than keep it simple and rely on the filesystem's logic and rules, add rules in your app that attempt (poorly) to duplicate the underlying filesystem's rules. In other words, making an app that breaks on case-sensitive filesystems took actual engineering hours to accomplish in order to add extra code that causes failure, when having no code at all would have been less work and more reliable.
 
a zfs gui wouldn't be more difficult than raid

Currently, you can't remove a drive from a ZFS pool, at least not in Solaris 10U5 (don't know about OpenSolaris).
So, such a feature would be a sure road to disaster.
While ZFS is relatively easy, it also offers a lot of ways to shoot yourself in your feet (and head). NOT giving endusers a GUI for it is a good thing.
If you think you really desperately need it, there's always the man-pages ;-)

Wait ... you can't remove a drive from a ZFS pool? Wouldn't that kind of make ZFS ... garbage?

I played with ZFS for a couple hours on my leopard machine, creating a pool, growing it, shrinking it ... I'm pretty certain I both added and removed drives from the pool. In fact, in "man zpool", it says "zpool remove pool vdev".

Unless you mean you can't remove the drive with the data still intact, which I guess is a consideration. But Disk Utility handles some pretty complicated stuff with RAID, I'm sure ZFS isn't much more of a leap.

disk-utility-raid-search.png
 
Wait ... you can't remove a drive from a ZFS pool? Wouldn't that kind of make ZFS ... garbage?

I played with ZFS for a couple hours on my leopard machine, creating a pool, growing it, shrinking it ... I'm pretty certain I both added and removed drives from the pool. In fact, in "man zpool", it says "zpool remove pool vdev"

You should read further on that man page

OS X 10.5.4 Man Page said:
zpool remove pool vdev

Removes the given vdev from the pool. This command currently only
supports removing hot spares. Devices which are part of a mirror
can be removed using the "zpool detach" command. Raidz and top-
level vdevs cannot be removed from a pool.

You can't remove a vdev entirely from a pool. Also if you have a RAIDZ vdev you can't remove devices from it (you can replace them with equivalent devices but not remove them entirely).

ZFS is not as flexible with disk management as people imagine but it is improving.
 
Why, because people are too dense to understand case sensitivity?

I think "dense" is not understanding the implications for the user interface. There are many reasons why more people use MacOS X than Linux, a case-insensitive file system is one of them.

Not wanting to put up with some **** doesn't make people "dense". Do you think everyone driving an automatic car is "dense" and too stupid to shift gears?

I know some people don't like it, but I don't agree with their reasons, which to me revolve around laziness.

Face it, people use Macs out of laziness. Because they are too lazy to defragment their hard drives, because they are too lazy to install and maintain virus checkers, because they are too lazy to learn the intricacies of a system when they can instead buy a computer (Macintosh) that lets them do everything with much less effort. They are also too lazy to figure out whether they called a file "MyFile" or "Myfile" or "myfile". Instead of "lazy" I call it "valuing their time".

PS. Your opinion that it takes actual effort to break an application under a case sensitive file system is nonsense. Take an application that creates a file "Preferences" for its preferences and then tries to open a file "preferences" to read them. How many of these do you think are out there?

PS. WWW.MacRumors.COM works absolutely fine for me. Do you think it shouldn't?
 
Of course, the ZFS command line tools are pretty easy to use, but it would be awesome to plug in a firewire drive and be asked "Do you want to add the unformatted drive XYZ to 'MacBook HD'? "

It would be awful if that happened and "MacBook HD" would stop functioning properly if that drive is not plugged in while I'm on the road. Normally, if I use an external drive I know exactly what is in my internal drive and what is on the external, so I know what I lose if I don't take it with me. With ZFS, any file can be anywhere on the two disks. That is fine (actually brilliant) on a Mac Pro if you are editing videos and every time you run out of space you just plug in another drive and it just works, but it would be disaster on a portable computer.
 
I know it would hurt speed but wouldn't you want fragmentation so you could spread out the writes over all the memory space so you wouldn't wear out the SSD as fast?

You wouldn't do that in the operating system, but in the SSD drive itself. The SSD drive pretends it has say 15 million blocks of 4 KB each. When it notices that the OS has written to block number 1,234,567 an awful lot of times, then it just moves that block to a different location on its own. The OS never knows that when it reads or writes block number 1,234,567, the SSD drive actually uses a different bit of physical memory for it.
 
They are also too lazy to figure out whether they called a file "MyFile" or "Myfile" or "myfile". Instead of "lazy" I call it "valuing their time".
Which only matters on a command line. If you're using a GUI, if you called it MyFile it will display MyFile, as will file selection popups. No memory or extra time is required. Note that while HFS is not case sensitive, it is case preserving, so the distinction between MyFile and myfile still matters.
PS. Your opinion that it takes actual effort to break an application under a case sensitive file system is nonsense. Take an application that creates a file "Preferences" for its preferences and then tries to open a file "preferences" to read them. How many of these do you think are out there?
More than zero is too many. Any app that does that is a broken POS for using a hardcoded filename defined in more than one place, which is more work than defining it once. The same goes for an app that tries to "massage" filenames. It's broken behavior: when I type "MyFile" the app darn well ought to do something to "MyFile". Now if I type "MyFile" and that fails, I have no problem with the app saying "did you really mean 'myfile'?" should "myfile" exist. It had better not try to use "myfile" silently, I despise software that tries to be smarter than me. The point here is that the behavior I espouse is agnostic as to the case-sensitivity of the underlying filesystem. "Dumb" works everywhere. It's when apps try to be "smart" that they stop working when the underlying filesystem changes how it treats case.
 
Where did this case sensitivity conversation start? I've only been skimming but I keep seeing people bring it up. What does this have to do with anything? Did anyone notice that ZFS has a casesensitivity dataset property?

turtle@phoenix ~ $ zfs get casesensitivity phoenix
NAME PROPERTY VALUE SOURCE
phoenix casesensitivity sensitive -

Wow, look at that. I can make my entire zpool or any fs inside my zpool case insensitive. This feature isn't yet in the mac osx zfs implementation but I'm sure it will be updated soon. They're only at zpool v8, this is v10.

Anyway, ZFS is too complicated for home users in my opinion. Supporting it on osx server and having it available in command line only form on the client version is exactly what they should be doing. Maybe it would be an okay idea to eventually allow single disk zpools or two disk mirror zpools only on client (through the ui, and still allow every other fancy configuration via cli) The last thing Apple wants to support is stupid home users creating stupid zpool configurations with their usb disks that they can't undo without destroying the pool.

The kind of people that should be using ZFS in 10.6 are the kind of people who already are using ZFS in 10.5 and are just waiting for nicer integration with Finder & boot support.
 
ZFS is competition for ext4 (still in beta)
ext4 unfortunately doesn't even come close. As you've said ZFS is generations ahead.

Basically ZFS is better than any existing UNIX filesystem in every possible metric *PLUS* it adds full LVM capability into the filesystem layer *PLUS* it adds software RAID into the filesystem layer *PLUS* it adds features only found in high-end enterprise SAN storage arrays such as copy-on-write clones, snapshots, etc. *PLUS* traditional FS maintenance like integrity checking and filesystem repair become non-disruptive online functions!
It also provides end-to-end checksumming which IMHO is really important.
 
I think "dense" is not understanding the implications for the user interface. There are many reasons why more people use MacOS X than Linux, a case-insensitive file system is one of them.

Not wanting to put up with some **** doesn't make people "dense". Do you think everyone driving an automatic car is "dense" and too stupid to shift gears?

Face it, people use Macs out of laziness. Because they are too lazy to defragment their hard drives, because they are too lazy to install and maintain virus checkers, because they are too lazy to learn the intricacies of a system when they can instead buy a computer (Macintosh) that lets them do everything with much less effort. They are also too lazy to figure out whether they called a file "MyFile" or "Myfile" or "myfile". Instead of "lazy" I call it "valuing their time".

PS. Your opinion that it takes actual effort to break an application under a case sensitive file system is nonsense. Take an application that creates a file "Preferences" for its preferences and then tries to open a file "preferences" to read them. How many of these do you think are out there?

PS. WWW.MacRumors.COM works absolutely fine for me. Do you think it shouldn't?

You are mixing user interaction with file system implementation, though. The file system can be case-sensitive and the features you describe implemented in the OS in a layer above the file system. There are many good reasons for case-sensitivity at the file system layer:

http://drewthaler.blogspot.com/2007/12/case-against-insensitivity.html

And, BTW, I have encountered many web sites that were case sensitive.
 
...
And, BTW, I have encountered many web sites that were case sensitive.

You may have encountered many case sensitive web pages, but the actual web site or hostname is a function of the DNS and is never case sensitive.
 
You are mixing user interaction with file system implementation, though. The file system can be case-sensitive and the features you describe implemented in the OS in a layer above the file system. There are many good reasons for case-sensitivity at the file system layer:

http://drewthaler.blogspot.com/2007/12/case-against-insensitivity.html

And, BTW, I have encountered many web sites that were case sensitive.

I looked at the guys blog up to his first claim where he makes claims about the complexity of case sensitivity. The claim he makes there is nonsense. First, HFS+ stores filenames in canonical decomposed Unicode (you'd want one of the two canonical representation anyway, otherwise your file system will be in deep **** if you want to support Unicode, and you _do_ want to support Unicode), and that makes case insensitivity quite trivial. It _is_ trivial compared to creating a canonical representation.

He suggests that case insensitivity should be handled at the UI level instead of the file system. Good luck doing that if you can have 2048 files called "MYLETTER.TXT" in all possible variations of uppercase and lowercase on a folder.

He suggests problems with standards (like Unicode) changing. Guess what: It is part of the Unicode standard that canonical representations will _never_ change. And it is part of the definition of HFS+ that its algorithm for case insensitive comparison will _never_ change.
 
You may have encountered many case sensitive web pages, but the actual web site or hostname is a function of the DNS and is never case sensitive.

I am not sure I understand what you are saying...shouldn't no webpage at all be case sensitive since they all translate via dns to an ip adress and the ip adress corresponds to a case insensitive name? I don't understand the distinction you are making between page and site.
 
I am not sure I understand what you are saying...shouldn't no webpage at all be case sensitive since they all translate via dns to an ip adress and the ip adress corresponds to a case insensitive name? I don't understand the distinction you are making between page and site.

He is saying that the host name will always be converted to lowercase, but that the path to the page may be case-sensitive. In other words, if you type
https://www.macrumors.com/iPhone/, the www.macrumors.com will be normalized to lowercase by the DNS server, so case won't matter, but the /iPhone part of the path is dependent on the configuration of server software (Apache, IIS, etc.). But, you illustrate the point I'm about to make, which is the distinction doesn't really matter for the point I was trying to make, which is that sometimes a URL *is* case sensitive (even if the hostname is not).
 
He is saying that the host name will always be converted to lowercase, but that the path to the page may be case-sensitive. In other words, if you type
https://www.macrumors.com/iPhone/, the www.macrumors.com will be normalized to lowercase by the DNS server, so case won't matter, but the /iPhone part of the path is dependent on the configuration of server software (Apache, IIS, etc.). But, you illustrate the point I'm about to make, which is the distinction doesn't really matter for the point I was trying to make, which is that sometimes a URL *is* case sensitive (even if the hostname is not).

Ah, ok, very clear explanation, much appreciated.
 
I looked at the guys blog up to his first claim where he makes claims about the complexity of case sensitivity. The claim he makes there is nonsense. First, HFS+ stores filenames in canonical decomposed Unicode (you'd want one of the two canonical representation anyway, otherwise your file system will be in deep **** if you want to support Unicode, and you _do_ want to support Unicode), and that makes case insensitivity quite trivial. It _is_ trivial compared to creating a canonical representation.

But you are focused on the wrong use case--it's not about optimizing performance when the user is typing a name in a save or open panel, it's about the *millions* of times the file system perform filename comparisons in the process of regular activity, such as launching apps, copying files, Time Machine backups, etc. Did you read his post? Did you try his fs_usage example to see just how often the file system is accessed? Off the top of my head, this would happen for each open() and lstat() call you see, and probably others.

Take a simple example: TextEdit wants to save your preferences, which it will do periodically, so it opens /User/you/Library/Preferences/com.apple.TextEdit. To find the file, start with "User" compare it with each file in the root directory until you find a match. Then, compare "you" to each file in the /User folder, and so on. Each path component could result in dozens of (or more) filename comparisons (and I'm simplifying it). If the file system is HFSX case-sensitive (technically, HFS+ is always case-insensitive. HFSX is HFS+ with the option for either), then the comparison is simply a byte comparison, as noted here:

http://developer.apple.com/technotes/tn/tn1150.html#HFSX

If it's case-sensitive, then every comparison is a call to the FastUnicodeCompare() function:

http://developer.apple.com/technotes/tn/tn1150.html#UnicodeSubtleties

Also, CFString/NSString have multiple internal representations, including canonical, path-optimized versions. I haven't actually profiled the OS, but I suspect there is some (a lot?) of caching of these decomposed, canonical names within these objects and in other parts of the APIs.

Again, this isn't about the case when the user types a name--in that case the performance differences are completely inconsequential.

But, this is all speculation from both of us. What would be interesting is some actual benchmarks.

He suggests that case insensitivity should be handled at the UI level instead of the file system. Good luck doing that if you can have 2048 files called "MYLETTER.TXT" in all possible variations of uppercase and lowercase on a folder.

Umm, if the UI level is treating them all as the same file name, how did they get created in the first place? Certainly, a user could presumably do so on the command line, but let's keep this realistic--you are unlikely to have more than one or two conflicts in the unusual case of there actually being a conflict at all.

He suggests problems with standards (like Unicode) changing. Guess what: It is part of the Unicode standard that canonical representations will _never_ change. And it is part of the definition of HFS+ that its algorithm for case insensitive comparison will _never_ change.

I thought this discussion was about ZFS, too? So, if ZFS handles converting case for a case-insensitivity comparison slightly different than HFS+, then the user will have different experiences based on which type of file system they use. On the other hand, if both file systems are case-insensitive, then the Open Panel or Save Panel or Finder can ensure the experience is consistent regardless of the file system.
 
Anyway, ZFS is too complicated for home users in my opinion. Supporting it on osx server and having it available in command line only form on the client version is exactly what they should be doing. Maybe it would be an okay idea to eventually allow single disk zpools or two disk mirror zpools only on client (through the ui, and still allow every other fancy configuration via cli) The last thing Apple wants to support is stupid home users creating stupid zpool configurations with their usb disks that they can't undo without destroying the pool.

The kind of people that should be using ZFS in 10.6 are the kind of people who already are using ZFS in 10.5 and are just waiting for nicer integration with Finder & boot support.

RAID is too complicated for the home users too, as are all the Unix command line tools, XCode, Applescript ... but these are all still provided in the client version.

However, if they get ZFS bootable, then it would be awesome to have it as the default file system. ZFS has many advantages besides zpools, especially snapshots - single-disk Time Machine would be awesome. Oh, and stability, dependability, and speed (the Snow Leopard promise).
 
Agreed SSDs are the future but I for one, believe that in the near future...... SSDs cant match the capacities offered by HDDs!
 
RAID is too complicated for the home users too, as are all the Unix command line tools, XCode, Applescript ... but these are all still provided in the client version.

However, if they get ZFS bootable, then it would be awesome to have it as the default file system. ZFS has many advantages besides zpools, especially snapshots - single-disk Time Machine would be awesome. Oh, and stability, dependability, and speed (the Snow Leopard promise).

I definitely concur. Clearing up the I/O performance and increasing data integrity will massively benefit the general end user. They may not be aware of it, but it will be cool. After reading this forum, I think that Apple may be dividing up developer tools a bit more. They may leave the GUI to a seperate disk like the developer tools. Perhaps release a developer pack with the tools later instead of what they did with 10.2 and HFS+ Journal. This would make sense.

And it seems as though ZFS is already implemented by Apple. MobileMe and the "hickup" screams ZFS due to the pNFS capabilities. "In the cloud push" I believe was Schiller rhetoric. That makes it seem much more likely ZFS will be the filesystem of the future, and the default file system non the less.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.