►
From YouTube: A Device By Any Other Name by Sara Hartse & Don Brady
Description
From the 2019 OpenZFS Developer Summit
slides: https://drive.google.com/open?id=1rHe6tbVc7IXDmM7ICWhY9Y7CWzxGsuS9
A
Basically,
the
problem
we're
trying
to
solve
is:
there
are
a
lot
of
different
choices
when
it
comes
to
identifying
devices
on
Linux,
it's
important
to
choose
the
right
ones
so
that
they
interact
properly
with
CFS
and
with
you
ask
user.
So
the
first
concept
is
the
idea
of
the
CFS
P,
so
the
CFS
needs
to
be
able
to
uniquely
and
consistently
identify
devices
so
that
can
reconstruct
the
same
pool
after
exporting
it.
So
CFS
needs
to
know
which
device
is
which
and
how
to
find
it.
A
If
you,
if
you've
exported
this
other
concept,
which
is
a
little
more
nebulous,
is
the
idea
of
a
display
name,
and
this
is
more
the
human
facing
identity
of
the
device.
You
want
something
so
that
you
can
match
the
devices
that
are
in
your
machine
and
in
yours,
equal
to
their
corresponding
devices
in
your
VM
or
cloud
management
software,
so
that
oh
I'm
going
to
remove
that
device.
Not
this
one
allowing
you
to
add,
remove
and
expand
the
devices
that
you
need
you,
and
so
our
product
exposes
this
device
management
option
to
our
users.
A
A
So
here's
just
a
couple
examples
of
the
multitude
of
choices
you
have
for
device
management
and
some
examples
of
common
actions
you
want
to
do
you
know
creating
a
pool
you're
like
what
are
my
device
options.
Stp
looks
great
and
then
you're
like
oh
crap,
I
should
have
used
a
different
link.
You
can
do
zpool
import
g2
pick
a
different
device
link
option
for
your
pool.
You
can
add
devices
some
example
of
using
Azure
paths.
You
can
remove
devices
and
then
expanding
biceps.
C
B
Yeah,
so
for
those
of
you
familiar
with
there
that
have
come
from
the
Lumos
background,
you're
probably
wondering
like
what
are
they
talking
about
because
on
the
Lumos
you
had
this
nice
uniform,
C,
0,
T,
0
and
D
0,
and
it's
like
it's
very
simple
and
all
the
example.
You
know
cream
pool
tank
always
had
those
like
nice,
simple
names
and
so
on
on
illumos.
B
That
c0t
field
name
is
actually
a
link
and
it's
a
points
feel
like
where
the
device
is
in
underlying
bus
and
whatnot
and
then
there's
this
other
concept
called
the
device
ID,
which
is
that,
like
this
uniquely
identifies
the
disk
and
on
illumos
that's
what
used
to
open
up
the
pull
devices.
So,
even
though
you
know
you
can
move
the
disk
around
it'll,
always
open
the
right
device.
D
B
Referred
to-
and
you
can
say
various
various
different
links
there
and
what's
going
on
on
Linux-
is
that
the
kernel
actually
scans
the
devices
as
they
come
into
the
system.
Asynchronously,
so
FDA,
SD
BSD,
see
those
names
will
shift
around
so
they're,
not
really
good
candidates
be
opening
your
device
if
you
store
it
in
the
cache
file
for
the
poll,
because
they're
not
going
to
be
practised
so
on
Linux,
you
know
to
get
that
sort
of
consistent.
You
want
the
persistent
or
a
consistent
naming
that
live.
B
You
dev
or
the
you
have
thing
that
runs
in
the
kernel
are
going
through
that
in
a
second
we'll
give
you
a
link
that
that
is
persistent,
so
that
that's
what
you
want
through
your
opening
your
device
and
on
Linux
we
don't
the
concept
of
dev
ID
came
in
later,
but
we
use
the
pass,
the
actual
pass,
which
we
don't
use
it
on
Lumos.
We
use
it
on
Linux
to
do
the
open.
So
you
want
that
thing
to
be
in
your
system.
You
don't
want
it
to
be
sta.
B
Going
into
a
little
more
details
on
Linux,
there's,
there's
sort
of
two
components
to
this
whole
device
naming
scheme,
there's
Sisyphus,
which
is
virtual
file
system
people
out
there
familiar
with
to
surpasses
or
profess
on
Linux.
The
kernel
man
is
this
thing
called
Sisyphus.
It
has
information
about
the
devices
that
are
published
if
you
will
and
you
can
use
that
for
finding
out
about
the
device
like
its
serial
ID
or
things
like
that.
B
You
can
also
use
it
to
control
state
like
if
you
want
to
rescan
the
bus
things
like
that
Yuda,
which
is
in
user
space
instead,
as
a
consumer
of
what
the
kernel
produces,
the
kernel
will
send
an
event
that
says:
I
have
this
new
disc
SDA
and
you
DIF
will
come
along
and
it'll.
It
will
say:
oh
I
want
to
create
these
these
persistent
links.
You
know
we
use
different
rules
that
you
can
write.
There's
some
stock
ones
that
come
on
each
can
see
and.
B
A
Yeah
so
now
I'm
just
going
to
go
through
a
couple
tools
that
we
found
helpful,
we're
trying
to
figure
out
like
what
are
the
options
like
dogs
that
ideally
they're,
these
links
that
are
made
available
that
are
persistent.
What
kind
of
complicating
factor
is
we're
talking
about
virtual
machines
with
virtual
devices,
so
what
does
it
mean
for
our
tool
device
type
of
serial?
It's
not
a
real
device,
doesn't
have
serial.
A
We
found
is
basically
different.
Fathers
have
kind
of
answered
this
question
differently,
and
that
has
a
lot
variation,
but
LS
lock
is
super
helpful
for
just
getting
a
picture
of.
What's
out
there,
Alice
Kathy
similar
accepting
devices
you
can
use
the
tree
command.
This
is
super
mobile
for
figuring
out
just
like
what
are
the?
What
are
the
multitude
of
links
that
exist,
so
you
can
see
some
serial
number
like
ID
links,
partition
IDs
once
created
things
like
that.
A
A
Paths
available,
and
then
you
know,
maybe
a
monitor,
tells
you
what
you
know.
Events
are
happening
in
real
time,
so
you
can
see.
If
devices
come
online
have
links
created,
you
can
see
like
expand
events
or
new
events,
anything
and
then,
of
course,
CB
c.
Db
is
really
great
for
telling
me
what
is
the
FS
thinks
is
going
on,
so
this
is
kind
of
the
ground.
Truth
of,
like
I,
told
zpool,
to
create
the
school
based
on
this
stuff.
What
does
the
actual
meat
of
think
is
happening?
A
D
C
B
B
At
most,
it
just
worked
beautifully
and
we
were
like
this
is
nice.
When
we
came
over
to
Linux,
we
found
that,
like
there
was
no
buy
IDs
being
generated,
so
we
have
to
actually
dig
into
the
ESX
to
figure
out.
There
was
a
setting
that
was
missing
and
once
you
set
that
you
would
generate
new
UI
deeds
so
that
you're
gonna
have
person
names,
and
you
can't
like
in
the
same
way
that
the
Sdn
names
we're
not.
It
would
move
around
so
that
we
didn't
so
here's
an
example
of.
A
A
B
Then
I'm
a
ws,
there
was
actually
nothing.
You
know
what
this
is.
Do
you
get
info
and
you
have
a
previous
slide.
You'd
have
all
these
links
and
if
you
did,
the
tree
would
see
them
all
on
them.
You
just
don't
have
that
you
have
this
one
single
X,
very
terse
name,
and
but
we
did
find
out.
My
contracts
are
going
to
tell
it
is
persistent,
so
this
is
sort
of
the
the
outlier
or
the
doesn't
cause
that
the
typical
roll
is
/dev.
B
A
A
B
A
A
But
they
do
provide
their
own
set
of
you,
def
rules
which
come
installed
by
default
with
the
links
after
agent,
and
so
we
decided
start
using
those.
You
can
look
at
the
rules
themselves.
Basically,
they
generated
it
based
on
the
actual
physical
path
which,
hopefully,
since
there's
not
really
a
way
to
like
move
around
devices
and
catcher.
A
A
A
Like
to
add
rare,
this
works
well
as
a
CFS,
the
man's
as
a
and
like
human,
readable
explaining.
So
that's
where
we
are
across
all
different
parts
right
now,
it's
kind
of
main
takeaways
from
this
options
for
device
gaming
are
not
consistent
across
this
four
virtual
platforms,
as
I
said
before
the
question
of
like
what
does
it
ease
for
a
virtual
device
to
exist
like
what
is
a
beautiful
device
to
be
a
device?
Have
a
serial
number
to
exist
in
a
like
location?
A
So
it's
worth
especially
if
you're
working
across
a
bunch
of
black
ones,
taking
time
to
understand
which
identifiers
are
available
and
which
ones
are
most
useful.
On
these
cases
and
I
highly
suggest
testing
two
different
device
operations,
especially
expanding
devices,
either
expand
or
whatever
firm
support
and
then
finally,
which
is
kind
of
actually
we're
going
to
move,
especially
because
we
are
trying
to
make
this
work
across
so
many
platforms,
we're
kind
of
special
casing
each
news
room
that
we
support
but
think
about
writing
your
own
rules.