Fi Fingerprinting t g the C Check cker Po Policies of Pa Parallel File Systems
Runzhou Han, Duo Zhang, Mai Zheng
PDSW 2020:5TH INTERNATIONAL PARALLEL DATA SYSTEMS WORKSHOP
Fi Fingerprinting t g the C Check cker Po Policies of Pa - - PowerPoint PPT Presentation
PDSW 2020:5TH INTERNATIONAL PARALLEL DATA SYSTEMS WORKSHOP Fi Fingerprinting t g the C Check cker Po Policies of Pa Parallel File Systems Runzhou Han , Duo Zhang, Mai Zheng Parallel File Systems (PFSes) PFS is the cornerstone of high
PDSW 2020:5TH INTERNATIONAL PARALLEL DATA SYSTEMS WORKSHOP
1
2
Case1: HPCC Power Outage
3
Case1: HPCC Power Outage Case2: ACCRE Storage Outage*
* Hyperion Research survey of HPC organizations done for Panasas
4
Some statistics*: ≈half
experience storage system failures 1/month or more frequently
* Hyperion Research survey of HPC organizations done for Panasas
The average HPC storage system failure frequency is
5
Some statistics*:
Downtime ranges from
more than 2 weeks to restore their storage systems
* Hyperion Research survey of HPC organizations done for Panasas
≈half
experience storage system failures 1/month or more frequently The average HPC storage system failure frequency is
6
Some statistics*:
A single day of downtime costs from
Average downtime cost is
* Hyperion Research survey of HPC organizations done for Panasas
≈half
experience storage system failures 1/month or more frequently The average HPC storage system failure frequency is
Downtime ranges from
more than 2 weeks to restore their storage systems
7 Management Server (MGS) Metadata Server (MDS) Management Target (MGT) Metadata Target (MDT) Object Storage Servers (OSSes) Object Storage Targets (OSTs)
Network
8 Management Server (MGS) Metadata Server (MDS) Management Target (MGT) Metadata Target (MDT) Object Storage Servers (OSSes) Object Storage Targets (OSTs)
Network
PFS checker (FSCK) I/Oes I/Oes I/Oes
9 Management Server (MGS) Metadata Server (MDS) Management Target (MGT) Metadata Target (MDT) Object Storage Servers (OSSes) Object Storage Targets (OSTs)
Network
PFS checker (FSCK) I/Oes I/Oes I/Oes
10 Management Server (MGS) Metadata Server (MDS) Management Target (MGT) Metadata Target (MDT) Object Storage Servers (OSSes) Object Storage Targets (OSTs)
Network
PFS checker (FSCK) I/Oes I/Oes I/Oes
11
MDT
FID LOV EA
… MDT-object A
OST
xattr
OST-object a
data FID Parent FID xattr OST-
Structures Meaning xattr inode extended attribute FID a global ID of an Lustre object LOV EA stores child object’s FID Parent FID stores parent object’s FID
MDT-
12
MDT
FID LOV EA
… MDT-object A
OST
xattr
OST-object a
data FID Parent FID xattr OST-
Structures Meaning xattr inode extended attribute FID a global ID of an Lustre object LOV EA stores child object’s FID Parent FID stores parent object’s FID
MDT-
13
MDT
FID LOV EA
… MDT-object A
OST
xattr
OST-object a
data FID Parent FID xattr OST-
Structures Meaning xattr inode extended attribute FID a global ID of an Lustre object LOV EA stores child object’s FID Parent FID stores parent object’s FID
MDT-
14
MDT
FID LOV EA
… MDT-object A
OST
xattr
OST-object a
data FID Parent FID xattr OST-
Structures Meaning xattr inode extended attribute FID a global ID of an Lustre object LOV EA stores child object’s FID Parent FID stores parent object’s FID
MDT-
15
MDT
FID LOV EA
… MDT-object A
OST
xattr
OST-object a
data FID Parent FID xattr OST-
Structures Meaning xattr inode extended attribute FID a global ID of an Lustre object LOV EA stores child object’s FID Parent FID stores parent object’s FID
MDT-
16
MDT
FID LOV EA
… MDT-object A
OST
xattr
OST-object a
data FID Parent FID xattr OST-
Structures Meaning xattr inode extended attribute FID a global ID of an Lustre object LOV EA stores child object’s FID Parent FID stores parent object’s FID
MDT-
17
MDT
FID LOV EA
… MDT-object A
OST
xattr
OST-object a
data FID Parent FID xattr OST-
MDT-
corruption
Corruption 1
Structures Meaning xattr inode extended attribute FID a global ID of an Lustre object LOV EA stores child object’s FID Parent FID stores parent object’s FID
18
MDT
FID LOV EA
… MDT-object A
OST
xattr
OST-object a
data FID Parent FID xattr OST-
MDT-
LFSCK
✔ Corruption 1
Fixed!
Structures Meaning xattr inode extended attribute FID a global ID of an Lustre object LOV EA stores child object’s FID Parent FID stores parent object’s FID
19
MDT
FID LOV EA
… MDT-object A
OST
xattr
OST-object a
data FID Parent FID xattr OST-
MDT-
corruption
Corruption 2
Structures Meaning xattr inode extended attribute FID a global ID of an Lustre object LOV EA stores child object’s FID Parent FID stores parent object’s FID
20
MDT
FID LOV EA
… MDT-object A
OST
xattr
OST-object a
data FID Parent FID xattr OST-
MDT-
LFSCK
✘
Cannot be fixed!
Corruption 2
Structures Meaning xattr inode extended attribute FID a global ID of an Lustre object LOV EA stores child object’s FID Parent FID stores parent object’s FID
Structures Meaning xattr inode extended attribute FID a global ID of an Lustre object LOV EA stores child object’s FID Parent FID stores parent object’s FID
21
MDT
FID LOV EA
… MDT-object A
OST
xattr
OST-object a
data FID Parent FID xattr OST-
MDT-
LFSCK
✘
Corruption 2
Cannot be fixed!
22
23
(e.g., kernel panic), which has led to 1 new patch on Lustre
24
25
PFS name metadata structures in xattr shared metadata structures with Ext4 inode Lustre FID, LOV EA, parent FID, linkEA nlink BeeGFS fhgfs nlink, size
26
27
… 1 1 1 1 … Before fault After fault … 1 1 1 …
28
in-memory File 1 Structure A
… 1 1 1 1 …
File 1 Structure A
… 1 1 1 1 …
File 1 Structure A
… 1 1 1 1 …
File 1 Structure A
Before fault
in-memory
After fault
29
30
MDT-object
OST-object 1 OST-object 2
Valid CG
31
OST-object 1
MDT-object
Valid CG
OST-object 2
32
MDT-object of client directory
Valid CG
33
OST-object 1
MDT-object
Valid CG
OST-object 2
34
OST-object 1
MDT-object
Valid CG
OST-object 2
35
MDT-object
OST-object 1 OST-object 2
Valid CG
36
/lost+found
MDT-object
OST-object 1 OST-object 2
CG-rule5 violation
37
Detection levels Definition
Dabn.
PFS checker behaves abnormally w/o reporting detection results
Dzero
PFS checker finishes normally but misses all CG corruptions
Dpar.
PFS checker partially detects CG corruptions
Dcom.
PFS checker detects CG corruptions completely
Repair levels Definition
Rwro.
PFS checker fixes CG corruptions in a wrong way
Rzero
PFS checker reports failure on repair
Rpar.
PFS checker partially fixes CG corruptions
Rcom.
PFS checker fixes corruptions and CGs’re valid again
38
Detection levels Definition
Dabn.
PFS checker behaves abnormally w/o reporting detection results
Dzero
PFS checker finishes normally but misses all CG corruptions
Dpar.
PFS checker partially detects CG corruptions
Dcom.
PFS checker detects CG corruptions completely
Repair levels Definition
Rwro.
PFS checker fixes CG corruptions in a wrong way
Rzero
PFS checker reports failure on repair
Rpar.
PFS checker partially fixes CG corruptions
Rcom.
PFS checker fixes corruptions and CGs’re valid again
39
Detection levels Definition
Dabn.
PFS checker behaves abnormally w/o reporting detection results
Dzero
PFS checker finishes normally but misses all CG corruptions
Dpar.
PFS checker partially detects CG corruptions
Dcom.
PFS checker detects CG corruptions completely
Repair levels Definition
Rwro.
PFS checker fixes CG corruptions in a wrong way
Rzero
PFS checker reports failure on repair
Rpar.
PFS checker partially fixes CG corruptions
Rcom.
PFS checker fixes corruptions and CGs’re valid again
40
Detection levels Definition
Dabn.
PFS checker behaves abnormally w/o reporting detection results
Dzero
PFS checker finishes normally but misses all CG corruptions
Dpar.
PFS checker partially detects CG corruptions
Dcom.
PFS checker detects CG corruptions completely
Repair levels Definition
Rwro.
PFS checker fixes CG corruptions in a wrong way
Rzero
PFS checker reports failure on repair
Rpar.
PFS checker partially fixes CG corruptions
Rcom.
PFS checker fixes corruptions and CGs’re valid again
41
Detection levels Definition
Dabn.
PFS checker behaves abnormally w/o reporting detection results
Dzero
PFS checker finishes normally but misses all CG corruptions
Dpar.
PFS checker partially detects CG corruptions
Dcom.
PFS checker detects CG corruptions completely
Repair levels Definition
Rwro.
PFS checker fixes CG corruptions in a wrong way
Rzero
PFS checker reports failure on repair
Rpar.
PFS checker partially fixes CG corruptions
Rcom.
PFS checker fixes corruptions and CGs’re valid again
42
Detection levels Definition
Dabn.
PFS checker behaves abnormally w/o reporting detection results
Dzero
PFS checker finishes normally but misses all CG corruptions
Dpar.
PFS checker partially detects CG corruptions
Dcom.
PFS checker detects CG corruptions completely
Repair levels Definition
Rwro.
PFS checker fixes CG corruptions in a wrong way
Rzero
PFS checker reports failure on repair
Rpar.
PFS checker partially fixes CG corruptions
Rcom.
PFS checker fixes corruptions and CGs’re valid again
43
Detection levels Definition
Dabn.
PFS checker behaves abnormally w/o reporting detection results
Dzero
PFS checker finishes normally but misses all CG corruptions
Dpar.
PFS checker partially detects CG corruptions
Dcom.
PFS checker detects CG corruptions completely
Repair levels Definition
Rwro.
PFS checker fixes CG corruptions in a wrong way
Rzero
PFS checker reports failure on repair
Rpar.
PFS checker partially fixes CG corruptions
Rcom.
PFS checker fixes corruptions and CGs’re valid again
44
Detection levels Definition
Dabn.
PFS checker behaves abnormally w/o reporting detection results
Dzero
PFS checker finishes normally but misses all CG corruptions
Dpar.
PFS checker partially detects CG corruptions
Dcom.
PFS checker detects CG corruptions completely
Repair levels Definition
Rwro.
PFS checker fixes CG corruptions in a wrong way
Rzero
PFS checker reports failure on repair
Rpar.
PFS checker partially fixes CG corruptions
Rcom.
PFS checker fixes corruptions and CGs’re valid again
45
Detection levels Definition
Dabn.
PFS checker behaves abnormally w/o reporting detection results
Dzero
PFS checker finishes normally but misses all CG corruptions
Dpar.
PFS checker partially detects CG corruptions
Dcom.
PFS checker detects CG corruptions completely
Repair levels Definition
Rwro.
PFS checker fixes CG corruptions in a wrong way
Rzero
PFS checker reports failure on repair
Rpar.
PFS checker partially fixes CG corruptions
Rcom.
PFS checker fixes corruptions and CGs’re valid again
46
47
Lustre Structures
junk zero duplicate
MDT-object — — — Dabn. Rzero OST-object Dzero Rzero Dzero Rzero — Dabn. Rzero llog record Dzero Rzero Dzero Rzero — Dzero Rzero FID on MDT Dcom. Rwro. Dcom. Rzero Dcom. Rwro. Dcom. Rwro. FID on OST Dcom. Rzero Dcom. Rzero Dcom. Rzero Dzero Rzero FLDB Dzero Rzero Dzero Rzero — Dzero Rzero OI table *Dcom. Rzero *Dcom. Rzero — *Dcom. Rcom. LOV EA *Dcom. Rcom. *Dcom. Rcom. *Dcom. Rcom. *Dcom. Rcom. PFID Dpar. Rpar. Dcom. Rcom. Dcom. Rcom. Dzero Rzero linkEA Dcom. Rcom. Dcom. Rcom. Dcom. +Rcom. Dcom. Rcom. nlink Dzero Rzero *Dcom. Rzero — —
BeeGFS Structures
junk zero duplicate
dentry-by-name (MDT-object) — — — Dcom. Rcom. dentry-by-ID (MDT-object) — — — Dcom. Rcom. chunk (OST-object) Dzero Rzero Dzero Rzero — Dpar. Rzero fghfs Dcom. Rwro. Dcom. Rwro. Dcom. Rzero Dcom. Rwro. content directory — — — Dcom. Rcom. nlink *Dcom. Rzero *Dcom. Rzero — — size *Dcom. Rzero *Dcom. Rzero — —
48
Lustre Structures
junk zero duplicate
MDT-object — — — Dabn. Rzero OST-object Dzero Rzero Dzero Rzero — Dabn. Rzero llog record Dzero Rzero Dzero Rzero — Dzero Rzero FID on MDT Dcom. Rwro. Dcom. Rzero Dcom. Rwro. Dcom. Rwro. FID on OST Dcom. Rzero Dcom. Rzero Dcom. Rzero Dzero Rzero FLDB Dzero Rzero Dzero Rzero — Dzero Rzero OI table *Dcom. Rzero *Dcom. Rzero — *Dcom. Rcom. LOV EA *Dcom. Rcom. *Dcom. Rcom. *Dcom. Rcom. *Dcom. Rcom. PFID Dpar. Rpar. Dcom. Rcom. Dcom. Rcom. Dzero Rzero linkEA Dcom. Rcom. Dcom. Rcom. Dcom. +Rcom. Dcom. Rcom. nlink Dzero Rzero *Dcom. Rzero — —
BeeGFS Structures
junk zero duplicate
dentry-by-name (MDT-object) — — — Dcom. Rcom. dentry-by-ID (MDT-object) — — — Dcom. Rcom. chunk (OST-object) Dzero Rzero Dzero Rzero — Dpar. Rzero fghfs Dcom. Rwro. Dcom. Rwro. Dcom. Rzero Dcom. Rwro. content directory — — — Dcom. Rcom. nlink *Dcom. Rzero *Dcom. Rzero — — size *Dcom. Rzero *Dcom. Rzero — —
49
Lustre Structures
junk zero duplicate
MDT-object — — — Dabn. Rzero OST-object Dzero Rzero Dzero Rzero — Dabn. Rzero llog record Dzero Rzero Dzero Rzero — Dzero Rzero FID on MDT Dcom. Rwro. Dcom. Rzero Dcom. Rwro. Dcom. Rwro. FID on OST Dcom. Rzero Dcom. Rzero Dcom. Rzero Dzero Rzero FLDB Dzero Rzero Dzero Rzero — Dzero Rzero OI table *Dcom. Rzero *Dcom. Rzero — *Dcom. Rcom. LOV EA *Dcom. Rcom. *Dcom. Rcom. *Dcom. Rcom. *Dcom. Rcom. PFID Dpar. Rpar. Dcom. Rcom. Dcom. Rcom. Dzero Rzero linkEA Dcom. Rcom. Dcom. Rcom. Dcom. +Rcom. Dcom. Rcom. nlink Dzero Rzero *Dcom. Rzero — —
BeeGFS Structures
junk zero duplicate
dentry-by-name (MDT-object) — — — Dcom. Rcom. dentry-by-ID (MDT-object) — — — Dcom. Rcom. chunk (OST-object) Dzero Rzero Dzero Rzero — Dpar. Rzero fghfs Dcom. Rwro. Dcom. Rwro. Dcom. Rzero Dcom. Rwro. content directory — — — Dcom. Rcom. nlink *Dcom. Rzero *Dcom. Rzero — — size *Dcom. Rzero *Dcom. Rzero — —
50
Lustre Structures
junk zero duplicate
MDT-object — — — Dabn. Rzero OST-object Dzero Rzero Dzero Rzero — Dabn. Rzero llog record Dzero Rzero Dzero Rzero — Dzero Rzero FID on MDT Dcom. Rwro. Dcom. Rzero Dcom. Rwro. Dcom. Rwro. FID on OST Dcom. Rzero Dcom. Rzero Dcom. Rzero Dzero Rzero FLDB Dzero Rzero Dzero Rzero — Dzero Rzero OI table *Dcom. Rzero *Dcom. Rzero — *Dcom. Rcom. LOV EA *Dcom. Rcom. *Dcom. Rcom. *Dcom. Rcom. *Dcom. Rcom. PFID Dpar. Rpar. Dcom. Rcom. Dcom. Rcom. Dzero Rzero linkEA Dcom. Rcom. Dcom. Rcom. Dcom. +Rcom. Dcom. Rcom. nlink Dzero Rzero *Dcom. Rzero — —
BeeGFS Structures
junk zero duplicate
dentry-by-name (MDT-object) — — — Dcom. Rcom. dentry-by-ID (MDT-object) — — — Dcom. Rcom. chunk (OST-object) Dzero Rzero Dzero Rzero — Dpar. Rzero fghfs Dcom. Rwro. Dcom. Rwro. Dcom. Rzero Dcom. Rwro. content directory — — — Dcom. Rcom. nlink *Dcom. Rzero *Dcom. Rzero — — size *Dcom. Rzero *Dcom. Rzero — —
51
Lustre Structures
junk zero duplicate
MDT-object — — — Dabn. Rzero OST-object Dzero Rzero Dzero Rzero — Dabn. Rzero llog record Dzero Rzero Dzero Rzero — Dzero Rzero FID on MDT Dcom. Rwro. Dcom. Rzero Dcom. Rwro. Dcom. Rwro. FID on OST Dcom. Rzero Dcom. Rzero Dcom. Rzero Dzero Rzero FLDB Dzero Rzero Dzero Rzero — Dzero Rzero OI table *Dcom. Rzero *Dcom. Rzero — *Dcom. Rcom. LOV EA *Dcom. Rcom. *Dcom. Rcom. *Dcom. Rcom. *Dcom. Rcom. PFID Dpar. Rpar. Dcom. Rcom. Dcom. Rcom. Dzero Rzero linkEA Dcom. Rcom. Dcom. Rcom. Dcom. +Rcom. Dcom. Rcom. nlink Dzero Rzero *Dcom. Rzero — —
BeeGFS Structures
junk zero duplicate
dentry-by-name (MDT-object) — — — Dcom. Rcom. dentry-by-ID (MDT-object) — — — Dcom. Rcom. chunk (OST-object) Dzero Rzero Dzero Rzero — Dpar. Rzero fghfs Dcom. Rwro. Dcom. Rwro. Dcom. Rzero Dcom. Rwro. content directory — — — Dcom. Rcom. nlink *Dcom. Rzero *Dcom. Rzero — — size *Dcom. Rzero *Dcom. Rzero — —
52
Lustre Structures
junk zero duplicate
MDT-object — — — Dabn. Rzero OST-object Dzero Rzero Dzero Rzero — Dabn. Rzero llog record Dzero Rzero Dzero Rzero — Dzero Rzero FID on MDT Dcom. Rwro. Dcom. Rzero Dcom. Rwro. Dcom. Rwro. FID on OST Dcom. Rzero Dcom. Rzero Dcom. Rzero Dzero Rzero FLDB Dzero Rzero Dzero Rzero — Dzero Rzero OI table *Dcom. Rzero *Dcom. Rzero — *Dcom. Rcom. LOV EA *Dcom. Rcom. *Dcom. Rcom. *Dcom. Rcom. *Dcom. Rcom. PFID Dpar. Rpar. Dcom. Rcom. Dcom. Rcom. Dzero Rzero linkEA Dcom. Rcom. Dcom. Rcom. Dcom. +Rcom. Dcom. Rcom. nlink Dzero Rzero *Dcom. Rzero — —
BeeGFS Structures
junk zero duplicate
dentry-by-name (MDT-object) — — — Dcom. Rcom. dentry-by-ID (MDT-object) — — — Dcom. Rcom. chunk (OST-object) Dzero Rzero Dzero Rzero — Dpar. Rzero fghfs Dcom. Rwro. Dcom. Rwro. Dcom. Rzero Dcom. Rwro. content directory — — — Dcom. Rcom. nlink *Dcom. Rzero *Dcom. Rzero — — size *Dcom. Rzero *Dcom. Rzero — —
53
Lustre Structures
junk zero duplicate
MDT-object — — — Dabn. Rzero OST-object Dzero Rzero Dzero Rzero — Dabn. Rzero llog record Dzero Rzero Dzero Rzero — Dzero Rzero FID on MDT Dcom. Rwro. Dcom. Rzero Dcom. Rwro. Dcom. Rwro. FID on OST Dcom. Rzero Dcom. Rzero Dcom. Rzero Dzero Rzero FLDB Dzero Rzero Dzero Rzero — Dzero Rzero OI table *Dcom. Rzero *Dcom. Rzero — *Dcom. Rcom. LOV EA *Dcom. Rcom. *Dcom. Rcom. *Dcom. Rcom. *Dcom. Rcom. PFID Dpar. Rpar. Dcom. Rcom. Dcom. Rcom. Dzero Rzero linkEA Dcom. Rcom. Dcom. Rcom. Dcom. +Rcom. Dcom. Rcom. nlink Dzero Rzero *Dcom. Rzero — —
BeeGFS Structures
junk zero duplicate
dentry-by-name (MDT-object) — — — Dcom. Rcom. dentry-by-ID (MDT-object) — — — Dcom. Rcom. chunk (OST-object) Dzero Rzero Dzero Rzero — Dpar. Rzero fghfs Dcom. Rwro. Dcom. Rwro. Dcom. Rzero Dcom. Rwro. content directory — — — Dcom. Rcom. nlink *Dcom. Rzero *Dcom. Rzero — — size *Dcom. Rzero *Dcom. Rzero — —
54
Lustre Structures
junk zero duplicate
MDT-object — — — Dabn. Rzero OST-object Dzero Rzero Dzero Rzero — Dabn. Rzero llog record Dzero Rzero Dzero Rzero — Dzero Rzero FID on MDT Dcom. Rwro. Dcom. Rzero Dcom. Rwro. Dcom. Rwro. FID on OST Dcom. Rzero Dcom. Rzero Dcom. Rzero Dzero Rzero FLDB Dzero Rzero Dzero Rzero — Dzero Rzero OI table *Dcom. Rzero *Dcom. Rzero — *Dcom. Rcom. LOV EA *Dcom. Rcom. *Dcom. Rcom. *Dcom. Rcom. *Dcom. Rcom. PFID Dpar. Rpar. Dcom. Rcom. Dcom. Rcom. Dzero Rzero linkEA Dcom. Rcom. Dcom. Rcom. Dcom. +Rcom. Dcom. Rcom. nlink Dzero Rzero *Dcom. Rzero — —
BeeGFS Structures
junk zero duplicate
dentry-by-name (MDT-object) — — — Dcom. Rcom. dentry-by-ID (MDT-object) — — — Dcom. Rcom. chunk (OST-object) Dzero Rzero Dzero Rzero — Dpar. Rzero fghfs Dcom. Rwro. Dcom. Rwro. Dcom. Rzero Dcom. Rwro. content directory — — — Dcom. Rcom. nlink *Dcom. Rzero *Dcom. Rzero — — size *Dcom. Rzero *Dcom. Rzero — —
55
Lustre Structures
junk zero duplicate
MDT-object — — — Dabn. Rzero OST-object Dzero Rzero Dzero Rzero — Dabn. Rzero llog record Dzero Rzero Dzero Rzero — Dzero Rzero FID on MDT Dcom. Rwro. Dcom. Rzero Dcom. Rwro. Dcom. Rwro. FID on OST Dcom. Rzero Dcom. Rzero Dcom. Rzero Dzero Rzero FLDB Dzero Rzero Dzero Rzero — Dzero Rzero OI table *Dcom. Rzero *Dcom. Rzero — *Dcom. Rcom. LOV EA *Dcom. Rcom. *Dcom. Rcom. *Dcom. Rcom. *Dcom. Rcom. PFID Dpar. Rpar. Dcom. Rcom. Dcom. Rcom. Dzero Rzero linkEA Dcom. Rcom. Dcom. Rcom. Dcom. +Rcom. Dcom. Rcom. nlink Dzero Rzero *Dcom. Rzero — —
BeeGFS Structures
junk zero duplicate
dentry-by-name (MDT-object) — — — Dcom. Rcom. dentry-by-ID (MDT-object) — — — Dcom. Rcom. chunk (OST-object) Dzero Rzero Dzero Rzero — Dpar. Rzero fghfs Dcom. Rwro. Dcom. Rwro. Dcom. Rzero Dcom. Rwro. content directory — — — Dcom. Rcom. nlink *Dcom. Rzero *Dcom. Rzero — — size *Dcom. Rzero *Dcom. Rzero — —
56
57
58