From d247f3c2cbab75f1f57ac54c6ee8d797d3c4c926 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Thu, 24 Oct 2019 23:38:06 -0500 Subject: [PATCH] First cut at 8000- slides to match notes. --- 2019-kvm-forum/8000-resize-overview.html | 21 +++++++++++++++ .../8100-tradeoff-automatic-v-explicit.html | 19 ++++++++++++++ .../8200-tradeoff-simple-v-structured.html | 16 ++++++++++++ 2019-kvm-forum/8300-tradeoff-poll-v-notify.html | 26 +++++++++++++++++++ .../8400-tradeoff-complexity-issues.html | 30 ++++++++++++++++++++++ 2019-kvm-forum/notes-08-resize | 2 +- 6 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 2019-kvm-forum/8000-resize-overview.html create mode 100644 2019-kvm-forum/8100-tradeoff-automatic-v-explicit.html create mode 100644 2019-kvm-forum/8200-tradeoff-simple-v-structured.html create mode 100644 2019-kvm-forum/8300-tradeoff-poll-v-notify.html create mode 100644 2019-kvm-forum/8400-tradeoff-complexity-issues.html diff --git a/2019-kvm-forum/8000-resize-overview.html b/2019-kvm-forum/8000-resize-overview.html new file mode 100644 index 0000000..58fc130 --- /dev/null +++ b/2019-kvm-forum/8000-resize-overview.html @@ -0,0 +1,21 @@ + + + + +

Using qcow2 with NBD

+ +

+ Filler - need to demonstrate: + +

+  qemu -> (raw) -> qemu-nbd -> (qcow2) -> image.qcow2
+  qemu -> (qcow2) -> qemu-nbd -> (raw) -> image.qcow2
+  
+ + maybe a table of pro/con for each + +

+ Exposing qcow2 over NBD is too risky without resize, forcing + existing documentation to favor raw over NBD, even though this loses + out on the other benefits of qcow2. +

diff --git a/2019-kvm-forum/8100-tradeoff-automatic-v-explicit.html b/2019-kvm-forum/8100-tradeoff-automatic-v-explicit.html new file mode 100644 index 0000000..c6f5bcb --- /dev/null +++ b/2019-kvm-forum/8100-tradeoff-automatic-v-explicit.html @@ -0,0 +1,19 @@ + + + + +

Tradeoff: Automatic or explicit

+ +

+ Filler - need to demonstrate: + start with 1k image + +

+ Automatic (like file system): +
NBD_CMD_WRITE(offset=0,len=2k) -> success, size now 2k +

+ Explicit (like block device): +
NBD_CMD_WRITE(offset=0,len=2k) -> fails +
NBD_CMD_RESIZE(2k) -> success, size now 2k +
NBD_CMD_WRITE(offset=0,len=2k) -> success +

diff --git a/2019-kvm-forum/8200-tradeoff-simple-v-structured.html b/2019-kvm-forum/8200-tradeoff-simple-v-structured.html new file mode 100644 index 0000000..6ca9385 --- /dev/null +++ b/2019-kvm-forum/8200-tradeoff-simple-v-structured.html @@ -0,0 +1,16 @@ + + + + +

Tradeoff: Simple or structured

+ +

+ Filler - need graphics showing wire format of: + +

+ Simple: 16-byte response, boolean answer +

+ Structured: 1 or more 20+-byte response +
Adding new NBD_REPLY_TYPE_RESIZE allows including updated size + in response +

diff --git a/2019-kvm-forum/8300-tradeoff-poll-v-notify.html b/2019-kvm-forum/8300-tradeoff-poll-v-notify.html new file mode 100644 index 0000000..8e9f729 --- /dev/null +++ b/2019-kvm-forum/8300-tradeoff-poll-v-notify.html @@ -0,0 +1,26 @@ + + + + +

Tradeoff: poll or notify

+ +

+ Filler - need to demonstrate: + +

+ polling (server cannot tell client about async changes unless client + polls): +
client: NBD_CMD_RESIZE(0) +
server: NBD_REPLY_TYPE_RESIZE response, including NBD_REPLY_DONE +
do stuff +
client: NBD_CMD_RESIZE(0) +
server: NBD_REPLY_TYPE_RESIZE response, including NBD_REPLY_DONE +

+ notify (client registers open-ended command to allow multiple async + server responses as needed): +
client: NBD_CMD_RESIZE(NBD_CMD_FLAG_NOTIFY) +
do stuff +
server: NBD_REPLY_TYPE_RESIZE response, excluding NBD_REPLY_DONE +
do stuff +
server: NBD_REPLY_TYPE_RESIZE response, excluding NBD_REPLY_DONE +

diff --git a/2019-kvm-forum/8400-tradeoff-complexity-issues.html b/2019-kvm-forum/8400-tradeoff-complexity-issues.html new file mode 100644 index 0000000..8208350 --- /dev/null +++ b/2019-kvm-forum/8400-tradeoff-complexity-issues.html @@ -0,0 +1,30 @@ + + + + +

Tradeoff: how much complexity

+ +

+ Filler - summarize various options. Maybe a 2-d graph with: + +

+    c |
+    l |
+ ^  i |
+    e |
+ i  n |
+ n  t |  multiple knobs,
+ c    |  requires multiple
+ r  c |  fallbacks, but a
+ e  o |  non-SR solution works
+ a  m |
+ s  p |
+ i  l |
+ n  e |
+ g  x |                           require more uniformity,
+    i |                           interop testing is easier,
+    t |                           but writing correct server
+    y |                           requires more effort
+      +------------------------------------------------------
+         > increasing server complexity
+

diff --git a/2019-kvm-forum/notes-08-resize b/2019-kvm-forum/notes-08-resize index c30ef81..85c08ae 100644 --- a/2019-kvm-forum/notes-08-resize +++ b/2019-kvm-forum/notes-08-resize @@ -3,7 +3,7 @@ Where to go from here: Adding resize to NBD - based somewhat on https://lists.debian.org/nbd/2017/01/msg00016.html -* Heading: Bigger is better? +* Heading: Resize: where getting bigger is better - 8000- slide - qemu -> (raw) -> qemu-nbd -> (qcow2) -> image.qcow2 - qemu -> (qcow2) -> qemu-nbd -> (raw) -> image.qcow2 -- 1.8.3.1