►
From YouTube: CDS Jewel -- CephFS fsck progress
A
Alright,
we're
on
to
the
next
one,
which
is
the
file
system,
check,
progress,
discussion
so
bright
in
ok,
yeah,
so
Johnson
going
bank
gangbusters,
writing
a
bunch
of
sort
of
examination
and
repair
tools
for
if
you
lose
your
entire
metadata
pool
and
want
to
repair
it
from
what's
in
the
in
the
data
pool
or
if
you
lose
all
your
journals
and
one
repair
it
from
what's
on
the
directory,
fragments
or
whatever
and
I
need
to
push
the
latest
version.
But-
and
it's
in
us
it's
becoming
mythical
at
this
point.
A
But
there
is
an
in
progress
forward
scrub
that
goes
through
from
the
route
I
know'd
and
scrubs
forward
to
everything
and
invalidates
it,
and
I
just
thought:
we'd
give
an
update
on
and
honestly
there's
district
leg
if
that
one's
still
going,
but
that
we
give
an
update
on
where
the
where
the
repair
stuff
is
and
talk
a
bit
about
how
we
want
to
go
into
integrating
them.
Now
that
we
have
more
code
written
down
than
the
last
time
we
discuss
this
a
year
ago.
So
go.
B
So
the
new
tool
is
called
CFS
data
scan
so
named
because
it
scans
across
the
objects
in
a
data
pool,
and
it's
basically
a
two-phase
thing
where
the
initial
phase
is
to
go
and
look
at
every
object
in
the
data
pool
can
identify
from
the
name
which
I
know
it
refers
to,
because
data
objects
are
named,
I
know
dot,
offset
and
decorate.
The
zeroth
object
in
the
inode,
with
some
new
extended
attributes
for
the
maximum
size
of
an
object.
Seen
the
highest
offset
of
an
object
seemed
and
the
highest
em
time
seemed.
B
So
that's
essentially
recalculating
all
the
metadata
we
can
for
every
I
know'd
and
storing
it
on
the
the
first
object
or
the
zeroth
object,
as
I
keep
calling
it
on
each
I
note
and
then
the
second
stage
is
to
iterate
over
these
zero
fine
0
0
objects,
so
one
per
I
know
and
for
each
one
of
them
read
this
recovered
metadata
read
the
back-trace
if
one
is
present
and
use
that
information
to
attempt
to
inject
linkage
for
the
inode
into
the
metadata
tree.
B
So
if
it
already
seized,
add
entry
in
the
metadata
pool,
it
will
go.
Okay,
great
and
move
on,
and
if
it
doesn't,
it
will
go
ahead
and
create
add
entry
for
the
inode
and
also
for
any
parents
that
are
necessary
for
the
directory
that
it's
injecting
into
all
of
that
is
a
best-effort
thing,
because
it's
not
guaranteed
that
a
back
trace
will
be
there.
B
So
there
is
a
also
a
lost-and-found
directory
where
I
know
to
go
if
there's
no
back
trace
and
it
doesn't
currently
guarantee
that
what
you
end
up
with
in
the
metadata
pool
is
actually
it's
self
completely
consistent.
So
if
it
sees
an
existing
dentary
for
something
in
a
directory
fragment,
it
doesn't
guarantee
that
that
directory
fragment
is
itself
linked
into
the
metadata
tree.
So
there's
still
work
outstanding
to
do
the
the
metadata
equivalent
of
the
process
that
we're
currently
doing
for
data
recovery.
B
B
B
So
you
would
create
a
number
of
worker
processes,
the
surface
data
scan
running
on
different
clients,
and
they
would
all
take
a
share
of
the
data
objects
and
do
that
thing
on
those
and
that
actually,
that
kind
of
already
works,
because
it
did
work
with
the
previous
incarnation
of
Charlotte
PG
LS.
But
currently
that's
not
wired
up,
because
we're
waiting
for
when
the
register
get
that
functionality
again.
B
So
that's
that's
the
new
tool
and
there
are
a
bunch
of
tickets
for
adding
extra
cases
to
that
that
we've
recognized
but
not
run
the
code
for
ya.
So
what
I
already
mentioned
was
are
doing
the
equivalent
process
for
dirt
rag
objects
that
we
already
know
how
to
do
for
data
objects
and
the
other
be
in
that
list
is
detecting
snapshots.
So
currently,
when
the
tool
see
the
snapshot
well,
it
doesn't
do
anything
because
it
doesn't
see
a
snapshot.
B
It
just
looks
of
the
latest
version
of
all
the
objects
and
if
you
had
any
snapshots-
and
you
inject
the
linkage
for
those
I
nodes,
the
snapshot
of
data
will
continue
to
exist
and
take
up
space
and
write-offs,
but
it
will
never
actually
have
been
linked
in
to
the
sacrifice
metadata
tree.
So
the
initial
simplest
way
of
handling
that
will
be
too
find
the
snapshots
during
the
scanning
phase,
that
we
do
and
then
report
them
to
the
user
and
possibly
offer
a
way
to
purge
them.
B
B
In
order
for
the
user
to
know
that
they
need
to
run
this
type
of
tool,
the
system
needs
to
found
the
damage
to
begin
with,
and
the
main
mechanism
for
that
is
the
forward
scrub.
But
it's
not
just
the
board
scrub.
It's
also.
Every
time
we
load
something
into
cash
on
the
MDS
we
can
potentially
detect
and
that
something's
being
broken.
So
we
need
somewhere
to
put
the
information
about
what's
broken
so
that
we
can
disable
broken
subtrees
and
not
keep
trying
to
load
them.
B
So
currently,
there
are
a
bunch
of
places
where
the
MDS
rank
gets
marked
damage
damage,
which
causes
the
demon
to
shut
down
and
the
other
demon
to
take
a
rank
when
it
hits
one
of
these
errors
and
that's
kind
of
a
bit
heavy-handed
because
you
might
you
know,
I've
only
lost
one
directory
in
your
whole
system
and
we'd.
Much
rather
give
you
a
iOS
on
that
directory,
rather
than
showing
on
the
whole
thing,
so
that
that
code
is
less
far
along,
but
it's
it's
kind
of
related
to
this
whole
picture,
very
good,
nothing
to
it.
A
Well,
I
think
that's
about
where
things
are
right
now.
So
let's
talk
about
some
of
those.
The
der
frag
process
is
I.
Think
just
gonna
look
like
what
you've
done
with
the
inodes,
but
for
the
dependable
or.
B
Yeah,
it's
it's
the
same
thing,
the
different
thing,
the
differences
that
obviously
with
directs.
You
don't
have
to
do
the
whole
initial
scanning
to
work
out
the
extents
of
things.
The
the
thing
you
do
have
to
do
is
find
all
the
dirt
frags
that
refer
to
a
particular
I
know'd
and
work
out
if
they
form
a
consistent
factory
and.
B
A
B
B
Zero
objects
that
are
eligible
for
robbery
and
then
passed
that
list
of
inodes
back
into
the
procedure
for
adding
to
find
most
data
for
them
and
then
come
back
in
our
new
injection.
The
problem
with
that
is:
it
means
that
if
there
were
any
missing
header
objects
for
anything
and
stray
data
objects,
we
still
didn't
find
them
so
you've
still.
A
A
A
Or
like
we
lose
one
wonder
fraggin,
so
there's
sort
of
a
one-level
gap
in
directory
tree
between
between
the
grandfather
and
the
and
the
entire
ancestors
then
trying
to
go
through
and
do
linkage
for
everything
that
didn't
get
tagged
might
be
the
wrong
approach
we
might
want
to,
or
we
probably
do
want
to
when
we
find
something
that
is
not
that
hasn't
been
tagged.
We
probably
want
to
try
and
scan
from
it
up
and
down
the
tree.
A
If
that
makes
sense,
like
you
know,
we
find
file.
Foo
wasn't
tagged,
here's
its
back
trace!
Let's
see
how
far
back
up
its
factories,
we
can
find
that
it's
fine
stuff
connected
and
then
okay,
we
cannot
even
see
the
ancestor
in
and
that
ancestor
isn't
connected
to
the
tree.
What,
but,
let's
try
scanning
forward
from
that
ancestor.
B
So
you
well
when
we're
in
the
offline
world,
and
we
once
can
forward
that
I
mean
it's
kind
of
doable.
You
yeah,
so
you
if
you'd
identified
a
particular
der
frag
I,
was
a
particular
directory.
I
know'd
there
wasn't
linked
into
the
metadata
tree,
and
that
was
your
sort
of
lice
point
you.
B
What
would
you
do
you
fight
you'd,
find
all
this
fragments
and
you
would
potentially.
B
Decide
that
you
were
happy
with
everything
that
was
you
need
to
see.
You
need
a
second
stage
for
going
marking
everything
beneath
it
right,
so
you
need
a
stage
for
binding
on
fragments
in
that
directory,
and
then
you
need
to
recursion
and
tag
everything
down.
Let's
say
this
is
like
a
my
LinkedIn
in
that
it's
linked
into
something
just
not
the
root,
and
then
you
would
go
back
and
do
your
general
purpose,
repair
and
except
you'd,
be
respecting
both
kinds
of
tags.
A
B
B
Karine
I
I
think
the
reason
I
was
sort
of
intuitively,
inserting
that
was
some
that
one
of
them
is
coming
from
a
nominal
online
MDS
and
one
of
them
is
the
coming
from
the
offline
tool.
But
at
the
point
that
you're
actually
respecting
the
flags
and
doing
a
recovery
I,
don't
think
you
treat
them
any
differently
so
yeah,
maybe
in
a
BBM,
maybe
they're
not
meaningfully
different.
A
A
Anyway,
so
yeah
I'm
just
trying
to
try
and
think
about
how
we'd
go
about
courting
those
and
also
I
mean
I'm,
not
sure
we
want.
We
want
to
have
separate,
separate
sort
of
tagging
mechanisms.
I
think
we
might
just
want
to
have
like
a
limited
sort
of
MDS
running
that
can
they
can
do
this,
that
makes
sense,
could
do
which
Pollock
we
ought
to
be
able
to
do.
A
B
Maybe
we
could
deliberately
spin
up
a
sort
of
micro
MDS
that
doesn't
have
a
fashion
map
or
an
MD
log
or
any
of
those
things
yeah
I,
just
I'm.
It
makes
me
leave
a
Quizzle
right
now,
but
I
just
have.
B
B
That
right
so
right
now,
if
we,
if
we
wanted
a
baby
MDS,
we
would
be
relying
on
sort
of
strategically
placed
if
statements
to
make
sure
that
it
wasn't.
You
know,
going
rogue
and
doing
things
they
shouldn't
and
I'd.
Much
rather
be
relying
on
the
object,
so
I
haven't
been
constructed
to
begin
with,
but
only
as
you
say,
they'll
be
a
change.
It's
not
something
we
can
do
with
the
current
code.
A
A
B
B
Well,
we
could,
we
could
make
it
only
inject
the
first
level
of
parent,
perhaps,
and
that
way,
if
you
then
came
and
scan
the
metadata
pool,
you
would
find.
Oh,
you
know
here's
a
disconnect
pioneers
of
this
kinetic
own
ears,
a
disconnected
guy,
and
for
that,
when
we
scan
in
the
metadata
pull
the
definition
of
disconnected
would
just
be.
Is
the
immediate
parent,
absent
and,
and
so
that
would
then
during
thats
kind
of
the
metadata
pool,
we
would
get
a
much
hopefully
much
shorter
list
of
Harold
Lester
frogs.
B
A
B
Just
I'm
really
I'm
looking
for
ways
that
avoid
ever
having
a
big
list.
Oh
I
notes,
because
in
the
case
of
like
losing
your
whole
metadata
pulled,
that
list
is
the
list
of
every
I
node
in
the
system.
Yeah.
A
B
Okay,
so
right
so
you're
talking
about
the
case
where
there's
a
there's,
a
splice
in
the
metadata
tree,
such
fast-forward
scrub,
it
wasn't
a
mark
retreat
as
a
row
labels
my
file
as
had
a
linkage,
and
then
we
go
and
in-depth
new
ink
new
style
linkage
the
file
because
it
was
intact
and
that
won't
end
up
with
double
linkage
for
a
file.
Yeah.
B
To
create
a
tangle
of
VO
knows
that
should
be
every
directory.
It
would
just
look
like
a
derp
Frank
right.
It
would
get
a
frank
with
a
different
name.
So
maybe
we
should
inject
linkage
the
I
notes
to
a
derp
rack,
but
rely
on
these
flags
indicating
that
it's
a
a
not
not
fully
trust
worthy
one
and
to
inform
the
subsequent
phase
that
goes
and
cleans
this
Queens.
This
mess
up
once
things
are
linked
back
in.
B
A
I'm,
okay,
I'm
still
got
seven
minutes,
left,
okay,
so
yeah
so
I
guess.
What
we
would
do,
then,
is
that
when
we're
doing
a
tagging,
if
we
had
like.we
would
move
on
set
it
up
so
that
the
tagging
would
inform
us
of
the
in
like
it
would
fail
if
there
was
already
a
tag
set
and
then
we
could
create
a
list
of
doubling
files
from
that
right
and
that's.
B
I
think
code
leads
to
its
anyway
right,
because
that's
one
of
the
world's
grab
already
needs
to
do
so.
It
would
be
a
case
of
making
sure
that
that
side
of
things
happened
again
after
we've
done
any
metadata
linkage
in
and
then
finally
making
sure
that
once
we
detected
double
linkage
of
files,
we
had
a
way
to
better
yeah.
A
And
I
mean,
and
if
we
were
like
marking
everything
that
was
injected
as
an
injected
life
Lincoln
less
trustworthy
than
others,
then
you
know
we
could
tell
that
they
just
feel
like
I.
Yes,
you
are
injected
you're
bad
or
if
they
were
both
injected.
We'd
have
to
go
check
the
versions,
but
we
could
do
that
yeah.
A
A
A
B
Know,
there's
like
15
of
them,
but
basically
they're
to
detail
to
go
over
here.
Okay,.
A
A
All
right,
I
think
we're
done
then
Patrick.