[lustre-discuss] Delaying Lustre striping until first extent

Dilger, Andreas andreas.dilger at intel.com
Wed May 4 12:49:44 PDT 2016


If you want to reduce the syscall count, then calling statfs() for each file is not strictly necessary.  If you are calling the ioctl(LL_IOC_LOV_SETSTRIPE) then this is virtually guaranteed to fail on anything but Lustre (both because the ioctl number isn't assigned to anything else in the kernel, and because the data passed should be validated by anything else using the ioctl).

Cheers, Andreas
--
Andreas Dilger
Lustre Principal Architect
Intel High Performance Data Division

On 2016/05/04, 13:09, "John Bauer" <bauerj at iodoctors.com<mailto:bauerj at iodoctors.com>> wrote:


Andreas,

Thanks again for the reply.  I will have a look at this and see if I can fit it into my library.  Having a look at the code for llapi_file_open at review.whamcloud.com it seems the most important error to check is that the file is on a Lustre file system.  I will make the check by calling statfs ( after the file is opened/created ) and checking fsinfo.f_type==LUSTRE_SUPER_MAGIC.

John

On 5/3/2016 2:43 PM, Dilger, Andreas wrote:

You can open files with O_LOV_DELAY_CREATE to delay layout assignment, and then use ioctl(fd, LL_IOC_LOV_SETSTRIPE, lum) to specify the striping afterward, but this misses a lot of the error checking and other layout handling in llapi_file_open() and friends.

We haven't had a request for llapi_fd_set_stripe() and/or llapi_layout_fd_set() or similar, but I can see that this would be useful.  Could you please file an improvement request for this in Jira.

Cheers, Andreas
--
Andreas Dilger
Lustre Principal Architect
Intel High Performance Data Division

On 2016/05/03, 06:23, "John Bauer" <bauerj at iodoctors.com<mailto:bauerj at iodoctors.com><mailto:bauerj at iodoctors.com><mailto:bauerj at iodoctors.com>> wrote:


Has any there been any discussion as to allowing a user to modify the striping of a file until the first extent is made?  There are a lot of opens that can not be easily replaced with llapi_file_open(), such as openat() family, mkstemp() family, and fopen() family.

It seems that it should be feasible to change the file's striping even after the file is created but not written to.

It would be really handy to have a function llapi_fd_set_stripe( int fd, ... ) to set the striping for a file that has been opened but not written to.  I have gotten past my immediate need for setting the striping of a file opened with fopen64() by doing the llapi_file_open() and then using the resulting fd in fdopen().  But this approach is not applicable to all listed above.


Thanks, John

--
I/O Doctors, LLC
507-766-0378
bauerj at iodoctors.com<mailto:bauerj at iodoctors.com><mailto:bauerj at iodoctors.com><mailto:bauerj at iodoctors.com>


--
I/O Doctors, LLC
507-766-0378
bauerj at iodoctors.com<mailto:bauerj at iodoctors.com>


More information about the lustre-discuss mailing list