Page 1 of 4

Software that doesn't support ZFS

PostPosted: Sat May 24, 2014 8:29 am
by thePoet
I recently upgraded from Zevo to OpenZFS. I thought that everything was working until I noticed that my backup software no longer recognizes the drive. The software doesn't support ZFS, but I had run it for a long time with Zevo and had no issues (including validating that the files that were backed up were good). Any ideas how that might have worked before and if there can be something done with OpenZFS to make it work again? I don't think that I'll be able to convince the developer of this backup software to add suppert any time soon.

Re: Software that doesn't support ZFS

PostPosted: Sat May 24, 2014 11:55 am
by haer22
What kind of backup software are you using?

TimeMachine?

Re: Software that doesn't support ZFS

PostPosted: Sun May 25, 2014 1:33 am
by haer22
I just checked and TimeMachine do not want to backup a zfs-volume.

I removed one of my zfs-volumes from the exclusion list of TimeMachine but it was always there again when I checked the list.

Re: Software that doesn't support ZFS

PostPosted: Sun May 25, 2014 9:47 am
by thePoet
Retrospect

Re: Software that doesn't support ZFS

PostPosted: Sun May 25, 2014 3:39 pm
by thePoet
The interesting thing about Retrospect is that, while Retrospect doesn't support ZFS, it worked with Zevo. Now with OpenZFS, it sees the mount point as being a disconnected SMBFS. I was curious if anyone might know what the difference was in how OpenZFS and Zevo might present the file system information that might cause this difference and if there might be a way to make a modification to make it run again.

Re: Software that doesn't support ZFS

PostPosted: Sun May 25, 2014 5:23 pm
by lundman
Could be many things which makes us different to ZEVO, but it should be possible to fix. We will have to allocate some time into it and look deeper.

Re: Software that doesn't support ZFS

PostPosted: Tue May 27, 2014 3:51 pm
by lundman
Agent Response:

Retrospect use Apple file system api’s (FSGetVolumeInfo, PBGetVolumeInfo, FSGetVolumeParms) to gather the volume information we need and we support all volumes from a list of known signatures (HFS+, UFS, UDF, etc). We will also back up SMB and AFP mounted volumes locally but not through the client. If a ZFS implementation uses one of these known signatures we should work. If not, we will exclude that volume from out list of known volumes.

Re: Software that doesn't support ZFS

PostPosted: Tue May 27, 2014 8:15 pm
by thePoet
Let me know if you need me to do anything when you are looking into the issue. I can test various code branches, etc as needed and provide feedback.

Re: Software that doesn't support ZFS

PostPosted: Tue May 27, 2014 11:53 pm
by lundman
There is some difference between / (HFS+) and /BOOM (zfs)

Code: Select all
    volumeName     = 'Mavericks ESXi HD'
    filesystemID   = 0x0000 ('??')
    signature      = 0x482b ('H+')

    volumeName     = 'BOOM'
    filesystemID   = 0x6375 ('cu')
    signature      = 0x4244 ('BD')


Code: Select all
bash-3.2# ~/FSMegaInfo FSGetVolumeParms /
vMVersion            = 5
vMAttrib             = 0x000004c8
vMLocalHand          = 0x0
vMServerAdr          = 0x00000000
vMVolumeGrade        = 0
vMForeignPrivID      = 0 (HFS)
vMExtendedAttributes = 0x10ac243e
vMDeviceID           = 0x1000b3085 ('disk0s2')
vMMaxNameLength      = 85



Even though we return "H+" for vfs_getattr (so it works with AFP), clearly it can find signature that disagrees about the somewhere, but shown correctly in VolumeInfo. We also appear not to return something fully in VolumeInfo causing FSMegaInfo to crash.


Code: Select all
bash-3.2# ~/FSMegaInfo FSGetVolumeParms /BOOM
vMVersion            = 5
vMAttrib             = 0x28080408
vMLocalHand          = 0x0
vMServerAdr          = 0x00000000
vMVolumeGrade        = 0
vMForeignPrivID      = 0 (HFS)
vMExtendedAttributes = 0x10c42432
Assertion failed: (strPtr != NULL), function FPCStringPtr, file /Users/lundman/s

Re: Software that doesn't support ZFS

PostPosted: Thu May 29, 2014 12:05 am
by thePoet
The crash is caused because when FSGetVolumeParms is called, the resulting GetVolParmsInfoBuffer has a NULL ptr for vMDeviceID.