►
From YouTube: April 2021 OpenZFS Leadership Meeting
Description
At this month's meeting we discussed: corrective zfs recv; blake3 checksum; LXD containers; ZFS on Object Storage
meeting notes: https://docs.google.com/document/d/1w2jv2XVYFmBVvG1EGf-9A5HBVsjAYoLIFZAnWHhV-BM/edit#
A
Welcome
everyone,
it's
one
after
the
hour,
so
we'll
get
started.
I
see
that
alan
is
wearing
a
great
t-shirt
and
perhaps
has
rearranged.
You
rearranged
your
office.
Yes,
I
turned
my
desk
sideways
in
order
to
try
to
feel
like.
I
wasn't
in
the
same
place
anymore,
cool
yeah,
so
you
have
a
new
office.
That's
good
excuse.
A
Cool,
we
have
a
a
good
variety
of
topics
on
the
agenda
today,
so
we'll
start
working
through
them.
The
first
one
that
I
had
was
about
userland
zfs.
A
A
C
Yeah
hey
so
I
took
some
time
and
worked
on
the
corrective
receive
patch
and
I
have
it
in
a
spot
where
most
of
the
tests
are
passing,
except
for
this
one,
free
bsd
test
that
for
redacted
sends
that
causes
freebsd
only
to
panic
and
apparently
not
every
single
time,
and
without
my
patch
I
can
so
I've
been
able
to
reproduce
that
on
my
vm
too,
and
without
it
it
doesn't,
but
I
don't
think
I'm
doing
anything
in
the
path
where
healing
flag
isn't
set
for
receive.
D
C
A
Yeah
john
who's,
on
the
call
I
think
john
kennedy
might
have
written
that
test
and
paul
who
I
don't
paul
diagnoli
wrote
the
redacted
center
received
code.
I
don't
see
him
on
the
call.
C
A
Yeah,
that's
great
yeah.
This
is
the
code
that
you
posted
quite
a
while
ago,
but
yeah
great
to
see
that
making
progress
on
that.
Do
you
wanna,
because
it's
been
a
couple
years,
maybe
give
just
a
quick
overview
of
like
what
the
point
of
this
is
and
how
and
how
it
works
so
that
people
who
might
be
interested
can
can
realize
that
they
are
interested
and
help
you
review
it.
C
Sure
sure
yeah
there,
the
talk
from
a
couple
years
ago
from
the
zfs
developer
summit
is
linked
in
the
in
that
ticket.
So
somebody
can
go
and
listen
to
that
presentation,
but
I
can
give
a
quick
overview.
So
this
is
a
patch
that
enables
you
to
take
a
send
file
and
use
it
to
heal,
corrupted
data.
C
On
the
pool,
so
without
really,
if
you
have
permanent
corruption
in
your
data
set,
you
can't
do
much
about
it
other
than
destroy
and
re-receive
it.
If
you
have
a
backup
right,
but
this
enables
you
to
use
a
send
file
from
a
well
somewhere.
Maybe
you
have
it
backed
up
that
data
set
somewhere
and
you
can
use
a
send
file
from
the
backup
system
to
heal,
corrupted
data
and
some
of
the
things
this.
So
this
patch
can
re-encrypt
data
re-compress
it.
C
So
if
the
those
settings
don't
match
between
source
and
destination,
it
takes
care
of
those
things
of
those
details
and
there's
an
arbitrary
restriction
of
the
guide
of
the
snapshot
has
to
be
the
same
as
the
snapshot
you're
healing.
So
basically,
the
send
file
has
to
come
from
the
same
snapshot
we,
which
doesn't
it's.
C
I
say
it's
arbitrary
restrictions,
since
it
doesn't
quite
always
have
to
be
that
way
to
be
able
to
heal,
but
it
seems
to
make
sense
to
kind
of
enforce
that
and
make
sure
that
the
data
you're
you're
ingesting
is
can
be
used
for
healing
for
sure
yeah,
that's
kind
of
the
the
overview.
I
think
that
should
be
cool
starting
point.
Yeah.
A
And
I
remember
back
in
the
day
there
was
some
discussion
about
like
tooling
around
creating
like
a
smaller
scent
stream.
Was
that
did
that
ever
happen?.
C
No,
I
I
didn't
do
that.
In
fact,
I
also
took
out
the
spill
block
healing,
so
this
only
does
write
records
now
and
I'm
probably
going
to
look
at
the
spill
block
after.
A
Yeah
cool,
it
seems
like
this,
the
there's
a
very
also
very
old
and
incomplete
pr
from
a
deflex
intern,
about
being
able
to
better
identify
which
blocks
were
damaged
and
like
tell
you
which
snapshot
it
appears
in
and
stuff.
It
seems
like
that
would
be
really
helpful
for
figuring
out
like
what
send
you
need
to
do
to
do
the
healing
properly
or
even.
E
C
Yeah
we're
giving
you
all
of
the
snapshots
that
reference
particular
block.
A
A
Yeah
yeah,
so
if
somebody
is
interested
in
this
kind
of
stuff,
then
that
we
could
definitely
point
you,
I
mean
you
give
mentoring
to
somebody
who
wants
to
pick
up
that
pr,
since
we
probably
aren't
going
to
do
that
in
the
next
six
months
or
so.
A
Yeah
I'll
take
a
look
at
that,
maybe
I'll
see
if
I
can
get
paul
to
take
a
look
at
the
code
review
as
well.
I
mean
other
folks
who
are
interested
in
corruption
and
and
and
center
receive.
I
think
this.
This
is
probably
a
nice
pull
request
to
review.
B
C
B
D
Yeah,
that's
me:
I'm
from
germany,
hello,
welcome,
yes,
break
three!
I've
been
in
for
about
three
weeks
or
four.
I
don't
know.
Currently
it
was
very
fast
to
implement,
but
then
I
had
a
problem
with
the
freebsd
support
and
because
there
are
undefined
references
in
the
open,
cfs
pumped
cargo
motor,
I
don't
know
how
to
implement
and
implement
this
properly
into
the
bsd
stuff.
I'm
a
linux,
only
user,
so
I
run
into
problems
to
make
it
ready
to
to
to
to
submit
really
submitted
it
because
yeah
now
this
is
the
problem.
D
D
There,
this
is
a
testing
on
the
freebsd
machines
shows.
Therefore,
this
is
very
clear.
D
A
I'm
not
sure
totally
understood,
but
are
you
saying
that,
like
within
the
linux
kernel,
there's
there's
like
infrastructure
for
doing
checksums?
Yes,.
A
Expect
so
I
I
put
a
link
in
the
doc.
Someone
else
on
the
freebsd
side
has
been
working
on
the
same
thing
where
we
have
in
the
freebsd
kernel.
Our
crypto
framework
has
support
for
doing
the
sha
to
offloading
for
x86,
mostly.
A
Have
it,
whereas
the
intel
ones
don't
but
and
for
the
arm,
64.
yeah.
D
A
I
posted
a
it's
a
bit
of
an
old
patch
now,
but
it
looks
at
plugging
that
in
on
the
freebsd
side,
and
you
can
just
see
there's
a
we
made
a
os
linux
version
of
it
that
just
returns
e,
not
sub
for
so
far
but
could
be
plumbed
to
whatever
function.
Would
you
would
call
in
the
linux
kernel
to
do
the
the
checksum.
A
G
A
Yeah
so,
unfortunately,
using
that
using
the
the
kernel
encryption
routines
on
linux,
because
you
know
the
opencvs
project
is
not
using
any
gpl
only
exports,
that's
not
really
a
great
option,
which
is,
I
think
why
the
the
icp
stuff
is
from
illumina.
So
that's
all
code,
that's
cddl
license
that
was
copied
from
lumos
all
the
c
code
and
I
think,
there's
maybe
some
very
light
acceleration
in
there
but
yeah.
A
I
totally
believe
that
there's
more
optimized
routines
that
we
could
use
and
if
we
can
find
ones
that
are
appropriately
licensed,
I
mean
we
could
bring
them
in
like
if
these
freebsd
ones
are
bsd
licensed.
We
could,
potentially
you
know,
copy
those
into
the
zfs
source
space
and
replace
the
icp
illumios
ones.
The
main
bits
of
it
are
assembly
files
from
intel
or
something
that
are
yes.
A
And
those
are,
I
think,
dual
license:
bsd
and
gpl.
Yes,
all
right
yeah.
I
know
the
the
person
doing.
The
work
on
freebsd
is
mostly
interested
in
the
amd
like
ryzen
and
epic
offload
of
of
sha2,
which
I
don't
know
if
it's
exactly
the
same.
D
A
So,
just
before
you
go
to
the
next
thing
for
the
blake
three,
the
can
you
give
a.
I
remember
I
researched
this
a
while
back,
but
can
you
give
a
summary
of
like
how
does
blake
three
compare
to
the
other
tech
swimming
algorithms
like
which
is
which
ones
is
it
faster
than
which
ones
is
it
more
secure
ish
than
like?
What's
what's
kind
of.
D
D
It's
and
and
on
r,
is
also
a
lot
of
faster.
I
I
I
checked,
but
not
not
really
a
bit
faster,
but
there's
also
there
must.
The
block
must
have
some
more
bits
as
at
about
4k.
Also,
then,
screen
is
also
a
lot
of
faster,
but
that
would
be
also
a
question
which
block
sizes
should
we
benchmark.
Currently,
this
is
very
fixed
within
fletcher,
and
this
shouldn't
be
fixed
because
you
can
set
up
different
record
sizes
and
then
you
have
also
a
different
speed
for
different
algorithm.
D
So
I
would
make
the
hashing
bench
a
file
where.
D
A
D
A
I
mean
I,
I
would
see
a
lot
of
value
in
just
seeing
the
results
like
if
you
just
made
a
table
and
we're
like
hey
like
on
a
modern.
You
know
cpu
that
has
all
the
extensions
here's
how
each
algorithm
performs
for
each
block
size.
I
think
that,
like
being
able
to
regenerate
that
on
demand
all
the
time
you
know,
I
don't
think
that's
something
that
needs
to
get
run
more
often
than
like
they
come
out
with
new.
You
know
new
instructions
or
whatever,
which
is
only
maybe
once
every
five
years
or
something.
D
E
A
A
D
Yes
and
ellen
you
would
make
me,
would
help
me
help
me
with
the
freebsd
stuff,
and
then
we
can
make
the
break
free.
A
Yeah,
like
looking
at
it,
looks
like
it's
just
having
trouble
finding
a
dot
h
file
that
comes
from
the
lumos
compat
stuff.
It
might
just
be
a
matter
of
adding
an
extra
path
to
the
include
thing
in
the
make
file
or
something.
A
Cool,
so
did
you
were
there
other
things
that
you
wanted
to
talk
about:
the
shots,
2
arc64
stuff.
D
I
could
make
some
code
and
do
it
into
into
opencfs.
I
have
no
problems
with
this.
I
I
would
reuse
other
ones
code
make
it
so
that
it
fits
and-
and
then
it's
it's
in-
but
I
when
there's
a
need,
I
think
for
for
linux,
there
is
a
need
because
I
we
can't
use
the
fast
stuff
from
the
camera.
So
I
think
I
would
do
it
with
extra
pull
requests.
A
D
A
A
Cool,
thank
you
and
I
think
the
next
topic
that
we
had
was
the
lxd
containers.
Allen
yeah.
So
my
company,
clara,
is
doing
a
bunch
of
work
right
now
to
add
support
for
lxd
containers
in
the
same
vein
as
jails
and
zones.
A
So
you
can
delegate
permission
so
when
you
basically
jail
a
data
set
to
a
username
space
in
a
for
lxd,
then
root
in
that
namespace
can
now.
You
know,
do
zfs
commands
and
create
new
data
sets
and
so
on,
but
they
can
only
see
the
data
sets
you've
delegated
to
their
username
space.
A
So
basically
it
hooks
up.
The
enforcement
of
you
know
is
global
zone
and
the
similar
primitives
that
are
in
zfs.
So
when
you
call
dev
zfs
from
inside
the
username
space,
you
can
only
see
the
data
sets
that
have
been
delegated
to
that
namespace
and
the
parents
that
you
have
to
see
to
get
back
to
the
root
or
whatever,
and
you
can
create
new
data
sets
and
so
on,
and
they
happen
all
inside
the
namespace.
A
The
next
thing
we're
working
on
now
is
hooking
up
the
user,
id
and
group
id
mapping
currently
without
that,
when
you
create
a
file
as
one
of
the
kind
of
pseudo
user
ids
inside
the
namespace,
the
file
ends
up
showing
up
as
being
owned
by
user
id.
You
know
264
thousand
and
one
which
is
the
actual
uid
in
the
system,
but
in
the
namespace
that's
supposed
to
show
up,
as
you
know,
a
low
number
normal
user
id
and
adding
the
mapping
there
and
so
on.
A
The
main
goal
behind
this
for
our
customer
is
to
be
able
to
run
docker
using
its
zfs
driver
inside
of
an
unprivileged
lxd
container,
so
they
can
run
their
ci
stuff
for
multiple
projects
on
the
same
machine
and
inside
the
container
docker
can
do
the
zfs
crates.
It
needs
to
to
run
that
way,
but
we're
interested
in
what
other
use
cases
people
might
have
for
this
and
what
you
know
test
cases
would
make
sense
for
it.
A
You
know
we're
looking
at
adding
the
right,
zfs
test,
suite
editions
for
this
and
the
question
we
have
a
lot.
A
Is
you
know
what
makes
sense
here
and
what
can
we
expect
to
exist
on
the
the
ci
machines
and
what
won't
you
know
we,
you
know
our
clients
use
case
is
mostly
the
the
ubuntu
lxd,
tooling
and
so
on,
but
I
imagine
we'll
mostly
use
the
I
think
it's
the
unshare
command
or
whatever
they
use
to
create
a
namespace
in
linux,
for
the
tests
to
keep
them
basic
and
so
that
they
should
work
on.
You
know
all
the
supported,
kernels
and
so
on,
but
any
input
people
have
about
this
would
be
helpful.
G
Yeah
so
one
from
me
it
would
be
similar
scenario
scenario
but
using
podman
on
rel,
so
it
would
be
a
podman
container
inside
podman
containers.
G
G
Do
you
think
that
the
work
on
the
zfs
site
will
also
require
some
changes
in
the
zfs
driver
inside
the
docker.
G
Okay,
so
if
it
won't
affect
the
docker
driver,
it
should
also
not
affect
the
podman
driver
so
that
that
would
be
awesome,
and
I
would
love
to
test
that.
A
I
Kind
of
related
to
this-
I
don't
know
if
there
would
be
interest.
I
haven't
touched
this
in
forever,
but
there
is
a
change
and
I'd
have
to
ask
to
see
if
it
was
who
originally
did
this
at
giant,
but
for
anyone
that's
used
zfs
on
newer
versions
of
solaris.
You
know,
there's
you
for
things
like
zones
which
may
be
applicable,
then
for
jails
or
whatnot.
There's
a
basically.
I
I
guess
it's
done.
It's
like
an
alias
so
that,
instead
of
having
when
you
when
you're
in
your
container,
whatever
you
want
to
call
it
instead
of
seeing
the
whole
path
to
whatever
that
dedicated
data
set
is
since
it
can
be
long,
it
can
basically
aliase
it
within
that
container
to
like
just
the
name
of
it.
So
so,
then
you
can
all
your
commands
and
everything
use
that
and
like
and
at
least
in
this
implementation
I
don't
know
how
it
was
done
on
in
solaris,
but
with
this.
I
Basically,
there
is
a
an
alias
property
which,
in
this
case
on
you,
know
in
a
lumos,
there's
also
zone
specific
data
which
is
kind
of
like
thread
specific
data,
but
it's
per
zone,
and
so
it
kind
of
sets
the
alias.
So
then,
when
you,
you
issue
the
octals
it'll
unalias,
the
data
set,
you
know
before
it
issues
it,
but
so
there's
code
for
that,
like
I
haven't,
touched
in
forever
because
it
I
believe,
though
it
pretty
much
worked
aside.
I
There
was
just
some
concerns
where
it
was
kind
of
abusing
or
reusing
certain
struct
members.
That
probably
shouldn't
have
done
that.
But
I
I
know,
if
that'd
be
interested
in
like
yeah,
in
conjunction
with
that.
A
I
Yeah,
it's
the
only.
I
guess,
potential
issue,
which
really,
I
guess,
is
something
that
can
be
done
when
you're
creating
the
container
is.
Obviously,
if
you
have
two
different
data
sets,
you
know
where
the
you
know
in
terms
of
the
the
last
portion
of
the
name
is
the
same.
That
could
cause
a
conflict,
although
I
think
that's
you
know
probably
good
enough
just
to
say
you
know,
don't
do
that.
A
I
Well,
I
just
mean
like
if
you
try
to
like
okay,
you
delegate,
two
data
sets
to
your
container
and
they
happen
to
have
the
same.
You
know
the
last
component
of
each
of
those
names
happens
to
be
the
same.
Of
course
when
you
alias
it,
but
you
know
it's
probably
one
of
those
things
where
you
could
say
you
know
what
you
know.
Don't
do
that
you
are
just
you
know,
just
fail.
I
You
know
when
you're
setting
up
a
container,
it
says
you
know,
hey
that's
ambiguous
yeah,
I
mean
I
it's
probably
you
know
something
to
note,
but
I
don't
know
if
it's
something
that
would
really
be.
You
know
an
issue
in
practice,
but
just
you
know
that
is
out
there
that'd
be
the
only
little
gotcha
and
again
I
don't
since
I
don't
know
how
solaris
did
it.
I
don't
know
you
know
if
they
have
the
same
issue
or
if
they
did
something
else
where
then
that
doesn't
cause
that
or
whatnot,
but.
I
But
yeah
I
can
try
to
maybe
something
here
the
next
couple
weeks.
I
can
try
to
update
that,
and
maybe
it
may
put
it
up
for
review
than
if
there's
interest,
although
the
only
thing
I
guess
I'll
have
to
figure
out
for
the
open,
zfs
piece
is
like
I
said
it
does
rely
on.
You
know
what
we
call
like
the
zone,
specific
data
to
hold
the
some
of
the.
A
Yeah
there's
something
similar
in
freebsd
that
we're
using
and
we
had
to
come
up
with
something
like
that
for
for
the
linux
one
as
well
to
to
keep
the
which
namespace
it's
related
to
and
so
on.
So
I
think
we
have
an
analog
for
that,
but
I'm
not
sure.
I
So
that
may
be
something:
maybe
you
can
you
know
just
that
would
mean
a
little
work.
It
may
need
some
testing
because
I
do
have.
I
have
an
ubuntu
vm.
Well,
I
can
try
to
see
if
I
can.
I
Sorry,
yeah
and
I'll
see
how
I
have
to
set
up
triset.
I
haven't
you
actually
haven't
tried
to
set
up
the
previous
vm
under
beehive
on
smart,
although
os
should
work.
I
think
people
have
done
that
just
so.
I
can
detest
it.
E
One
quick
thought:
can
you
hear
me?
Okay,
sorry,
I'm
on
my
mobile
one,
quick
thought
about
the
alias
thing
and
maximum
data
set
path
name
length.
So
I
assume
that
the
like
unaliasing
and
the
kernel
happens
pretty
early
in
the
whole
code
path.
E
So
things
might
be
a
little
surprising
if
you
like,
add
data
set
names
or
make
longer
data
set
names
inside
the
container,
and
you
do
not
know
how
long
the
alias
is
that
is
hidden
from
you
inside
the
container,
and
I
know
that
at
least
in
zero
bill
we
have
some
basic
checks
that
check
whether
dataset
name
will
exceed
the
maximum
dataset
name
length.
E
Oh
and
one
one
other
concern
with
regards
to
the
to
the
linux:
support
for
the
jail
property,
and
how
are
you
identifying
the
the
container
inside
the
kernel.
A
E
Okay,
and
so
the
idea
is
to
extend
lxd
to
know
about
the
user,
ns
sub
command
and
then
do
the
delegation.
A
Maybe
I
don't
I'm
not
really
worried
that
much
about
the
integration
with
the
linux
tooling
yet
is
just
make
it
actually
work
so
far,.
E
A
A
Cool
I.
A
Was
all
the
things
that
we
had
on
the
agenda
if
there
are
other
things
that
folks
don't
talk
about
or
questions?
We
can
do
that
now.
We
could
also
talk
about.
H
I
met,
if
possible,
I
hoped
ryan
murdered
to
do
that,
since
it
was
his
project,
but
I'd
like
just
to
attract
attention
to
apr,
which
is
11919,
which
is
we
talks
about
problem
with
extended
attributes
porting
between
freebsd
and
linux.
Originally
in
illumis,
science
historically
happens
that
we
have
two
completely
incompatible
implementation
and
we
at
existing
particularly
heat.
This
compatibility
issue
science.
We
have
two
products
on
freebsd
and
linux,
which
are
at
this
point
incompatible.
H
So
all
the
things
described
in
a
request,
if
short
on
linux,
I
think
user
space
attributes
are
prefixed
with
a
user
dot
and
and
then
name
on
freebies
users
knows
this
prefix
and
question
how
to
make
it
com
compatible.
So
if
somebody
have
interesting
area
of
extended
attributes-
or
I
have
ideas,
I'd
like
to
welcome
you
to
that
pr.
H
A
Yeah
I
haven't
looked
at
that
very
deeply,
but
thank
you
for
taking
on
that
bit
of
incompatibility.
That
is
one
of
those
things
that
hopefully
we
can
avoid
those
in
the
future.
You
know
through
the
the
coordination
of
open,
gfs
and
obviously
freebsd
and
linux
are
using
the
same
repo
now,
but
for
the
other
for
the
other
operating
systems
as
well
cool.
Well,
I
can
talk
a
little
bit
about
a
new
project
that
we're
working
on
at
delfix,
which
is
zfs
on
object
storage.
A
So
the
idea
is
like
today
you
create
a
storage
pool.
It's
on
some
disks.
You
know
block
storage.
We
want
to
make
zfs
so
that
it
can
run
on
top
of
an
object,
store
like
amazon,
s3
or
on-prem
ones
like
minio
or
netapp
has
like
object,
store
product
as
well.
A
The
I
think
that
there's
been
some
attempts
or
thoughts
about
this
before
the
one
kind
of
interesting
thing
that
we're
bringing
to
is
like
our
use
case
is
databases,
so
we
need
this
to
work
well
and
perform
well,
even
if
you're,
using
small
block
sizes,
you
know
the
the
performance
of
object.
Stores
generally
is
like
the
latency
is
very
large,
and
you
also
need
to
use
large
objects
to
get
good
throughput.
A
So
having
a
simple
like
one-to-one
mapping
of
zfs
blocks
to
objects,
you
know,
could
work
well
for
like
archive
archival
use
cases
where
you
can
set
record
size
to
16
meg,
but
for
our
use
case,
where
we
have
databases
with
record
size
8k
that
would
not
work
at
all
for
performance,
so
we're
taking
like
a
bunch
of
zfs
blocks,
combining
them
into
one
object
and
then
storing
that
with
object,
store.
A
A
The
goal
is
that
you
should
be
able
to
get
performance,
that's
similar
to
a
block
based
storage
pool,
if
the,
if
you
have
enough,
if
you
have
a
big
enough
block
based
cash,
that
you're
getting
like
more
than
90
cash
hits
in
the
in
that
cash.
So
in
principle
this
is
kind
of
the
same
tech.
The
same.
A
In
terms
of
having
you
know
a
caching
layer,
that's
much
faster
than
the
storage
of
the
main
pool,
but
the
l
torque
as
it
exists
today
is
not
really
doesn't
cut
it
for
our
use
case,
then
one
of
the
big
problems
is
that
the
amount
of
memory
required
to
manage
the
l2
work
is
really
big,
because
it's
proportional
to
like
the
number
of
blocks
that
are
in
the
beltwork,
because
there's
a
record
for
each
of
those
blocks
in
in
memory,
and
so
we
want
to
have
really
big
hashes,
like
hundreds
of
terabytes
and
have
small
record
sizes.
A
So
you
have
lots
and
lots
and
lots
and
lots
of
blocks
so
we're
looking
at
basically
creating
a
replacement
for
the
ltwork
that
would
store
the
index
inside
of
the
cache
itself
rather
than
requiring
it
to
be
in
memory.
So
you
can
have
unlimited
size.
L
twerk
managed
with
a
fixed
amount
of
memory.
B
A
So
those
are
the
two
big
components
that
we're
working
on
implementing
and
some
of
the
feedback
that
we
like
from
this
group
is
on
like
the
administrative
model
and
also
just
kind
of
questions
that
you
guys
have,
but
we
can
probably
work
on
soon
like
publishing
like
what
we
see
as
the
interface,
the
user
interface
for
this
right
now
we
have
like
a
bunch
of
new
properties
that
let
you
specify
so
there's
a
new
video
type
for
the
object
store,
there's
a
bunch
of
new
properties
that
let
you
specify
like
the
endpoint
like
the
s3,
ur,
endpoint,
url
and
yeah,
and
then
we
plan
to
support
other
protocols
as
well,
not
just
s3
protocol,
but
the
other
main
one
is
azure.
A
So
most
almost
everybody
uses
the
s3
protocol,
even
if
even
if
they
aren't
amazon
but
azure
has
their
own
protocol
for
object
store,
that's
like
basically
equivalent,
at
least
in
terms
of
the
things
that
we
would
be
using
just
the
basic
like
get
put
delete
operations.
A
A
You
know:
100
terabytes
of
right
back
cache
for
zfs2
on
block
device,
so
we're
looking
at
just
using
the
existing
zill
in
terms
of
in
terms
of
write
caching,
so
because
the
object
store
actually
can
get
very
good
throughput
as
long
as
you
have
large
enough
objects,
and
you
can
issue
enough
concurrent
put
requests
so
like
you
can
you
can
max
out
even
more
than
25
gigabits
per
second
network
on
aws,
so
you,
you
know,
the
right
throughput
should
be
very,
very
high,
but
in
terms
of
that
problem
space
I
know
nick
center
did
something
they
had.
A
They
actually
implemented
a
very
bad
cache.
I
think
they
shipped
it
in
their
product.
Maybe
they're
still
should
be
in
their
product.
I
think
that
alex
eisen
gave
a
talk
at
the
conference
like
many
years
ago
about
it.
So
you
might
be
interested
to
check
that
out.
I
good.
J
J
That
needs
to
be
done
in
either
modifying
the
zil
to
like
you
know,
perform
better
or
some
other
component,
which
is
like
a
right
back
hash
that
that
would
kind
of
be
like
a
step
in
between
you
and
the
object
store
yeah.
So
you
really
get
more
like
a
layered
file
system.
At
that
point,
yeah
we
think
like
for
our
use
case.
We
think
the
zill
will
will
work
well,
but
you
know
the
proof
is
in
the
pudding.
G
Go
ahead,
mercy
hear
me
yeah,
so
one
question
for
me
is
access
to
the
pool.
I
assume
will
not
be
clustered.
G
A
The
the
the
project
that
we're
working
on
currently
does
not
include
that
work
but
attend
future
conferences,
and
hopefully
we
will
have
more
to
say
about
that.
Yes,.
J
So
marcin
one
question
for
you
like
in
the
use
case
you're
talking
about
are
you?
Is
it
typically
the
case
that
your
containers
need
access
to
all
the
entire
pool
or
like
a
subset
of
the
pool,
or
it's.
G
For
me,
the
good
enough
situation
is
when
I
have
mounted
same
pool
on
multiple
nodes,
but
single
node
have
access
to
the
single
data
set,
so
the
data
set
doesn't
have
to
be
clustered,
but
the
pool
should
work
on
multiple
nodes
and
that's
good
enough,
and
that
should
work
perfectly
for,
for
my
case,
yeah.
G
At
the
same
time,
or
to
the
pool
yes
to
the
single
data
set
now
so
one
one
node
writes
to
the
specific
data
set,
but
multiple
nodes
write
to
the
their
own
data
sets.
G
A
A
So
when
you
mentioned
using
a
larger
block
size
for
the
object
size
for
the
object,
like
what
kind
of
scale
was
that
and
do
you
expect,
that
might
be
flexible.
A
Yeah
I
mean
it
could
definitely
be.
It
could
definitely
be
like
tuned.
The
sweet
spot
for
like
performance
is
a
few
megabytes.
So
like
one
to
eight
megabytes
on
on
s3
and
yeah,
I
mean
that
might
change.
You
know
with
different
cloud
providers
or
with
on-prem
solutions
like
min
io,
and
you
know,
that's
probably
something
that
would
need
to
be
configured
or
you
know
could
be,
could
be
configured
in
terms
of
the
target
object
size
there.
F
A
Bunch
of
stuff,
but
the
the
you
know
for
our
use
case,
we
really
care
about
the
smaller
record
sizes.
So
we
need
to
make
that
work
really
well
right.
J
Yeah-
and
the
question
I
was
going
to
ask
for
you
know
with
regards
to
like
feedback
is,
if
folks
currently
are
not
necessarily
using
zfs,
but
using
like
these
object
stores
for
different
types
of
workloads,
and
you
think
that
zfs
might
be
a
fit
there.
It
would
be
interesting
just
to
kind
of
like
send
us
that
feedback.
J
We
obviously
have
our
use
case
that
we're
very
interested
in,
but
it
would
be
good
to
kind
of
get
a
feel
for
like
what
else
is
out
there
that
that
folks
are
interested
in
kind
of
taking
advantage
of
this.
This
technology.
A
Yeah
I
mean
we
want
to
obviously
develop
this
for
our
company's
use
case,
but
we
want
to
upstream
it
and
make
it
part
of
open
zfs
as
well,
and
so
you
know
we
want
to
make
sure
that
we
aren't
missing
anything
about
use
cases
that
are
adjacent,
that
we
can
also
make
work.
Well,
you
know
without
a
lot
of
extra
effort,.
E
E
Maybe
not
exactly
an
object,
storage
use
case,
but
I
was
thinking
about
like
if
there
is
some
infrastructure
to
group
changes
together
into
object,
store
sized
blocks
right.
That
seems
like
it
could
have
some
synergies
with
regards
to
smr
drives
host
managed
smart
drives.
Absolutely
I
see
I
see
some
synergies
there
and
if
the
software
architecture
can
be
made
such
that,
like
the
the
aggregation
of
changes
into
these
larger
sized
records,
can
happen
in
a
way
that,
like
the
next
layer
down,
can
be
either
smr
drive
or
object
storage.
E
I
think
there
is
some
potential
there
that
should
be
like.
A
Yeah
I
mean,
I
think
that
so
the
all
of
this
object
store
stuff.
It's
all,
as
I
mentioned
intermediated
by
userland.
So
zfs
is
talking
blocks
up
to
the
user
line
agent.
So
so
the
zfs
kernel
is
like
right.
This
3k
block
right
this
three
and
a
half
k
block
right.
This
2k
block
sending
those
commands
up
to
the
agent,
which
is
like
just
a
process
running
on
the
same
computer,
and
then
the
agent
is
coalescing
those
into
objects
and
then
sending
them
over
the
network
to
the
object
store.
B
A
Object
numbers
same
same
name
but
right
completely
different
thing,
yeah
right,
because
you
know
when
I
first
envisioned
something
like
this,
I
was.
I
thought
there
was
value
in
trying
to
keep
a
mapping
to
the
zfs
objects
back
to
what's,
in
the
object
store,
no.
A
And
so
on,
but
I
think
with
small
ones
it
it
doesn't
make
sense
in
your
case
for
sure
yeah
and
then
you
know
we,
you
know,
zfs
has
snapshots
and
copy
on
ray
and
clones
which
are
you
know
our
product
makes
heavy
use
of
so
that
kind
of
brings
any
ideas
about
like
the
zfs.
You
know,
file
being
even.
A
The
sorry
I
just
lost
my
train
of
thought,
so,
oh
so
smr
drives
yeah.
So
you
could
imagine
like
plugging
in
like
teaching
that
userline
agent
to
be
able
to
write
to
smr
write
the
like
objects
to
smr
drives.
Instead,
I
imagine
that
since
a
lot
of
the
smr
drives
are
going
towards
what
they're
called
drive
managed
where
they
like
look
like
a
regular
drive,
they
put
a
bunch
of
smarts
in
there
to
do
the
mapping
themselves,
but
it
only
really
works.
It
only
really
performs
as
well.
A
If
you're
writing
in
big
continuous
chunks
right,
I
can
imagine
like
maybe
a
good
enough
solution
being
to
have
the
agent
just
take
each
object
and
write
it
like
say:
target
target
object
size
instead
of
three
instead
of
four
megs,
it's
100
megs
and
then
just
write
those
as
files
into
a
non-copy
on
write
file
system
right,
like
use
fat32
on
your
on
your
smr
drive
and
then
just
like
splat
down
all
these
huge
files
that
are
actually
you
know,
contain
zfs
blocks
and
then
the.
A
One
of
the
tricky
things
with
this
is
that
what
if
your
workload
is
contains,
freeze
so
like
what,
if
you're,
actually
freeing
blocks,
freeing
a
significant
amount
of
blocks
over
time,
which
ours
does
for
sure,
then
you
know
in
order
to
actually
release
space
from
the
object
store.
You
have
to
read
and
then
rewrite
the
object
to
remove
those
blocks.
You
can't
just
like
freeze
a
little
bit
of
the
object
right.
You
got
to
read
the
whole
thing
and
then
rewrite
it
out.
A
Omitting
the
blocks
that
are
no
longer
part
of
it
that
that
kind
of
scheme
would
also
work
really
well
with
smr,
where
it's
like.
Okay,
great
we're
just
going
to
like
remove
this
100
meg
file
and
then
like
reallocate
another
one,
and
then
you
know
later
on
we'll
splat
another
different
under
mag
file
over
where
that
one
used
to
be.
A
A
Working
really
well
kind
of
you
know
not
being
100
optimal,
but
like
good
enough
that
you
would
get
good
performance
even
with
you
know,
small
record
size
and
and
randomish.
J
Access
yeah
really
the
way
I
mean
we've
kind
of
architected
this,
because
we
have
this
new
vdf
type.
You
could
you
know
you
can
imagine
the
smr
being
driven
by
you
know
a
user
land
agent
or
some
sub
kernel
component
that
that
bdev
object
now
talks
to
so
you
could
implement.
You
know,
take
the
things
that
we're
putting
into
our
user
lan
agent,
bring
them
into
the
kernel
and
then
do
it
that
way
too,
like,
but
a
lot
of
the
principles
all
apply
here
like.
A
Yeah,
although
I
think
that
the
you
would
want
to
leverage
the
coalescing
right,
the
the
coalescing
of
blocks
into
a
big
object
happens
in
the
agent
and
you'd
want
to
leverage
that
fluorescence
yeah.
A
A
Which
might
be
a
little
challenging
because
we
are
writing
the
agent
in
rust.
So
all.
E
The
passwords
well,
but
actually
that's
what
I
was
thinking
that
taking
a
step
back
and
looking
at
the
at
the
overall
system
architecture
and
what
components
make
sense
to
centralize
in
the
cfs
module
because,
like
I
think,
I
think,
the
aggregation
stuff
and
also
the
stuff
related
to
freeing
and
re-packing
changes
into
different
objects.
A
Cool?
What
do
you
try
to
see
if
other
team
members
are
here,
george?
Do
you
think
it
would
make
sense
to
have
a
thread
of
the
mailing
list
or
maybe
even
like
a
an
issue
or
a
pr
to
discuss
to
like
show
folks,
the
user
interface
that
we're
proposing
and
get
feedback
on
that.
J
Yeah,
I
think
that
would
be
great,
I
think,
having
a
way
so
that
you
know
people
can
comment
on
kind
of
what
we're
proposing.
You
know
kind
of
the
keys,
the
new,
like
keywords
that
that
we're
thinking
about
and
kind
of
their
meaning
and
and
the
various
parameters.
I
think
it
would
be
great
to
get
feedback
and-
and
I
don't
know
like-
maybe
if
we
can
put
it
like
as
an
issues
that
would
be
great-
I
think
that's
a
little
bit
easier
to
manage
than
yeah.
Then
the.
A
All
right
here
we
can
do
that.
The
next,
probably
before
the
next
meeting,
yeah,
I'm
very
interested
in
what
the
user
interface
looks
like
and
trying
to
you
know,
make
sure
we
make
something
that
fits
well
and
and
has
the
flexibility
we
want
to
go
forward,
because
you
know
those
interfaces
tend
to
be
once
they're
released.
We
can't
ever
change
it
yeah
I
mean
the
we're
kind
of
doing
it
all
through
just
properties,
so
you
can
always.
I
would
definitely.
H
A
That
you
know
have
a
different
thing
that
you
know
where
it's
like:
oh
yeah,
you
didn't
specify
the
x
property,
but
instead
you
specified
the
y
prime
or
the
the
y
property
has
a
form
that
I
can
recognize
and
therefore
I
relax
my
requirement
of
having
you
have
to
have
the
x
property.
A
I
mean
we've
talked
about
that
already
in
because
the
new
properties
are
like
the
object,
store,
endpoint
the
like
http
endpoint,
the
bucket
well
sorry,
the
the
region
and
the
keystore
key
location,
which
is
kind
of
similar
to
the
encryption
key
location
where
it
can
be
like
you
know,
file
clone,
slash
and
then
inside
there
it
has
like
credentials
that
are
in
it.
You
know
specific
to
whatever
your
protocol
object,
store
protocol
is,
and
then
the
name
of
the
v
dev
is
the
bucket
name.
A
So
you
do
like
something
like
you
know:
zeus
create
dash
o.
You
know:
endpoint
equals
http
colon,
slash,
slash,
blah
blah
blah
dash
o
region
equals.
You
know
us
west
2
dash,
o
keys.
You
know
key
loc
object,
store,
key
location,
equals
file,
colon,
slash
whatever
and
then
s3
is
the
view
of
type
and
then
the
bucket
name
comes
after
that,
just
like
you'd
be
specifying
like
you
know,
mirror
and
then
device
one
device,
two
or
whatever
yeah.
A
I
think
that's
one
thing
we
haven't
looked
at
yet
with
the
v
dev
property
stuff
is
how
to
specify
properties
on
v
devs
as
you're,
creating
them
yeah.
I
mean
it's
interesting
because
here
you
know,
logically,
these
these
properties
obviously
apply
to
the
vita,
but
not
to
the
pool
as
a
whole,
but
we
can
kind
of
get
away
with
pool
properties,
because
it's
like
there's
really
like
there's
really
no
need
like
we're
planning
to
have
it
just
be
a
requirement
that
if
you're
doing
this
object
store
thing,
you
have
exactly
one
normal
class.
A
If
you
dev
and
right,
you.
A
That
I
hadn't
really
thought
about
until
you
started
talking
about
it.
Just
now
is
specifying
vita
properties
as
part
of
the
the
pool
creation
and
how
to
do
that
in
a
way
that
doesn't
end
up.
You
know
tacking
a
bunch
of
stuff
on
the
end
of
each
v,
dev
as
you're,
specifying
it
or
whatever
each
member
of
the
vw
as
you're,
specifying
because
that
gets
really
ugly
yeah
yeah
yeah.
We
thought
about
that
and
we're
kind
of
like
well.
We
can
just
get
away
with
having
these
pool
properties
because
we're
only
going.
A
Have
one
object
store,
v-dev
in
the
pool,
and
so
we
know
which
one
they
applied
to,
but
it
is
a
little
a
little
wacky
I
mentioned
I
want
to-
I
guess,
put
it
on
the
agenda
for
next
time:
z
pool
status
as
exposed
as
pool
properties
or
something
so
that
you
can
get
it.
A
And
some
of
it,
the
problem
right
now
is
most
of
the
the
way
it's
constructed
is
all
done
in
the
the
user
space
bits
in
lib
zfs
and
in
in
the
z
pool
command
line
tool
itself
and
in
the
properties
we,
you
know,
we'd
fill
out
the
text
on
the
kernel
side
instead.
A
A
Bytes
scrubbed
number
of
bytes
to
scrub
or
whatever,
and
then,
like
you,
know,
building
something
on
top
of
that.
That
shows
a
progress
bar
or
whatever
yeah,
but
then
also
having
one
for
like
the
the
action
thing,
and
it
says
what's
wrong
with
the
pool
or
whatever
and
a
couple
other
ones
like
that,
and
some
of
those
may
be
applied
to
avidev,
not
the
whole
pool
now
and
you
can
get
really
complicated.
A
But,
yes,
more
properties
is
more
better
which
brought
up
the
other
thing
we
talked
about
at
some
point
was:
do
we
need
an
extra
property
type
like
verbose
or
something
that
isn't
displayed
by
default?
But
is
there
if
you
ask
for
it
if
we're
getting
to?
If
we
get
to
the
point,
we're
having
too
many
properties,
do
we
need
some
like
hidden.
D
A
Default
properties,
but
not
the
hidden
properties
we
have
now.
Okay.
Well,
yeah,
that's
interesting!
I
think
we're
over
time.
So
I
want
to
respect
folks
meeting
time,
we'll
have.
A
In
four
weeks,
it'll
also
be
at
this
time
one
o'clock
pacific
on
looks
like
may
25th.
A
So
thanks
everyone
and
we'll
see
you
in
four
weeks.