►
From YouTube: CDS G/H (Day 2) - CephFS: forward scrub
Description
https://wiki.ceph.com/Planning/CDS/CDS_Giant_and_Hammer_(Jun_2014)
25 June 2014
Ceph Developer Summit G/H
Day 2
CephFS: forward scrub
A
Right
this
is
an
interesting
blueprint
because,
unlike
all
the
other
blueprints,
we've
done,
we
actually
took
time
to
sort
of
two
I
mean
I,
don't
know
that
we
did
a
great
job,
but
this
is
actually
a
thing.
We
talked
about
a
year
and
a
half
ago,
and
then
we
actually
sat
down
and
created
tickets
for
and
even
made
time
estimates
on
those
tickets
for,
but
we've
never
had
a
blueprint
on
it.
A
Okay,
because
it
preceded
the
blueprint
concept
and
or
at
least
our
CD
s
sessions
and-
and
we
haven't
worked
on
it
since
that
started
so
forward.
Scrub
is
the
first
of
two
parts
that
we
would
like
to
implement
for
a
for
a
distributed
set,
FS
check
system.
A
The
concept
here
I
mean
the
very
basic
concept
here,
just
being
saying:
okay,
we
have
a
running
file
system
and
we
want
to
start
at
the
very
root
node
of
the
of
the
file
system
hierarchy
and
go
down
and
look
at
everything
we
can
touch
from
that
node
and
or
from
the
root
of
the
file
system,
and
make
sure
that
everything
it
is
consistent
with
what
we
believe.
The
case
is
based
on
metadata
and
the
second
part
which
we're
not
going
to
talk
about
in
too
much
detail.
A
A
It's
it's
an
opportunity
to
to
to
recalculate
the
statistics
we
use
for
our
recursive
for
our
stats
and
make
sure
that
those
are
all
good
and
things
of
that
nature.
A
So
we
have
a
high
level
design,
including
several
tickets,
to
work
on
and
I
mostly
just
put
this
in
here,
because
I
want
to
give
people
the
chance
to
talk
about
it.
I
know
John
was
out
here
for
a
couple
of
days
this
week,
but
it's
unfortunately
in
an
airplane
right
now,
so
he
couldn't
be
here
and
he
was
pressing
for
more
details
on
some
of
them,
which
we
talked
through,
but.
B
A
So
yeah
I
mean
it's
right
now,
but
let's
I'm,
just
I
can
walk
you
through
through
what's
written
down.
So
at
the
end.
What
we
want
to
have
is,
it
is
a
separate,
scrubbing
thread
in
the
mgs.
That's
just
runs
along
and
it's
possible.
This
will
actually
be
implemented,
as
probably
this
will
actually
be
implemented
or
normal
like
series
of
callbacks
or
whatever,
but
conceptually
we
have
a
scrubbing
thread
in
the
MDS,
and
this
scrub
begins
in
a
in
a
scrub.
A
I
know'd
function
and
then,
and
we
maintain
a
stack
of
inodes,
that
we
want
to
scrub
and
then
in
scrub.
No,
we
start
by
getting
a
by
setting
a
scrub
start
stamp
on
that
I
node,
which
just
says
okay.
We
started
a
scrub
at
this
time
and
setting
a
scrub
start
version
on
the
inode,
where
that
version
is
apparently
the
parent
of
the
eye
of
the
version
of
the
pit
of
the
inodes
parent
and
then,
if
it's
file,
it's
easy.
We
just
look
at
the
you
know
it
week,
optionally.
B
A
A
A
So
basically
what's
happening
is
we're
doing
a
a
depth-first
search
of
the
tree
and
going
down
and
then
scrubbing
all
the
files
at
the
bottom
and
saying:
okay,
those
match
the
directory
that
contains
them,
and
then
we
pop
up
a
level
and
then
we
say:
okay,
is
there
anything
else
to
describe
in
this
level
yeah
and
then,
once
we
finish
scrubs
finish,
then
you
Marcus
Grubb
finish
damp.
So
you
can.
B
A
A
B
A
B
Ahead,
sorry,
second,
stepping
back
a
second,
if
you
just
still
assume
a
single
video
system.
If
it's
a
remote,
if
it's
a
remote
to
entry,
meaning
it's
a
hard
link,
oh
yeah,
we
basically
have
to
verify
that
that
that
a
that
the
inode
exists
and
be
that
the
link
count
is
ultimately,
the
thing
we
need
to
verify
is
the
link
on
is
correct,
which.
B
A
Update
I
mean
well
I,
I
have
a
ticket
to
make
lazily
updated
back
traces,
but
we
don't
want
to
keep
them
consistent.
You
know
yeah.
A
B
A
Yes,
like
so,
I
guess
probably
what
we
want
to
do
that
is
in
that
case,
then
we
want
to
maintain
a
thing:
that's
like
a
list
of
them
that
says:
okay,
I,
like
I,
scrubbed
and
I'm,
a
remote
link
and
so
I'm
telling
this
remote.
I
know
that
I
have
a
link
to
it
right
now.
As
of
this
from
time
and
inversion.
For
me,
that's
gonna.
A
B
A
Right
directon
only
the
directories
I
well.
A
B
A
So
I
guess
that
what
I
would
say
to
that
is
that
we're
still
go
I
mean
we're
actually
going
and
touching
at
all
brother.
We
write
to
it
or
not,
and
if
you
aren't
doing
rights
then
you
can't
make
any
guarantees
about
what
set
what
about
when
things
have
been
checked,
and
I
think
for
I
mean
I
mean
we
could
make
it
an
optional
thing
where
we
don't
do
it.
That's
just
I
think
that
for
any
like,
if
you
actually.
B
Yeah
so
like
maybe
when
you,
when
you
finish
the
scope
for
an
NM
hbu,
like
you
updated
that
says,
I
scrubbed
it
as
at
this
time
or
something
yeah
yeah.
It
might
actually
even
be
easier
to
implement
in
the
first
time
around
if
it's
just
well,
no
going
on
pit
at
least
certainly
be
faster,
like
I'm
yeah
I
mean.
A
B
A
B
A
You're
not
scrubbing
yeah
like
anyway,
I
restart
or
something
yeah
I
mean
I,
I,
sort
of
assume
that
you're
not
actually
that
you're
really
only
doing
one
right
to
the
stuff,
because
it's
gonna,
it's
like
I,
don't
think
it's
likely
to
fall
out
of
the
journal,
while
you're
doing
it
I
mean
get.
A
B
A
A
B
A
Anything
that
was
in
the
directory
prior
or
anything
it
hasn't
time
prior
to
the
to
the
scrub
start
stamp
was
scrubbed
yeah.
A
A
B
B
A
A
Yeah
just.
A
Yeah
I
I
think
that's
basically,
when
it's
going
to
be.
Is
that
with
the
ball,
the
advantage
of
the
blocking
scrubbers
that
you
can
keep
all
of
our
normal
locking,
primitives
and
stuff
and
then
for
a
non-blocking
scrub,
you're,
basically
just
going
to
need
to
like
throw
out
any
results
from
from
during
the
conflict.
A
A
A
B
B
Yeah
I
mean
I
think
that
the
main
thing
that
that
strikes
me
having
not
thought
about
this
a
long
time
and
coming
back
to
it,
is
that
it
does
seem
like
I'm,
not
sure
it's
going
to
be
more
or
less
complicated,
I,
don't
think
Abby's
gonna
be
welcome,
but
it
does
seem
like
being
able
to
do
the
scrub
without
actually
persisting.
The
stamps
optionally
would
be
good
thing.
A
B
Of
the
way
that
whatever
thority
pinned,
but
that
would.
A
Yeah
last.
B
A
A
Can
definitely
look
at
that
I'm,
yeah,
I'm,
afraid
I,
don't
remember.
A
All
the
important
ways
to
talk
about
this
I'm.
B
A
A
B
I
think
also
like
the
the
final
UI
or
whatever
is
going
to
be
something
like
due
to
a
faster
memory
scrub
to
memory.
Scrubber
remark
directories:
do
it
do
a
scrub
where
you
actually
validate
every
files
back
trace
or
not,
maybe
just
just
in
the
namespace?
Maybe
you
also
look
at
the
file
blocks,
make
sure
the
sizes
Greg
yeah.