I don't understand why Apple keeps pushing the capabilities of the system further and their hardware but haven't yet addressed the critical data storage issues that are eating away at the edges.
I don't understand why Apple keeps pushing the capabilities of the system further and their hardware but haven't yet addressed the critical data storage issues that are eating away at the edges.
Perhaps it's far better today, I'm not really sure but it completely turned me off to using it at all.
I was commenting on a comment which talked about Apple's file system in a critical manner discussing how it can become corrupted. I shared a story regarding how iPhoto had many issues like this years ago which makes me wary of using any Apple photo application. Seemed on topic with the thread to me.
> it's a new codebase rather than an update to iPhoto.
Source? I had not heard this. I heard multiple things mostly which pointed to basing the new application off of Aperture's code base.
> I heard multiple things mostly which pointed to basing the new application off of Aperture's code base.
I actually hadn't heard that, but I guess what I meant was Photos.app isn't based on the iPhoto codebase. Whether it's 100% fresh code, or whether it's based on the Aperture codebase, I don't know.
So you decided to completely ignore my explanation as to what I was commenting on and simply reiterated what you already said? Why troll HN? I don't get it.
Core Storage is already moving forward as an effort to dissociate the bytes in logical storage from the bits on physical media. In the short term, we might be able to sandbox the evils of HFS+ by having it just be a software abstraction on top of a much more modern file-system-like-thing. Yosemite already moves any machine it upgrades to Core Storage, even if you don't use FileVault.
I've had drives failed, where I lost a day's data (Was traveling and away from my time machine drive) and that sucked.
But near as I can tell, beyond losing short periods of work due to catastrophic failures of drives (early SSDs were problematic!) I haven't lost any data since Journalling was added (of course, Time Machine has saved my bacon from drive failures.)
I think Apple has done a really great job in this regard. Yes, HFS+ is based on filesystem work going back to the original Macintosh, but in use it's working fine.
HFS+ is still unreliable. The journalling is only for file system meta data. The data in the files is not journaled or checksumed, and can be corrupted without detection.
How are you verifying that you've never lost a byte of data? What makes you so sure?
The "cloud" option itself simplifies the backup process and could potentially reduce the window of a chance for corruption, but it does not eliminate the need for a reliable, local filesystem.
Granted, if your iPhone is offline for extended periods of time, you're also doing it wrong. But maybe you have an iPod Touch instead.
[0] For the last few years, the newest iPhone is the #1 most common camera model found in EXIF data on Flickr, http://petapixel.com/2015/01/09/popular-cameras-flickr-2014/. IIRC, Facebook saw similar results for photo uploads.
That is why a good, well-integrated offsite backup solution that "reduces the window of a chance for corruption" is a much more significant impact on data security than anything we could hope to incrementally improve in the filesystem software layer.
And Apple's solution is even better than you describe. Photos taken from Apple cameras (which are the vast bulk of photos for most customers) are automatically uploaded directly to the cloud as soon as the device joins wifi.
That is the core issue.
Yes, well-integrated offline backup solutions mitigate some aspects of the problem, but when your filesystem can't even guarantee that it did its job correctly, it doesn't matter how well-integrated your "backup" solutions are because the data may already be corrupt.
Nevermind that the "well-integrated" backup solution you are describing here, because of the unreliable filesystem, can't even guarantee that it read the data from disk correctly to a reasonable degree.
This is not some anecdotal "Mac OS X burned me" story -- this is a fundamental, architectural issue. Data loss is real -- and so are my concerns about HFS+.
At this point my guess is he's been running HFS+ without journaling turned on (you can format drives this way) and experienced data loss as a result because the filesystems ability to correct itself was disabled.
This would look like what he's describing.
See John Siracusa's article:
http://en.wikipedia.org/wiki/Data_corruption#SILENT
Same goes for when it reads back the data.
NTFS, ext4, and other consumer-targeted filesystems do not have this feature either, so it's unfair to imply this is somehow specific to HFS+ or Macs. You'd have the same issue on a Windows or Ubuntu install.
https://en.wikipedia.org/wiki/ReFS
So in the near future, Windows will have an answer for the general mainstream, while OS X will be left far behind.
Even ignoring the checksumming issue, HFS+ has known pathologies not only in reliability but in performance compared to NTFS or even ext4 on Linux.
HFS+ is long overdue for replacement.
For proper backups, backup to a local external disk (e.g. a time capsule or NAS) and an externally with incremental backups (e.g. Arq, Backblaze, tarsnap).
I use Arq, and the nice thing (in contrast to my Time Machine backups) data is also backed up on the go.
Is a backup really a backup if it's onsite? You don't want a fire to take out your PC and external disk located in the same house.
However if it's a choice between onsite and offsite backups, which practically speaking it is for most people, definitely offsite wins. The risk of fire, theft, etc. is vastly greater than the risk that Apple has a critical syncing bug and no ability to recover lost data. (Normally they keep deleted files around for 30 days.)
Yes, but it also happens that someone deletes a photo from a stream accidentally and does not realize within 30 days. For this reason, iCloud Photo Stream is not a backup - a backup keeps copies until the end of time.
I'm pretty sure somewhere in Cupertino a team is working on a new file-system, but I seriously hope they don't ship it before it's ready. I wouldn't mind playing with it in beta though...
Let's put it this way: OS X's filesystem is in no way "fundamentally unreliable".
From: http://en.wikipedia.org/wiki/Hierarchical_File_System "The Catalog File, which stores all the file and directory records in a single data structure, results in performance problems when the system allows multitasking, as only one program can write to this structure at a time, meaning that many programs may be waiting in queue due to one program "hogging" the system.[2] It is also a serious reliability concern, as damage to this file can destroy the entire file system."
I don't know if I buy that. But I do agree with you that Apple needs to improve its file system offerings.
Consider that in HFS (and early HFS+) had a fun limitation -- you could only ever create 65535 files. Didn't matter if you deleted; the Catalog (CNID) incremented with each new file created until it ran out.
Also HFS+ only has 1 second resolution for timestamps and can't do timestamps later than February 6, 2040.
Other dreadful details here: http://blog.barthe.ph/2014/06/10/hfs-plus-bit-rot/
Doing a Time Machine backup to NAS isn't fun, I can tell you. Particularly if you use VMs (which you can exclude, but why would you when it's an entire machine image eh?)
I've had the older N36L model, an AMD Athlon NEO II processor with 8GB ECC RAM running for years with ZFS handling a few big spinning drives for storage, it's been quite nice and trouble free.
Storing Aperture, iPhoto, or Lightroom databases on the network is not ideal. Wifi, even 802.11ac, is barely usable. Gigabit means you're wired and also has issues. Apple frequently has implementation bugs on both AFP and SMB which slow things down way below gigabit speeds, and your NAS's processor also becomes a factor. Forget about using this setup if you're not actually on the local network (i.e. VPN).
The result is having to manually manage your photo databases (which one's are on my laptop? which ones are on my NAS?) which works ok in Lightroom but Aperture and iPhoto are not very good at. This also creates backup stress (um, can I delete this?) and means I have to decide in advance if I want to look at those photos from two weeks ago before I leave the house. If so, grab a cup of coffee while they copy.
Ideally you would have a system where a) your photos are automatically stored in the cloud b) you can select which albums are stored locally and c) there is some sort of cloud backup option that you control (computer with more storage, NAS, or other cloud provider that archives your cloud data).
Unfortunately so is every other filesystem. Which is also why Apple heavily emphasizes making backups.
You only have to glance through this thread to see that there are people (myself included) who run ZFS on their desktop machine (laptop in my case).
People love to over exaggerate the RAM requirements for ZFS because they see build logs of enterprise-grade storage servers. But you wouldn't expect that kind of throughput on your desktop systems even with lighter file systems. And most desktops have their 64bit CPU sat idle for most of the time, so there's not even an argument for the additional instruction overhead.
Obviously the real crux of argument is "what do you primarily use your desktop for"? If it's gaming, then there's little point running ZFS since you're going to be disinterested in the benefits of ZFS anyway, so it's not worth the marginal overhead. However if your desktop is a development machine, used for multimedia authoring or even just an internet terminal (like most PCs are these days), then ZFS is a viable option.
Most "desktops" today are in fact laptops, and the reason you want to have the CPU sit idle is battery time.
>However if your desktop is a development machine, used for multimedia authoring or even just an internet terminal (like most PCs are these days), then ZFS is a viable option.
If you're not pooling disks together but just have the built in disk, and usb hard disks that you conenct occasionally you don't get much if anything from ZFS, but you get the penalties it incurs...
And it's not a substitute for backing up your disks either...
That's a fair point. I'd argue that ZFS doesn't chuck that much extra CPU time that most people would notice. However if you're one of those guys that likes to tweak your power settings to the nth degree, then ZFS probably isn't best. But those kinds of people are more likely to run a tiling WM instead of a full fat compositing desktop environment; and such like. So they're definitely not your regular desktop users
> If you're not pooling disks together but just have the built in disk, and usb hard disks that you conenct occasionally you don't get much if anything from ZFS, but you get the penalties it incurs...
You seem to have missed quite a number of useful ZFS features off your list. Ignoring deduplication (as that is extremely memory and CPU hungry), ZFS has snapshotting, checksumming, superblock recovery (even if your journal gets trashed, you can recover it), online data integrity checks (no annoying wait screens for fsck to run through), better compression algorithms than is supported in most other file systems...
I could go on, but suffice to say that ZFS is an improvement over many other file systems in other areas than just software RAIDing.
That all said, in an ideal world desktops would be running HAMMER (DragonflyBSD's file system) over ZFS. I do love ZFS, but HAMMER seems a slightly better fit for desktops / laptops as it has the aforementioned features but without many of the data centre stuff that home users wouldn't need. A better compromise. However I don't see much interest for HAMMER outside of Dragonfly.
> And it's not a substitute for backing up your disks either...
Nobody suggested it was. However ZFS does also have backup features built into it too.
Use ZFS if you like, or XFS, or even ext4 instead.
Second frequent problem: Hitting 90% capacity in a filesystem has a non-trivial chance to ruin it forever. Hit the wrong code path, and, even if you immediately delete a bunch of things, I/O to that filesystem would be forever 3000% slower.
HFS+ is creaky, ancient, but battle-hardened.
ZFS is solid and battle-hardened, but not that suitable for many of Apple's customers, who want the ability to unmount disks they added, and who will not understand that they need huge amounts of RAM (they their Macoboks don't have) to keep their disks speedy,
btrfs is promising but not battle-hardened yet, and it is very unlikely Apple will use it as long as it has a GPL license (I think it is more likely that Apple will add checksums to HFS+ in some somewhat clumsy, but working, way than that it starts supporting btrfs)
If you think HFS and HFS+ are battle-hardened I don't know what to say to you. "Shell-shocked" would be a better description.
You're a very lucky man, then. A large part of my time, at one point in my life, was spent fixing up corrupted HFS filesystems.
I would generally agree that it's rare for e.g. HFS to corrupt its own metadata due to bugs but bit-rot happens. If you think you haven't encountered it, you probably haven't actually checked your files closely enough – this is particularly easy to miss with things like video or image formats which were designed to tolerate a few bit-flips.
The reason why so many Mac users were interested in ZFS was that a modern filesystem incorporates strong integrity checks so you are guaranteed to either read back the bytes you originally wrote or get an error. That's a much better way to work than requiring you to use a tool which does strong hashes periodically to see if anything has broken.
A lot of consumers are quite obvlious to bit rot. As you point out - most of this occurs in large media files which they are unlikely to notice. Even with things like corrupted documents they will likely blame it on an application glitch.
With ZFS they will see scary diagnostic messages. Consumers will want their SSD or RAM replaced. (ZFS does a great job of catching RAM errors on systems without ECC)
This would no doubt drive higher warranty costs for Apple and cause consumer dissatisfaction.
Ignore is bliss...
I'm skeptical that a proactive warning would be more dissatisfying than just finding it out years later, when other copies are harder to locate. In particular, I'd be surprised if a hypothetical feature like this wouldn't be integrated with their other services: “A local failure was detected and replaced with a pristine copy from iCloud”
The other really interesting question would be whether they'd ever consider something like the ZFS copies feature to directly trade maximum disk capacity for redundancy. That'd be much easier to implement for Apple since they control so much of the platform and the largest files which most people have tend to be things which are provably known to be local copies of something which can be re-downloaded, so the total cost of doubling storage for unique local files might be worth the peace of mind for many users.
I suspect the decision not to use ZFS was (assuming it wasn't simply spite at Sun pre-empting Jobs' announcement) that it would cause dissatisfaction, but from a different direction: ZFS was designed for Sun's customers: companies employing dedicated sysadmins. ZFS was incredibly unfriendly back when Apple would have been evaluating it. User experiences like "you filled up your filesystem? Oh well, you'll have to reformat and restore from backup." may be acceptable in an enterprisey setting, but aren't going to cut it with the iMac crowd.
In the same logic people had issues with ZFS too.
"With issues" means nothing. The number and severity of them only has meaning, and even that only comparatevely.
There are multiple businesses which sell software which exhaustively attempts to recover data from corrupt drives & cards.
It's a standard service listed on the local phone / computer shops.
I see messages on my neighborhood's mailing list every so often from someone looking for help recovering as much as possible from a flash card.
It's simply absurd to claim that the status quo works for the general public. It's not terrible, probably not that different from various mishaps which befell printed photo albums, etc. but there's still plenty of room for the industry to give people safer tools.
Also, why wouldn't you be able to unmount a ZFS disk?
zfs unmount ...
Or using umount like you would with any other file system.Generally though, you wouldn't want to manually unmount file systems unless you're planning to migrate them to a new host. In which case you would export them instead:
zpool export ...Do people just read the "pros" and not the "cons"?
You've also failed to quantify why ZFS is "totally broken for regular desktop use" (likely because you've never actually used ZFS so can only blow smoke about it's issues).
People love to over exaggerate the RAM requirements for ZFS because they see build logs of enterprise-grade storage servers. But you wouldn't expect that kind of throughput on your desktop systems even with lighter file systems. And most desktops have their 64bit CPU sat idle for most of the time, so there's not even an argument for the additional instruction overhead.
Obviously the real crux of argument is "what do you primarily use your desktop for"? If it's gaming, then there's little point running ZFS since you're going to be disinterested in the benefits of ZFS (plus likely running Windows anyway). However if your desktop is a development machine, used for multimedia authoring or even just an internet terminal (like most PCs are these days), then ZFS is a viable option.