2015-virt-tools: Add a slide giving the background of the virt tools.
authorRichard W.M. Jones <rjones@redhat.com>
Mon, 14 Dec 2015 11:15:59 +0000 (11:15 +0000)
committerRichard W.M. Jones <rjones@redhat.com>
Mon, 14 Dec 2015 11:15:59 +0000 (11:15 +0000)
2015-virt-tools/0000-virt-tools.svg [new file with mode: 0644]
2015-virt-tools/0100-virt-tools.html [new file with mode: 0644]
2015-virt-tools/NOTES

diff --git a/2015-virt-tools/0000-virt-tools.svg b/2015-virt-tools/0000-virt-tools.svg
new file mode 100644 (file)
index 0000000..9c0b713
--- /dev/null
@@ -0,0 +1,311 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="190.62349mm"
+   height="188.28508mm"
+   viewBox="0 0 675.43756 667.15186"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="0000-virt-tools.svg">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker6110"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path6112"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker5774"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow1Lend"
+       inkscape:collect="always">
+      <path
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+         id="path5776"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5534"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path5536"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker4496"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow1Lend"
+       inkscape:collect="always">
+      <path
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+         id="path4498"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lend"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path4221"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.98994949"
+     inkscape:cx="361.4993"
+     inkscape:cy="340.46349"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1920"
+     inkscape:window-height="1027"
+     inkscape:window-x="0"
+     inkscape:window-y="31"
+     inkscape:window-maximized="1"
+     fit-margin-top="10"
+     fit-margin-left="10"
+     fit-margin-right="10"
+     fit-margin-bottom="10" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-25.352642,-63.571987)">
+    <rect
+       style="opacity:1;fill:#ffffff;stroke:#000000"
+       id="rect4189"
+       width="184.28571"
+       height="84.285721"
+       x="480.57144"
+       y="482.64792"
+       ry="10.7143" />
+    <rect
+       style="opacity:1;fill:#ffffff;stroke:#000000"
+       id="rect4136"
+       width="522.14288"
+       height="217.85715"
+       x="100.71429"
+       y="99.505058"
+       ry="10.714293" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:30px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="494.14288"
+       y="516.93365"
+       id="text4191"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="494.14288"
+         y="516.93365"
+         id="tspan4193">qemu</tspan></text>
+    <rect
+       ry="10.7143"
+       y="584.07648"
+       x="348.42859"
+       height="84.285721"
+       width="184.28571"
+       id="rect4200"
+       style="opacity:1;fill:#ffffff;stroke:#000000" />
+    <text
+       sodipodi:linespacing="125%"
+       id="text4202"
+       y="618.36224"
+       x="362.00003"
+       style="font-style:normal;font-weight:normal;font-size:30px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       xml:space="preserve"><tspan
+         id="tspan4204"
+         y="618.36224"
+         x="362.00003"
+         sodipodi:role="line">curl</tspan></text>
+    <rect
+       style="opacity:1;fill:#ffffff;stroke:#000000"
+       id="rect4206"
+       width="184.28571"
+       height="84.285721"
+       x="132.71431"
+       y="610.50507"
+       ry="10.7143" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:30px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="146.28575"
+       y="644.79083"
+       id="text4208"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="146.28575"
+         y="644.79083"
+         id="tspan4210">gpg</tspan></text>
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+       d="M 170.71429,318.07649 148.57143,420.21935"
+       id="path4212"
+       inkscape:connector-curvature="0" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path4494"
+       d="m 302.14286,317.3622 -53.57143,290"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4496)"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5534)"
+       d="M 380,317.3622 357.85714,453.07649"
+       id="path5532"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path5772"
+       d="m 446.42857,317.93363 -9.28572,265.14286"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5774)"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6110)"
+       d="m 531.42857,318.07649 39.28571,162.85715"
+       id="path6108"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <g
+       id="g4150"
+       transform="translate(-38,-4)">
+      <rect
+         ry="10.7143"
+         y="425.21936"
+         x="99.285713"
+         height="84.285721"
+         width="184.28571"
+         id="rect4138"
+         style="opacity:1;fill:#ffffff;stroke:#000000" />
+      <text
+         sodipodi:linespacing="125%"
+         id="text4144"
+         y="459.50507"
+         x="112.85714"
+         style="font-style:normal;font-weight:normal;font-size:30px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         xml:space="preserve"><tspan
+           y="459.50507"
+           x="112.85714"
+           id="tspan4146"
+           sodipodi:role="line">libguestfs</tspan><tspan
+           id="tspan4148"
+           y="497.00507"
+           x="112.85714"
+           sodipodi:role="line">(C API)</tspan></text>
+    </g>
+    <g
+       id="g4182"
+       transform="translate(-38,-4)">
+      <rect
+         style="opacity:1;fill:#ffffff;stroke:#000000"
+         id="rect4158"
+         width="184.28571"
+         height="84.285721"
+         x="305"
+         y="457.36221"
+         ry="10.7143" />
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-weight:normal;font-size:30px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         x="318.57144"
+         y="491.64792"
+         id="text4160"
+         sodipodi:linespacing="125%"><tspan
+           sodipodi:role="line"
+           x="318.57144"
+           y="491.64792"
+           id="tspan4164">qemu-img</tspan></text>
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:30px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="132.14285"
+       y="160.93362"
+       id="text10146"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan10148"
+         x="132.14285"
+         y="160.93362">virt tools</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif Italic';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="139.28571"
+       y="241.3622"
+       id="text10150"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan10152"
+         x="139.28571"
+         y="241.3622">virt-resize, virt-sparsify, virt-builder, virt-v2v,</tspan><tspan
+         sodipodi:role="line"
+         x="139.28571"
+         y="266.36218"
+         id="tspan10154">etc.</tspan></text>
+  </g>
+</svg>
diff --git a/2015-virt-tools/0100-virt-tools.html b/2015-virt-tools/0100-virt-tools.html
new file mode 100644 (file)
index 0000000..c1eb5fb
--- /dev/null
@@ -0,0 +1,11 @@
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<h1>Virt tools provide higher-level abstractions</h1>
+
+<object height="80%" width="99%"
+        data="0000-virt-tools.svg"
+        type="image/svg+xml">
+  <img src="0000-virt-tools.svg">
+</object>
index 9223840..ca45eeb 100644 (file)
@@ -8,6 +8,22 @@ Audience:
  - Not developers.
 
 
+0000: Introduction
+----------------------------------------------------------------------
+
+Libguestfs is a fairly low-level C library for accessing disk images.
+To perform everyday operations we've written "virt tools" over this.
+
+Virt tools use libguestfs, qemu, qemu-img and many other programs and
+perform operations that would hard to do by hand.
+
+In the case of virt-resize, the tool does calculations (like partition
+sizing) that require hard work and experience, so the virt-resize tool
+captures a lot of knowledge about how not to break Windows bootloaders
+and how to align partitions for performance that would be hard to
+teach.
+
+
 1000: Resizing a disk image
 ----------------------------------------------------------------------