Direct I/O is a feature of the file system whereby file reads and writes go directly from the
applications to the storage device, bypassing the operating system read and write caches.
Direct I/O is used only by applications (such as databases) that manage their own caches.
An application invokes direct I/O by opening a file with the
O_DIRECT
flag. Alternatively, GFS
can attach a direct I/O attribute to a file, in which case direct I/O is used regardless of how the
file is opened.
When a file is opened with
O_DIRECT
, or when a GFS direct I/O attribute is attached to a file, all
I/O operations must be done in block-size multiples of 512 bytes. The memory being read from
or written to must also be 512-byte aligned.
One of the following methods can be used to enable direct I/O on a file:
•
O_DIRECT
• GFS file attribute
• GFS directory attribute
8.1.
O_DIRECT
If an application uses the
O_DIRECT
flag on an
open()
system call, direct I/O is used for the
opened file.
To cause the
O_DIRECT
flag to be defined with recent glibc libraries, define
_GNU_SOURCE
at the
beginning of a source file before any includes, or define it on the cc line when compiling.
8.2. GFS File Attribute
The
gfs_tool
command can be used to assign (set) a direct I/O attribute flag,
directio
, to a
GFS file. The
directio
flag can also be cleared.
You can use the
gfs_tool stat filename
to check what flags have been set for a GFS file.
The output for this command includes a
Flags:
at the end of the display followed by a listing of
the flags that are set for the indicated file.
Usage
Setting the
directio
Flag
gfs_tool setflag directio File
Clearing the
directio
Flag
gfs_tool clearflag directio File
Chapter 3. Managing GFS
30
Содержание GLOBAL FILE SYSTEM 5.2
Страница 4: ...Global File System...
Страница 6: ...vi...