►
Description
Meeting of Kubernetes Storage Special-Interest-Group (SIG) Workgroup for Volume Snapshot Workgroup - 02 July 2018
Meeting Notes/Agenda: https://docs.google.com/document/d/1qdfvAj5O-tTAZzqJyz3B-yczLLxOiQd-XKpJmTEMazs/edit#heading=h.2p9otr19xbfx
Find out more about the Storage SIG here: https://github.com/kubernetes/community/tree/master/sig-storage
Moderator: Jing Xu (Google)
A
B
C
C
D
C
A
snapshot
and
like
a
design
proposal,
but
since
right
now
we
are
more
focusing
on
CSI
support
and
there
are
some
changes
so
I
think
we,
we
better
start
a
new
one
for
easy,
like
a
review.
So
this
is
the
proposal
we
submitted
yesterday
actually,
and
there
are
some
background
objectives,
as
we
mentioned
last
time.
C
We
want
to
like
more
offer,
such
as
the
application
cook
to
freeze
application
and
freeze
application
or
amounts
months
file
systems
before
taking
up
13
snapshots
and
also
we
want
to
provide
higher
level
management
for
backing
up
and
the
restore,
maybe
for
part
or
even
superset,
and
so
first
the
snapshot
API
design.
We
have
the
basic
two
API
to
represent
snapshot,
volume
snapshot
and
the
other
is
called
volume
snapshot
data
and
that
their
relationship
is
very
similar,
PV,
C
and
P
me
and
so
as
well.
C
We
have
spec
and
status
for
snapshots
you
and
in
the
bottom
snapshots
back.
We
have
that
raw
data
name
which
it
means.
That's
this,
the
pointer
to
the
bottom
snapshot
data
output
object
and
we
also
have
a
PVC
name
as
a
single
field
to
indicate
okay,
which
PVC
want
to
snap
shots.
To
here.
I
have
a
little
question
about
is
so
currently
we
only
say
we
once
take
section
for
volume
which
represented
by
PVC,
but
thinking
about
in
the
future.
C
We
may
want
to,
let's
say
at
capability
of
taking
snapshots
for
with
a
pv
name,
I'm
thinking
that
system
me
my
wants
to
take
that
shot
for
their
volume
it
prepared,
but
at
that
time
there's
no
PBC
or
socially
beybattle
pv.
Yet
so
forces
of
me
if
they
need
to
take
snapshots
for
their
volume.
Currently,
they
have
to
say,
create
a
PVC
bonded
and
then
use
PVC
name
in
the
bottom
snapshot,
a
spec
which
is
may
not
smell,
convenient
and
also
thinking
about.
Let's
say
clone
operation
force,
not
Cologne.
C
Maybe
we
called
cocky
son
shot
across
different
zones
regions,
and
then
we
have
a
different
source
of
snapshot.
So
basically
the
source
of
business
rod
is
another
snapshot,
so
is
it
should
we
make
it
more
like
a
general
like
source
for
snapshots,
struct
here
or
just
currently
just
have
a
single
string
like
a
single
killed
any
like
comments
about
this.
C
E
C
I'm
thinking,
like
maybe
let's
say
we
have
a
PV-
is
empty,
but
it's
possible,
like
cousin
II
might
prepare
some
volume
that
have
pre-populated
data
right.
We
talked
about
like
law
or
those
like
before
operations
and
we
might
have
a
volume
that
is
property
data,
and
at
that
moment
there's
no
PVCs
associative
is
it
so
seems
like
when
we
talk
about
PvE.
It
doesn't
mean
it's
just
like
empty
volume.
E
So
I
think
maybe
it's
better
to
discuss
your
other
volume
operation
proposal.
First,
maybe
before
we
discuss
this
because
I
think
a
lot
of
a
lot
of
what
you
have
in
that
volume
operation.
Football
is
more
generic
and
it
can
support
just
snapshots,
but
also
other
types
of
operations
and
also
other
types
of
yeah
sure
all
your
sources,
data
sources,
yeah.
C
So
right
now,
yes
thinking
about
like
the
future
operations
and
we
right
now
we
talk
about
a
lot
of
different
kinds
of
data
sources
and
that's
why
I'm
thinking
about
a
single
field
here
is
like
hard
to
extend
right
in
case
we
needle
and
then
we
can
leave
this
question
here
and
then
move
on
and
see
the
volume
operation
proposal
and
then
come
back
is
so
like
a
source
struct.
It
was
definitely
like
Xfinity
to
extend
in
the
future
and
then
the
status
we
have
10
cm
and
conditions.
E
F
C
C
So
after
the
snapshot
is
AP
objects
created
and
when
the
controller
is
like
goddess
request
and
trying
to
trigger
creating
snapshot,
we
move
to
creating
condition
and
the
creating
Commission
becomes
true
and
then,
after,
like
this
snapshots,
call
comes
back.
That
means
the
snapshot
is
cut
and
then
the
condition
uploading
condition
if
there
is
a
bloating
face
for
that
volume.
Plucking
that
bloating
phase
becomes
true.
E
C
There
is
a
like
a
kind
of
discussion
relate
to
use
status
like
just
and
I
say
announce
that
status
or
condition.
So
what's
the
I
think
Oh
or
we
prefer
to
use
conditions
because
it
gives
us
like
flexibility
and
because
status
or
faces
after
you
defined
is
hard
to
change
and
you
don't.
You
cannot
add
new
faces
because
application,
if
you
see
a
new
face
like
face
or
status,
they
cannot
recognize
what
does
it
mean
so,
overall,
we
prefer
to
use
conditions
in
our
like
architecture.
C
C
B
C
C
C
E
B
We've
got
this
break,
I
wanted
to
say
something
earlier,
but
I
couldn't
find
the
boy
quick
enough
on
a
status
for
snapshots,
rather
than
looking
at
it
from
the
point
of
view
of
sort
of
the
maintenance
activity
for
the
snapshot.
If
you
think
about
it
from
the
state
of
the
snapshot,
whether
it's
consistent
or
not,
whether
it
is
synchronized
when
it
was
synchronized
those
kinds
of
things
you
may
wind
up
in
better
shape.
C
C
C
So
if
I
say
application
pause
it
and
wash
your
and
they
take
a
snapshot,
we
shot
the
synchronized
I'm,
not
sure.
What
do
you
mean?
That
means
like
when
you
make
a
request
and
when
they
snapshot
is
taken,
because
there's
normally
there's
delay
right
and
we
have
a
10-step
to
represent
the
actual
time
that
the
snapshot
is
taken.
Okay,
yeah,
but
yeah
or
did
I
can
soon
see.
C
G
Can
you
hear
me
this
is
n?
Could
you
generalize
that,
instead
of
a
having
it
be
a
volume
snapshot
source,
could
it
just
be
a
volume
source
that
could
point
to
a
snapshot,
but
in
terms
of
cloning,
since
these
overlap,
I
could
also
point
to
the
source
of
a
clone
and
then
that
struct
could
be
consistent
between
the
two
things
for
proposing.
C
G
Yeah,
it's
confusing
and
I
think
it's
I
think
for
a
lot
of
people.
I've
talked
to
like
it's
confusing
because
we
base
it
off
of
the
binding
of
the
PVC,
but
we're
actually
snapping
the
physical
volume,
so
I
think.
That's
also
why
it's
confusing
so
maybe
between
the
two
we
can
come
up
us
three
could
maybe
come
up
with
something
that
makes
it
consistent
and
clear
what
is
actually
being
after
clone
gene.
Can
you
move
it
down
a
little
bit?
There
was
another.
C
G
C
Right
now,
we
want
to
propose
like
source
all
those
like
prepare
your
volume
and
they
can
pre-populate
data,
that
is
the
data
source,
so
the
term
sauce
has
kind
of
different
meanings
here
and
this
data
source
in
PVC
we
want
to
introduce.
This
is
first
four
steps
on
purpose
right
after
you
take
that
shot,
you
have
snapshot,
API
checked
represented,
and
you
want
to
create
volume
from
the
snapshot
before
we
always
create
volume
like
empty
volume.
G
C
Right
now
we
are
kind
of
proposed
you
state,
a
source
with
this
name,
for
this
purpose
represents
when
you
create
volume,
and
what
is,
if
you
have
you,
have
some
pre
popular
data,
either
from
snapshot
or
from
another
volume,
and
it
is
the
place
you
point
to
that
source
and
in
a
PVC
claim
is
back.
We
have
destruct
and
that
inside
of
this
tract
in
because
this
is
snapshot
proposal.
So
currently
we
only
put
snaps
on
sauce.
C
C
C
B
C
Yes,
so
that's
the
idea
right.
We
want
to
have
a
general
like
data
source
in
put
into
the
PVC,
so
that
when
a
provision
are
created
in
the
volume
that
it
can
recognize
it
and
know
how
to
provision
volume
either
like
created
from
snapshot
or
or
clone
from
different
volume
neck,
it
can
do
the
correct
operations
based
on
this
information,
and
we
have
this
struct.
So
it
could
be
like
added
any
new
sources
in
the
future.
C
G
G
C
And
the
next
object
we
have,
we
add,
will
be
called
a
snapshot
class,
so
it's
kind
of
similar
to
storage
class
for
QVC
right
so
that
we
have
this
central
class.
So
you
can
specify
what
is
the
blocking
the
driver
name
for
this
snapshot
and
also
user
can
put
their
parameters
in
the
snapshot
class,
and
this
is
opaque
parameters
and
were
like
when
provisioner
provision
is
snapshot,
it
can
carry
the
crack
meters
and
we
also
plan
to
have
a
default
snapshot,
a
class
for
each
volume
plug-in
for
each
says.
A
driver.
For
example.
C
C
G
I,
like
that,
and
that's
what
I
had
in
mine
as
well,
is
that
when
you,
for
instance,
if
you
had
a
storage
class
for
cloning,
you
had
a
Windows
image
or
you
had
a
MySQL
database
backup,
and
you
wanted
to
recreate
that
pre
populated
volume
in
a
namespace.
A
storage
class
would
be
a
really
good
way
for
an
admin
to
be
able
to
have
that
cloneable
Peavey.
You
know
notated
in
the
storage
class
and
that's
what
would
be
cloned
or
even
snapshotted
from
for
each
of
the
dynamically
provisioned
volumes.
C
Okay,
well,
we
can
move
on
seems
like
we
kind
of
all
greatest,
adding
this
information,
that's
good
and
for
CSI
snapshot
a
controller
right.
We
have
this
diagram
showing
the
the
simple
I
capture
right,
Desiree,
it's
very
similar
to
external
provisioner,
external
or
internal
attach.
Are
we
already
had
ez
assign
and
also
we
have
a
CSI
one
driver
container
and
communicate?
Is
this
external
step,
shorter
and
Eastern,
except
charterer,
will
responsible
to
cracking
the
beatings,
a
natural
and
binding
snapshot
and
sensor
data
objects?
G
C
It
depends
on
how
you
deploy
it
so
right
now
right
if
you
need
to
have
let's
say:
DC
bottom
driver
and
you
deploy
your
external,
attach
your
external
provisioner
and,
at
the
same
time
you
can
just
add
external
SEP,
shorter
and
deployed
there.
The
oil
P
point
in
the
same
place
in
the
container
you
send
a
car
container.
C
C
C
So
the
the
background,
this
proposal
is
when
we're
working
on
snapshots
feature
we
see
after
snapshot
is
available
right.
There
is
a
very
common
use
cases
replacing
the
volume.
Please
a
snapshot
so
suppose
you
have
your
volume
or
social,
with
the
PVC
PV
right
represent
by
CDC
PV
and
for
different
reasons
like
you
have
some
data
loss
or
failure,
or
you
just
want
to
upgrade
your
volume
with
new
data.
You
want
you
replace
the
volume
like
in
this
PVC,
with
a
new
volume
created
from
a
snapshot.
So
actually
this
involves
like
two
steps.
C
Like
have
all
kinds
of
problems,
if
user
do
it
manually
and
before
we
propose
cuts
in
place,
restore
a
restore
API
object,
but
now,
when
we
think
about
in
future
right,
we
have
probably
many
different
kinds
of
this
kind
of
little
bit.
More
advanced
volume
operations
available
like
migration,
clone,
etc
and
copy.
So
I
think
it
might
be
a
good
time
to
propose,
instead
of
just
an
individual
like
restoring
objects,
to
represent
this
job.
We
want
to
have
a
general
volume
operation.
C
Api
object
to
represent
kind
of
this
job,
for
operating
storage,
different
operations,
and
here
in
this
proposal,
I
just
list
a
few
use
cases
when
thinking
about
related
to
volume
operation
in
the
object.
So
we
are
going
to
have
this
egg
object
and
external
controller
to
control
it
to
operate
on
it
and
the
first
one
here
we
caught
restore
is
it
is
the
in-place
restore
we've
been
talking
about
and
in
a
spec
we
are
going
to
have
when
I
say
the
operation
mónica
type
right.
C
C
Where's
this
morning,
operation,
the
the
controller
will
first
create
a
new
volume
from
the
snapshot,
provision
volume
and
then
have
a
new
pair
of
PVC
prime
PV
pram.
To
represent
this
volume.
And
now
when
this
volume
is
available,
the
controller
will
try
to
unbind
the
the
previous
binding
like
the
original
PVC.
One
points
to
the
like
o
TV
and
then.
C
C
D
The
other
thing
that
I
find
interesting
about
this
ISM
here,
the
implication
is
you
can
restore
an
arbitrary
snapshot
on
top
of
an
arbitrary
volume.
When
you
know
in
many
storage
system,
designs,
snapshots
are
actually
tied
to
the
volume
from
which
they
originally
came
and
restoring
the
volume
to
a
snapshot,
that's
associated
with
tends
to
be
very
fast,
whereas
restoring
a
volume
to
a
different
snapshot
that
it's
not
related
to
can
be
more
expensive
operation.
D
I
mean
if
you
start
from
a
PPC
and
you
get
a
P
V,
and
then
you
take
a
snapshot
of
that
and
then
later
you
want
to
revert
it
a
lot
of
storage
systems
where
the
snapshot
is
actually
tied
to
the
volume
that
I
came
from.
You
could
do
that
workflow
very
efficiently.
It
would
be
almost
instantaneous,
whereas
if,
if
you
took
a
snapshot
of
one
TVC
and
then
you
took
a
different
PVC
and
tried
to
restore
the
snapshot
to
that
one,
it
would,
it
could
be
an
expensive
operation.
C
C
D
I,
actually
I
don't
see
any
difference
between
these
two
operations
other
than
the
name
of
the
operation.
Take
the
PVC
name
and
the
snapshot
name
and
I
understand
that
the
semantics
are
supposed
to
be
different,
but
it
seems
like
it
seems,
like
you
would
use
really
just
one
operation
with
two
flavors.
C
G
You
want
to
base
it
on
what
you
had,
but
you
want
to
go
forward
and
change
that,
wherever
with
have
your
Golden's
not
shot,
you
would
revert
back
to
that
and
continue
to
use
that
getting
rid
of
anything
that
was
moved
forward
past
the
snapshot
shot
position
I'm
just
trying
to
think
in
terms
of
what
we
looked
at
with
cloning.
It
was
important
to
have
maintain
a
golden
image,
as
we
called
it
of
to
be
the
same
with
the
snapshot
that
point
in
time
that
you
want
to
keep
safe.
G
So
to
me,
these
Reed
restore
would
be
I
want
to
keep
that
away
and
I
don't
want
people
to
change
it.
So
create
me.
A
new
volume
and
a
new
PVC
for
the
restore
revert
would
be
get
rid
of
anything
I've
done
past.
The
point
of
the
snapshot
and
go
back
to
this
original
position
is
that
the
intention
of
these
two
operations.
C
F
D
B
C
C
C
So
users
still
have
a
handle
of
that
already
volume.
Now
you
have,
you
are
going
too
heavy
and
the
end
you
are
going
to
have
two
PVCs,
that's
right
and
then
the
first
one
right
you
have
before
we
will
point
to
the
new
volume
you
provisioned
and
then
the
other
one
will
be
used
to
point
to
your
original
volume.
So
you
are
going
to
have
to
re
amande
to
please
represent
them,
so
user
can
check
and
have
a
handle
of
a
post
volumes
and
they
can
decide
what
to
do.
Is
the
older
one.
C
B
C
D
C
C
C
So
here
yeah,
but
I
can
expand
that.
So
it's
actually
here
you
see
I
have
another
operation.
Just
for
this
purpose
cause
replace
all.
You
can
call
swap
PVC
to
PV
pointers,
so
just
some
cases
not
from
snapshot,
but
sometimes
user
have
a
volume
already
PVC
resin
tip,
but
somehow
they
want
to
have
another
volume
right
with
different
configurations,
different
type
or
size,
and
that
they
just
want
to
replace
the
underlying
model.
I
still
have
this
PVC
to
represent
it.
C
C
C
C
And
another
operation
we
use
is
for
some
water
plugin.
They
offer
some
like
modify
existing
morning.
Even
when
it
is
attached
like
in
a
blast.
You
can
change
the
size,
the
volume
pipe
and
even
like
cups,
and
so
with
some
disk
also
kind
of
volume
operation
we
can
offer
so
the
operations
that
modify
a
lot
easy
tomorrow,
night's
you
specify.
C
G
A
storage
class
to
be
able
to
clone
the
volume
and
our
suggestion
is,
you-
would
have
the
provisioner-
would
support
or
not
support
us.
So
in
your
PBC,
you
would
specify
the
storage
class
in
the
storage
class
itself.
You
would
have
the
provisioner
with
an
annotation
of
we
call
it
smart
phone.
So
if
you're
doing
a
true
clone,
where
you're
you
know
using
the
storage
array
to
create
that
clone,
it
would
support
it
or
not
support
it,
and
then
that
way
it
generalizes
it
to
the
user.
G
C
D
C
G
C
So
it's
some
basic
building
block
provided
by
the
lower
level.
So,
for
example,
the
restore
I
proposed
here
right.
So
once
you
have
this,
if
you
object
a
controller,
we
all
need
to
create
I,
say
a
PV
on
your
PVC
and
this
Rab
object
and
with
the
snapshots
as
a
source,
and
then
when
this
API
barrage
is
created,
then
the
snapshot
controller
will
do
their
work
to
actually
PV
controller.
D
C
D
C
We
have
some
prototyping
for
restore,
but
it's
very
not
complete,
so
it
involves
some
changes
in
PV
controller.
Definitely,
and
also
we
have
some
external
controller
to
handle
something
since
we're
already
like
at
the
end
time-
and
we
I
think
we
have
very
good
feedback
and
this
proposal
is
public
I.
Think
very.
Not
everyone
came,
they
comments.
C
C
Let
me
know
if
you
cannot,
because
I
changed
to
share
to
public
last
night.
So
just
be
me
if
you
cannot
thank
you
yeah.
So
now
we
have
the
PR
for
snapshots
proposal.
Please
like
comment
it
and
this
volume
operation
proposal
and
then
based
on
the
feedback
we
can
set
up.
We
will
have
another
meeting
next
week
as
euro
and
to
talk
about.