The software I use is RedHat Virtualization. When using Posix compatible FS, it 
seems to perform direct I / O with a block size of 256512 bytes.


If I can't resolve the issue with my storage configuration, I will contact 
RedHat.


Your answer was very helpful.
Thank you.











보내는사람 : Andreas Dilger <[email protected]>


받는사람 : 김형근 <[email protected]>


참조 : [email protected] <[email protected]>


보낸 날짜 : 2018-10-25 16:47:58






제목 : Re: [lustre-discuss] dd oflag=direct error (512 byte Direct I/O)






On Oct 25, 2018, at 15:05, 김형근 
<okok102928 fusiondata.co.kr=""> wrote:

&gt; 

&gt; Hi.

&gt; It's a pleasure to meet you, the lustre specialists.

&gt; (I do not speak English well ... Thank you for your understanding!)



Your english is better than my Korean. :-)



&gt; I used the dd command in lustre mount point. (using the oflag = direct 
option)

&gt; 

&gt; ------------------------------------------------------------

&gt; dd if = / dev / zero of = / mnt / testfile oflag = direct bs = 512 count = 
1

&gt; ------------------------------------------------------------

&gt; 

&gt; I need direct I / O with 512 byte block size.

&gt; This is a required check function on the software I use.



What software is it?  Is it possible to change the application to use

4096-byte alignment?



&gt; But unfortunately, If the direct option is present,

&gt; bs must be a multiple of 4K (4096) (for 8K, 12K, 256K, 1M, 8M, etc.) for 
operation.

&gt; For example, if you enter a value such as 512 or 4095, it will not work. 
The error message is as follows.

&gt; 

&gt; 'error message: dd: error writing [filename]: invalid argument'

&gt; 

&gt; My test system is all up to date. (RHEL, lustre-server, client)

&gt; I have used both ldiskfs and zfs for backfile systems. The result is same.

&gt; 

&gt; 

&gt; My question is simply two.

&gt; 

&gt; 1. Why does DirectIO work only in 4k multiples block size?



The client PAGE_SIZE on an x86 system is 4096 bytes.  The Lustre client

cannot cache data smaller than PAGE_SIZE, so the current implementation

is limited to have O_DIRECT read/write being a multiple of PAGE_SIZE.



I think the same would happen if you try to use O_DIRECT on a disk with

4096-byte native sector drive 
(https://en.wikipedia.org/w/index.php?title=Advanced_Format§ion=5#4K_native )?



&gt; 2. Can I change the settings of the server and client to enable 512bytes 
of DirectIO?



This would not be possible without changing the Lustre client code.

I don't know how easily this is possible to do and still ensure that

the 512-byte writes are handled correctly.



So far we have not had other requests to change this limitation, so

it is not a high priority to change on our side, especially since

applications will have to deal with 4096-byte sectors in any case.



Cheers, Andreas

---

Andreas Dilger

Principal Lustre Architect

Whamcloud














</okok102928>
_______________________________________________
lustre-discuss mailing list
[email protected]
http://lists.lustre.org/listinfo.cgi/lustre-discuss-lustre.org

Reply via email to