Hi Oleg,
Thanks for the response.
From your response, I understand that neither the client nor the OST informs the MDS/MST about the write completion. Also, you mentioned that there is no meta data locking while writing.
I seem to get a bit confused here. Sorry for that. :(
Say, there is a file already striped across multiple OSTs and now some client wants to write to that file. Now it sends a request to the MDS to get the EA attributes for that file and based on that,the client would directly write to the corresponding OSTs. So once the client has completed writing to the file, how does the MDS/MST know that it has to release the lock it has created on the metadata of that file.
The manual states that:
"→ In Lustre, creating a new file causes the client to contact a metadata server, which creates an inode for the file and then contacts the OSTs to create objects that will actually hold file data. Metadata for the objects is held in the inode as extended attributes for the file.
→ Within the OST, data is actually read and written to underlying storage known as Object-Based Disks (OBDs). Subsequent I/O to the newly created file is done directly between the client and the OST, which interacts with the underlying OBDs to read and write data. The metadata server is only updated when additional namespace changes associated with the new file are required."
I am trying to understand how does the MDS know about the completion of clients read/write operations on a new/exiting file. Also, the write cache you mentioned is part of the client or OSS node??\
Can you please help me in understanding these questions. I am trying to understand the Lustre File system replication design document that is being implemented by Intel. Some confusion in the basic concepts is making it difficult for me to understand that document.
Thanks,
Akhilesh Gadde.