From 9edaea06f7b9733e4966e958e6a6358e01539ee0 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" <rjones@redhat.com> Date: Mon, 14 Dec 2015 11:15:59 +0000 Subject: [PATCH] 2015-virt-tools: Add a slide giving the background of the virt tools. --- 2015-virt-tools/0000-virt-tools.svg | 311 +++++++++++++++++++++++++++++++++++ 2015-virt-tools/0100-virt-tools.html | 11 ++ 2015-virt-tools/NOTES | 16 ++ 3 files changed, 338 insertions(+) create mode 100644 2015-virt-tools/0000-virt-tools.svg create mode 100644 2015-virt-tools/0100-virt-tools.html diff --git a/2015-virt-tools/0000-virt-tools.svg b/2015-virt-tools/0000-virt-tools.svg new file mode 100644 index 0000000..9c0b713 --- /dev/null +++ b/2015-virt-tools/0000-virt-tools.svg @@ -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 index 0000000..c1eb5fb --- /dev/null +++ b/2015-virt-tools/0100-virt-tools.html @@ -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> diff --git a/2015-virt-tools/NOTES b/2015-virt-tools/NOTES index 9223840..ca45eeb 100644 --- a/2015-virt-tools/NOTES +++ b/2015-virt-tools/NOTES @@ -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 ---------------------------------------------------------------------- -- 1.8.3.1