Hi all, how does Lustre handle write() requests to files opened with O_DIRECT. Does the OSS enforce that the OST has physically written the data to the OST before the op is completed or does the write() call return on the client before this? I do not see the whole file content walking through the FC port of the RAID controller, but it can also be that my measurement is wrong ... Michael -- Michael Kluge, M.Sc. Technische Universit?t Dresden Center for Information Services and High Performance Computing (ZIH) D-01062 Dresden Germany Contact: Willersbau, Room WIL A 208 Phone: (+49) 351 463-34217 Fax: (+49) 351 463-37773 e-mail: michael.kluge at tu-dresden.de WWW: http://www.tu-dresden.de/zih
On 2010-08-14, at 1:32, Michael Kluge <Michael.Kluge at tu-dresden.de> wrote:> how does Lustre handle write() requests to files opened with O_DIRECT. > Does the OSS enforce that the OST has physically written the data to the > OST before the op is completed or does the write() call return on the > client before this?The write will be submitted directly from the client to the OST, and the OST always does synchronous writes, regardless of whether it is O_DIRECT or not. It cannot return from the syscall until the write is complete, because those pages are shared from userspace. Cheers, Andreas