Technical

VMDB - Technical

Previous Next

Introduction

The VMDB is 512 bytes long. It is the header for the main part of the database. The VMDB and KLOG blocks manage the journalling of the database metadata.

Update Status

To prevent data loss during updates, and changes to the VMDB are logged. In the event of a power failure, the database can be rolled back to a consistant state. The table below shows what each VMDB Update Status means.

All updates to the database are made in two stages. First the new VBLKs are added, then the old ones are deleted.

Layout

Offset Size Description
0x00 4 "VMDB" Magic number
0x04 4 Sequence Number of last VBLK
0x08 4 Size of VBLK
0x0C 4 Offset to first VBLK
0x10 2 Update Status
0x12 2 Version Major (Always 0x04)
0x14 2 Version Minor (Always 0x0A)
0x16 31 Disk Group Name (string, null padded)
0x35 64 Disk Group Id GUID (string, null padded)
0x75 8 Committed Sequence
0x7D 8 Pending Sequence
0x85 4 Number of Committed Volume VBLKs
0x89 4 Number of Committed Component VBLKs
0x8D 4 Number of Committed Partition VBLKs
0x91 4 Number of Committed Disk VBLKs
0x95 4 (Unused)
0x99 4 (Unused)
0x9D 4 (Unused)
0xA1 4 Number of Pending Volume VBLKs
0xA5 4 Number of Pending Component VBLKs
0xA9 4 Number of Pending Partition VBLKs
0xAD 4 Number of Pending Disk VBLKs
0xB1 4 (Unused)
0xB5 4 (Unused)
0xB9 4 (Unused)
0xBD 8 Last Accessed Time (a)

(a) Timestamp is number of 100ns units since Jan 01 1601

Update Status

Flags Description
0x01 VMDB is in a consistant state
0x02 VMDB is in a creation phase
0x03 VMDB is in a deletion phase

Copyright © 2002, $Date: 2002/06/20 13:49:38 $ O L H C