Re: DM-Integrity Under RAID Without Journalling

Russell Harmon <[email protected]> Wed, 31 May 2023 11:41:03 -0700
Newsgroups dev.linux.lists.cryptsetup
Message-ID <CA+zrezT8UaDpu5RcMc-Y+G8LiCx2MeJcuYE+BWYsc45ia-8vWw@mail.gmail.com>
(re-sending in plain-text so it gets accepted by the list)

On Wed, May 31, 2023 at 3:45 AM Milan Broz <[email protected]> wrote:
>
> Hi,
>
> On 5/29/23 04:02, Russell Harmon wrote:
> > Hey all,
> >
> > I'm looking to use dm-integrity with its journal turned off as the
> > backing devices for a RAID-6 array. This is with two goals:
> > Closing the RAID456 write hole (md.4 section "RAID WRITE HOLE").
> >
> > 1. Detecting (other kinds of) silent data corruption coming from the drive.
> > 2. The resulting configuration will have no journaling (both for
> > dm-integrity and for mdraid).
> >
> > If I understand things correctly, it seems like this covers all the
> > cases I listed. If there's data corruption (either via the write hole,
> > or coming from the drive), periodic scrubs will detect and repair the
> > corruption (since mdraid will consider the corrupt data invalid).
> >
> > Does this seem like a correct/valid combination to achieve my goals?
>
> The dm-integrity journal ensures that all sectors data + metadata(auth. tags)
> are modified as atomic step (it is not stored in one place).
> In the case of power fail it uses either old or new versions.
> I do not think RAID keeps this relation correct after power fail
> (or another abrupt failure like kernel crash that happens during a write operation).
>
> IOW, power fail can create a new corruption (note metadata are updated
> in chunks that includes auth. tags for other sectors).

RAID supports its own journal (see "DIRTY STRIPE JOURNAL" in md(4))
that I plan on using.
> > Aside, I see the value of dm-integrity's journal (in non-RAID
> > configurations), but what's the point of the bitmap? It seems like
> > that just reintroduces the potential for undiscovered data corruption
> > on the drive (e.g. if there's data corruption in an unsynchronized
> > region, at the next boot the corrupted data will falsely be considered
> > valid).
>
> Well, I would like to know either :-)
>
> There were some plans for dm-integrity bitmap in LVM LVs as some performance
> trade-off, but AFAIK it is not implemented yet (?).
> I just added support for integritysetup, so we can use all kernel available
> features, but I never understood why bitmap mode was implemented in the first place.
>
> Milan