posix_fallocate on ZFS

Alan Somers asomers at freebsd.org
Sat Feb 10 19:21:54 UTC 2018


On Sat, Feb 10, 2018 at 11:50 AM, Willem Jan Withagen <wjw at digiware.nl>
wrote:

> On 10/02/2018 19:24, Alan Somers wrote:
>
>> On Sat, Feb 10, 2018 at 10:28 AM, Willem Jan Withagen <wjw at digiware.nl
>> <mailto:wjw at digiware.nl>> wrote:
>>
>>     Hi,
>>
>>     This has been disabled on ZFS since last November.
>>     And I do understand the rationale on this.
>>
>>     BUT
>>
>>     I've now upgraded some of my HEAD Ceph test systems and they now
>>     fail, since Ceph uses posix_fallocate() to allocate space for the
>>     FileStore-journal.
>>
>>     Is there any expectation that this is going to fixed in any near
>> future?
>>
>>     --WjW
>>
>>
>> No.  It's fundamentally impossible to support posix_fallocate on a COW
>> filesystem like ZFS.  Ceph should be taught to ignore an EINVAL result,
>> since the system call is merely advisory.
>>
>
> Yup, that was what I'm going to do.
> But then I would like to know how to annotate it.
>
> And I guess that I'd get reactions submitting code to fix this, since the
> journal could run out of space.
> So I'd beter know what is going on.
>
> I seem to remember that on a pool level is is possible to reserve space
> whilest creating a filesystem? And then it could/should be fixed when
> building the disk-infra for an OSD.
>

Yes, you can easily reserve space for an entire filesystem.  Just do for
example "zfs create -o reservation=64GB mypool/myfs" .


More information about the freebsd-current mailing list