Merge "Documentation - TripleO routed-spine-and-leaf"
This commit is contained in:
commit
6ab7940098
938
doc/source/install/_images/spine_and_leaf.svg
Normal file
938
doc/source/install/_images/spine_and_leaf.svg
Normal file
@ -0,0 +1,938 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<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"
|
||||
version="1.2"
|
||||
width="221.28786mm"
|
||||
height="95.618492mm"
|
||||
viewBox="0 0 22128.785 9561.849"
|
||||
preserveAspectRatio="xMidYMid"
|
||||
clip-path="url(#presentation_clip_path)"
|
||||
xml:space="preserve"
|
||||
id="svg2"
|
||||
inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
|
||||
sodipodi:docname="spine_and_leaf.svg"
|
||||
inkscape:export-filename="/home/remote/hjensas/Documents/Projects/FKassan/spine_and_leaf_grey.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"
|
||||
style="fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round"><metadata
|
||||
id="metadata2202"><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><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1016"
|
||||
id="namedview2200"
|
||||
showgrid="true"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="325.01545"
|
||||
inkscape:cy="362.39456"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
showguides="false"
|
||||
inkscape:snap-grids="true"
|
||||
inkscape:snap-bbox="true"><inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid2162"
|
||||
originx="-3557.8186"
|
||||
originy="-465.85891" /></sodipodi:namedview><defs
|
||||
class="ClipPathGroup"
|
||||
id="defs4"><clipPath
|
||||
id="presentation_clip_path"
|
||||
clipPathUnits="userSpaceOnUse"><rect
|
||||
x="0"
|
||||
y="0"
|
||||
width="21000"
|
||||
height="14800"
|
||||
id="rect7" /></clipPath></defs><defs
|
||||
class="TextShapeIndex"
|
||||
id="defs9" /><defs
|
||||
class="EmbeddedBulletChars"
|
||||
id="defs13" /><defs
|
||||
class="TextEmbeddedBitmaps"
|
||||
id="defs42" /><rect
|
||||
style="fill:#000000;fill-opacity:0.26666667;fill-rule:evenodd;stroke:none;stroke-width:99.59664917;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect7472-1-4"
|
||||
width="21068.076"
|
||||
height="3327.2278"
|
||||
x="1060.71"
|
||||
y="5783.6973"
|
||||
ry="493.24051" /><rect
|
||||
style="fill:#000000;fill-opacity:0.26666667;stroke:none;stroke-width:70.56232452;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect7472"
|
||||
width="21172.889"
|
||||
height="1661.8187"
|
||||
x="955.89368"
|
||||
y="0"
|
||||
ry="246.35416" /><rect
|
||||
style="fill:#000000;fill-opacity:0.26666667;stroke-width:23.36642456;stroke-miterlimit:4;stroke-dasharray:186.93141099, 93.46570549;stroke-dashoffset:0"
|
||||
id="rect7187"
|
||||
width="4004.1733"
|
||||
height="5368.9526"
|
||||
x="1060.71"
|
||||
y="4192.897"
|
||||
ry="244.64894" /><g
|
||||
id="g44"
|
||||
transform="translate(-3557.8188,-1102.0474)"><g
|
||||
id="id2"
|
||||
class="Master_Slide"><g
|
||||
id="bg-id2"
|
||||
class="Background" /><g
|
||||
id="bo-id2"
|
||||
class="BackgroundObjects" /></g></g><path
|
||||
style="fill:none;stroke:#000000;stroke-width:13.56770134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:108.54160421, 54.2708021;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 925.65479,5022.3992 c -60.51808,14.927 -121.17892,9.0977 -181.76702,9.0977 -172.42701,0 -344.8541,0 -517.28111,0 -45.48585,0 -53.55151,0 -91.5542,0 -9.15541,0 -18.31082,0 -27.46622,0 -3.05182,0 -6.10366,0 -9.155409,0 -1.525908,0 -6.103651,0 -4.577737,0 3.051829,0 12.207226,0 9.155406,0 -6.103577,0 -12.207234,0 -18.31081,0 -19.836723,0 -39.673445,0 -59.510248,0 -4.577662,0 -9.155405,0 -13.733067,0 -1.5259141,0 -5.2813943,5.859 -4.5777418,0 0.9296198,-7.7403 3.7802008,-6.065 5.6703408,-9.0977"
|
||||
id="path6251"
|
||||
inkscape:connector-curvature="0" /><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:329.94973755px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:232.79600525"
|
||||
x="227.58598"
|
||||
y="4397.6118"
|
||||
id="text6255"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan6253"
|
||||
x="227.58598"
|
||||
y="4397.6118"
|
||||
style="stroke-width:232.79600525">L3</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:367.5909729px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:259.3538208"
|
||||
x="211.54889"
|
||||
y="4957.1426"
|
||||
id="text6259"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan6257"
|
||||
x="211.54889"
|
||||
y="4957.1426"
|
||||
style="stroke-width:259.3538208">L2</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:386.90072632px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:272.9777832"
|
||||
x="2280.334"
|
||||
y="5325.6221"
|
||||
id="text7127"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7125"
|
||||
x="2280.334"
|
||||
y="5667.9385"
|
||||
style="stroke-width:272.9777832" /></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:386.90075684px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:272.97781372;stroke-linejoin:round"
|
||||
x="4539.1108"
|
||||
y="5329.9927"
|
||||
id="text7127-0"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7125-3"
|
||||
x="4539.1108"
|
||||
y="5672.3091"
|
||||
style="stroke-width:272.97781372" /></text>
|
||||
<rect
|
||||
id="rect2109-6-5-9-0"
|
||||
width="5118.355"
|
||||
height="946.78052"
|
||||
x="1670.5643"
|
||||
y="305.97485"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:66.52793121;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="240.99867" /><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:1058.33337402px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:746.70709229"
|
||||
x="3481.3599"
|
||||
y="1986.9637"
|
||||
id="text7185"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7183"
|
||||
x="3481.3599"
|
||||
y="2923.3408"
|
||||
style="stroke-width:746.70709229" /></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 1675.6302,4832.0574 2442.6235,1252.7555"
|
||||
id="path7189"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 2212.0703,4727.9807 15737.173,1252.7555"
|
||||
id="path7191"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 3465.2812,4832.0574 2442.6235,1252.7555"
|
||||
id="path7193"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 3899.7681,4727.9805 15737.173,1252.7555"
|
||||
id="path7195"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" /><rect
|
||||
style="fill:#000000;fill-opacity:0.26666667;fill-rule:evenodd;stroke-width:23.40653419;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:187.25226202, 93.62613113;stroke-dashoffset:0"
|
||||
id="rect7187-4"
|
||||
width="3990.1204"
|
||||
height="5406.373"
|
||||
x="5995.4189"
|
||||
y="4155.4761"
|
||||
ry="246.35411" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 16759.831,1252.7555 6825.6059,4704.2258 2953.9523,1252.7555"
|
||||
id="path7446"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 2953.9523,1252.7555 5852.4337,3475.225 7953.445,-3475.225"
|
||||
id="path7448"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccc" /><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:304.87020874px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:215.10116577"
|
||||
x="2737.1526"
|
||||
y="8551.4111"
|
||||
id="text7452"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7450"
|
||||
x="2737.1526"
|
||||
y="8551.4111"
|
||||
style="stroke-width:215.10116577">Rack A</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:304.87023926px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:215.10118103;stroke-linejoin:round"
|
||||
x="8249.8623"
|
||||
y="8547.1641"
|
||||
id="text7452-0"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7450-5"
|
||||
x="8249.8623"
|
||||
y="8547.1641"
|
||||
style="stroke-width:215.10118103">Rack B</tspan></text>
|
||||
<rect
|
||||
id="rect2109-6-5-9-8-0-5"
|
||||
width="3458.9375"
|
||||
height="639.16052"
|
||||
x="1270.3427"
|
||||
y="6059.2471"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.14209747;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.69539" /><rect
|
||||
id="rect2109-6-5-9-8-0-5-0"
|
||||
width="3458.9377"
|
||||
height="639.16058"
|
||||
x="1270.3418"
|
||||
y="6877.374"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.14210129;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.6954" /><rect
|
||||
id="rect2109-6-5-9-8-0-5-6"
|
||||
width="3458.9377"
|
||||
height="639.16058"
|
||||
x="1270.3427"
|
||||
y="7644.3667"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.14210129;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.6954" /><rect
|
||||
id="rect2109-6-5-9-8-0-5-4"
|
||||
width="3458.9377"
|
||||
height="639.16058"
|
||||
x="1270.3427"
|
||||
y="8411.3604"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.14210129;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.6954" /><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.00549316px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:259.64627075"
|
||||
x="2238.1521"
|
||||
y="5906.1802"
|
||||
id="text7569"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567"
|
||||
x="2238.1521"
|
||||
y="5906.1802"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.64627075">Undercloud</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.00552368px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:259.64630127;stroke-linejoin:round"
|
||||
x="2230.365"
|
||||
y="6600.7021"
|
||||
id="text7569-6"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567-2"
|
||||
x="2230.365"
|
||||
y="6600.7021"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.64630127">Controller-0</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.00552368px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:259.64630127;stroke-linejoin:round"
|
||||
x="2283.1382"
|
||||
y="7295.2236"
|
||||
id="text7569-5"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567-8"
|
||||
x="2283.1382"
|
||||
y="7295.2236"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.64630127">Controller-1</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.00552368px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:259.64630127;stroke-linejoin:round"
|
||||
x="2293.3462"
|
||||
y="7989.7456"
|
||||
id="text7569-62"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567-84"
|
||||
x="2293.3462"
|
||||
y="7989.7456"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.64630127">Controller-2</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 6993.313,5343.3869 v 766.9932"
|
||||
id="path7762"
|
||||
inkscape:connector-curvature="0" /><rect
|
||||
id="rect2109-6-5-9-8-0-5-3"
|
||||
width="3458.9377"
|
||||
height="639.16058"
|
||||
x="6301.5244"
|
||||
y="6033.6812"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.14210129;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.6954" /><rect
|
||||
id="rect2109-6-5-9-8-0-5-0-1"
|
||||
width="3458.938"
|
||||
height="639.16064"
|
||||
x="6301.5239"
|
||||
y="6851.8071"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.1421051;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.69542" /><rect
|
||||
id="rect2109-6-5-9-8-0-5-6-1"
|
||||
width="3458.938"
|
||||
height="639.16064"
|
||||
x="6301.5244"
|
||||
y="7618.8003"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.1421051;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.69542" /><rect
|
||||
id="rect2109-6-5-9-8-0-5-4-0"
|
||||
width="3458.938"
|
||||
height="639.16064"
|
||||
x="6301.5244"
|
||||
y="8385.7939"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.1421051;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.69542" /><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.00552368px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:259.64630127;stroke-linejoin:round"
|
||||
x="7794.3252"
|
||||
y="5883.0293"
|
||||
id="text7569-3"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567-4"
|
||||
x="7794.3252"
|
||||
y="5883.0293"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.64630127">Compute-1</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.0055542px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:259.64633179;stroke-linejoin:round"
|
||||
x="7786.5371"
|
||||
y="6577.5518"
|
||||
id="text7569-6-0"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567-2-3"
|
||||
x="7786.5371"
|
||||
y="6577.5518"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.64633179">Compute-2</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.0055542px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:259.64633179;stroke-linejoin:round"
|
||||
x="7839.311"
|
||||
y="7272.0737"
|
||||
id="text7569-5-9"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567-8-1"
|
||||
x="7839.311"
|
||||
y="7272.0737"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.64633179">Compute-3</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.0055542px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:259.64633179;stroke-linejoin:round"
|
||||
x="7849.5195"
|
||||
y="7966.5952"
|
||||
id="text7569-62-9"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567-84-6"
|
||||
x="7849.5195"
|
||||
y="7966.5952"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.64633179">Compute-4</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:479.77911377px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e9e9e9;fill-opacity:1;stroke:none;stroke-width:338.50814819"
|
||||
x="3706.873"
|
||||
y="825.29425"
|
||||
id="text7700"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7698"
|
||||
x="3706.873"
|
||||
y="825.29425"
|
||||
style="fill:#e9e9e9;fill-opacity:1;stroke-width:338.50814819">Spine 1</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 1899.2403,5343.3869 v 766.9932"
|
||||
id="path7758"
|
||||
inkscape:connector-curvature="0" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 3869.7864,5343.3869 v 766.9932"
|
||||
id="path7760"
|
||||
inkscape:connector-curvature="0" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 9005.7841,5343.3869 v 766.9932"
|
||||
id="path7764"
|
||||
inkscape:connector-curvature="0" /><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:347.70367432px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:231.50720215;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
x="21719.07"
|
||||
y="849.41766"
|
||||
id="text7772"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7770"
|
||||
x="21719.07"
|
||||
y="849.41766"
|
||||
style="stroke-width:231.50720215;stroke-miterlimit:4;stroke-dasharray:none">Spine Switches</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:350.77200317px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:247.48719788;stroke-linejoin:round"
|
||||
x="21927.396"
|
||||
y="6772.7363"
|
||||
id="text7776-0"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7774-0"
|
||||
x="21927.396"
|
||||
y="6772.7363"
|
||||
style="stroke-width:247.48719788">Servers</tspan></text>
|
||||
<rect
|
||||
style="fill:#000000;fill-opacity:0.26666667;fill-rule:evenodd;stroke-width:23.40653419;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:187.25228269, 93.62614135;stroke-dashoffset:0"
|
||||
id="rect7187-4-2"
|
||||
width="3990.1208"
|
||||
height="5406.3735"
|
||||
x="10816.969"
|
||||
y="4129.9087"
|
||||
ry="246.35414" /><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:304.87026978px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:215.10121155;stroke-linejoin:round"
|
||||
x="13574.528"
|
||||
y="8524.0117"
|
||||
id="text7452-0-3"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7450-5-7"
|
||||
x="13574.528"
|
||||
y="8524.0117"
|
||||
style="stroke-width:215.10121155">Rack C</tspan></text>
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:23.15072632px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 11814.863,5317.8196 v 766.9932"
|
||||
id="path7762-9"
|
||||
inkscape:connector-curvature="0" /><rect
|
||||
id="rect2109-6-5-9-8-0-5-3-2"
|
||||
width="3458.938"
|
||||
height="639.16064"
|
||||
x="11123.074"
|
||||
y="6008.1138"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.1421051;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.69542" /><rect
|
||||
id="rect2109-6-5-9-8-0-5-0-1-2"
|
||||
width="3458.9385"
|
||||
height="639.16071"
|
||||
x="11123.072"
|
||||
y="6826.2402"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.14210892;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.69543" /><rect
|
||||
id="rect2109-6-5-9-8-0-5-6-1-8"
|
||||
width="3458.9385"
|
||||
height="639.16071"
|
||||
x="11123.074"
|
||||
y="7593.2339"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.14210892;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.69543" /><rect
|
||||
id="rect2109-6-5-9-8-0-5-4-0-9"
|
||||
width="3458.9385"
|
||||
height="639.16071"
|
||||
x="11123.074"
|
||||
y="8360.2266"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.14210892;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.69543" /><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.00558472px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:259.64633179;stroke-linejoin:round"
|
||||
x="13118.99"
|
||||
y="5859.8784"
|
||||
id="text7569-3-7"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567-4-3"
|
||||
x="13118.99"
|
||||
y="5859.8784"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.64633179">Compute-5</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.00558472px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:259.6463623;stroke-linejoin:round"
|
||||
x="13111.204"
|
||||
y="6554.4009"
|
||||
id="text7569-6-0-6"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567-2-3-1"
|
||||
x="13111.204"
|
||||
y="6554.4009"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.6463623">Compute-6</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.00558472px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:259.6463623;stroke-linejoin:round"
|
||||
x="13163.978"
|
||||
y="7248.9224"
|
||||
id="text7569-5-9-2"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567-8-1-9"
|
||||
x="13163.978"
|
||||
y="7248.9224"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.6463623">Compute-7</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.00558472px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:259.6463623;stroke-linejoin:round"
|
||||
x="13174.185"
|
||||
y="7943.4443"
|
||||
id="text7569-62-9-3"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567-84-6-1"
|
||||
x="13174.185"
|
||||
y="7943.4443"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.6463623">Compute-8</tspan></text>
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:23.15072632px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 13827.334,5317.8196 v 766.9932"
|
||||
id="path7764-4"
|
||||
inkscape:connector-curvature="0" /><rect
|
||||
style="fill:#000000;fill-opacity:0.26666667;fill-rule:evenodd;stroke-width:23.4065361;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:187.2523033, 93.62615153;stroke-dashoffset:0"
|
||||
id="rect7187-4-2-0"
|
||||
width="3990.1216"
|
||||
height="5406.374"
|
||||
x="15470.81"
|
||||
y="4155.4756"
|
||||
ry="246.35416" /><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:304.87030029px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:215.10124207;stroke-linejoin:round"
|
||||
x="18713.99"
|
||||
y="8547.1641"
|
||||
id="text7452-0-3-6"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7450-5-7-1"
|
||||
x="18713.99"
|
||||
y="8547.1641"
|
||||
style="stroke-width:215.10124207">Rack D</tspan></text>
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:23.15072823px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 16468.705,5343.3865 v 766.9938"
|
||||
id="path7762-9-6"
|
||||
inkscape:connector-curvature="0" /><rect
|
||||
id="rect2109-6-5-9-8-0-5-3-2-3"
|
||||
width="3458.9385"
|
||||
height="639.16071"
|
||||
x="15776.916"
|
||||
y="6033.6812"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.14210892;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.69543" /><rect
|
||||
id="rect2109-6-5-9-8-0-5-0-1-2-2"
|
||||
width="3458.939"
|
||||
height="639.16077"
|
||||
x="15776.915"
|
||||
y="6851.8071"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.14211273;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.69545" /><rect
|
||||
id="rect2109-6-5-9-8-0-5-6-1-8-0"
|
||||
width="3458.939"
|
||||
height="639.16077"
|
||||
x="15776.916"
|
||||
y="7618.8003"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.14211273;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.69545" /><rect
|
||||
id="rect2109-6-5-9-8-0-5-4-0-9-6"
|
||||
width="3458.939"
|
||||
height="639.16077"
|
||||
x="15776.916"
|
||||
y="8385.7939"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:35.14211273;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.69545" /><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.00561523px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:259.6463623;stroke-linejoin:round"
|
||||
x="18258.451"
|
||||
y="5883.0293"
|
||||
id="text7569-3-7-1"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567-4-3-5"
|
||||
x="18258.451"
|
||||
y="5883.0293"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.6463623">Compute-9</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.00561523px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:259.64639282;stroke-linejoin:round"
|
||||
x="18250.664"
|
||||
y="6577.5522"
|
||||
id="text7569-6-0-6-5"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567-2-3-1-4"
|
||||
x="18250.664"
|
||||
y="6577.5522"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.64639282">Compute-10</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.00561523px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:259.64639282;stroke-linejoin:round"
|
||||
x="18303.438"
|
||||
y="7272.0742"
|
||||
id="text7569-5-9-2-7"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567-8-1-9-6"
|
||||
x="18303.438"
|
||||
y="7272.0742"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.64639282">Compute-11</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:368.00561523px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:259.64639282;stroke-linejoin:round"
|
||||
x="18313.645"
|
||||
y="7966.5952"
|
||||
id="text7569-62-9-3-5"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7567-84-6-1-6"
|
||||
x="18313.645"
|
||||
y="7966.5952"
|
||||
style="fill:#e6e6e6;fill-opacity:1;stroke-width:259.64639282">Compute-12</tspan></text>
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:23.15072823px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 18481.177,5343.3865 v 766.9938"
|
||||
id="path7764-4-5"
|
||||
inkscape:connector-curvature="0" /><rect
|
||||
id="rect2109-6-5-9-0-5"
|
||||
width="5118.356"
|
||||
height="946.78058"
|
||||
x="7806.5093"
|
||||
y="281.23059"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:66.52793121;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="240.99869" /><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:479.77914429px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e9e9e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:338.50820923;stroke-linejoin:round"
|
||||
x="10483.087"
|
||||
y="802.88812"
|
||||
id="text7700-4"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7698-7"
|
||||
x="10483.087"
|
||||
y="802.88812"
|
||||
style="fill:#e9e9e9;fill-opacity:1;stroke-width:338.50820923">Spine 2</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 11856.789,4832.0579 4232.2745,1252.7555"
|
||||
id="path1177"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 13533.849,4832.0579 4232.2745,1252.7555"
|
||||
id="path1179"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 16259.072,4832.0579 5254.9322,1252.7555 v 0"
|
||||
id="path1181"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccc" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 17936.133,4832.0579 5254.9322,1252.7555"
|
||||
id="path1183"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 18565.031,4832.0579 18293.819,1252.7555"
|
||||
id="path1185"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 16248.503,4832.0574 18293.819,1252.7555"
|
||||
id="path1187"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 11902.207,4832.0574 17526.825,1252.7555"
|
||||
id="path1189"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 13947.523,4832.0574 17526.825,1252.7555"
|
||||
id="path1191"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" /><rect
|
||||
style="fill:#000000;fill-opacity:0.26666667;fill-rule:evenodd;stroke:none;stroke-width:57.1015358;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect7472-1"
|
||||
width="21068.076"
|
||||
height="1093.6759"
|
||||
x="1060.71"
|
||||
y="4521.9468"
|
||||
ry="162.13054" /><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:350.77197266px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:247.48716736"
|
||||
x="21855.145"
|
||||
y="4661.4409"
|
||||
id="text7776"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7774"
|
||||
x="21855.145"
|
||||
y="4661.4409"
|
||||
style="stroke-width:247.48716736">Leaf Switches</tspan></text>
|
||||
<rect
|
||||
id="rect2109-6-5-9-8"
|
||||
width="1585.0544"
|
||||
height="639.1604"
|
||||
x="6283.0039"
|
||||
y="4704.2261"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:23.78912354;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.69536" /><rect
|
||||
id="rect2109-6-5-9-8-1"
|
||||
width="1585.0546"
|
||||
height="639.16046"
|
||||
x="3144.2256"
|
||||
y="4704.2266"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:23.78912354;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.69537" /><rect
|
||||
id="rect2109-6-5-9-8-0"
|
||||
width="1585.0546"
|
||||
height="639.16046"
|
||||
x="1257.5322"
|
||||
y="4704.2261"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:23.78912354;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.69537" /><rect
|
||||
id="rect2109-6-5-9-8-8"
|
||||
width="1585.0546"
|
||||
height="639.16046"
|
||||
x="8175.4072"
|
||||
y="4704.2266"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:23.78912354;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.69537" /><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:333.13885498px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e9e9e9;fill-opacity:1;stroke:none;stroke-width:235.04612732"
|
||||
x="1715.7467"
|
||||
y="4661.6909"
|
||||
id="text7722"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7720"
|
||||
x="1715.7467"
|
||||
y="4661.6909"
|
||||
style="fill:#e9e9e9;fill-opacity:1;stroke-width:235.04612732">Leaf 1</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:333.13885498px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e9e9e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:235.04614258;stroke-linejoin:round"
|
||||
x="3763.0071"
|
||||
y="4643.5928"
|
||||
id="text7722-3"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7720-8"
|
||||
x="3763.0071"
|
||||
y="4643.5928"
|
||||
style="fill:#e9e9e9;fill-opacity:1;stroke-width:235.04614258">Leaf 1</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:333.13885498px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e9e9e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:235.04614258;stroke-linejoin:round"
|
||||
x="7318.2295"
|
||||
y="4638.5405"
|
||||
id="text7722-0"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7720-5"
|
||||
x="7318.2295"
|
||||
y="4638.5405"
|
||||
style="fill:#e9e9e9;fill-opacity:1;stroke-width:235.04614258">Leaf 2</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:333.13885498px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e9e9e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:235.04614258;stroke-linejoin:round"
|
||||
x="9424.9385"
|
||||
y="4661.6909"
|
||||
id="text7722-6"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7720-6"
|
||||
x="9424.9385"
|
||||
y="4661.6909"
|
||||
style="fill:#e9e9e9;fill-opacity:1;stroke-width:235.04614258">Leaf 2</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 3157.0358,5087.7224 H 2842.5869"
|
||||
id="path7766"
|
||||
inkscape:connector-curvature="0" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:23.1507225px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 8188.2177,5087.7224 H 7768.9525"
|
||||
id="path7768"
|
||||
inkscape:connector-curvature="0" /><rect
|
||||
id="rect2109-6-5-9-8-02"
|
||||
width="1585.0546"
|
||||
height="639.16046"
|
||||
x="11104.554"
|
||||
y="4678.6587"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:23.78912544;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.69537" /><rect
|
||||
id="rect2109-6-5-9-8-8-5"
|
||||
width="1585.0548"
|
||||
height="639.16052"
|
||||
x="12996.957"
|
||||
y="4678.6592"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:23.78912735;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.69539" /><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:333.1388855px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e9e9e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:235.0461731;stroke-linejoin:round"
|
||||
x="12642.896"
|
||||
y="4615.3896"
|
||||
id="text7722-0-9"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7720-5-4"
|
||||
x="12642.896"
|
||||
y="4615.3896"
|
||||
style="fill:#e9e9e9;fill-opacity:1;stroke-width:235.0461731">Leaf 3</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:333.1388855px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e9e9e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:235.0461731;stroke-linejoin:round"
|
||||
x="14749.604"
|
||||
y="4638.54"
|
||||
id="text7722-6-7"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7720-6-8"
|
||||
x="14749.604"
|
||||
y="4638.54"
|
||||
style="fill:#e9e9e9;fill-opacity:1;stroke-width:235.0461731">Leaf 3</tspan></text>
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:23.15072632px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 13009.768,5062.155 h -419.265"
|
||||
id="path7768-5"
|
||||
inkscape:connector-curvature="0" /><rect
|
||||
id="rect2109-6-5-9-8-02-3"
|
||||
width="1585.0548"
|
||||
height="639.16052"
|
||||
x="15758.396"
|
||||
y="4704.2256"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:23.78912735;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.69539" /><rect
|
||||
id="rect2109-6-5-9-8-8-5-0"
|
||||
width="1585.0551"
|
||||
height="639.16058"
|
||||
x="17650.801"
|
||||
y="4704.2266"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:23.78913116;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="162.6954" /><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:333.13891602px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e9e9e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:235.04620361;stroke-linejoin:round"
|
||||
x="17782.357"
|
||||
y="4638.541"
|
||||
id="text7722-0-9-9"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7720-5-4-3"
|
||||
x="17782.357"
|
||||
y="4638.541"
|
||||
style="fill:#e9e9e9;fill-opacity:1;stroke-width:235.04620361">Leaf 4</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:333.13891602px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e9e9e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:235.04620361;stroke-linejoin:round"
|
||||
x="19889.064"
|
||||
y="4661.6914"
|
||||
id="text7722-6-7-7"
|
||||
transform="scale(0.90551207,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7720-6-8-4"
|
||||
x="19889.064"
|
||||
y="4661.6914"
|
||||
style="fill:#e9e9e9;fill-opacity:1;stroke-width:235.04620361">Leaf 4</tspan></text>
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:23.15072823px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 17663.609,5087.7218 h -419.265"
|
||||
id="path7768-5-2"
|
||||
inkscape:connector-curvature="0" /><rect
|
||||
id="rect2109-6-5-9-0-5-4"
|
||||
width="5118.3569"
|
||||
height="946.7807"
|
||||
x="13942.457"
|
||||
y="305.9747"
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:66.52793884;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;image-rendering:auto"
|
||||
ry="240.99872" /><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:479.77920532px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#e9e9e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:338.50827026;stroke-linejoin:round"
|
||||
x="17259.299"
|
||||
y="871.5957"
|
||||
id="text7700-4-3"
|
||||
transform="scale(0.90551208,1.1043475)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7698-7-0"
|
||||
x="17259.299"
|
||||
y="871.5957"
|
||||
style="fill:#e9e9e9;fill-opacity:1;stroke-width:338.50827026">Spine 3</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:25.56644249px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 1931.2946,4832.0575 C 8578.57,1252.7555 8578.57,1252.7555 8578.57,1252.7555"
|
||||
id="path1229"
|
||||
inkscape:connector-curvature="0" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:25.56644249px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 3720.9458,4832.0575 C 8578.57,1252.7555 8578.57,1252.7555 8578.57,1252.7555"
|
||||
id="path1231"
|
||||
inkscape:connector-curvature="0" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:25.56644249px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 7300.2478,4832.0575 C 8834.2345,1252.7555 8834.2345,1252.7555 8834.2345,1252.7555"
|
||||
id="path1233"
|
||||
inkscape:connector-curvature="0" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:25.56644249px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 9345.5633,4832.0575 C 8834.2347,1252.7555 8834.2347,1252.7555 8834.2347,1252.7555"
|
||||
id="path1235"
|
||||
inkscape:connector-curvature="0" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:25.56644249px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 11646.543,4832.0574 9856.8923,1252.7555"
|
||||
id="path1237"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:25.56644249px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 13691.859,4832.0574 9856.8923,1252.7555"
|
||||
id="path1239"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:25.56644249px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 16248.503,4832.0575 c -4601.96,-3579.302 -4601.96,-3579.302 -4601.96,-3579.302"
|
||||
id="path1241"
|
||||
inkscape:connector-curvature="0" /><path
|
||||
style="fill:none;stroke:#000000;stroke-width:25.56644249px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 18038.154,4832.0575 C 11646.543,1252.7555 11646.543,1252.7555 11646.543,1252.7555"
|
||||
id="path1243"
|
||||
inkscape:connector-curvature="0" /></svg>
|
After Width: | Height: | Size: 45 KiB |
@ -16,3 +16,4 @@ Documentation on how to deploy custom configurations with |project|.
|
||||
deploy_swift
|
||||
role_specific_parameters
|
||||
plan_export
|
||||
routed_spine_leaf_network
|
||||
|
@ -0,0 +1,608 @@
|
||||
Deploying Overcloud with L3 routed networking
|
||||
=============================================
|
||||
|
||||
Layer 3 Routed spine and leaf architectures is gaining in popularity due to the
|
||||
benefits, such as high-performance, increased scalability and reduced failure
|
||||
domains.
|
||||
|
||||
The below diagram is an example L3 routed
|
||||
`Clos <https://en.wikipedia.org/wiki/Clos_network>`_ architecture. In this
|
||||
example each server is connected to top-of-rack leaf switches. Each leaf switch
|
||||
is attached to each spine switch. Within each rack, all servers share a layer 2
|
||||
domain. The layer 2 network segments are local to the rack. Layer 3 routing via
|
||||
the spine switches permits East-West traffic between the racks:
|
||||
|
||||
.. image:: ../_images/spine_and_leaf.svg
|
||||
|
||||
.. Note:: Typically Dynamic Routing is implemented in such an architecture.
|
||||
Often also
|
||||
`ECMP <https://en.wikipedia.org/wiki/Equal-cost_multi-path_routing>`_
|
||||
(Equal-cost multi-path routing) and
|
||||
`BFD <https://en.wikipedia.org/wiki/Bidirectional_Forwarding_Detection>`_
|
||||
(Bidirectional Forwarding Detection) are used to provide non-blocking
|
||||
forwarding and fast convergence times in case of failures.
|
||||
Configuration of the underlying network architecture is not in the
|
||||
scope of this document.
|
||||
|
||||
Layer 3 routed Requirements
|
||||
---------------------------
|
||||
|
||||
For TripleO to deploy the ``overcloud`` on a network with a layer 3 routed
|
||||
architecture the following requirements must be met:
|
||||
|
||||
* **Layer 3 routing**:
|
||||
The network infrastructure must have *routing* configured to enable traffic
|
||||
between the different layer 2 segments. This can be statically or dynamically
|
||||
configured.
|
||||
|
||||
* **DHCP-Relay**:
|
||||
Each layer 2 segment that is not local to the ``undercloud`` must provide
|
||||
*dhcp-relay*. DHCP requests must be forwarded to the Undercloud on the
|
||||
provisioning network segment where the ``undercloud`` is connected.
|
||||
|
||||
.. Note:: The ``undercloud`` uses two DHCP servers. One for baremetal node
|
||||
introspection, and another for deploying overcloud nodes.
|
||||
|
||||
Make sure to read `DHCP relay configuration`_ to understand the
|
||||
requirements when configuring *dhcp-relay*.
|
||||
|
||||
Layer 3 routed Limitations
|
||||
--------------------------
|
||||
|
||||
* Some roles, such as the Controller role, use virtual IP addresses and
|
||||
clustering. The mechanism behind this functionality requires layer-2 network
|
||||
connectivity between these nodes. These nodes must all be placed within the
|
||||
same leaf.
|
||||
|
||||
* Similar restrictions apply to networker nodes. The Network service implements
|
||||
highly-available default paths in the network using Virtual Router Redundancy
|
||||
Protocol (VRRP). Since VRRP uses a virtual router ip address, master and
|
||||
backup nodes must be connected to the same L2 network segment.
|
||||
|
||||
* When using tenant or provider networks with VLAN segmentation, the particular
|
||||
VLANs used must be shared between all networker and compute nodes.
|
||||
|
||||
.. Note:: It is possible to configure the Network service with multiple sets
|
||||
of networker nodes. Each set would share routes for their networks,
|
||||
and VRRP would be used within each set of networker nodes to
|
||||
provide highly-available default paths. In such configuration all
|
||||
networker nodes sharing networks must be on the same L2 network
|
||||
segment.
|
||||
|
||||
Create undercloud configuration
|
||||
-------------------------------
|
||||
|
||||
To deploy the ``overcloud`` on a L3 routed architecture the ``undercloud``
|
||||
needs to be configured with multiple neutron network segments and subnets on
|
||||
the ``ctlplane`` network.
|
||||
|
||||
#. In the ``[DEFAULT]`` section of ``undercloud.conf`` enable the routed
|
||||
networks feature by setting ``enable_routed_networks`` to ``true``. For
|
||||
example::
|
||||
|
||||
enable_routed_networks = true
|
||||
|
||||
#. In the ``[DEFAULT]`` section of ``undercloud.conf`` add a comma separated
|
||||
list of control plane subnets. Define one subnet for each layer 2 segment in
|
||||
the routed spine and leaf. For example::
|
||||
|
||||
subnets = leaf0,leaf1,leaf2
|
||||
|
||||
#. In the ``[DEFAULT]`` section of ``undercloud.conf`` specify the subnet that
|
||||
is associated with the physical layer 2 segment that is *local* to the
|
||||
``undercloud``. For example::
|
||||
|
||||
local_subnet = leaf0
|
||||
|
||||
#. For each of the control plane subnets specified in ``[DEFAULT]\subnets``
|
||||
add an additional section in ``undercloud.conf``, for example::
|
||||
|
||||
[leaf0]
|
||||
cidr = 192.168.10.0/24
|
||||
dhcp_start = 192.168.10.10
|
||||
dhcp_end = 192.168.10.90
|
||||
inspection_iprange = 192.168.10.100,192.168.10.190
|
||||
gateway = 192.168.10.1
|
||||
masquerade = False
|
||||
|
||||
[leaf1]
|
||||
cidr = 192.168.11.0/24
|
||||
dhcp_start = 192.168.11.10
|
||||
dhcp_end = 192.168.11.90
|
||||
inspection_iprange = 192.168.11.100,192.168.11.190
|
||||
gateway = 192.168.11.1
|
||||
masquerade = False
|
||||
|
||||
[leaf2]
|
||||
cidr = 192.168.12.0/24
|
||||
dhcp_start = 192.168.12.10
|
||||
dhcp_end = 192.168.12.90
|
||||
inspection_iprange = 192.168.12.100,192.168.12.190
|
||||
gateway = 192.168.12.1
|
||||
masquerade = False
|
||||
|
||||
Install the undercloud
|
||||
----------------------
|
||||
|
||||
Once the ``undercloud.conf`` is updated with the desired configuration, install
|
||||
the undercloud by running the following command::
|
||||
|
||||
openstack undercloud install
|
||||
|
||||
Once the ``undercloud`` is installed complete the post-install tasks such as
|
||||
uploading images and registering baremetal nodes. (For addition details
|
||||
regarding the post-install tasks, see
|
||||
:doc:`../basic_deployment/basic_deployment_cli`.)
|
||||
|
||||
DHCP relay configuration
|
||||
------------------------
|
||||
|
||||
The TripleO Undercloud uses two DHCP servers on the provisioning network, one
|
||||
for ``introspection`` and another one for ``provisioning``. When configuring
|
||||
*dhcp-relay* make sure that DHCP requests are forwarded to both DHCP servers on
|
||||
the Undercloud.
|
||||
|
||||
For devices that support it, UDP *broadcast* can be used to relay DHCP requests
|
||||
to the L2 network segment where the Undercloud provisioning network is
|
||||
connected. Alternatively UDP *unicast* can be can be used, in this case DHCP
|
||||
requests are relayed to specific ip addresses.
|
||||
|
||||
.. Note:: Configuration of *dhcp-relay* on specific devices types is beyond the
|
||||
scope of this document. As a reference
|
||||
`DHCP relay configuration (Example)`_ using the implementation in
|
||||
`ISC DHCP software <https://www.isc.org/downloads/dhcp/>`_ is
|
||||
available below. (Please refer to manual page
|
||||
`dhcrelay(8) <https://linux.die.net/man/8/dhcrelay>`_ for further
|
||||
details on how to use this implementation.)
|
||||
|
||||
|
||||
Broadcast DHCP relay
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
DHCP requests are relayed onto the L2 network segment where the DHCP server(s)
|
||||
reside using UDP *broadcast* traffic. All devices on the network segment will
|
||||
receive the broadcast traffic. When using UDP *broadcast* both DHCP servers on
|
||||
the Undercloud will receive the relayed DHCP request.
|
||||
|
||||
Depending on implementation this is typically configured by specifying either
|
||||
*interface* or *ip network address*:
|
||||
|
||||
* **Interface**:
|
||||
Specifying an interface connected to the L2 network segment where the DHCP
|
||||
requests will be relayed.
|
||||
* **IP network address**:
|
||||
Specifying the network address of the IP network where the DHCP request will
|
||||
be relayed.
|
||||
|
||||
Unicast DHCP relay
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
DHCP requests are relayed to specific DHCP servers using UDP *unicast* traffic.
|
||||
When using UDP *unicast* the device configured to provide *dhcp-relay* must be
|
||||
configured to relay DHCP requests to both the IP address assigned to the
|
||||
interface used for *introspection* on the Undercloud and the IP address of the
|
||||
network namespace created by the Network service to host the DHCP service for
|
||||
the ``ctlplane`` network.
|
||||
|
||||
The interface used for *introspection* is the one defined as
|
||||
``inspection_interface`` in ``undercloud.conf``.
|
||||
|
||||
.. Note:: It is common to use the ``br-ctlplane`` interface for introspection,
|
||||
the IP address defined as ``local_ip`` in ``undercloud.conf`` will be
|
||||
on the ``br-ctlplane`` interface.
|
||||
|
||||
The IP address allocated to the neutron DHCP namespace will typically be the
|
||||
first address available in the IP range configured for the ``local_subnet`` in
|
||||
``undercloud.conf``. (The first address in the IP range is the one defined as
|
||||
``dhcp_start`` in the configuration.) For example: ``172.20.0.10`` would be the
|
||||
IP address when the following configuration is used::
|
||||
|
||||
[DEFAULT]
|
||||
local_subnet = leaf0
|
||||
subnets = leaf0,leaf1,leaf2
|
||||
|
||||
[leaf0]
|
||||
cidr = 172.20.0.0/26
|
||||
dhcp_start = 172.20.0.10
|
||||
dhcp_end = 172.20.0.19
|
||||
inspection_iprange = 172.20.0.20,172.20.0.29
|
||||
gateway = 172.20.0.62
|
||||
masquerade = False
|
||||
|
||||
.. Warning:: The IP address for the DHCP namespace is automatically allocated,
|
||||
it will in most cases be the first address in the IP range, but
|
||||
do make sure to verify that this is the case by running the
|
||||
following commands on the Undercloud::
|
||||
|
||||
$ openstack port list --device-owner network:dhcp -c "Fixed IP Addresses"
|
||||
+----------------------------------------------------------------------------+
|
||||
| Fixed IP Addresses |
|
||||
+----------------------------------------------------------------------------+
|
||||
| ip_address='172.20.0.10', subnet_id='7526fbe3-f52a-4b39-a828-ec59f4ed12b2' |
|
||||
+----------------------------------------------------------------------------+
|
||||
$ openstack subnet show 7526fbe3-f52a-4b39-a828-ec59f4ed12b2 -c name
|
||||
+-------+--------+
|
||||
| Field | Value |
|
||||
+-------+--------+
|
||||
| name | leaf0 |
|
||||
+-------+--------+
|
||||
|
||||
DHCP relay configuration (Example)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
In the following example ``dhcrelay`` from
|
||||
`ISC DHCP software <https://www.isc.org/downloads/dhcp/>`_ is started using
|
||||
configuration parameters to relay incoming DHCP request on interfaces:
|
||||
``eth1``, ``eth2`` and ``eth3``. The undercloud DHCP servers are on the network
|
||||
segment connected to the ``eth0`` interface. The DHCP server used for
|
||||
``introspection`` is listening on ip address: ``172.20.0.1`` and the DHCP
|
||||
server used for ``provisioning`` is listening on ip address: ``172.20.0.10``::
|
||||
|
||||
dhcrelay -d --no-pid 172.20.0.10 172.20.0.1 \
|
||||
-iu eth0 -id eth1 -id eth2 -id eth3
|
||||
|
||||
Map bare metal node ports to control plane network segments
|
||||
-----------------------------------------------------------
|
||||
|
||||
To enable deployment onto a L3 routed network the baremetal ports must have
|
||||
its ``physical_network`` field configured. Each baremetal port is associated
|
||||
with a baremetal node in the Bare Metal service. The physical network names are
|
||||
the ones used in the ``subnets`` option in the undercloud configuration.
|
||||
|
||||
.. Note:: The physical network name of the subnet specified as ``local_subnet``
|
||||
in ``undercloud.conf`` is special. It is **always** named
|
||||
``ctlplane``.
|
||||
|
||||
#. Make sure the baremetal nodes are in one of the following states: *enroll*,
|
||||
or *manageable*. If the baremetal node is not in one of these states the
|
||||
command used to set the ``physical_network`` property on the baremetal port
|
||||
will fail. (For additional details regarding node states see
|
||||
:doc:`../advanced_deployment/node_states`.)
|
||||
|
||||
To set all nodes to ``manageable`` state run the following command::
|
||||
|
||||
for node in $(openstack baremetal node list -f value -c Name); do \
|
||||
openstack baremetal node manage $node --wait; done
|
||||
|
||||
#. Use ``openstack baremetal port list --node <node-uuid>`` command to find out
|
||||
which baremetal ports are associated with which baremetal node. Then set the
|
||||
``physical-network`` for the ports.
|
||||
|
||||
In the example below three subnets where defined in the configuration,
|
||||
*leaf0*, *leaf1* and *leaf2*. Notice that the ``local_subnet`` is ``leaf0``,
|
||||
since the physical network for the ``local_subnet`` is always ``ctlplane``
|
||||
the baremetal port connected to ``leaf0`` use ``ctlplane``. The remaining
|
||||
ports use the ``leafX`` names::
|
||||
|
||||
openstack baremetal port set --physical-network ctlplane <port-uuid>
|
||||
|
||||
openstack baremetal port set --physical-network leaf1 <port-uuid>
|
||||
openstack baremetal port set --physical-network leaf2 <port-uuid>
|
||||
openstack baremetal port set --physical-network leaf2 <port-uuid>
|
||||
|
||||
#. Make sure the nodes are in ``available`` state before deploying the
|
||||
overcloud::
|
||||
|
||||
openstack overcloud node provide --all-manageable
|
||||
|
||||
Create roles specific to each leaf (layer 2 segment)
|
||||
----------------------------------------------------
|
||||
|
||||
To aid in scheduling and to allow override of leaf specific parameters in
|
||||
``tripleo-heat-templates`` create new roles for each l2 leaf. The following is
|
||||
an example with one controller role, and two compute roles. Please refer to
|
||||
:doc:`custom_roles` for details on configuring custom roles.
|
||||
|
||||
Example ``roles_data``::
|
||||
|
||||
#############################################################################
|
||||
# Role: Controller #
|
||||
#############################################################################
|
||||
- name: Controller
|
||||
description: |
|
||||
Controller role that has all the controler services loaded and handles
|
||||
Database, Messaging and Network functions.
|
||||
CountDefault: 1
|
||||
tags:
|
||||
- primary
|
||||
- controller
|
||||
networks:
|
||||
- External
|
||||
- InternalApi
|
||||
- Storage
|
||||
- StorageMgmt
|
||||
- Tenant
|
||||
HostnameFormatDefault: '%stackname%-controller-%index%'
|
||||
ServicesDefault:
|
||||
- OS::TripleO::Services::AodhApi
|
||||
- OS::TripleO::Services::AodhEvaluator
|
||||
- OS::TripleO::Services::AodhListener
|
||||
- OS::TripleO::Services::AodhNotifier
|
||||
- OS::TripleO::Services::AuditD
|
||||
- OS::TripleO::Services::BarbicanApi
|
||||
- OS::TripleO::Services::BarbicanBackendSimpleCrypto
|
||||
- OS::TripleO::Services::BarbicanBackendDogtag
|
||||
- OS::TripleO::Services::BarbicanBackendKmip
|
||||
- OS::TripleO::Services::BarbicanBackendPkcs11Crypto
|
||||
- OS::TripleO::Services::CACerts
|
||||
- OS::TripleO::Services::CeilometerAgentCentral
|
||||
- OS::TripleO::Services::CeilometerAgentNotification
|
||||
- OS::TripleO::Services::CephExternal
|
||||
- OS::TripleO::Services::CephMds
|
||||
- OS::TripleO::Services::CephMgr
|
||||
- OS::TripleO::Services::CephMon
|
||||
- OS::TripleO::Services::CephRbdMirror
|
||||
- OS::TripleO::Services::CephRgw
|
||||
- OS::TripleO::Services::CertmongerUser
|
||||
- OS::TripleO::Services::CinderApi
|
||||
- OS::TripleO::Services::CinderBackendDellPs
|
||||
- OS::TripleO::Services::CinderBackendDellSc
|
||||
- OS::TripleO::Services::CinderBackendDellEMCUnity
|
||||
- OS::TripleO::Services::CinderBackendDellEMCVMAXISCSI
|
||||
- OS::TripleO::Services::CinderBackendNetApp
|
||||
- OS::TripleO::Services::CinderBackendScaleIO
|
||||
- OS::TripleO::Services::CinderBackendVRTSHyperScale
|
||||
- OS::TripleO::Services::CinderBackup
|
||||
- OS::TripleO::Services::CinderHPELeftHandISCSI
|
||||
- OS::TripleO::Services::CinderScheduler
|
||||
- OS::TripleO::Services::CinderVolume
|
||||
- OS::TripleO::Services::Clustercheck
|
||||
- OS::TripleO::Services::Collectd
|
||||
- OS::TripleO::Services::Congress
|
||||
- OS::TripleO::Services::Docker
|
||||
- OS::TripleO::Services::Ec2Api
|
||||
- OS::TripleO::Services::Etcd
|
||||
- OS::TripleO::Services::ExternalSwiftProxy
|
||||
- OS::TripleO::Services::Fluentd
|
||||
- OS::TripleO::Services::GlanceApi
|
||||
- OS::TripleO::Services::GnocchiApi
|
||||
- OS::TripleO::Services::GnocchiMetricd
|
||||
- OS::TripleO::Services::GnocchiStatsd
|
||||
- OS::TripleO::Services::HAproxy
|
||||
- OS::TripleO::Services::HeatApi
|
||||
- OS::TripleO::Services::HeatApiCfn
|
||||
- OS::TripleO::Services::HeatEngine
|
||||
- OS::TripleO::Services::Horizon
|
||||
- OS::TripleO::Services::Ipsec
|
||||
- OS::TripleO::Services::IronicApi
|
||||
- OS::TripleO::Services::IronicConductor
|
||||
- OS::TripleO::Services::IronicPxe
|
||||
- OS::TripleO::Services::Iscsid
|
||||
- OS::TripleO::Services::Keepalived
|
||||
- OS::TripleO::Services::Kernel
|
||||
- OS::TripleO::Services::Keystone
|
||||
- OS::TripleO::Services::LoginDefs
|
||||
- OS::TripleO::Services::ManilaApi
|
||||
- OS::TripleO::Services::ManilaBackendCephFs
|
||||
- OS::TripleO::Services::ManilaBackendIsilon
|
||||
- OS::TripleO::Services::ManilaBackendNetapp
|
||||
- OS::TripleO::Services::ManilaBackendUnity
|
||||
- OS::TripleO::Services::ManilaBackendVNX
|
||||
- OS::TripleO::Services::ManilaBackendVMAX
|
||||
- OS::TripleO::Services::ManilaScheduler
|
||||
- OS::TripleO::Services::ManilaShare
|
||||
- OS::TripleO::Services::Memcached
|
||||
- OS::TripleO::Services::MongoDb
|
||||
- OS::TripleO::Services::MySQL
|
||||
- OS::TripleO::Services::MySQLClient
|
||||
- OS::TripleO::Services::NeutronApi
|
||||
- OS::TripleO::Services::NeutronBgpVpnApi
|
||||
- OS::TripleO::Services::NeutronSfcApi
|
||||
- OS::TripleO::Services::NeutronCorePlugin
|
||||
- OS::TripleO::Services::NeutronDhcpAgent
|
||||
- OS::TripleO::Services::NeutronL2gwAgent
|
||||
- OS::TripleO::Services::NeutronL2gwApi
|
||||
- OS::TripleO::Services::NeutronL3Agent
|
||||
- OS::TripleO::Services::NeutronLbaasv2Agent
|
||||
- OS::TripleO::Services::NeutronLinuxbridgeAgent
|
||||
- OS::TripleO::Services::NeutronMetadataAgent
|
||||
- OS::TripleO::Services::NeutronML2FujitsuCfab
|
||||
- OS::TripleO::Services::NeutronML2FujitsuFossw
|
||||
- OS::TripleO::Services::NeutronOvsAgent
|
||||
- OS::TripleO::Services::NeutronVppAgent
|
||||
- OS::TripleO::Services::NovaApi
|
||||
- OS::TripleO::Services::NovaConductor
|
||||
- OS::TripleO::Services::NovaConsoleauth
|
||||
- OS::TripleO::Services::NovaIronic
|
||||
- OS::TripleO::Services::NovaMetadata
|
||||
- OS::TripleO::Services::NovaPlacement
|
||||
- OS::TripleO::Services::NovaScheduler
|
||||
- OS::TripleO::Services::NovaVncProxy
|
||||
- OS::TripleO::Services::Ntp
|
||||
- OS::TripleO::Services::ContainersLogrotateCrond
|
||||
- OS::TripleO::Services::OctaviaApi
|
||||
- OS::TripleO::Services::OctaviaHealthManager
|
||||
- OS::TripleO::Services::OctaviaHousekeeping
|
||||
- OS::TripleO::Services::OctaviaWorker
|
||||
- OS::TripleO::Services::OpenDaylightApi
|
||||
- OS::TripleO::Services::OpenDaylightOvs
|
||||
- OS::TripleO::Services::OVNDBs
|
||||
- OS::TripleO::Services::OVNController
|
||||
- OS::TripleO::Services::Pacemaker
|
||||
- OS::TripleO::Services::PankoApi
|
||||
- OS::TripleO::Services::RabbitMQ
|
||||
- OS::TripleO::Services::Redis
|
||||
- OS::TripleO::Services::Rhsm
|
||||
- OS::TripleO::Services::RsyslogSidecar
|
||||
- OS::TripleO::Services::SaharaApi
|
||||
- OS::TripleO::Services::SaharaEngine
|
||||
- OS::TripleO::Services::Securetty
|
||||
- OS::TripleO::Services::SensuClient
|
||||
- OS::TripleO::Services::SkydiveAgent
|
||||
- OS::TripleO::Services::SkydiveAnalyzer
|
||||
- OS::TripleO::Services::Snmp
|
||||
- OS::TripleO::Services::Sshd
|
||||
- OS::TripleO::Services::SwiftProxy
|
||||
- OS::TripleO::Services::SwiftDispersion
|
||||
- OS::TripleO::Services::SwiftRingBuilder
|
||||
- OS::TripleO::Services::SwiftStorage
|
||||
- OS::TripleO::Services::Tacker
|
||||
- OS::TripleO::Services::Timezone
|
||||
- OS::TripleO::Services::TripleoFirewall
|
||||
- OS::TripleO::Services::TripleoPackages
|
||||
- OS::TripleO::Services::Tuned
|
||||
- OS::TripleO::Services::Vpp
|
||||
- OS::TripleO::Services::Zaqar
|
||||
#############################################################################
|
||||
# Role: ComputeLeaf0 #
|
||||
#############################################################################
|
||||
- name: ComputeLeaf0
|
||||
description: |
|
||||
Basic Compute Node role
|
||||
CountDefault: 1
|
||||
networks:
|
||||
- InternalApi
|
||||
- Tenant
|
||||
- Storage
|
||||
HostnameFormatDefault: '%stackname%-compute-leaf0-%index%'
|
||||
disable_upgrade_deployment: True
|
||||
ServicesDefault:
|
||||
- OS::TripleO::Services::AuditD
|
||||
- OS::TripleO::Services::CACerts
|
||||
- OS::TripleO::Services::CephClient
|
||||
- OS::TripleO::Services::CephExternal
|
||||
- OS::TripleO::Services::CertmongerUser
|
||||
- OS::TripleO::Services::Collectd
|
||||
- OS::TripleO::Services::ComputeCeilometerAgent
|
||||
- OS::TripleO::Services::ComputeNeutronCorePlugin
|
||||
- OS::TripleO::Services::ComputeNeutronL3Agent
|
||||
- OS::TripleO::Services::ComputeNeutronMetadataAgent
|
||||
- OS::TripleO::Services::ComputeNeutronOvsAgent
|
||||
- OS::TripleO::Services::Docker
|
||||
- OS::TripleO::Services::Fluentd
|
||||
- OS::TripleO::Services::Ipsec
|
||||
- OS::TripleO::Services::Iscsid
|
||||
- OS::TripleO::Services::Kernel
|
||||
- OS::TripleO::Services::LoginDefs
|
||||
- OS::TripleO::Services::MySQLClient
|
||||
- OS::TripleO::Services::NeutronBgpVpnBagpipe
|
||||
- OS::TripleO::Services::NeutronLinuxbridgeAgent
|
||||
- OS::TripleO::Services::NeutronVppAgent
|
||||
- OS::TripleO::Services::NovaCompute
|
||||
- OS::TripleO::Services::NovaLibvirt
|
||||
- OS::TripleO::Services::NovaMigrationTarget
|
||||
- OS::TripleO::Services::Ntp
|
||||
- OS::TripleO::Services::ContainersLogrotateCrond
|
||||
- OS::TripleO::Services::OpenDaylightOvs
|
||||
- OS::TripleO::Services::Rhsm
|
||||
- OS::TripleO::Services::RsyslogSidecar
|
||||
- OS::TripleO::Services::Securetty
|
||||
- OS::TripleO::Services::SensuClient
|
||||
- OS::TripleO::Services::SkydiveAgent
|
||||
- OS::TripleO::Services::Snmp
|
||||
- OS::TripleO::Services::Sshd
|
||||
- OS::TripleO::Services::Timezone
|
||||
- OS::TripleO::Services::TripleoFirewall
|
||||
- OS::TripleO::Services::TripleoPackages
|
||||
- OS::TripleO::Services::Tuned
|
||||
- OS::TripleO::Services::Vpp
|
||||
- OS::TripleO::Services::OVNController
|
||||
- OS::TripleO::Services::OVNMetadataAgent
|
||||
#############################################################################
|
||||
# Role: ComputeLeaf1 #
|
||||
#############################################################################
|
||||
- name: ComputeLeaf1
|
||||
description: |
|
||||
Basic Compute Node role
|
||||
CountDefault: 1
|
||||
networks:
|
||||
- Internal1
|
||||
- Tenant1
|
||||
- Storage1
|
||||
HostnameFormatDefault: '%stackname%-compute-leaf1-%index%'
|
||||
disable_upgrade_deployment: True
|
||||
ServicesDefault:
|
||||
- OS::TripleO::Services::AuditD
|
||||
- OS::TripleO::Services::CACerts
|
||||
- OS::TripleO::Services::CephClient
|
||||
- OS::TripleO::Services::CephExternal
|
||||
- OS::TripleO::Services::CertmongerUser
|
||||
- OS::TripleO::Services::Collectd
|
||||
- OS::TripleO::Services::ComputeCeilometerAgent
|
||||
- OS::TripleO::Services::ComputeNeutronCorePlugin
|
||||
- OS::TripleO::Services::ComputeNeutronL3Agent
|
||||
- OS::TripleO::Services::ComputeNeutronMetadataAgent
|
||||
- OS::TripleO::Services::ComputeNeutronOvsAgent
|
||||
- OS::TripleO::Services::Docker
|
||||
- OS::TripleO::Services::Fluentd
|
||||
- OS::TripleO::Services::Ipsec
|
||||
- OS::TripleO::Services::Iscsid
|
||||
- OS::TripleO::Services::Kernel
|
||||
- OS::TripleO::Services::LoginDefs
|
||||
- OS::TripleO::Services::MySQLClient
|
||||
- OS::TripleO::Services::NeutronBgpVpnBagpipe
|
||||
- OS::TripleO::Services::NeutronLinuxbridgeAgent
|
||||
- OS::TripleO::Services::NeutronVppAgent
|
||||
- OS::TripleO::Services::NovaCompute
|
||||
- OS::TripleO::Services::NovaLibvirt
|
||||
- OS::TripleO::Services::NovaMigrationTarget
|
||||
- OS::TripleO::Services::Ntp
|
||||
- OS::TripleO::Services::ContainersLogrotateCrond
|
||||
- OS::TripleO::Services::OpenDaylightOvs
|
||||
- OS::TripleO::Services::Rhsm
|
||||
- OS::TripleO::Services::RsyslogSidecar
|
||||
- OS::TripleO::Services::Securetty
|
||||
- OS::TripleO::Services::SensuClient
|
||||
- OS::TripleO::Services::SkydiveAgent
|
||||
- OS::TripleO::Services::Snmp
|
||||
- OS::TripleO::Services::Sshd
|
||||
- OS::TripleO::Services::Timezone
|
||||
- OS::TripleO::Services::TripleoFirewall
|
||||
- OS::TripleO::Services::TripleoPackages
|
||||
- OS::TripleO::Services::Tuned
|
||||
- OS::TripleO::Services::Vpp
|
||||
- OS::TripleO::Services::OVNController
|
||||
- OS::TripleO::Services::OVNMetadataAgent
|
||||
|
||||
Configure node placement
|
||||
------------------------
|
||||
|
||||
Use node placement to map the baremetal nodes to roles, with each role using a
|
||||
different set of local layer 2 segments. Please refer to :doc:`node_placement`
|
||||
for details on how to configure node placement.
|
||||
|
||||
Add configuration to parameters_default
|
||||
---------------------------------------
|
||||
|
||||
Before deploying the ``overcloud`` create an environment file that contains the
|
||||
required overrides. In the example below parameter overrides for the following
|
||||
four roles and ``Controller``, ``ComputeLeaf0``, ``ComputeLeaf1`` and
|
||||
``ComputeLeaf2``.
|
||||
|
||||
.. Note:: In TripleO templates role specific parameters are defined using
|
||||
variables. One of the variables used is ``{{role.name}}``. The
|
||||
templates have parameters such as ``{{role.name}}Count``,
|
||||
``{{role.name}}Flavor``, ``{{role.name}}ControlPlaneSubnet`` and
|
||||
many more. This enables per-role values for these parameters, like in
|
||||
the example below where they are used to specify the
|
||||
*ControlPlaneSubnet* node *Count* and *Flavor* to use for the
|
||||
*per-leaf* roles.
|
||||
|
||||
Parameter override example::
|
||||
|
||||
parameter_defaults:
|
||||
ControlPlaneSubnet: leaf0
|
||||
OvercloudComputeLeaf0Flavor: compute-leaf0
|
||||
OvercloudComputeLeaf1Flavor: compute-leaf1
|
||||
OvercloudComputeLeaf2Flavor: compute-leaf2
|
||||
ControllerCount: 3
|
||||
ComputeLeaf0Count: 5
|
||||
ComputeLeaf1Count: 5
|
||||
ComputeLeaf2Count: 5
|
||||
ControllerControlPlaneSubnet: leaf0
|
||||
ComputeLeaf0ControlPlaneSubnet: leaf0
|
||||
ComputeLeaf1ControlPlaneSubnet: leaf1
|
||||
ComputeLeaf2ControlPlaneSubnet: leaf2
|
||||
|
||||
Deploy the overcloud
|
||||
--------------------
|
||||
|
||||
To deploy the overcloud, run the ``openstack overcloud deploy`` specifying the
|
||||
roles data file and environment file. For example::
|
||||
|
||||
openstack overcloud deploy --templates \
|
||||
-r /home/stack/roles_data.yaml \
|
||||
-e /home/stack/environments/node_data.yaml
|
||||
|
||||
.. Note:: Remember to include other environment files that you might want for
|
||||
configuration of the overcloud.
|
Loading…
x
Reference in New Issue
Block a user