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.