dissect.volume.raid.stream

Module Contents

Classes

Level

RAID level identifiers.

Layout

RAID layout identifiers.

LinearStream

Implements a stream on a linear RAID set.

Zone

RAID0Stream

Implements a stream on a RAID0 set.

RAID456Stream

Implements a stream on a RAID5 set.

RAID10Stream

Implements a stream on a RAID10 set.

class dissect.volume.raid.stream.Level

Bases: enum.IntEnum

RAID level identifiers.

LINEAR
RAID0 = 0
RAID1 = 1
RAID3 = 3
RAID4 = 4
RAID5 = 5
RAID6 = 6
RAID10 = 10
class dissect.volume.raid.stream.Layout

Bases: enum.IntEnum

RAID layout identifiers.

“Coincidentally” these align with Linux MD.

LEFT_ASYMMETRIC = 0
RIGHT_ASYMMETRIC = 1
LEFT_SYMMETRIC = 2
RIGHT_SYMMETRIC = 3
PARITY_0 = 4
PARITY_N = 5
ROTATING_ZERO_RESTART = 8
ROTATING_N_RESTART = 9
ROTATING_N_CONTINUE = 10
LEFT_ASYMMETRIC_6 = 16
RIGHT_ASYMMETRIC_6 = 17
LEFT_SYMMETRIC_6 = 18
RIGHT_SYMMETRIC_6 = 19
PARITY_0_6 = 20
PARITY_N_6
class dissect.volume.raid.stream.LinearStream(virtual_disk: dissect.volume.raid.raid.VirtualDisk)

Bases: dissect.util.stream.MappingStream

Implements a stream on a linear RAID set.

class dissect.volume.raid.stream.Zone

Bases: NamedTuple

zone_end: int
dev_start: int
devices: list[tuple[int, dissect.volume.raid.raid.PhysicalDisk]]
class dissect.volume.raid.stream.RAID0Stream(virtual_disk: dissect.volume.raid.raid.VirtualDisk)

Bases: dissect.util.stream.AlignedStream

Implements a stream on a RAID0 set.

class dissect.volume.raid.stream.RAID456Stream(virtual_disk: dissect.volume.raid.raid.VirtualDisk)

Bases: dissect.util.stream.AlignedStream

Implements a stream on a RAID5 set.

class dissect.volume.raid.stream.RAID10Stream(virtual_disk: dissect.volume.raid.raid.VirtualDisk)

Bases: dissect.util.stream.AlignedStream

Implements a stream on a RAID10 set.