next up previous
Next: Metadata Backup and the Up: Implementation Overview Previous: Design of CEFT-PVFS

Metadata Management

CEFT-PVFS maintains two metadata structures, system metadata and file metadata. The system metadata indicates the dead or live status of the data servers. When one data server is down, all I/O access will be redirected to its mirror server. Currently, a data server is simply thought to be down if the metadata server does not receive the periodic ``heartbeat'' message from this data server within a certain amount of time. The file metadata describes the striping information, the data mirroring status and other conventional file information, such as ownership, access mode, and last access time, etc. Like UNIX file systems, the access authorization is implemented by checking the ownership and access mode. Table I gives a metadata example in CEFT-PVFS with 8 data servers in either storage group.


Table I: Sample Metadata in CEFT-PVFS
striping information
$strip\_width$ 3
$block\_size$ 65536 bytes
$location$ 1, 2, 7
data duplication status
$dstatus$ 3, 3, 3
others
$uid$ 213
$gid$ 501
$mode$ rwx-r-r
$size$ 786432 bytes
$atime$ Wed Jan 22 09:00:10 2003
$\vdots$ $\vdots$

The striping information is described by the stripe width, the stride block size and the data location. The $location$, an array of size $stripe\_width$, records the data server indices on which the data is striped. In this example, the file is striped across 3 data servers, i.e., Node 1, 2 and 7, with a striping block size of 64KB. While the $strip\_width$ is given by clients, the values of $location$ are assigned by the metadata server to approximately balance the disk space utilization on each data server.

The $dstatus$, an array of size $stripe\_width$, describes the mirroring status between two groups of mirroring servers that a file is striped on. More precisely, it is defined according to the status of data blocks, shown as follows.

\begin{eqnarray*}
dstatus(i) = \left\{ \begin{array}{rl}
1 & \mbox{if on $locat...
...n(i)$\ of both groups.}
\nonumber
\end{array}\right. \nonumber
\end{eqnarray*}

where $1 \leq i \leq stripe\_width$.


next up previous
Next: Metadata Backup and the Up: Implementation Overview Previous: Design of CEFT-PVFS
Yifeng Zhu 2003-10-16