From 9d3e1250c6c70a017262959bae68235ef8100684 Mon Sep 17 00:00:00 2001 From: Shravani Date: Thu, 9 Mar 2017 15:08:04 +0530 Subject: [PATCH] This patch is used to update the documents of D-release. Change-Id: I059843a8967ec339b8faf87dcbc6a76ec15d25d4 Co-Authored by:Srinivas Co-Authored by:RajithaY Co-Authored by:Gundarapu Kalyan Reddy Co-Authored by:Navya Bathula Signed-off-by: Shravani (cherry picked from commit d4b19c2012c72015c7554ad0b0f098b9dae8aa7c) --- docs/configurationguide/abstract.rst | 8 +- .../configuration.options.render.rst | 4 +- docs/configurationguide/images/idle-idle-test.png | Bin 0 -> 14901 bytes .../configurationguide/images/stress-idle-test.png | Bin 0 -> 19033 bytes docs/configurationguide/index.rst | 2 +- ...w-latency.feature.configuration.description.rst | 97 ++++++++-- docs/configurationguide/scenariomatrix.rst | 63 ++++-- docs/design/kvmfornfv_design.rst | 16 +- docs/glossary/kvmfornfv_glossary.rst | 49 ++--- docs/index.rst | 166 ++++++++++++++++ docs/installationprocedure/abstract.rst | 6 +- .../kvm4nfv-cicd.installation.instruction.rst | 28 ++- .../kvm4nfv-cicd.release.notes.rst | 30 +-- docs/overview/kvmfornfv_overview.rst | 18 +- docs/releasenotes/index.rst | 6 +- docs/releasenotes/release-notes.rst | 95 ++++++--- docs/requirements/kvmfornfv_requirements.rst | 36 ++-- docs/scenarios/abstract.rst | 44 +++++ docs/scenarios/index.rst | 52 ++++- docs/scenarios/kvmfornfv.scenarios.description.rst | 155 ++++++++++----- .../os-nosdn-kvm-ha.description.rst | 27 ++- .../os-nosdn-kvm_nfv_ovs_dpdk-ha/index.rst | 8 +- .../os-nosdn-kvm_nfv_ovs_dpdk-ha.description.rst | 81 ++++---- .../os-nosdn-kvm_nfv_ovs_dpdk-noha/index.rst | 8 +- .../os-nosdn-kvm_nfv_ovs_dpdk-noha.description.rst | 88 +++++---- .../os-nosdn-kvm_nfv_ovs_dpdk_bar-ha/index.rst | 8 +- ...s-nosdn-kvm_nfv_ovs_dpdk_bar-ha.description.rst | 81 ++++---- .../os-nosdn-kvm_nfv_ovs_dpdk_bar-noha/index.rst | 8 +- ...nosdn-kvm_nfv_ovs_dpdk_bar-noha.description.rst | 82 ++++---- docs/userguide/Ftrace.debugging.tool.userguide.rst | 39 ++-- docs/userguide/abstract.rst | 6 +- docs/userguide/common.platform.render.rst | 2 +- docs/userguide/feature.userguide.render.rst | 2 +- .../userguide/images/cpu-stress-idle-test-type.png | Bin 0 -> 17822 bytes docs/userguide/images/guest_pk_fw.png | Bin 0 -> 8020 bytes docs/userguide/images/host_pk_fw.png | Bin 0 -> 5390 bytes docs/userguide/images/idle-idle-test-type.png | Bin 0 -> 14902 bytes docs/userguide/images/io-stress-idle-test-type.png | Bin 0 -> 18983 bytes .../images/memory-stress-idle-test-type.png | Bin 0 -> 18727 bytes docs/userguide/images/sriov_pk_fw.png | Bin 0 -> 5864 bytes docs/userguide/index.rst | 1 + docs/userguide/introduction.rst | 11 +- .../kvmfornfv.cyclictest-dashboard.userguide.rst | 122 ++++++++---- docs/userguide/low_latency.userguide.rst | 179 +++++++++++++++-- docs/userguide/openstack.rst | 14 +- docs/userguide/packet_forwarding.userguide.rst | 212 ++++++++++++++------- docs/userguide/pcm_utility.userguide.rst | 23 ++- 47 files changed, 1344 insertions(+), 533 deletions(-) create mode 100644 docs/configurationguide/images/idle-idle-test.png create mode 100644 docs/configurationguide/images/stress-idle-test.png create mode 100644 docs/index.rst create mode 100644 docs/scenarios/abstract.rst create mode 100644 docs/userguide/images/cpu-stress-idle-test-type.png create mode 100644 docs/userguide/images/guest_pk_fw.png create mode 100644 docs/userguide/images/host_pk_fw.png create mode 100644 docs/userguide/images/idle-idle-test-type.png create mode 100644 docs/userguide/images/io-stress-idle-test-type.png create mode 100644 docs/userguide/images/memory-stress-idle-test-type.png create mode 100644 docs/userguide/images/sriov_pk_fw.png diff --git a/docs/configurationguide/abstract.rst b/docs/configurationguide/abstract.rst index a5066c284..3693bcab7 100644 --- a/docs/configurationguide/abstract.rst +++ b/docs/configurationguide/abstract.rst @@ -1,12 +1,12 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 -======== -Abstract -======== +====================== +Configuration Abstract +====================== This document provides guidance for the configurations available in the -Colorado release of OPNFV. +Danube release of OPNFV The release includes four installer tools leveraging different technologies; Apex, Compass4nfv, Fuel and JOID, which deploy components of the platform. diff --git a/docs/configurationguide/configuration.options.render.rst b/docs/configurationguide/configuration.options.render.rst index 93add7755..1c1c62228 100644 --- a/docs/configurationguide/configuration.options.render.rst +++ b/docs/configurationguide/configuration.options.render.rst @@ -13,11 +13,11 @@ such as OpenStack,KVM etc. which includes different source components or configurations. KVM4NFV Scenarios -=================== +------------------ Each KVM4NFV scenario provides unique features and capabilities, it is important to understand your target platform capabilities before installing and configuring. This configuration guide outlines how to install and configure components in order to enable the features required. -.. include:: scenariomatrix.rst +.. include:: ./scenariomatrix.rst diff --git a/docs/configurationguide/images/idle-idle-test.png b/docs/configurationguide/images/idle-idle-test.png new file mode 100644 index 0000000000000000000000000000000000000000..c9831df1dd3e557ed98b2d7f5618647999aea0b1 GIT binary patch literal 14901 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

6wn|3LR$85(QpH`5Bcf2A*)Z!O!$!mKF zq;XDPMkq5xUh|3anNsb~ilOZHdg|AI8ITepnZg+5YX(nDP81<5YzT4U;#ymH0?bfm zno8G%A+zK0Eb+d#M#HNK)c9{=)-)OZ_Y*_?xn%jy0? z*B<=-lqq7TE{z7@TK>t6fWiJNMT7UgfAqk&1Iwa!L0=O_CnogNROY6qM`w*(hxKQ8 zlZi|1GG5!Y!8&HUAOOuc?kz%%OHrwr=G?#0;>4H(2(Qm4}^c?ItNC&=54EWOLTifucC*G1S2+PSCJU9wK z)ubz7v4kfQn=QjuaGEqgr^AuqVXs-24l7&ha!sn9VAOWbdWhM2%Xd3~26AO6~d{9*~H+Qcs>zp1J;!>~Qmgs17-9CyU z&y@=v%E@JC&M%rvcHXFXw=n61l2>6x3+a<>E`0JuQLw*hH7fw;E}vuIP#htxwXYUkhlPyf-W9ny}b- zCR8e=VB#A*?c%5@V2|QEtw+k!IukNvDes(jM15moKSv7(u;fS(RQO%}dbFpuH}MiW z#gK}!e%9`c5Ua?%JlPTss{0zv)Fmib&tD99Tc~ZeL7I-IO7{+vMp$g>HY??j4m$br zC{g+~{xM~AeO;?CD6YwlMuB0Y`c!35#a=|uX6ZbtAM{elJMOVF6V$2i^H6S|QykzK z_l$dEQtMsKhHFC2>%HUKp}Q&6AMo^yaZr9;^PEm~NxkQdj~JN{iklx7B0r-dYLF+{ zgAcb`8$U~sYb@dDrnQe#*7pXQ+k>C>zQFf;2~3on>-GUuPk=_SZ!U_X=yy8XCQZ1E zjB`laV7n(%#+9!_v9yJhz5VN%+;cX3$(X6LsiqFHp}9v{Gds0o8Q&KI$`HHrZ?R3z zjHbVId0Ej`ZgkW=Fmb#wW^1l5OBQ*~M$J#Z?+LE~mkmuyQOmt1cq_rB#%IBEC5SU4 z6LWhnV%wWj4Cc1I`w3+SxK|6UE0t{g3oIUSm(>YW!uTHN0%w2!lp00 zJolHXtKE7l|Jhvp6V#eYa-0Y||%LIZp@vTCG8F}MF}@NJT!nB@Mpdyv9s zHn7u|rGnr!J@?yA6(fuqTn)vyG;|~_fM6t~6+a#$a*k@-Ej@b#3Kg(d(nL%|-Kn^{ zh*&WNMy_wrlmEs4`r9Bi;#02?-s*5neN5cv-8==ovGEPG1f3)>Fs93bBMf_f5ySRd z+-`~wnN(up{KK?KO;e0UR6l+|rN7I~2f!gsyjL#1)h`Gyslb&Le=crzP2g?qyzcUI zd6jlkyezZ+F#AYnU(93(^Ihn1`eU@FsjA66bNs^YTV7mTMx(K-eNFV)F8W21rK<;i z5w+u+L&mWwdUt@eJJEE8Adv$ZwkTt<_#!WCw)=@a-07@Yjqj;%V^g!f+f4pA&sP-| zNUCFU9|5ZMXk+^oX3K1o)oU*W0#L~k)t)1`yM=w9KV0W<^gY{T2*>DDR#mZSSFY{; z{D#Bfrr_RdwS1SjZc!FS9DAx;?l3KyHmhqtf{(uR^57$t{&>0RtvTdRJz#+9Kxib z>(MA`F0AX3f?R7AWKgf93r#{k{G3qo;(8Am8lHU#){vvw?fqM!&$l2Q#!`{#`g6nD zp<9k^w83~4hcPw9b=*>VSTHeENo$uz4Lz?%{y8k8*Md_QfBcMwu*z1kJ%y)bAJ`?_ zA&a?pH;Fu#u6eR9y=GF?oQ03a&+Y|$=gonMZGQ_bqhGn1UAnZVFH{g1Dxmm|>ssqa zD8sX2tI}bfN>U*6f(a!NB~6OCOPM*?gb3C#obVmdwla&3u>X)Ct;BB)=^ zsOE^~Q2%ol7{$HxP-2oATU-p9E$H}bpF9AGg!nSBFZ8|2=3PeSLJHYOkyToP+oZhO zlYkUEk}M)v*RPZ6{{yo5r;Vq7L^gQD z`U?>Kx1i|%<*tS%%r?BV#UR6HXU!0i7dj(rr{6s@=4aMUkLA0axz$Cme^Fuzf=?N6 zOoSZbDaBU0Nzbi`@2@4i_z`q5LAsK5_%-uOJS_;M00ZV>KBz<#a$KBznL9HnHMBUn zt8(Up>x{4<1U)*8t;`ZW>%WcsY~-7w<2J@~yyyq<44zXm)3 zz1_<$->v1T&2GHZ^+u;|pRw9-nYZ=&c94a`xqs0eKX4Tfxh5V&#i-Xj5Ax6U2S7j1 zxA5+;UZCusKx1m>3!iLmqo&B0bC{ZZ)1xq%K#S0KfHqteVz33INF^H&31lQH?T?G2mUgr z=z)0Dl&ld`f2p|d-v$ooT?+c~nZliY$JgjbCmm~eQ3qR(i1By{Q-tvK#%U0Ti0Wt> z6`7Q_Gk+@GLt%Jv;18fI0fSX4_rS_A$vZx|uCn{pEtSGCU3fMn!^t}(ekOx}mQOGY zqA?s7{Nui@NfQa5-D??F=f6})_0Q?&wP*(ju)DX}fSguN$BltFeuACgeu ziZjO(4LYv!qzUDte^vE=U>Nar%%ZICrPNF7-cd}?7M>3R=z^T=;>L4B%l4hd0E<_^ zTyT`%C+Mykxk$}t=L(Ya(UrWUdTgtJFSv7eGlu!WV9#1{nkXPHhUO*ocYwkE$7e3; z8kDGbHt=&#t3cwK2NFL3Duw$Y;E?x7&IFMguq~jM>&~!q0PAWo>j;DrX0&y>LpZ(FQW?$D}vk zGq?O7GISMwPGx*Rkv*R*HJMtyN)cb5w1^ZLUKL-(6J4`9WazUNU|MTuN3-V~JZXnc zZzf?TRmN?qt37u=`Ga%4#EYTYUIp%z`+t%U=LnINdtu^@`cM(S#J2|I!~Kl1P0cuW3(Uw>!yXWb zQ~-Y#pq^mX&tdJQS#^yIgXfJn{qG4#cl7M|_;{oD@gR9ZspQ(LXZn^+`B3|cu5ym} z!l|C?WLlWcgajst$ug=^_~SR`^ed#ynS6HBlJf6A_zRNd7pklV20pAnrx3jv|G7rM zbO3Uqx%ZoHmv7tPP}x#fy|=~-iuA^dsS?p)Je64Q0y%C34VE%;ap}aL&DQ1lCMJec zJEnY3@V?$82D?trg-XgEn~4yur{7f+ulL44*LEA2Y87`&UhjeCmi8it`h*T-?d*0a zzUN-CS|b8KIsJ+9ow36r!@Q%phOptdr1H_4#0|_j3d!XiAFY%8Y4~m&ZOVccY@Zic z{f;?())IE>NB#tx*!!gq52Uf2TlaMKo`DAr&{amnUT5pM*w39Lw7kFfrThCA1`dzp zGi>)heQvTNIbNZMu7*$TrOQxnF!RZ9h0`dfR7}T=U0z)mB^<=EZ%sNFUhEXvh^AUU z=2VtJjF~K(Q1EM<`eGJ&Q@OY*zN-rv`;3*m_9Lm+b%=A?VXRu;rr=9H-oHpnsiO+NA*+k0oTXY8b_H%>mvoXxs@t^`Y! zr`&N4=GD)tWajggSX<5tm6}yg5Ne1}`HK*OxSfU)YzKI>^B{dr_wm-~evrX=P1tuv zwBE12uT8h)tb{{F3$71?(T>2C8{3GwTJtl#v*Pp_JhG2*0OMvp2^UZ?U_85lx>+Mm zB**ynL%ZTf*yBL*T7%|orwq>#|G0R75OZtiH+XB?sU4m8I8*3gY%iqmcRc%l0S%u79*U;f!a!IWWiySAcMqsKf~ zCg9NP;=Bs{rgL(P@0=K`d%Z%!X8kBNcJ`KT=MLa3TtM!)tr#Mx*Y6joavR8i_ZIHx zU91vN%MN-;obcz`U;eQjspBkp(%$+7Hgd10yl5U|4&!rCU@ zy6{`RGqILf6q0|)^Ihag@iF`P+Ds7`hy{_&5M;R2EJk{}z2|yvNaeP-CMQ25U*BU! z2{S+ynISr=q$3)iho1t6#k!u)_ON#PGP1fogGdp9hWqb|T~3Ha4c;88&fdtp1B3OZ z+1`8IjhI&PKtGQ!m7R*CnS?M(Sgjv@ip36Yg}C!G9K^DZxIOFCN{Zw<_Y}VZ63qpe zqOlV;Ef>16D0BAi+keFo5GYg%pPm253_YKp0N@58Npo|JitOU!wC!y=+ii8Ej+?ui ztBYH><~&Q-f%Nk=i^GAruX zzAJvHvVrDC$mar*BpQkpx3n{6xtb@2S>dJmBihPZXiWZw3|lr8jrXNzr^R!f`x5j; z7*a+4mZ`b9zLlgk6Mi7l(>G5KPtMHPmQ}jCxk_ocdrJfa4(nU(Y;ElH%+O}OXZ+T( zJ=LcWT6y_9{r&WaLEYm;0}+T>4TN(`tTS?>7S~39z!c9l%#j3D)71bQ!^f3N&Ic+5*hp z9_HYH;-f~X`1a;vu{!pE4#=1DoisFTnCAK0)&V1vN;>vIH#Gt*ug3L;_FG-OWBfW6 zH7n()O=I=@`w#9?roJj6BbufqTu6EWBP)wCO4a0V+*hQb22eQEJD~Q7t^!h4#6`f10idFa|0FaOz854+~R@^!QMRf5rNupOT?ijb^C`3pH zk8D)_k;)+?bOqo`&X~iTmu(q#0m@56XT+y&VPS95%vLi!ttst^VzxRqVr+8&z~^^4 zV`;l7Wtsip9t>-jO25rpNW9>-?YRheCi>N<+bzLhmA!y0NL zv-+=SVx=j5FH(xgtpw;&S#pxFxb}84@27n!yzAjH`3JcYgVw^7EWVAa3K5^7!cIfL zzZSGVb$;dOijx{DLxf@~)d>qKjf_#3K*7b)JEH$wr<<*cL{5c~$69K6@5d}F%1!IF zy*6CiV@LAUUKWR(;isoUvRvX2Zv6K7qKZu6k&W0$Ho-)USW`bD515gFeS8?4TT@q?Hsk zoklfH?W_QN`F69YE+->nw&>FiiF>zpmEi{Lo_6nCRQh<-{z9T?M4K~??wx9<+O5Mv z$~B;7Vqg%)jxy!4_9nGdWdIw~#@ShbK|&d-;=9$Ttn5?iV{z|e9K9m;b1tgKH0oL2 zp{F08>fE918VRVJ5{@90HbB>_EbPb!aj7THov#fyFD^$a83BS);Y){31oudv#Z{{q zQ1j^PA)tFHtMu}ThAM$Yelu<>ZRBJfb5W7s;*B1hG54r!HXQ}zYABGX(L-^rqM087 zicg6>#hP}*dQ*S0VG9`WlMTA=ztLUySP9z4WIPWMY@#wHzc!#Gz2>E%! z2Ll5-fu-)Umj$<=I#NwY2{2zwW&#lT@hAwm-172TsNv^+D^c#GuTA&!eX#azP%SR=k$3rb3sO^S+@(o|zDtB5 zn#>hFunloe5}Wh6mnIE4=vL3b_d!2U!eGOGB&r4lnhVAY@l0 z{Enmy-=az59zRnEANW{k`8g=3r0i(Ocy+c5B4{vlUxdYECCp14LQ+o@Hnz5`ICRPn`fxj6Exomw`WEmSRd%Q+SckjgLn?1dTZZ4<<4bI8cNwc$QR8yAq?QGKiM(d)e- zY1}FdB@u(APXY*^$Bd*FKTi|z&fk@lTdzIKlcIsco8E$&_F_5#5O65B2_p;1-ey(V z+^aA^BHdN>xFtRo9z`}w4Yk}gex3P^VEs;0d#IY3ifu(kLv>AgvxQYr9GFt=e8R23X0yswy4pO}3vjY9=*SaUw#G z6#1c?&n2@TRZBb#1vWc?-66T+Q8@XS?sKI2h*k^t6&wH;qz%;G&Sm9Eomq0;-GNA= zs6q2_fVplePO{q6V=&>PyqodMVJUigXt-l_MMYut?84$=?7h2Bze40b!UpkkuVIXrc9Ys1R63?Q&zk8u8q*$Cv5mx~I zMOf6Tm9J0DOZ=9N()@CEskvL)QZ*M}m7BYJa($hMi27sjOv4 zF7Sra`E>NM+rUqP(FFiW0YO#LH#mpVTFSH$JBeg+-1c(TfE8?NZ*;R^(ip$JC)dA8 zws*9*x4%b8ruH@s@l+8Om*X&jkG}Nccb9G`txgLCnfs(gt(HsdZB#?$w{-GmED-RxL{N~M( z)W4EMZ})Ztbi1~fvtJ~@qjJ9UU{M1%7Go#p;tihM%ST5M(#HY^%N^~2ljSv6-#_`E x&WYn0zJFo){)>Y8+Yb8w5#Zvx2~A%Ty5}H#<}YOc)&&HT5|f9Oyf%FIzX16IaqR#A literal 0 HcmV?d00001 diff --git a/docs/configurationguide/images/stress-idle-test.png b/docs/configurationguide/images/stress-idle-test.png new file mode 100644 index 0000000000000000000000000000000000000000..111c2a7d271654bff2d8664dfb6ac0bee04077ca GIT binary patch literal 19033 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 References ========== -For more information on the OPNFV Brahmaputra release, please visit -http://www.opnfv.org/brahmaputra +For more information on the OPNFV Danube release, please visit +http://www.opnfv.org/danube diff --git a/docs/overview/kvmfornfv_overview.rst b/docs/overview/kvmfornfv_overview.rst index 87d401bf0..b07d38dd0 100644 --- a/docs/overview/kvmfornfv_overview.rst +++ b/docs/overview/kvmfornfv_overview.rst @@ -8,18 +8,20 @@ KMV4MFV CICD Project Overview The detailed understanding of this project is organized into different sections- -* userguide - This provides the required technical assistance to the user, in +* **userguide** - This provides the required technical assistance to the user, in using the KVM4NFV CICD process. -* installationprocedure- This will give the user instructions on how to deploy +* **installationprocedure** - This will give the user instructions on how to deploy available KVM4NFV CICD build scenario. -* configurationguide- This provides guidance for configuring KVM4NFV +* **configurationguide** - This provides guidance for configuring KVM4NFV environment, even with the use of specific installer tools for deploying some - components, available in the Colorado release of OPNFV. -* requirements- This includes the introduction of KVM4NFV CICD project, + components, available in the Danube release of OPNFV. +* **requirements** - This includes the introduction of KVM4NFV CICD project, specifications of how the project should work, and constraints placed upon its execution. -* design- This includes the parameters or design considerations taken into +* **design** - This includes the parameters or design considerations taken into account for achieving minimal interrupt latency for the data VNFs. -* releasenotes- This describes a brief summary of recent changes, enhancements +* **scenarios** - This includes the sceanrios that are currently implemented in the + kvmfornfv project,features of each scenario and a general guide to how to deploy them. +* **releasenotes** - This describes a brief summary of recent changes, enhancements and bug fixes in the KVM4NFV project. -* glossary- It includes the definition of terms, used in the KVM4NFV project +* **glossary** - It includes the definition of terms, used in the KVM4NFV project. diff --git a/docs/releasenotes/index.rst b/docs/releasenotes/index.rst index 7f3e54d2c..4460b9a01 100644 --- a/docs/releasenotes/index.rst +++ b/docs/releasenotes/index.rst @@ -1,9 +1,9 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 -============================================ -KVMFORNFV Release Notes for Colorado Release -============================================ +=========================================== +KVMFORNFV Release Notes for Danube Release +=========================================== .. toctree:: :maxdepth: 2 diff --git a/docs/releasenotes/release-notes.rst b/docs/releasenotes/release-notes.rst index 6da29510d..f49cd0804 100644 --- a/docs/releasenotes/release-notes.rst +++ b/docs/releasenotes/release-notes.rst @@ -1,31 +1,32 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 -.. (c) - .. _Kvmfornfv: https://wiki.opnfv.org/display/kvm/ +============= +Release Notes +============= Abstract -======== +--------- -This document provides the release notes for Colorado 1.0 release of KVMFORNFV. +This document provides the release notes for Danube 1.0 release of KVMFORNFV. **Contents** -1 Version History + 1 Version History -2 Important notes + 2 Important notes -3 Summary + 3 Summary -4 Delivery Data + 4 Delivery Data -5 References + 5 References -1 Version history -=================== +1. Version history +-------------------- +--------------------+--------------------+--------------------+----------------------+ | **Date** | **Ver.** | **Author** | **Comment** | @@ -34,16 +35,19 @@ This document provides the release notes for Colorado 1.0 release of KVMFORNFV. |2016-08-22 | 0.1.0 | | Colorado 1.0 release | | | | | | +--------------------+--------------------+--------------------+----------------------+ +|2017-03-27 | 0.1.0 | | Danube 1.0 release | +| | | | | ++--------------------+--------------------+--------------------+----------------------+ -2 Important notes -=================== +2. Important notes +-------------------- The KVMFORNFV project is currently supported on the Fuel installer. -3 Summary -=========== +3. Summary +------------ -This Colorado 1.0 release provides *KVMFORNFV* as a framework to enhance the +This Danube 1.0 release provides *KVMFORNFV* as a framework to enhance the KVM Hypervisor for NFV and OPNFV scenario testing, automated in the OPNFV CI pipeline, including: @@ -53,8 +57,7 @@ CI pipeline, including: * Cyclictests execution to check the latency -* “os-sdn-kvm-ha” Scenario testing for high availability configuration using -Fuel installer +* “os-sdn-kvm-ha”,“os-sdn-kvm-_nfv_ovs_dpdk-ha”,“os-sdn-kvm_nfv_ovs_dpdk-noha”,“os-sdn-kvm_nfv_ovs_dpdk_bar-ha”,“os-sdn-kvm_nfv_ovs_dpdk_bar-noha” Scenarios testing for high availability configuration using Fuel installer * Documentation created @@ -69,8 +72,8 @@ Fuel installer The *KVMFORNFV framework* is developed in the OPNFV community, by the KVMFORNFV_ team. -4 Release Data -================ +4. Release Data +----------------- +--------------------------------------+--------------------------------------+ | **Project** | NFV Hypervisors-KVM | @@ -79,13 +82,13 @@ KVMFORNFV_ team. | **Repo/commit-ID** | kvmfornfv | | | | +--------------------------------------+--------------------------------------+ -| **Release designation** | Colorado | +| **Release designation** | Danube | | | | +--------------------------------------+--------------------------------------+ -| **Release date** | 2016-09-22 | +| **Release date** | 2017-03-27 | | | | +--------------------------------------+--------------------------------------+ -| **Purpose of the delivery** | OPNFV Colorado 1.0 Releases | +| **Purpose of the delivery** | OPNFV Danube 1.0 Releases | | | | +--------------------------------------+--------------------------------------+ @@ -95,16 +98,16 @@ KVMFORNFV_ team. 4.1.1 Module version changes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -This is the Colorado 1.0 main release. It is based on following upstream +This is the Danube 1.0 main release. It is based on following upstream versions: * RT Kernel 4.4.6-rt14 * QEMU 2.6 -* Fuel plugin based on Fuel 9.0 +* Fuel plugin based on Fuel 10.0 -This is the first tracked release of KVMFORNFV +This is the second tracked release of KVMFORNFV 4.1.2 Document version changes @@ -117,6 +120,35 @@ This is the initial version of the KVMFORNFV framework in OPNFV. 4.2.1 Feature additions ~~~~~~~~~~~~~~~~~~~~~~~ ++--------------------------------------+--------------------------------------+ +| **JIRA REFERENCE** | **SLOGAN** | +| | | ++--------------------------------------+--------------------------------------+ +| JIRA: | NFV Hypervisors-KVMKVMFORNFV-57 | +| | | ++--------------------------------------+--------------------------------------+ +| JIRA: | NFV Hypervisors-KVMKVMFORNFV-58 | +| | | ++--------------------------------------+--------------------------------------+ +| JIRA: | NFV Hypervisors-KVMKVMFORNFV-59 | +| | | ++--------------------------------------+--------------------------------------+ +| JIRA: | NFV Hypervisors-KVMKVMFORNFV-61 | +| | | ++--------------------------------------+--------------------------------------+ +| JIRA: | NFV Hypervisors-KVMKVMFORNFV-62 | +| | | ++--------------------------------------+--------------------------------------+ +| JIRA: | NFV Hypervisors-KVMKVMFORNFV-63 | +| | | ++--------------------------------------+--------------------------------------+ +| JIRA: | NFV Hypervisors-KVMKVMFORNFV-64 | +| | | ++--------------------------------------+--------------------------------------+ +| JIRA: | NFV Hypervisors-KVMKVMFORNFV-65 | +| | | ++--------------------------------------+--------------------------------------+ + 4.2.2 Bug corrections ~~~~~~~~~~~~~~~~~~~~~ @@ -127,12 +159,12 @@ Initial Release 4.3.1 Software deliverables ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Colorado 1.0 release of the KVMFORNFV RPM and debian for Fuel. +Danube 1.0 release of the KVMFORNFV RPM and debian for Fuel. 4.3.2 Documentation deliverables ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The below documents are delivered for Colorado KVMFORNFV Release: +The below documents are delivered for Danube KVMFORNFV Release: * User Guide @@ -146,10 +178,11 @@ The below documents are delivered for Colorado KVMFORNFV Release: * Glossary + * Scenarios -5 References -============= +5. References +-------------- -For more information on the KVMFORNFV Colorado release, please see: +For more information on the KVMFORNFV Danube release, please see: https://wiki.opnfv.org/display/kvm/ diff --git a/docs/requirements/kvmfornfv_requirements.rst b/docs/requirements/kvmfornfv_requirements.rst index 048838907..6aa00ba6c 100644 --- a/docs/requirements/kvmfornfv_requirements.rst +++ b/docs/requirements/kvmfornfv_requirements.rst @@ -2,22 +2,25 @@ .. http://creativecommons.org/licenses/by/4.0 .. (c) OPNFV, Intel Corporation, AT&T and others. -============ +====================== +kvmfornfv Requirements +====================== + Introduction -============ +------------ The NFV hypervisors provide crucial functionality in the NFV Infrastructure(NFVI).The existing hypervisors, however, are not necessarily designed or targeted to meet the requirements for the NFVI. This document specifies the list of requirements that need to be met as part -of this "NFV Hypervisors-KVM" project in Colorado release. +of this "NFV Hypervisors-KVM" project in Danube release. As part of this project we need to make collaborative efforts towards enabling the NFV features. -================= + Scope and Purpose -================= +----------------- The main purpose of this project is to enhance the KVM hypervisor for NFV, by looking at the following areas initially: @@ -32,9 +35,8 @@ The output of this project would be list of the performance goals,comprehensive instructions for the system configurations,tools to measure Performance and interrupt latency. -=========================== Methods and Instrumentation -=========================== +--------------------------- The above areas would require software development and/or specific hardware features, and some need just configurations information for the system @@ -56,20 +58,18 @@ scenario are: Technology(CAT) enabling can be tuned to improve the NFV performance/latency. -===================== Features to be tested -===================== +--------------------- The tests that need to be conducted to make sure that latency is addressed are: -1. Timer test -2. Device Interrupt Test -3. Packet forwarding (DPDK OVS) -4. Packet Forwarding (SR-IOV) -5. Bare-metal Packet Forwarding + 1. Timer test + 2. Device Interrupt Test + 3. Packet forwarding (DPDK OVS) + 4. Packet Forwarding (SR-IOV) + 5. Bare-metal Packet Forwarding -============ Dependencies -============ +------------ 1. OPNFV Project: “Characterize vSwitch Performance for Telco NFV Use Cases” (VSPERF) for performance evaluation of ivshmem vs. vhost-user. @@ -82,8 +82,8 @@ Dependencies 5. In terms of HW dependencies, the aim is to use standard IA Server hardware for this project, as provided by OPNFV Pharos. -========= + Reference -========= +--------- https://wiki.opnfv.org/display/kvm/ diff --git a/docs/scenarios/abstract.rst b/docs/scenarios/abstract.rst new file mode 100644 index 000000000..362fb6c2b --- /dev/null +++ b/docs/scenarios/abstract.rst @@ -0,0 +1,44 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 + +***************** +Scenario Abstract +***************** +This chapter includes detailed explanation of various sceanrios files deployed as part +of kvmfornfv D-Release. + +Release Features +---------------- + ++------------------------------------------+------------------+-----------------+ +| **Scenario Name** | **Colorado** | **Danube** | +| | | | ++------------------------------------------+------------------+-----------------+ +| - os-nosdn-kvm-ha | ``Y`` | ``Y`` | +| | | | +| - os-nosdn-kvm_nfv_ovs_dpdk-noha | | ``Y`` | +| | | | +| - os-nosdn-kvm_nfv_ovs_dpdk-ha | | ``Y`` | +| | | | +| - os-nosdn-kvm_nfv_ovs_dpdk_bar-noha | | ``Y`` | +| | | | +| - os-nosdn-kvm_nfv_ovs_dpdk_bar-ha | | ``Y`` | +| | | | ++------------------------------------------+------------------+-----------------+ + +D- Release Scenario's overview +------------------------------- + ++--------------------------------------+-----------------------+---------------------+--------------------+-------------+------------+ +| **Scenario Name** | **No of Controllers** | **No of Computes** | ** Plugins Name** | ** DPDK** | ** OVS ** | +| | | | | | | ++--------------------------------------+-----------------------+---------------------+--------------------+-------------+------------+ +| - os-nosdn-kvm_nfv_ovs_dpdk-noha | ``1`` | ``3`` | ``KVM`` | ``Y`` | ``Y`` | +| | | | | | | +| - os-nosdn-kvm_nfv_ovs_dpdk-ha | ``3`` | ``2`` | ``KVM`` | ``Y`` | ``Y`` | +| | | | | | | +| - os-nosdn-kvm_nfv_ovs_dpdk_bar-noha | ``1`` | ``2`` | ``KVM & BAR`` | ``Y`` | ``Y`` | +| | | | | | | +| - os-nosdn-kvm_nfv_ovs_dpdk_bar-ha | ``3`` | ``3`` | ``KVM & BAR`` | ``Y`` | ``Y`` | +| | | | | | | ++--------------------------------------+-----------------------+---------------------+--------------------+-------------+------------+ diff --git a/docs/scenarios/index.rst b/docs/scenarios/index.rst index 5f41fd414..6c3ed1dea 100644 --- a/docs/scenarios/index.rst +++ b/docs/scenarios/index.rst @@ -1,12 +1,58 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 -**************************************** -os-nosdn-kvm-ha Overview and Description -**************************************** +********************************* +Scenario Overview and Description +********************************* .. toctree:: + :caption: Scenario Overview and Description :numbered: :maxdepth: 4 + ./abstract.rst ./kvmfornfv.scenarios.description.rst + +******************************************************* +os-nosdn-kvm_nfv_ovs_dpdk-noha Overview and Description +******************************************************* + +.. toctree:: + :caption: os-nosdn-kvm_nfv_ovs_dpdk-noha + :numbered: + :maxdepth: 3 + + ./os-nosdn-kvm_nfv_ovs_dpdk-noha/os-nosdn-kvm_nfv_ovs_dpdk-noha.description.rst + +***************************************************** +os-nosdn-kvm_nfv_ovs_dpdk-ha Overview and Description +***************************************************** + +.. toctree:: + :caption: os-nosdn-kvm_nfv_ovs_dpdk-ha + :numbered: + :maxdepth: 3 + + ./os-nosdn-kvm_nfv_ovs_dpdk-ha/os-nosdn-kvm_nfv_ovs_dpdk-ha.description.rst + +*********************************************************** +os-nosdn-kvm_nfv_ovs_dpdk_bar-noha Overview and Description +*********************************************************** + +.. toctree:: + :caption: os-nosdn-kvm_nfv_ovs_dpdk_bar-noha + :numbered: + :maxdepth: 3 + + ./os-nosdn-kvm_nfv_ovs_dpdk_bar-noha/os-nosdn-kvm_nfv_ovs_dpdk_bar-noha.description.rst + +********************************************************* +os-nosdn-kvm_nfv_ovs_dpdk_bar-ha Overview and Description +********************************************************* + +.. toctree:: + :caption: os-nosdn-kvm_nfv_ovs_dpdk_bar-ha + :numbered: + :maxdepth: 3 + + ./os-nosdn-kvm_nfv_ovs_dpdk_bar-ha/os-nosdn-kvm_nfv_ovs_dpdk_bar-ha.description.rst diff --git a/docs/scenarios/kvmfornfv.scenarios.description.rst b/docs/scenarios/kvmfornfv.scenarios.description.rst index 459852d53..29488bbfd 100644 --- a/docs/scenarios/kvmfornfv.scenarios.description.rst +++ b/docs/scenarios/kvmfornfv.scenarios.description.rst @@ -1,19 +1,20 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 + ======================== KVM4NFV SCENARIO-TESTING ======================== ABSTRACT -======== +-------- -This document describes the procedure to deploy/test KVM4NFV scenario in a nested virtualization -environment in a single system. This has been verified with os-nosdn-kvm-ha, os-nosdn-kvm-noha, -os-nosdn-kvm_ovs_dpdk-ha, os-nosdn-kvm_ovs_dpdk-noha and os-nosdn-kvm_ovs_dpdk_bar-ha test scenario. +This document describes the procedure to deploy/test KVM4NFV scenarios in a nested virtualization +environment. This has been verified with os-nosdn-kvm-ha, os-nosdn-kvm-noha,os-nosdn-kvm_ovs_dpdk-ha, +os-nosdn-kvm_ovs_dpdk-noha and os-nosdn-kvm_ovs_dpdk_bar-ha test scenarios. Version Features -================ +---------------- +-----------------------------+---------------------------------------------+ | | | @@ -24,26 +25,40 @@ Version Features | Colorado | the Colorado release of KVMFORNFV | | | | +-----------------------------+---------------------------------------------+ -| | - High Availability deployment and | -| | configuration of KVMFORNFV software suite | -| Danube | - Multi-node setup with 3 controllers and | -| | 2 computes nodes are deployed | -| | - Scenarios os-nosdn-kvm_ovs_dpdk-ha and | -| | os-nosdn-kvm_ovs_dpdk_bar-ha are supported| -| | | +| | - High Availability/No-High Availability | +| | deployment configuration of KVMFORNFV | +| | software suite | +| Danube | - Multi-node setup with 3 controller and | +| | 2 compute nodes are deployed for HA | +| | - Multi-node setup with 1 controller and | +| | 3 compute nodes are deployed for NO-HA | +| | - Scenarios os-nosdn-kvm_ovs_dpdk-ha, | +| | os-nosdn-kvm_ovs_dpdk_bar-ha, | +| | os-nosdn-kvm_ovs_dpdk-noha, | +| | os-nosdn-kvm_ovs_dpdk_bar-noha | +| | are supported | +-----------------------------+---------------------------------------------+ INTRODUCTION -============ -The purpose of os-nosdn-kvm_ovs_dpdk-ha and os-nosdn-kvm_ovs_dpdk_bar-ha scenario testing is to -test the High Availability deployment and configuration of OPNFV software suite with OpenStack and -without SDN software. This OPNFV software suite includes OPNFV KVMFORNFV latest software packages +------------ +The purpose of os-nosdn-kvm_ovs_dpdk-ha,os-nosdn-kvm_ovs_dpdk_bar-ha and +os-nosdn-kvm_ovs_dpdk-noha,os-nosdn-kvm_ovs_dpdk_bar-noha scenarios testing is to +test the High Availability/No-High Availability deployment and configuration of +OPNFV software suite with OpenStack and without SDN software. + +This OPNFV software suite includes OPNFV KVMFORNFV latest software packages for Linux Kernel and QEMU patches for achieving low latency and also OPNFV Barometer for traffic, -performance and platform monitoring. High Availability feature is achieved by deploying OpenStack +performance and platform monitoring. + +High Availability feature is achieved by deploying OpenStack multi-node setup with 1 Fuel-Master,3 controllers and 2 computes nodes. -KVMFORNFV packages will be installed on compute nodes as part of deployment. The scenario testcase deploys a multi-node setup by using OPNFV Fuel deployer. +No-High Availability feature is achieved by deploying OpenStack +multi-node setup with 1 Fuel-Master,1 controllers and 3 computes nodes. + +KVMFORNFV packages will be installed on compute nodes as part of deployment. +The scenario testcase deploys a multi-node setup by using OPNFV Fuel deployer. 1. System pre-requisites ------------------------ @@ -86,9 +101,11 @@ If Nested virtualization is disabled, enable it by, 2. Environment Setup -------------------- -**2.1 Configure apt.conf in /etc/apt** +**2.1 Configuring Proxy** +~~~~~~~~~~~~~~~~~~~~~~~~~~ -Create an apt.conf file in /etc/apt if it doesn't exist. Used to set proxy for apt-get if workin behind a proxy server. +For **Ubuntu**., +Create an apt.conf file in /etc/apt if it doesn't exist. Used to set proxy for apt-get if working behind a proxy server. .. code:: bash @@ -97,7 +114,15 @@ Create an apt.conf file in /etc/apt if it doesn't exist. Used to set proxy for a Acquire::ftp::proxy "ftp://:@:/"; Acquire::socks::proxy "socks://:@:/"; +For **CentOS**., +Edit /etc/yum.conf to work behind a proxy server by adding the below line. + +.. code:: bash + + $ echo "proxy=http://:@:/" >> /etc/yum.conf + **2.2 Network Time Protocol (NTP) setup and configuration** +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Install ntp by: @@ -110,10 +135,12 @@ Insert the following two lines after “server ntp.ubuntu.com” line and befor .. _link: /usr/share/doc/ntp-doc/html/accopt.html -server 127.127.1.0 -fudge 127.127.1.0 stratum 10 +.. code:: bash + + server 127.127.1.0 + fudge 127.127.1.0 stratum 10 -Restart the ntp server +Restart the ntp server to apply the changes .. code:: bash @@ -128,19 +155,24 @@ There are three ways of performing scenario testing, - 3.3 Jenkins Project 3.1 Fuel -~~~~~~~~~ +~~~~~~~~ **3.1.1 Clone the fuel repo :** .. code:: bash - git clone https://gerrit.opnfv.org/gerrit/fuel.git + $ git clone https://gerrit.opnfv.org/gerrit/fuel.git **3.1.2 Checkout to the specific version of the branch to deploy by:** +The default branch is master, to use a stable release-version use the below., + .. code:: bash + To check the current branch + $ git branch - git checkout stable/Colorado + To check out a specific branch + $ git checkout stable/Colorado **3.1.3 Building the Fuel iso :** @@ -149,28 +181,34 @@ There are three ways of performing scenario testing, $ cd ~/fuel/ci/ $ ./build.sh -h -Provides the necessary options that are required to build an iso. Creates a ``customized iso`` as per the deployment needs. +Provide the necessary options that are required to build an iso. +Create a ``customized iso`` as per the deployment needs. .. code:: bash $ cd ~/fuel/build/ $ make - (OR) Other way is to download the latest stable fuel iso from `here`_. +(OR) Other way is to download the latest stable fuel iso from `here`_. -.. _here: http://artifacts.opnfv.org/fuel/colorado/opnfv-colorado.3.0.iso +.. _here: http://artifacts.opnfv.org/fuel.html + +.. code:: bash + + http://artifacts.opnfv.org/fuel.html **3.1.4 Creating a new deployment scenario** ``(i). Naming the scenario file:`` -Include the new deployment scenario yaml file in deploy/scenario/. The file name should adhere to the following format : +Include the new deployment scenario yaml file in ~/fuel/deploy/scenario/. The file name should adhere to the following format: .. code:: bash ___..._.yaml -``(ii). The deployment configuration file should contain configuration metadata as stated below:`` +``(ii). Meta data`` +The deployment configuration file should contain configuration metadata as stated below: .. code:: bash @@ -179,7 +217,8 @@ Include the new deployment scenario yaml file in deploy/scenario/. The file name version: created: -``(iii). To include fuel plugins in the deployment configuration file, use the “stack-extentions” key:`` +``(iii). “stack-extentions” Module`` + To include fuel plugins in the deployment configuration file, use the “stack-extentions” key: .. code:: bash @@ -191,13 +230,13 @@ Include the new deployment scenario yaml file in deploy/scenario/. The file name module-config-override: #module-config overrides - +**Note:** The “module-config-name” and “module-config-version” should be same as the name of plugin configuration file. - The “module-config-override” is used to configure the plugin by overrriding the corresponding keys in the plugin config yaml file present in ~/fuel/deploy/config/plugins/. -``(iv). To configure the HA/No-Ha mode, network segmentation types and role to node assignments, use the “dea-override-config” key.`` +``(iv). “dea-override-config” Module`` +To configure the HA/No-HA mode, network segmentation types and role to node assignments, use the “dea-override-config” key. .. code:: bash @@ -244,12 +283,12 @@ Under the “dea-override-config” should provide atleast {environment:{mode:'v and {nodes:1,2,...} and can also enable additional stack features such ceph,heat which overrides corresponding keys in the dea_base.yaml and dea_pod_override.yaml. -``(v). In order to configure the pod dha definition, use the “dha-override-config” key.`` - -The “dha-override-config” key is an optional key present at the ending of the scenario file. - -``(vi). The scenario.yaml file is used to map the short names of scenario's to the one or more deployment scenario configuration yaml files.`` +``(v). “dha-override-config” Module`` +In order to configure the pod dha definition, use the “dha-override-config” key. +This is an optional key present at the ending of the scenario file. +``(vi). Mapping to short scenario name`` +The scenario.yaml file is used to map the short names of scenario's to the one or more deployment scenario configuration yaml files. The short scenario names should follow the scheme below: .. code:: bash @@ -259,7 +298,7 @@ The short scenario names should follow the scheme below: [os]: mandatory possible value: os -please note that this field is needed in order to select parent jobs to list and do blocking relations between them. +Please note that this field is needed in order to select parent jobs to list and do blocking relations between them. .. code:: bash @@ -272,8 +311,8 @@ please note that this field is needed in order to select parent jobs to list and [option]: optional -used for the scenarios those do not fit into naming scheme. -optional field in the short scenario name should not be included if there is no optional scenario. +Used for the scenarios those do not fit into naming scheme. +Optional field in the short scenario name should not be included if there is no optional scenario. .. code:: bash @@ -303,14 +342,22 @@ Command to deploy the os-nosdn-kvm_ovs_dpdk-ha scenario: .. code:: bash $ cd ~/fuel/ci/ - $ sudo ./deploy.sh -f -b file:///tmp/opnfv-fuel/deploy/config -l devel-pipeline -p default -s no-ha_nfv-kvm_nfv-ovsdpdk_heat_ceilometer_scenario.yaml -i file:///tmp/opnfv.iso + $ sudo ./deploy.sh -f -b file:///tmp/opnfv-fuel/deploy/config -l devel-pipeline -p default -s ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml -i file:///tmp/opnfv.iso where, - -b is used to specify the configuration directory + ``-b`` is used to specify the configuration directory - -i is used to specify the image downloaded from artifacts. + ``-f`` is used to re-deploy on the existing deployment -Note: + ``-i`` is used to specify the image downloaded from artifacts. + + ``-l`` is used to specify the lab name + + ``-p`` is used to specify POD name + + ``-s`` is used to specify the scenario file + +**Note:** .. code:: bash @@ -381,7 +428,8 @@ Check out the specific version of specific branch of fuel@opnfv $ cd ~ $ git clone https://gerrit.opnfv.org/gerrit/fuel.git $ cd fuel - $ git checkout stable/Colorado + By default it will be master branch, in-order to deploy on the Colorado/Danube branch, do: + $ git checkout stable/Danube ``3.2.3 Creating the scenario`` @@ -390,7 +438,7 @@ Implement the scenario file as described in 3.1.4 ``3.2.4 Deploying the scenario`` -You can use the following command to start to deploy/test os-nosdn kvm_ovs_dpdk-noha and os-nosdn-kvm_ovs_dpdk-ha scenario +You can use the following command to deploy/test os-nosdn kvm_ovs_dpdk-(no)ha and os-nosdn-kvm_ovs_dpdk_bar-(no)ha scenario .. code:: bash @@ -409,7 +457,7 @@ For os-nosdn-kvm_ovs_dpdk_bar-ha: $ ./ci_pipeline.sh -r ~/fuel -i /root/fuel.iso -B -n intel-sc -s os-nosdn-kvm_ovs_dpdk_bar-ha The “ci_pipeline.sh” first clones the local fuel repo, then deploys the -os-nosdn-kvm_ovs_dpdk-ha/os-nosdn-kvm_ovs_dpdk-noha scenario from the given ISO, and run Func test +os-nosdn-kvm_ovs_dpdk-ha/os-nosdn-kvm_ovs_dpdk_bar-ha scenario from the given ISO, and run Functest and Yarstick test. The log of the deployment/test (ci.log) can be found in ~/OPNFV-Playground/ci_fuel_opnfv/artifact/master/YYYY-MM-DD—HH.mm, where YYYY-MM-DD—HH.mm is the date/time you start the “ci_pipeline.sh”. @@ -424,7 +472,12 @@ Note: 3.3 Jenkins Project ~~~~~~~~~~~~~~~~~~~ -os-nosdn-kvm_ovs_dpdk-ha and os-nosdn-kvm_ovs_dpdk_bar-ha scenario can be executed from the jenkins project : +os-nosdn-kvm_ovs_dpdk-(no)ha and os-nosdn-kvm_ovs_dpdk_bar-(no)ha scenario can be executed from the jenkins project : + HA scenarios: 1. "fuel-os-nosdn-kvm_ovs_dpdk-ha-baremetal-daily-master" (os-nosdn-kvm_ovs_dpdk-ha) 2. "fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-baremetal-daily-master" (os-nosdn-kvm_ovs_dpdk_bar-ha) + + NOHA scenarios: + 1. "fuel-os-nosdn-kvm_ovs_dpdk-noha-baremetal-daily-master" (os-nosdn-kvm_ovs_dpdk-noha) + 2. "fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-baremetal-daily-master" (os-nosdn-kvm_ovs_dpdk_bar-noha) diff --git a/docs/scenarios/os-nosdn-kvm-ha/os-nosdn-kvm-ha.description.rst b/docs/scenarios/os-nosdn-kvm-ha/os-nosdn-kvm-ha.description.rst index 9d8285831..f64f26ffc 100644 --- a/docs/scenarios/os-nosdn-kvm-ha/os-nosdn-kvm-ha.description.rst +++ b/docs/scenarios/os-nosdn-kvm-ha/os-nosdn-kvm-ha.description.rst @@ -2,9 +2,12 @@ .. http://creativecommons.org/licenses/by/4.0 +============================ +os-nosdn-kvm-ha Description +============================ Introduction -============ +------------- .. In this section explain the purpose of the scenario and the types of capabilities provided @@ -21,7 +24,7 @@ This scenario testcase deployment is happening on multi-node by using OPNFV Fuel deployer. Scenario Components and Composition -=================================== +----------------------------------- .. In this section describe the unique components that make up the scenario, .. what each component provides and why it has been included in order .. to communicate to the user the capabilities available in this scenario. @@ -31,18 +34,18 @@ configurations provided in ha_nfv-kvm_heat_ceilometer_scenario.yaml. This yaml file contains following configurations and is passed as an argument to deploy.py script -* scenario.yaml:This configuration file defines translation between a +* ``scenario.yaml:`` This configuration file defines translation between a short deployment scenario name(os-nosdn-kvm-ha) and an actual deployment scenario configuration file(ha_nfv-kvm_heat_ceilometer_scenario.yaml) -* deployment-scenario-metadata:Contains the configuration metadata like +* ``deployment-scenario-metadata:`` Contains the configuration metadata like title,version,created,comment. -* stack-extensions:Stack extentions are opnfv added value features in form +* ``stack-extensions:`` Stack extentions are opnfv added value features in form of a fuel-plugin.Plugins listed in stack extensions are enabled and configured. -* dea-override-config: Used to configure the HA mode,network segmentation +* ``dea-override-config:`` Used to configure the HA mode,network segmentation types and role to node assignments.These configurations overrides corresponding keys in the dea_base.yaml and dea_pod_override.yaml. These keys are used to deploy multiple nodes(3 controllers,2 computes) @@ -72,7 +75,7 @@ argument to deploy.py script * **Node 5**: This node has compute role. -* dha-override-config:Provides information about the VM definition and +* ``dha-override-config:`` Provides information about the VM definition and Network config for virtual deployment.These configurations overrides the pod dha definition and points to the controller,compute and fuel definition files. @@ -81,7 +84,7 @@ argument to deploy.py script up and running Scenario Usage Overview -======================= +----------------------- .. Provide a brief overview on how to use the scenario and the features available to the .. user. This should be an "introduction" to the userguide document, and explicitly link to it, .. where the specifics of the features are covered including examples and API's @@ -93,6 +96,8 @@ Scenario Usage Overview -Example: +.. code:: bash + sudo python deploy.py -iso ~/ISO/opnfv.iso -dea ~/CONF/hardware/dea.yaml -dha ~/CONF/hardware/dha.yaml -s /mnt/images -b pxebr -log ~/Deployment-888.log.tar.gz * Install Fuel Master and deploy OPNFV Cloud from scratch on Virtual @@ -100,6 +105,8 @@ Scenario Usage Overview -Example: +.. code:: bash + sudo python deploy.py -iso ~/ISO/opnfv.iso -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -s /mnt/images -log ~/Deployment-888.log.tar.gz * os-nosdn-kvm-ha scenario can be executed from the jenkins project @@ -112,7 +119,7 @@ Scenario Usage Overview * Observed that scenario is not running any testcase on top of deployment. Known Limitations, Issues and Workarounds -========================================= +----------------------------------------- .. Explain any known limitations here. * Test scenario os-nosdn-kvm-ha result is not stable. After node reboot @@ -120,7 +127,7 @@ Known Limitations, Issues and Workarounds responding with in the given time. References -========== +---------- For more information on the OPNFV Danube release, please visit http://www.opnfv.org/danube diff --git a/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk-ha/index.rst b/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk-ha/index.rst index 5582f46c7..28f588e54 100755 --- a/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk-ha/index.rst +++ b/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk-ha/index.rst @@ -1,12 +1,12 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 -**************************************** -os-nosdn-kvm-ha Overview and Description -**************************************** +***************************************************** +os-nosdn-kvm_nfv_ovs_dpdk-ha Overview and Description +***************************************************** .. toctree:: :numbered: :maxdepth: 3 - os-nosdn-kvm_nfv_ovs_dpdk-ha.description.rst + ./os-nosdn-kvm_nfv_ovs_dpdk-ha.description.rst diff --git a/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk-ha/os-nosdn-kvm_nfv_ovs_dpdk-ha.description.rst b/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk-ha/os-nosdn-kvm_nfv_ovs_dpdk-ha.description.rst index 40b9748af..a96130cad 100644 --- a/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk-ha/os-nosdn-kvm_nfv_ovs_dpdk-ha.description.rst +++ b/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk-ha/os-nosdn-kvm_nfv_ovs_dpdk-ha.description.rst @@ -2,9 +2,12 @@ .. http://creativecommons.org/licenses/by/4.0 +========================================= +os-nosdn-kvm_nfv_ovs_dpdk-ha Description +========================================= Introduction -============ +------------ .. In this section explain the purpose of the scenario and the types of capabilities provided @@ -16,10 +19,11 @@ includes OPNFV KVM4NFV latest software packages for Linux Kernel and QEMU patches for achieving low latency. High Availability feature is achieved by deploying OpenStack multi-node setup with 3 controllers and 2 computes nodes. -KVM4NFV packages will be installed on compute nodes as part of deployment. This scenario testcase deployment is happening on multi-node by using OPNFV Fuel deployer. +KVM4NFV packages will be installed on compute nodes as part of deployment. +This scenario testcase deployment is happening on multi-node by using OPNFV Fuel deployer. Scenario Components and Composition -=================================== +----------------------------------- .. In this section describe the unique components that make up the scenario, .. what each component provides and why it has been included in order .. to communicate to the user the capabilities available in this scenario. @@ -29,7 +33,7 @@ configurations provided in ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml This yaml file contains following configurations and is passed as an argument to deploy.py script -* scenario.yaml:This configuration file defines translation between a +* ``scenario.yaml:`` This configuration file defines translation between a short deployment scenario name(os-nosdn-kvm_ovs_dpdk-ha) and an actual deployment scenario configuration file(ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml) @@ -63,29 +67,34 @@ argument to deploy.py script These keys are used to deploy multiple nodes(``3 controllers,2 computes``) as mention below. - * **Node 1**: This node has MongoDB and Controller roles. The controller - node runs the Identity service, Image Service, management portions of - Compute and Networking, Networking plug-in and the dashboard. The - Telemetry service which was designed to support billing systems for - OpenStack cloud resources uses a NoSQL database to store information. - The database typically runs on the controller node. - - * **Node 2**: This node has Controller and Ceph-osd roles. Ceph is a - massively scalable, open source, distributed storage system. It is - comprised of an object store, block store and a POSIX-compliant distributed - file system. Enabling Ceph, configures Nova to store ephemeral volumes in - RBD, configures Glance to use the Ceph RBD backend to store images, - configures Cinder to store volumes in Ceph RBD images and configures the - default number of object replicas in Ceph. - - * **Node 3**: This node has Controller role in order to achieve high - availability. - - * **Node 4**: This node has Compute role. The compute node runs the - hypervisor portion of Compute that operates tenant virtual machines - or instances. By default, Compute uses KVM as the hypervisor. - - * **Node 5**: This node has compute role. + * **Node 1**: + - This node has MongoDB and Controller roles + - The controller node runs the Identity service, Image Service, management portions of + Compute and Networking, Networking plug-in and the dashboard + - Uses VLAN as an interface + + * **Node 2**: + - This node has Ceph-osd and Controller roles + - The controller node runs the Identity service, Image Service, management portions of + Compute and Networking, Networking plug-in and the dashboard + - Ceph is a massively scalable, open source, distributed storage system + - Uses VLAN as an interface + + * **Node 3**: + - This node has Controller role in order to achieve high availability. + - Uses VLAN as an interface + + * **Node 4**: + - This node has compute and Ceph-osd roles + - Ceph is a massively scalable, open source, distributed storage system + - By default, Compute uses KVM as the hypervisor + - Uses DPDK as an interface + + * **Node 5**: + - This node has compute and Ceph-osd roles + - Ceph is a massively scalable, open source, distributed storage system + - By default, Compute uses KVM as the hypervisor + - Uses DPDK as an interface The below is the ``dea-override-config`` of the ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml file. @@ -177,17 +186,18 @@ argument to deploy.py script * os-nosdn-kvm_ovs_dpdk-ha scenario is successful when all the 5 Nodes are accessible, up and running. - - **Note:** * In os-nosdn-kvm_ovs_dpdk-ha scenario, OVS is installed on the compute nodes with DPDK configured -* This results in faster communication and data transfer among the compute nodes +* Hugepages for DPDK are configured in the attributes_1 section of the no-ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml + +* Hugepages are only configured for compute nodes +* This results in faster communication and data transfer among the compute nodes Scenario Usage Overview -======================= +----------------------- .. Provide a brief overview on how to use the scenario and the features available to the .. user. This should be an "introduction" to the userguide document, and explicitly link to it, .. where the specifics of the features are covered including examples and API's @@ -210,7 +220,7 @@ where, -i is used to specify the image downloaded from artifacts. -Note: +**Note:** .. code:: bash @@ -225,16 +235,13 @@ Note: accessibility (IP , up & running). Known Limitations, Issues and Workarounds -========================================= +----------------------------------------- .. Explain any known limitations here. * Test scenario os-nosdn-kvm_ovs_dpdk-ha result is not stable. -* As Functest and Yardstick test suites are not stable. Instances are not getting IP address from DHCP (functest issue). - - References -========== +---------- For more information on the OPNFV Danube release, please visit http://www.opnfv.org/Danube diff --git a/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk-noha/index.rst b/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk-noha/index.rst index 9d60465d6..3a52fe426 100755 --- a/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk-noha/index.rst +++ b/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk-noha/index.rst @@ -1,12 +1,12 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 -**************************************** -os-nosdn-kvm-ha Overview and Description -**************************************** +******************************************************* +os-nosdn-kvm_nfv_ovs_dpdk-noha Overview and Description +******************************************************* .. toctree:: :numbered: :maxdepth: 3 - os-nosdn-kvm_nfv_ovs_dpdk-noha.description.rst + ./os-nosdn-kvm_nfv_ovs_dpdk-noha.description.rst diff --git a/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk-noha/os-nosdn-kvm_nfv_ovs_dpdk-noha.description.rst b/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk-noha/os-nosdn-kvm_nfv_ovs_dpdk-noha.description.rst index 3e354b5b9..a7778d963 100644 --- a/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk-noha/os-nosdn-kvm_nfv_ovs_dpdk-noha.description.rst +++ b/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk-noha/os-nosdn-kvm_nfv_ovs_dpdk-noha.description.rst @@ -2,36 +2,40 @@ .. http://creativecommons.org/licenses/by/4.0 +========================================== +os-nosdn-kvm_nfv_ovs_dpdk-noha Description +========================================== Introduction -============ +------------ .. In this section explain the purpose of the scenario and the types of capabilities provided -The purpose of os-nosdn-kvm_ovs_dpdk-noha scenario testing is to test the +The purpose of os-nosdn-kvm_ovs_dpdk-noha scenario testing is to test the No High Availability deployment and configuration of OPNFV software suite with OpenStack and without SDN software. This OPNFV software suite includes OPNFV KVM4NFV latest software packages for Linux Kernel and -QEMU patches for achieving low latency. High Availability feature is achieved -by deploying OpenStack multi-node setup with 3 controllers and 2 computes nodes. +QEMU patches for achieving low latency. No High Availability feature is achieved +by deploying OpenStack multi-node setup with 1 controller and 3 computes nodes. -KVM4NFV packages will be installed on compute nodes as part of deployment. This scenario testcase deployment is happening on multi-node by using OPNFV Fuel deployer. +KVM4NFV packages will be installed on compute nodes as part of deployment. +This scenario testcase deployment is happening on multi-node by using OPNFV Fuel deployer. Scenario Components and Composition -=================================== +------------------------------------ .. In this section describe the unique components that make up the scenario, .. what each component provides and why it has been included in order .. to communicate to the user the capabilities available in this scenario. -This scenario deploys the High Availability OPNFV Cloud based on the -configurations provided in noha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml. +This scenario deploys the No High Availability OPNFV Cloud based on the +configurations provided in no-ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml. This yaml file contains following configurations and is passed as an argument to deploy.py script -* scenario.yaml:This configuration file defines translation between a +* ``scenario.yaml:`` This configuration file defines translation between a short deployment scenario name(os-nosdn-kvm_ovs_dpdk-noha) and an actual deployment - scenario configuration file(noha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml) + scenario configuration file(no-ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml) * ``deployment-scenario-metadata:`` Contains the configuration metadata like title,version,created,comment. @@ -57,35 +61,37 @@ argument to deploy.py script module-config-override: # Module config overrides -* ``dea-override-config:`` Used to configure the HA mode,network segmentation +* ``dea-override-config:`` Used to configure the NO-HA mode,network segmentation types and role to node assignments.These configurations overrides corresponding keys in the dea_base.yaml and dea_pod_override.yaml. These keys are used to deploy multiple nodes(``1 controller,3 computes``) as mention below. - * **Node 1**: This node has MongoDB and Controller roles. The controller - node runs the Identity service, Image Service, management portions of - Compute and Networking, Networking plug-in and the dashboard. The - Telemetry service which was designed to support billing systems for - OpenStack cloud resources uses a NoSQL database to store information. - The database typically runs on the controller node. + * **Node 1**: + - This node has MongoDB and Controller roles + - The controller node runs the Identity service, Image Service, management portions of + Compute and Networking, Networking plug-in and the dashboard + - Uses VLAN as an interface - * **Node 2**: This node has compute and Ceph-osd roles. Ceph is a - massively scalable, open source, distributed storage system. It is - comprised of an object store, block store and a POSIX-compliant - file system. Enabling Ceph, configures Nova to store ephemeral volumes in - RBD, configures Glance to use the Ceph RBD backend to store images, - configures Cinder to store volumes in Ceph RBD images and configures the - default number of object replicas in Ceph. + * **Node 2**: + - This node has compute and Ceph-osd roles + - Ceph is a massively scalable, open source, distributed storage system + - By default, Compute uses KVM as the hypervisor + - Uses DPDK as an interface - * **Node 3**: This node has Compute role in order to achieve high - availability. + * **Node 3**: + - This node has compute and Ceph-osd roles + - Ceph is a massively scalable, open source, distributed storage system + - By default, Compute uses KVM as the hypervisor + - Uses DPDK as an interface - * **Node 4**: This node has Compute role. The compute node runs the - hypervisor portion of Compute that operates tenant virtual machines - or instances. By default, Compute uses KVM as the hypervisor. + * **Node 4**: + - This node has compute and Ceph-osd roles + - Ceph is a massively scalable, open source, distributed storage system + - By default, Compute uses KVM as the hypervisor + - Uses DPDK as an interface - The below is the ``dea-override-config`` of the noha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml file. + The below is the ``dea-override-config`` of the no-ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml file. .. code:: bash @@ -162,7 +168,8 @@ argument to deploy.py script * ``dha-override-config:`` Provides information about the VM definition and Network config for virtual deployment.These configurations overrides the pod dha definition and points to the controller,compute and - fuel definition files. The noha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml has no dha-config changes i.e., default configuration is used. + fuel definition files. The no-ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml + has no dha-config changes i.e., default configuration is used. * os-nosdn-kvm_ovs_dpdk-noha scenario is successful when all the 4 Nodes are accessible, up and running. @@ -173,11 +180,16 @@ argument to deploy.py script * In os-nosdn-kvm_ovs_dpdk-noha scenario, OVS is installed on the compute nodes with DPDK configured +* Hugepages for DPDK are configured in the attributes_1 section of the no-ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml + +* Hugepages are only configured for compute nodes + * This results in faster communication and data transfer among the compute nodes Scenario Usage Overview -======================= +----------------------- + .. Provide a brief overview on how to use the scenario and the features available to the .. user. This should be an "introduction" to the userguide document, and explicitly link to it, .. where the specifics of the features are covered including examples and API's @@ -200,7 +212,7 @@ where, -i is used to specify the image downloaded from artifacts. -Note: +**Note:** .. code:: bash @@ -208,20 +220,20 @@ Note: * os-nosdn-kvm_ovs_dpdk-noha scenario can be executed from the jenkins project "fuel-os-nosdn-kvm_ovs_dpdk-noha-baremetal-daily-master" -* This scenario provides the High Availability feature by deploying - 3 controller,2 compute nodes and checking if all the 5 nodes +* This scenario provides the No High Availability feature by deploying + 1 controller,3 compute nodes and checking if all the 4 nodes are accessible(IP,up & running). -* Test Scenario is passed if deployment is successful and all 5 nodes have +* Test Scenario is passed if deployment is successful and all 4 nodes have accessibility (IP , up & running). Known Limitations, Issues and Workarounds -========================================= +----------------------------------------- .. Explain any known limitations here. * Test scenario os-nosdn-kvm_ovs_dpdk-noha result is not stable. References -========== +---------- For more information on the OPNFV Danube release, please visit http://www.opnfv.org/Danube diff --git a/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk_bar-ha/index.rst b/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk_bar-ha/index.rst index 5fccc5a2c..0e374a5ca 100755 --- a/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk_bar-ha/index.rst +++ b/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk_bar-ha/index.rst @@ -1,12 +1,12 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 -**************************************** -os-nosdn-kvm-ha Overview and Description -**************************************** +********************************************************* +os-nosdn-kvm_nfv_ovs_dpdk_bar-ha Overview and Description +********************************************************* .. toctree:: :numbered: :maxdepth: 3 - os-nosdn-kvm_nfv_ovs_dpdk_bar-ha.description.rst + ./os-nosdn-kvm_nfv_ovs_dpdk_bar-ha.description.rst diff --git a/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk_bar-ha/os-nosdn-kvm_nfv_ovs_dpdk_bar-ha.description.rst b/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk_bar-ha/os-nosdn-kvm_nfv_ovs_dpdk_bar-ha.description.rst index 7090ccdd6..0ab20514a 100644 --- a/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk_bar-ha/os-nosdn-kvm_nfv_ovs_dpdk_bar-ha.description.rst +++ b/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk_bar-ha/os-nosdn-kvm_nfv_ovs_dpdk_bar-ha.description.rst @@ -2,9 +2,12 @@ .. http://creativecommons.org/licenses/by/4.0 +============================================ +os-nosdn-kvm_nfv_ovs_dpdk_bar-ha Description +============================================ Introduction -============ +------------ .. In this section explain the purpose of the scenario and the types of capabilities provided @@ -16,10 +19,12 @@ includes OPNFV KVM4NFV latest software packages for Linux Kernel and QEMU patches for achieving low latency. High Availability feature is achieved by deploying OpenStack multi-node setup with 3 controllers and 2 computes nodes. -KVM4NFV packages will be installed on compute nodes as part of deployment. This scenario testcase deployment is happening on multi-node by using OPNFV Fuel deployer. +OPNFV Barometer packages is used for traffic,performance and platform monitoring. +KVM4NFV packages will be installed on compute nodes as part of deployment. +This scenario testcase deployment is happening on multi-node by using OPNFV Fuel deployer. Scenario Components and Composition -=================================== +----------------------------------- .. In this section describe the unique components that make up the scenario, .. what each component provides and why it has been included in order .. to communicate to the user the capabilities available in this scenario. @@ -29,7 +34,7 @@ configurations provided in ha_nfv-kvm_nfv-ovs-dpdk-bar_heat_ceilometer_scenario. This yaml file contains following configurations and is passed as an argument to deploy.py script -* scenario.yaml:This configuration file defines translation between a +* ``scenario.yaml:`` This configuration file defines translation between a short deployment scenario name(os-nosdn-kvm_ovs_dpdk_bar-ha) and an actual deployment scenario configuration file(ha_nfv-kvm_nfv-ovs-dpdk-bar_heat_ceilometer_scenario.yaml) @@ -69,29 +74,34 @@ argument to deploy.py script These keys are used to deploy multiple nodes(``3 controllers,2 computes``) as mention below. - * **Node 1**: This node has MongoDB and Controller roles. The controller - node runs the Identity service, Image Service, management portions of - Compute and Networking, Networking plug-in and the dashboard. The - Telemetry service which was designed to support billing systems for - OpenStack cloud resources uses a NoSQL database to store information. - The database typically runs on the controller node. - - * **Node 2**: This node has Controller and Ceph-osd roles. Ceph is a - massively scalable, open source, distributed storage system. It is - comprised of an object store, block store and a POSIX-compliant distributed - file system. Enabling Ceph, configures Nova to store ephemeral volumes in - RBD, configures Glance to use the Ceph RBD backend to store images, - configures Cinder to store volumes in Ceph RBD images and configures the - default number of object replicas in Ceph. - - * **Node 3**: This node has Controller role in order to achieve high - availability. - - * **Node 4**: This node has Compute role. The compute node runs the - hypervisor portion of Compute that operates tenant virtual machines - or instances. By default, Compute uses KVM as the hypervisor. - - * **Node 5**: This node has compute role. + * **Node 1**: + - This node has MongoDB and Controller roles + - The controller node runs the Identity service, Image Service, management portions of + Compute and Networking, Networking plug-in and the dashboard + - Uses VLAN as an interface + + * **Node 2**: + - This node has Ceph-osd and Controller roles + - The controller node runs the Identity service, Image Service, management portions of + Compute and Networking, Networking plug-in and the dashboard + - Ceph is a massively scalable, open source, distributed storage system + - Uses VLAN as an interface + + * **Node 3**: + - This node has Controller role in order to achieve high availability. + - Uses VLAN as an interface + + * **Node 4**: + - This node has compute and Ceph-osd roles + - Ceph is a massively scalable, open source, distributed storage system + - By default, Compute uses KVM as the hypervisor + - Uses DPDK as an interface + + * **Node 5**: + - This node has compute and Ceph-osd roles + - Ceph is a massively scalable, open source, distributed storage system + - By default, Compute uses KVM as the hypervisor + - Uses DPDK as an interface The below is the ``dea-override-config`` of the ha_nfv-kvm_nfv-ovs-dpdk-bar_heat_ceilometer_scenario.yaml file. @@ -189,11 +199,15 @@ argument to deploy.py script * Baraometer plugin is also implemented along with KVM plugin +* Hugepages for DPDK are configured in the attributes_1 section of the no-ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml + +* Hugepages are only configured for compute nodes + * This results in faster communication and data transfer among the compute nodes Scenario Usage Overview -======================= +------------------------ .. Provide a brief overview on how to use the scenario and the features available to the .. user. This should be an "introduction" to the userguide document, and explicitly link to it, .. where the specifics of the features are covered including examples and API's @@ -209,14 +223,14 @@ Command to deploy the os-nosdn-kvm_ovs_dpdk_bar-ha scenario: .. code:: bash $ cd ~/fuel/ci/ - $ sudo ./deploy.sh -f -b file:///tmp/opnfv-fuel/deploy/config -l devel-pipeline -p default -s no-ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml -i file:///tmp/opnfv.iso + $ sudo ./deploy.sh -f -b file:///tmp/opnfv-fuel/deploy/config -l devel-pipeline -p default -s ha_nfv-kvm_nfv-ovs-dpdk-bar_heat_ceilometer_scenario.yaml -i file:///tmp/opnfv.iso where, -b is used to specify the configuration directory -i is used to specify the image downloaded from artifacts. -Note: +**Note:** .. code:: bash @@ -231,16 +245,13 @@ Note: accessibility (IP , up & running). Known Limitations, Issues and Workarounds -========================================= +----------------------------------------- .. Explain any known limitations here. * Test scenario os-nosdn-kvm_ovs_dpdk_bar-ha result is not stable. -* As Functest and Yardstick test suites are not stable. Instances are not getting IP address from DHCP (functest issue). - - References -========== +---------- For more information on the OPNFV Danube release, please visit http://www.opnfv.org/Danube diff --git a/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk_bar-noha/index.rst b/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk_bar-noha/index.rst index 1cdad5205..756b2ba6a 100755 --- a/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk_bar-noha/index.rst +++ b/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk_bar-noha/index.rst @@ -1,12 +1,12 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 -**************************************** -os-nosdn-kvm-ha Overview and Description -**************************************** +*********************************************************** +os-nosdn-kvm_nfv_ovs_dpdk_bar-noha Overview and Description +*********************************************************** .. toctree:: :numbered: :maxdepth: 3 - os-nosdn-kvm_nfv_ovs_dpdk_bar-noha.description.rst + ./os-nosdn-kvm_nfv_ovs_dpdk_bar-noha.description.rst diff --git a/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk_bar-noha/os-nosdn-kvm_nfv_ovs_dpdk_bar-noha.description.rst b/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk_bar-noha/os-nosdn-kvm_nfv_ovs_dpdk_bar-noha.description.rst index 67a0732a7..47a7f1034 100644 --- a/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk_bar-noha/os-nosdn-kvm_nfv_ovs_dpdk_bar-noha.description.rst +++ b/docs/scenarios/os-nosdn-kvm_nfv_ovs_dpdk_bar-noha/os-nosdn-kvm_nfv_ovs_dpdk_bar-noha.description.rst @@ -2,36 +2,41 @@ .. http://creativecommons.org/licenses/by/4.0 +============================================ +os-nosdn-kvm_nfv_ovs_dpdk_bar-ha Description +============================================ Introduction -============ +------------- .. In this section explain the purpose of the scenario and the types of capabilities provided The purpose of os-nosdn-kvm_ovs_dpdk_bar-noha scenario testing is to test the -High Availability deployment and configuration of OPNFV software suite +No High Availability deployment and configuration of OPNFV software suite with OpenStack and without SDN software. This OPNFV software suite includes OPNFV KVM4NFV latest software packages for Linux Kernel and -QEMU patches for achieving low latency. High Availability feature is achieved -by deploying OpenStack multi-node setup with 3 controllers and 2 computes nodes. +QEMU patches for achieving low latency.No High Availability feature is achieved +by deploying OpenStack multi-node setup with 1 controller and 3 computes nodes. -KVM4NFV packages will be installed on compute nodes as part of deployment. This scenario testcase deployment is happening on multi-node by using OPNFV Fuel deployer. +OPNFV Barometer packages is used for traffic,performance and platform monitoring. +KVM4NFV packages will be installed on compute nodes as part of deployment. +This scenario testcase deployment is happening on multi-node by using OPNFV Fuel deployer. Scenario Components and Composition -=================================== +------------------------------------ .. In this section describe the unique components that make up the scenario, .. what each component provides and why it has been included in order .. to communicate to the user the capabilities available in this scenario. -This scenario deploys the High Availability OPNFV Cloud based on the -configurations provided in noha_nfv-kvm_nfv-ovs-dpdk-bar_heat_ceilometer_scenario.yaml. +This scenario deploys the No High Availability OPNFV Cloud based on the +configurations provided in no-ha_nfv-kvm_nfv-ovs-dpdk-bar_heat_ceilometer_scenario.yaml. This yaml file contains following configurations and is passed as an argument to deploy.py script -* scenario.yaml:This configuration file defines translation between a +* ``scenario.yaml:`` This configuration file defines translation between a short deployment scenario name(os-nosdn-kvm_ovs_dpdk_bar-noha) and an actual deployment - scenario configuration file(noha_nfv-kvm_nfv-ovs-dpdk-bar_heat_ceilometer_scenario.yaml) + scenario configuration file(no-ha_nfv-kvm_nfv-ovs-dpdk-bar_heat_ceilometer_scenario.yaml) * ``deployment-scenario-metadata:`` Contains the configuration metadata like title,version,created,comment. @@ -68,29 +73,31 @@ argument to deploy.py script These keys are used to deploy multiple nodes(``1 controller,3 computes``) as mention below. - * **Node 1**: This node has MongoDB and Controller roles. The controller - node runs the Identity service, Image Service, management portions of - Compute and Networking, Networking plug-in and the dashboard. The - Telemetry service which was designed to support billing systems for - OpenStack cloud resources uses a NoSQL database to store information. - The database typically runs on the controller node. + * **Node 1**: + - This node has MongoDB and Controller roles + - The controller node runs the Identity service, Image Service, management portions of + Compute and Networking, Networking plug-in and the dashboard + - Uses VLAN as an interface - * **Node 2**: This node has compute and Ceph-osd roles. Ceph is a - massively scalable, open source, distributed storage system. It is - comprised of an object store, block store and a POSIX-compliant - file system. Enabling Ceph, configures Nova to store ephemeral volumes in - RBD, configures Glance to use the Ceph RBD backend to store images, - configures Cinder to store volumes in Ceph RBD images and configures the - default number of object replicas in Ceph. + * **Node 2**: + - This node has compute and Ceph-osd roles + - Ceph is a massively scalable, open source, distributed storage system + - By default, Compute uses KVM as the hypervisor + - Uses DPDK as an interface - * **Node 3**: This node has Compute role in order to achieve high - availability. + * **Node 3**: + - This node has compute and Ceph-osd roles + - Ceph is a massively scalable, open source, distributed storage system + - By default, Compute uses KVM as the hypervisor + - Uses DPDK as an interface - * **Node 4**: This node has Compute role. The compute node runs the - hypervisor portion of Compute that operates tenant virtual machines - or instances. By default, Compute uses KVM as the hypervisor. + * **Node 4**: + - This node has compute and Ceph-osd roles + - Ceph is a massively scalable, open source, distributed storage system + - By default, Compute uses KVM as the hypervisor + - Uses DPDK as an interface - The below is the ``dea-override-config`` of the noha_nfv-kvm_nfv-ovs-dpdk-bar_heat_ceilometer_scenario.yaml file. + The below is the ``dea-override-config`` of the no-ha_nfv-kvm_nfv-ovs-dpdk-bar_heat_ceilometer_scenario.yaml file. .. code:: bash @@ -180,11 +187,14 @@ argument to deploy.py script * Baraometer plugin is also implemented along with KVM plugin. -* This results in faster communication and data transfer among the compute nodes +* Hugepages for DPDK are configured in the attributes_1 section of the no-ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml + +* Hugepages are only configured for compute nodes +* This results in faster communication and data transfer among the compute nodes Scenario Usage Overview -======================= +----------------------- .. Provide a brief overview on how to use the scenario and the features available to the .. user. This should be an "introduction" to the userguide document, and explicitly link to it, .. where the specifics of the features are covered including examples and API's @@ -215,20 +225,20 @@ Note: * os-nosdn-kvm_ovs_dpdk_bar-noha scenario can be executed from the jenkins project "fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-baremetal-daily-master" -* This scenario provides the High Availability feature by deploying - 3 controller,2 compute nodes and checking if all the 5 nodes +* This scenario provides the No High Availability feature by deploying + 1 controller,3 compute nodes and checking if all the 4 nodes are accessible(IP,up & running). -* Test Scenario is passed if deployment is successful and all 5 nodes have +* Test Scenario is passed if deployment is successful and all 4 nodes have accessibility (IP , up & running). Known Limitations, Issues and Workarounds -========================================= +----------------------------------------- .. Explain any known limitations here. * Test scenario os-nosdn-kvm_ovs_dpdk_bar-noha result is not stable. References -========== +---------- For more information on the OPNFV Danube release, please visit http://www.opnfv.org/Danube diff --git a/docs/userguide/Ftrace.debugging.tool.userguide.rst b/docs/userguide/Ftrace.debugging.tool.userguide.rst index 0fcbbcf93..fc0858a6d 100644 --- a/docs/userguide/Ftrace.debugging.tool.userguide.rst +++ b/docs/userguide/Ftrace.debugging.tool.userguide.rst @@ -9,9 +9,9 @@ FTrace Debugging Tool About Ftrace ------------- Ftrace is an internal tracer designed to find what is going on inside the kernel. It can be used -for debugging or analyzing latencies and performance issues that take place outside of user-space. -Although ftrace is typically considered the function tracer, it is really a frame work of several -assorted tracing utilities. +for debugging or analyzing latencies and performance related issues that take place outside of +user-space. Although ftrace is typically considered the function tracer, it is really a frame +work of several assorted tracing utilities. One of the most common uses of ftrace is the event tracing. @@ -33,7 +33,7 @@ Version Features +-----------------------------+-----------------------------------------------+ | | - Ftrace aids in debugging the KVMFORNFV | | Danube | 4.4-linux-kernel level issues | -| | - Option to diable if not required | +| | - Option to disable if not required | +-----------------------------+-----------------------------------------------+ @@ -155,19 +155,16 @@ Examples: [tracing]# echo 1 > tracing_on; -=================== Ftrace in KVMFORNFV -=================== -Ftrace is part of KVMFORNFV D-Release. Kvmfornfv currently uses 4.4-linux-Kernel as part of -deployment and runs cyclictest for testing purpose generating latency values (max, min, avg values). +------------------- +Ftrace is part of KVMFORNFV D-Release. KVMFORNFV built 4.4-linux-Kernel will be tested by +executing cyclictest and analyzing the results/latency values (max, min, avg) generated. Ftrace (or) function tracer is a stable kernel inbuilt debugging tool which tests kernel in real time and outputs a log as part of the code. These output logs are useful in following ways. - Kernel Debugging. - - Helps in Kernel code Optimization and - - Can be used to better understand the kernel Level code flow - - Log generation for each test run if enabled - - Choice of Disabling and Enabling + - Helps in Kernel code optimization and + - Can be used to better understand the kernel level code flow Ftrace logs for KVMFORNFV can be found `here`_: @@ -184,7 +181,8 @@ Kvmfornfv has two scripts in /ci/envs to provide ftrace tool: Enabling Ftrace in KVMFORNFV ---------------------------- -The enable_trace.sh script is triggered by changing ftrace_enable value in test_kvmfornfv.sh script which is zero by default. Change as below to enable Ftrace and trigger the script, +The enable_trace.sh script is triggered by changing ftrace_enable value in test_kvmfornfv.sh +script to 1 (which is zero by default). Change as below to enable Ftrace. .. code:: bash @@ -197,7 +195,7 @@ Note: Details of enable_trace script ------------------------------ -- CPU Coremask is calculated using getcpumask() +- CPU coremask is calculated using getcpumask() - All the required events are enabled by, echoing "1" to $TRACEDIR/events/event_name/enable file @@ -230,19 +228,21 @@ The set_event file contains all the enabled events list - Once tracing is diabled, disable_trace.sh script is triggered. -Details of Disable_trace Script +Details of disable_trace Script ------------------------------- In disable trace script the following are done: -- The trace file is copied and moved to /tmp folfer based on timestamp. +- The trace file is copied and moved to /tmp folder based on timestamp - The current tracer file is set to ``nop`` - The set_event file is cleared i.e., all the enabled events are disabled -- Kernel Ftarcer is diabled/unmounted +- Kernel Ftrace is disabled/unmounted Publishing Ftrace logs: ----------------------- -The generated trace log is pushed to `artifacts`_ of Kvmfornfv project by releng team, which is done by a script in JJB of releng. The `trigger`_ in the script is., +The generated trace log is pushed to `artifacts`_ by kvmfornfv-upload-artifact.sh +script available in releng which will be triggered as a part of kvmfornfv daily job. +The `trigger`_ in the script is., .. code:: bash @@ -252,6 +252,3 @@ The generated trace log is pushed to `artifacts`_ of Kvmfornfv project by releng .. _artifacts: https://artifacts.opnfv.org/ .. _trigger: https://gerrit.opnfv.org/gerrit/gitweb?p=releng.git;a=blob;f=jjb/kvmfornfv/kvmfornfv-upload-artifact.sh;h=56fb4f9c18a83c689a916dc6c85f9e3ddf2479b2;hb=HEAD#l53 - - -.. include:: pcm_utility.userguide.rst diff --git a/docs/userguide/abstract.rst b/docs/userguide/abstract.rst index 8c36c268f..ec05b2560 100644 --- a/docs/userguide/abstract.rst +++ b/docs/userguide/abstract.rst @@ -2,9 +2,9 @@ .. http://creativecommons.org/licenses/by/4.0 -======== -Abstract -======== +================== +Userguide Abstract +================== In KVM4NFV project, we focus on the KVM hypervisor to enhance it for NFV, by looking at the following areas initially- diff --git a/docs/userguide/common.platform.render.rst b/docs/userguide/common.platform.render.rst index 486ca469f..46b4707a3 100644 --- a/docs/userguide/common.platform.render.rst +++ b/docs/userguide/common.platform.render.rst @@ -7,7 +7,7 @@ Using common platform components ================================ This section outlines basic usage principals and methods for some of the -commonly deployed components of supported OPNFV scenario's in Colorado. +commonly deployed components of supported OPNFV scenario's in Danube. The subsections provide an outline of how these components are commonly used and how to address them in an OPNFV deployment.The components derive from autonomous upstream communities and where possible this guide will diff --git a/docs/userguide/feature.userguide.render.rst b/docs/userguide/feature.userguide.render.rst index d903f0711..0e2738ae3 100644 --- a/docs/userguide/feature.userguide.render.rst +++ b/docs/userguide/feature.userguide.render.rst @@ -3,7 +3,7 @@ .. http://creativecommons.org/licenses/by/4.0 ========================== -Using Colorado Features +Using Danube Features ========================== The following sections of the user guide provide feature specific usage diff --git a/docs/userguide/images/cpu-stress-idle-test-type.png b/docs/userguide/images/cpu-stress-idle-test-type.png new file mode 100644 index 0000000000000000000000000000000000000000..9a5bdf6dec46251958ad35e43db58b43c9d7eab5 GIT binary patch literal 17822 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 V`1D~4@c+O>R#Hi#T+Aroe*saFC_VrH literal 0 HcmV?d00001 diff --git a/docs/userguide/images/guest_pk_fw.png b/docs/userguide/images/guest_pk_fw.png new file mode 100644 index 0000000000000000000000000000000000000000..5f80ecce57489e1ee456af6b7d2e414ca36d20e0 GIT binary patch literal 8020 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 e2#4OziAFc literal 0 HcmV?d00001 diff --git a/docs/userguide/images/host_pk_fw.png b/docs/userguide/images/host_pk_fw.png new file mode 100644 index 0000000000000000000000000000000000000000..dcbe921f2f2c70717cfdae77829179cde54822b5 GIT binary patch literal 5390 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 A;s5{u literal 0 HcmV?d00001 diff --git a/docs/userguide/images/memory-stress-idle-test-type.png b/docs/userguide/images/memory-stress-idle-test-type.png new file mode 100644 index 0000000000000000000000000000000000000000..1ca839a4a3f74d1164f607b18254d34bdb83b283 GIT binary patch literal 18727 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 literal 0 HcmV?d00001 diff --git a/docs/userguide/images/sriov_pk_fw.png b/docs/userguide/images/sriov_pk_fw.png new file mode 100644 index 0000000000000000000000000000000000000000..bf7ad6f9b29fa6dbebc755965e470d48ed44f33d GIT binary patch literal 5864 zcmeHLX;_kJ7k)rX#k9pG$FvyIVOkV4(;!hQ%QnMGKgAYvL19#Ip+H8FW*W;h%gjd2 zg|TU}O>@jGDrr%&QE4~#wY0@jvl6wO_XS+KroLcgn zW%vQWt#gg9)wqG5;xMvp<=WdcKb(m+jJK8ysne!Ve zW{>ItEA2@tXhhC258GcYjJu01lI{en)E?~Xz@7~rZcs3U764m&Zm^e6 z0F90Iruj3NB+M&ODF)5(C1KnaJK>#zSJ3E;)x1#JX5I!DA6|eD!53q1hqC1oAqPP; zwilWk6vzxCa!DAuUn2A!{uzfs%eSxtNEmk~XY>kIC=G38Ze@-)TgheYvc%Y-(6*tz ze#A`m`^Apn9X1@(XdZ1Z`MvW34?*`Xr*&F0b|~oVM-DpI&iQBXJL-VP2A3A_fFb>gsY!?GrFPv@O)<7MAP4Vac<9GAu9^b# zo#c|mW4>T;5MuGwOYdfaY#LvVe*$6%zYv?cU%hmvAa+Vpxi1v)Xaq6Ugzwc2wkYGJ zKMv9{3b5594BJM;JonA&d;WMR=ZE}#Tk?tg8vmeYvPa0yS06Iob{gEFCmm~?zGK=V zmr$Z)sUpUh?I~AP;>;$73;?C|Kq(-bz1H~$h1Mw%GlSJQss=ZvBq%pJ8zd4e_Kg{bTHuh1FQx?dfGt^SN-O$-qduD)@d3-EZOS! zf_MA;^z#}8oxzt>;!kPSBNXKE7e<}Gt~&_^(yzKzpo2${5P{~=;p8d5(lue=f$hiC zfxzR*M@XS)$dtglFIFT(4q65`=ao6fCBE|`Gjb+?|S#iRG zIzi%DVcIBUxxP}_9^v(>5<|*LZTqR77p+sWhk3FqXX+NVJvZv&D?ezaQ^Gxq()3_Z#iK%WYX3l^{(v) z(f>ILq4dw)h>?r ze5#+}QT*oY_12Ln{`Z8(!F}|Z(luKncBJHs%VW<5?Kx~|Fq=}bf1TFNI1N*kziJQ; z6tRZ1X;_=vt-Jf$nTMa&R^bldC#cIH5|#zJ6v$n=%Ly0z}{OFVIM(|H1|eXRT0_}P?tOx1Rea4ko_y_XAi z3ws}VXWtlB-TK}%;Q(N}UtDDagoj^SAjYbq@?ryW|mE=$wA)M5s%nqs@sfgE#9|!BtaLFnKh+?@9o`SbQm(iF+ICa!4G5^!8gB4 zBm0Swx+3CYuvr(fR+~6L&%<8(kz|UPP-`LME`XjrT5~N2*w-WOwk7J$@kVwv)qf{& zLRgfT+(TI+x!O<>C7UhE`*b-4#q;Lu$dy+gMKuhG_mey`(p7!Aw9w$HJRAUCKAG37 zR=9*?b9ShsuGg9>I^EM3xh~08;KSseR%R!fFF){;VM&eQX6 zWtfN~CHgB&w-B1-?Xo5CyHv1*h3()v;wqsK$BE0Rj=_H#VX?4`MVbu78=bs*-Wn7X zud78b@3P4x@z0Z^GW{n37fXBCxu7{#UGfSht~8L@2`xzWv1TO~Q`b5Nhdtde`2+VP zo;XC4HDd2;(=b5s;Uint%{hoQ!9Id!DO^S#HhtU{e5gCAbVm?^zVDKHB~h0VPt4G_t@EO z1wIK2nmzo__-x){TvW(P7mp7|JkzrF>zXE{8=~<;ih2^R&38> z%u}Q>r)qBn5@NK)4I$bIjXk%+l|?Gjb!WiRvgQctAK&ws;eEBXCGq*Niaj!)gAG=8hC&HPqPf(`u`%zlko=~MdC_oVi5COXo9Sq zT7SPu8x;{A*>~Z$tLqkQ7|~37aWY6}N)lT-lke0&ygu8<}FV+4a{raMPi z_DH--*4R{{C{v@?Y5capS8hCmu4(u&0?Q_-%$_(iY+i!@$ypM5Nku-~)>hIHpx~oQ0PCNe9)+N~YTU$24*U%N7rbWW L28W#GJAV2bYEQwL literal 0 HcmV?d00001 diff --git a/docs/userguide/index.rst b/docs/userguide/index.rst index fcef57250..0d5089e01 100644 --- a/docs/userguide/index.rst +++ b/docs/userguide/index.rst @@ -17,6 +17,7 @@ KVMforNFV User Guide ./kvmfornfv.cyclictest-dashboard.userguide.rst ./low_latency.userguide.rst ./live_migration.userguide.rst + ./openstack.rst ./packet_forwarding.userguide.rst ./pcm_utility.userguide.rst ./tuning.userguide.rst diff --git a/docs/userguide/introduction.rst b/docs/userguide/introduction.rst index 501d6391b..9a22bdebd 100644 --- a/docs/userguide/introduction.rst +++ b/docs/userguide/introduction.rst @@ -2,9 +2,12 @@ .. http://creativecommons.org/licenses/by/4.0 -======== +====================== +Userguide Introduction +====================== + Overview -======== +-------- The project "NFV Hypervisors-KVM" makes collaborative efforts to enable NFV features for existing hypervisors, which are not necessarily designed or @@ -13,7 +16,7 @@ consists of Continuous Integration builds, deployments and testing combinations of virtual infrastructure components. KVM4NFV Features -================ +---------------- Using this project, the following areas are targeted- @@ -46,7 +49,7 @@ The configuration guide details which scenarios are best for you and how to install and configure them. General usage guidelines -======================== +------------------------ The user guide for KVM4NFV CICD features and capabilities provide step by step instructions for using features that have been configured according to the diff --git a/docs/userguide/kvmfornfv.cyclictest-dashboard.userguide.rst b/docs/userguide/kvmfornfv.cyclictest-dashboard.userguide.rst index 6333d0917..4ec8f5013 100644 --- a/docs/userguide/kvmfornfv.cyclictest-dashboard.userguide.rst +++ b/docs/userguide/kvmfornfv.cyclictest-dashboard.userguide.rst @@ -2,31 +2,36 @@ .. http://creativecommons.org/licenses/by/4.0 -======================================== +========================= +KVMFORNFV Dashboard Guide +========================= + Dashboard for KVM4NFV Daily Test Results -======================================== +---------------------------------------- Abstract -======== +-------- This chapter explains the procedure to configure the InfluxDB and Grafana on Node1 or Node2 -depending on the testtype to publish KVM4NFV cyclic test results. The cyclictest cases are executed -and results are published on Yardstick Dashboard(Graphana). InfluxDB is the database which will +depending on the testtype to publish KVM4NFV test results. The cyclictest cases are executed +and results are published on Yardstick Dashboard(Grafana). InfluxDB is the database which will store the cyclictest results and Grafana is a visualisation suite to view the maximum,minumum and -average values of the timeseries data of cyclictest results.The framework is shown in below image. - -.. Figure:: ../images/dashboard-architecture.png +average values of the time series data of cyclictest results.The framework is shown in below image. +.. figure:: images/dashboard-architecture.png + :name: dashboard-architecture + :width: 100% + :align: center Version Features -================ +---------------- +-----------------------------+--------------------------------------------+ | | | | **Release** | **Features** | | | | +=============================+============================================+ -| | - Data published in Json file Format | +| | - Data published in Json file format | | Colorado | - No database support to store the test's | | | latency values of cyclictest | | | - For each run, the previous run's output | @@ -36,13 +41,13 @@ Version Features | | - Test results are stored in Influxdb | | | - Graphical representation of the latency | | Danube | values using Grafana suite. (Dashboard) | -| | - Supports Graphical view for multiple | +| | - Supports graphical view for multiple | | | testcases and test-types (Stress/Idle) | +-----------------------------+--------------------------------------------+ Installation Steps: -=================== +------------------- To configure Yardstick, InfluxDB and Grafana for KVMFORNFV project following sequence of steps are followed: **Note:** @@ -73,7 +78,7 @@ The Yardstick document for Grafana and InfluxDB configuration can be found `here .. _here: https://wiki.opnfv.org/display/yardstick/How+to+deploy+InfluxDB+and+Grafana+locally Configuring the Dispatcher Type: -================================ +--------------------------------- Need to configure the dispatcher type in /etc/yardstick/yardstick.conf depending on the dispatcher methods which are used to store the cyclictest results. A sample yardstick.conf can be found at /yardstick/etc/yardstick.conf.sample, which can be copied to /etc/yardstick. @@ -91,9 +96,9 @@ Three type of dispatcher methods are available to store the cyclictest results. - InfluxDB - HTTP -**1. File**: Default Dispatcher module is file.If the dispatcher module is configured as a file,then the test results are stored in yardstick.out file. +**1. File**: Default Dispatcher module is file. If the dispatcher module is configured as a file,then the test results are stored in a temporary file yardstick.out ( default path: /tmp/yardstick.out). -Dispatcher module of "Verify Job" is "Default".So,the results are stored in Yardstick.out file for verify job. Storing all the verify jobs in InfluxDB database causes redundancy of latency values. Hence, a File output format is prefered. +Dispatcher module of "Verify Job" is "Default". So,the results are stored in Yardstick.out file for verify job. Storing all the verify jobs in InfluxDB database causes redundancy of latency values. Hence, a File output format is prefered. .. code:: bash @@ -101,9 +106,14 @@ Dispatcher module of "Verify Job" is "Default".So,the results are stored in Yard debug = False dispatcher = file -**2. Influxdb**: If the dispatcher module is configured as influxdb, then the test results are stored in Influxdb.Users can check test results stored in the Influxdb(Database) on Grafana which is used to visualize the time series data. + [dispatcher_file] + file_path = /tmp/yardstick.out + max_bytes = 0 + backup_count = 0 + +**2. Influxdb**: If the dispatcher module is configured as influxdb, then the test results are stored in Influxdb. Users can check test resultsstored in the Influxdb(Database) on Grafana which is used to visualize the time series data. -To configure the influxdb ,the following content in /etc/yardstick/yardstick.conf need to updated +To configure the influxdb, the following content in /etc/yardstick/yardstick.conf need to updated .. code:: bash @@ -111,7 +121,14 @@ To configure the influxdb ,the following content in /etc/yardstick/yardstick.con debug = False dispatcher = influxdb -Dispatcher module of "Daily Job" is Influxdb.So the results are stored in influxdb and then published to Dashboard. + [dispatcher_influxdb] + timeout = 5 + target = http://127.0.0.1:8086 ##Mention the IP where influxdb is running + db_name = yardstick + username = root + password = root + +Dispatcher module of "Daily Job" is Influxdb. So, the results are stored in influxdb and then published to Dashboard. **3. HTTP**: If the dispatcher module is configured as http, users can check test result on OPNFV testing dashboard which uses MongoDB as backend. @@ -121,13 +138,17 @@ Dispatcher module of "Daily Job" is Influxdb.So the results are stored in influx debug = False dispatcher = http -.. Figure:: ../images/UseCaseDashboard.png + [dispatcher_http] + timeout = 5 + target = http://127.0.0.1:8000/results + +.. figure:: images/UseCaseDashboard.png Detailing the dispatcher module in verify and daily Jobs: ---------------------------------------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -KVM4NFV updates the dispatcher module in the yardstick configuration file(/etc/yardstick/yardstick.conf) depending on the Job type(Verify/Daily).Once the test is completed, results are published to the respective dispatcher modules. +KVM4NFV updates the dispatcher module in the yardstick configuration file(/etc/yardstick/yardstick.conf) depending on the Job type(Verify/Daily). Once the test is completed, results are published to the respective dispatcher modules. Dispatcher module is configured for each Job type as mentioned below. @@ -182,9 +203,15 @@ Influxdb api which is already implemented in `Influxdb`_ will post the data in l - Grafana can be accessed at `Login`_ using credentials opnfv/opnfv and used for visualizing the collected test data as shown in `Visual`_\ -.. Figure:: ../images/Dashboard-screenshot-1.png +.. figure:: images/Dashboard-screenshot-1.png + :name: dashboard-screenshot-1 + :width: 100% + :align: center -.. Figure:: ../images/Dashboard-screenshot-2.png +.. figure:: images/Dashboard-screenshot-2.png + :name: dashboard-screenshot-2 + :width: 100% + :align: center .. _Influxdb: https://git.opnfv.org/cgit/yardstick/tree/yardstick/dispatcher/influxdb.py @@ -199,9 +226,9 @@ Influxdb api which is already implemented in `Influxdb`_ will post the data in l .. _GrafanaDoc: http://docs.grafana.org/ Understanding Kvmfornfv Grafana Dashboard -========================================= +------------------------------------------ -The Kvmfornfv Dashboard found at http://testresults.opnfv.org/ currently supports graphical view of Cyclictest. For viewing Kvmfornfv Dashboard use, +The Kvmfornfv dashboard found at http://testresults.opnfv.org/ currently supports graphical view of cyclictest. For viewing Kvmfornfv dashboarduse, .. code:: bash @@ -212,6 +239,15 @@ The Kvmfornfv Dashboard found at http://testresults.opnfv.org/ currently support Username: opnfv Password: opnfv + +.. code:: bash + + The JSON of the kvmfonfv-cyclictest dashboard can be found at., + + $ git clone https://gerrit.opnfv.org/gerrit/yardstick.git + $ cd yardstick/dashboard + $ cat KVMFORNFV-Cyclictest + The Dashboard has four tables, each representing a specific test-type of cyclictest case, - Kvmfornfv_Cyclictest_Idle-Idle @@ -226,33 +262,49 @@ Note: **A brief about what each graph of the dashboard represents:** 1. Idle-Idle Graph -------------------- -`Idle-Idle`_ graph displays the Average,Maximum and Minimum latency values obtained by running Idle_Idle test-type of the Cyclictest. Idle_Idle implies that no stress is applied on the Host or the Guest. +~~~~~~~~~~~~~~~~~~~~ +`Idle-Idle`_ graph displays the Average,Maximum and Minimum latency values obtained by running Idle_Idle test-type of the cyclictest. Idle_Idleimplies that no stress is applied on the Host or the Guest. .. _Idle-Idle: http://testresults.opnfv.org/grafana/dashboard/db/kvmfornfv-cyclictest?panelId=10&fullscreen -.. Figure:: ../images/Idle-Idle.png +.. figure:: images/Idle-Idle.png + :name: Idle-Idle graph + :width: 100% + :align: center 2. CPU_Stress-Idle Graph --------------------------- -`Cpu_Stress-Idle`_ graph displays the Average,Maximum and Minimum latency values obtained by running Idle_Idle test-type of the Cyclictest. Idle_Idle implies that CPU stress is applied on the Host and no stress on the Guest. +~~~~~~~~~~~~~~~~~~~~~~~~~ +`Cpu_Stress-Idle`_ graph displays the Average,Maximum and Minimum latency values obtained by running Idle_Idle test-type of the cyclictest. Idle_Idle implies that CPU stress is applied on the Host and no stress on the Guest. .. _Cpu_stress-Idle: http://testresults.opnfv.org/grafana/dashboard/db/kvmfornfv-cyclictest?panelId=11&fullscreen -.. Figure:: ../images/Cpustress-Idle.png +.. figure:: images/Cpustress-Idle.png + :name: cpustress-idle graph + :width: 100% + :align: center 3. Memory_Stress-Idle Graph ----------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ `Memory_Stress-Idle`_ graph displays the Average,Maximum and Minimum latency values obtained by running Idle_Idle test-type of the Cyclictest. Idle_Idle implies that Memory stress is applied on the Host and no stress on the Guest. .. _Memory_Stress-Idle: http://testresults.opnfv.org/grafana/dashboard/db/kvmfornfv-cyclictest?panelId=12&fullscreen -.. Figure:: ../images/Memorystress-Idle.png +.. figure:: images/Memorystress-Idle.png + :name: memorystress-idle graph + :width: 100% + :align: center 4. IO_Stress-Idle Graph ------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~ `IO_Stress-Idle`_ graph displays the Average,Maximum and Minimum latency values obtained by running Idle_Idle test-type of the Cyclictest. Idle_Idle implies that IO stress is applied on the Host and no stress on the Guest. .. _IO_Stress-Idle: http://testresults.opnfv.org/grafana/dashboard/db/kvmfornfv-cyclictest?panelId=13&fullscreen -.. Figure:: ../images/IOstress-Idle.png +.. figure:: images/IOstress-Idle.png + :name: iostress-idle graph + :width: 100% + :align: center + +Future Scope +------------- +The future work will include adding the kvmfornfv_Packet-forwarding test results into Grafana and influxdb. diff --git a/docs/userguide/low_latency.userguide.rst b/docs/userguide/low_latency.userguide.rst index 66e63770c..88cc0347e 100644 --- a/docs/userguide/low_latency.userguide.rst +++ b/docs/userguide/low_latency.userguide.rst @@ -48,15 +48,19 @@ Please check the default kernel configuration in the source code at: kernel/arch/x86/configs/opnfv.config. Below is host kernel boot line example: -:: -isolcpus=11-15,31-35 nohz_full=11-15,31-35 rcu_nocbs=11-15,31-35 -iommu=pt intel_iommu=on default_hugepagesz=1G hugepagesz=1G mce=off idle=poll -intel_pstate=disable processor.max_cstate=1 pcie_asmp=off tsc=reliable + +.. code:: bash + + isolcpus=11-15,31-35 nohz_full=11-15,31-35 rcu_nocbs=11-15,31-35 + iommu=pt intel_iommu=on default_hugepagesz=1G hugepagesz=1G mce=off idle=poll + intel_pstate=disable processor.max_cstate=1 pcie_asmp=off tsc=reliable Below is guest kernel boot line example -:: -isolcpus=1 nohz_full=1 rcu_nocbs=1 mce=off idle=poll default_hugepagesz=1G -hugepagesz=1G + +.. code:: bash + + isolcpus=1 nohz_full=1 rcu_nocbs=1 mce=off idle=poll default_hugepagesz=1G + hugepagesz=1G Please refer to `tuning.userguide` for more explanation. @@ -68,45 +72,194 @@ environment is also required. Please refer to `tunning.userguide` for more explanation. Test cases to measure Latency -============================= +----------------------------- +The performance of the kvmfornfv is assesed by the latency values. Cyclictest and Packet forwarding +Test cases result in real time latency values of average, minimum and maximum. + +* Cyclictest + +* Packet Forwarding test -Cyclictest case ---------------- +1. Cyclictest case +------------------- +Cyclictest results are the most frequently cited real-time Linux metric. The core concept of Cyclictest is very simple. +In KVMFORNFV cyclictest is implemented on the Guest-VM with 4.4-Kernel RPM installed. It generated Max,Min and Avg +values which help in assesing the kernel used. Cyclictest in currently divided into the following test types, + +* Idle-Idle +* CPU_stress-Idle +* Memory_stress-Idle +* IO_stress-Idle + +Future scope of work may include the below test-types, + +* CPU_stress-CPU_stress +* Memory_stress-Memory_stress +* IO_stress-IO_stress Understanding the naming convention ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. code:: bash + + [Host-Type ] - [Guest-Type] + +* **Host-Type :** Mentions the type of stress applied on the kernel of the Host +* **Guest-Type :** Mentions the type of stress applied on the kernel of the Guest + +Example., + +.. code:: bash + + Idle - CPU_stress + +The above name signifies that, + +- No Stress is applied on the Host kernel + +- CPU Stress is applied on the Guest kernel + +**Note:** + +- Stress is applied using the stress which is installed as part of the deployment. + Stress can be applied on CPU, Memory and Input-Output (Read/Write) operations using the stress tool. + +Version Features +~~~~~~~~~~~~~~~~ + ++-----------------------+------------------+-----------------+ +| **Test Name** | **Colorado** | **Danube** | +| | | | ++-----------------------+------------------+-----------------+ +| - Idle - Idle | ``Y`` | ``Y`` | +| | | | +| - Cpustress - Idle | | ``Y`` | +| | | | +| - Memorystress - Idle | | ``Y`` | +| | | | +| - IOstress - Idle | | ``Y`` | +| | | | ++-----------------------+------------------+-----------------+ + + Idle-Idle test-type ~~~~~~~~~~~~~~~~~~~ +Cyclictest in run on the Guest VM when Host,Guest are not under any kind of stress. This is the basic +cyclictest of the KVMFORNFV project. Outputs Avg, Min and Max latency values. + +.. figure:: images/idle-idle-test-type.png + :name: idle-idle test type + :width: 100% + :align: center CPU_Stress-Idle test-type -------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~ +Here, the host is under CPU stress, where multiple times sqrt() function is called on kernel which +results increased CPU load. The cyclictest will run on the guest, where the guest is under no stress. +Outputs Avg, Min and Max latency values. + +.. figure:: images/cpu-stress-idle-test-type.png + :name: cpu-stress-idle test type + :width: 100% + :align: center Memory_Stress-Idle test-type ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +In this type, the host is under memory stress where continuos memory operations are implemented to +increase the Memory stress (Buffer stress).The cyclictest will run on the guest, where the guest is under +no stress. It outputs Avg, Min and Max latency values. + +.. figure:: images/memory-stress-idle-test-type.png + :name: memory-stress-idle test type + :width: 100% + :align: center IO_Stress-Idle test-type ~~~~~~~~~~~~~~~~~~~~~~~~ +The host is under constant Input/Output stress .i.e., multiple read-write operations are invoked to +increase stress. Cyclictest will run on the guest VM that is launched on the same host, where the guest +is under no stress. It outputs Avg, Min and Max latency values. + +.. figure:: images/io-stress-test-type.png + :name: io-stress-idle test type + :width: 100% + :align: center CPU_Stress-CPU_Stress test-type ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Not implemented for Danube release. Memory_Stress-Memory_Stress test-type ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Not implemented for Danube release. IO_Stress-IO_Stress test type ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Not implemented for Danube release. + +2. Packet Forwarding Test cases +------------------------------- +Packet forwarding is an other test case of Kvmfornfv. It measures the time taken by a packet to return +to source after reaching its destination. This test case uses automated test-framework provided by +OPNFV VSWITCHPERF project and a traffic generator (IXIA is used for kvmfornfv). Only latency results +generating test cases are triggered as a part of kvmfornfv daily job. + +Latency test measures the time required for a frame to travel from the originating device through the +network to the destination device. Please note that RFC2544 Latency measurement will be superseded with +a measurement of average latency over all successfully transferred packets or frames. -Packet Forwarding Test case ---------------------------- +Packet forwarding test cases currently supports the following test types: + +* Packet forwarding to Host + +* Packet forwarding to Guest + +* Packet forwarding to Guest using SRIOV + +The testing approach adoped is black box testing, meaning the test inputs can be generated and the +outputs captured and completely evaluated from the outside of the System Under Test(SUT). Packet forwarding to Host ~~~~~~~~~~~~~~~~~~~~~~~~~ +This is also known as Physical port → vSwitch → physical port deployment. +This test measures the time taken by the packet/frame generated by traffic generator(phy) to travel +through the network to the destination device(phy). This test results min,avg and max latency values. +This value signifies the performance of the installed kernel. + +Packet flow, + +.. figure:: images/host_pk_fw.png + :name: packet forwarding to host + :width: 100% + :align: center Packet forwarding to Guest ~~~~~~~~~~~~~~~~~~~~~~~~~~ +This is also known as Physical port → vSwitch → VNF → vSwitch → physical port deployment. + +This test measures the time taken by the packet/frame generated by traffic generator(phy) to travel +through the network involving a guest to the destination device(phy). This test results min,avg and +max latency values. This value signifies the performance of the installed kernel. + +Packet flow, + +.. figure:: images/guest_pk_fw.png + :name: packet forwarding to guest + :width: 100% + :align: center Packet forwarding to Guest using SRIOV ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This test is used to verify the VNF and measure the base performance (maximum forwarding rate in +fps and latency) that can be achieved by the VNF without a vSwitch. The performance metrics +collected by this test will serve as a key comparison point for NIC passthrough technologies and +vSwitches. VNF in this context refers to the hypervisor and the VM. + +**Note:** The Vsperf running on the host is still required. +Packet flow, +.. figure:: images/sriov_pk_fw.png + :name: packet forwarding to guest using sriov + :width: 100% + :align: center diff --git a/docs/userguide/openstack.rst b/docs/userguide/openstack.rst index bd1919991..929d2ba42 100644 --- a/docs/userguide/openstack.rst +++ b/docs/userguide/openstack.rst @@ -2,19 +2,19 @@ .. http://creativecommons.org/licenses/by/4.0 --------------------------------- -Colorado OpenStack User Guide --------------------------------- +============================ +Danube OpenStack User Guide +============================ OpenStack is a cloud operating system developed and released by the `OpenStack project `_. OpenStack is used in OPNFV for controlling pools of compute, storage, and networking resources in a Pharos compliant infrastructure. -OpenStack is used in Colorado to manage tenants (known in OpenStack as +OpenStack is used in Danube to manage tenants (known in OpenStack as projects),users, services, images, flavours, and quotas across the Pharos infrastructure.The OpenStack interface provides the primary interface for an -operational Colorado deployment and it is from the "horizon console" that an +operational Danube deployment and it is from the "horizon console" that an OPNFV user will perform the majority of administrative and operational activities on the deployment. @@ -26,7 +26,7 @@ details and descriptions of how to configure and interact with the OpenStack deployment.This guide can be used by lab engineers and operators to tune the OpenStack deployment to your liking. -Once you have configured OpenStack to your purposes, or the Colorado +Once you have configured OpenStack to your purposes, or the Danube deployment meets your needs as deployed, an operator, or administrator, will find the best guidance for working with OpenStack in the `OpenStack administration guide `_. @@ -46,6 +46,6 @@ and enter the username and password: password: admin Other methods of interacting with and configuring OpenStack,, like the REST API -and CLI are also available in the Colorado deployment, see the +and CLI are also available in the Danube deployment, see the `OpenStack administration guide `_ for more information on using those interfaces. diff --git a/docs/userguide/packet_forwarding.userguide.rst b/docs/userguide/packet_forwarding.userguide.rst index ba117508c..594952bdf 100644 --- a/docs/userguide/packet_forwarding.userguide.rst +++ b/docs/userguide/packet_forwarding.userguide.rst @@ -5,14 +5,14 @@ ================= PACKET FORWARDING ================= -======================= + About Packet Forwarding -======================= +----------------------- -Packet Forwarding is a test suite of KVMFORNFV which is used to measure the total time taken by a -**Packet** generated by the traffic generator to return from Guest/Host as per the implemented -scenario. Packet Forwarding is implemented using VSWITCHPERF/``VSPERF software of OPNFV`` and an -``IXIA Traffic Generator``. +Packet Forwarding is a test suite of KVMFORNFV. These latency tests measures the time taken by a +**Packet** generated by the traffic generator to travel from the originating device through the +network to the destination device. Packet Forwarding is implemented using test framework +implemented by OPNFV VSWITCHPERF project and an ``IXIA Traffic Generator``. Version Features ---------------- @@ -29,14 +29,14 @@ Version Features | | - Packet Forwarding is a testcase in KVMFORNFV | | | - Implements three scenarios (Host/Guest/SRIOV) | | | as part of testing in KVMFORNFV | -| Danube | - Uses available testcases of OPNFV's VSWTICHPERF | -| | software (PVP/PVVP) | +| Danube | - Uses automated test framework of OPNFV | +| | VSWITCHPERF software (PVP/PVVP) | +| | | | | - Works with IXIA Traffic Generator | +-----------------------------+---------------------------------------------------+ -====== VSPERF -====== +------ VSPerf is an OPNFV testing project. VSPerf will develop a generic and architecture agnostic vSwitch testing framework and associated @@ -47,17 +47,18 @@ VNF level testing and validation. For complete VSPERF documentation go to `link.`_ -.. _link.: +.. _link.: http://artifacts.opnfv.org/vswitchperf/colorado/index.html Installation ------------- +~~~~~~~~~~~~ + Guidelines of installating `VSPERF`_. -.. _VSPERF: +.. _VSPERF: http://artifacts.opnfv.org/vswitchperf/colorado/configguide/index.html Supported Operating Systems ---------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~ * CentOS 7 * Fedora 20 @@ -67,19 +68,21 @@ Supported Operating Systems * Ubuntu 14.04 Supported vSwitches -------------------- +~~~~~~~~~~~~~~~~~~~ + The vSwitch must support Open Flow 1.3 or greater. * OVS (built from source). * OVS with DPDK (built from source). Supported Hypervisors ---------------------- +~~~~~~~~~~~~~~~~~~~~~ * Qemu version 2.3. Other Requirements ------------------- +~~~~~~~~~~~~~~~~~~ + The test suite requires Python 3.3 and relies on a number of other packages. These need to be installed for the test suite to function. @@ -93,9 +96,9 @@ user account, which will be used for vsperf execution. Execution of installation script: -.. code:: bashFtrace.debugging.tool.userguide.rst +.. code:: bash - $ cd Vswitchperf + $ cd vswitchperf $ cd systems $ ./build_base_machine.sh @@ -115,10 +118,10 @@ For running testcases VSPERF is installed on Intel pod1-node2 in which centos operating system is installed. Only VSPERF installion on Centos is discussed here. For installation steps on other operating systems please refer to `here`_. -.. _here: +.. _here: http://artifacts.opnfv.org/vswitchperf/colorado/configguide/index.html For CentOS 7 ------------------ +~~~~~~~~~~~~~~ ## Python 3 Packages @@ -147,16 +150,16 @@ To activate, simple run: Working Behind a Proxy ------------------------ +~~~~~~~~~~~~~~~~~~~~~~ If you're behind a proxy, you'll likely want to configure this before running any of the above. For example: .. code:: bash - export http_proxy=proxy.mycompany.com:123 - export https_proxy=proxy.mycompany.com:123 - - + export http_proxy="http://:@:/"; + export https_proxy="https://:@:/"; + export ftp_proxy="ftp://:@:/"; + export socks_proxy="socks://:@:/"; .. _a link: http://www.softwarecollections.org/en/scls/rhscl/python33/ .. _virtualenv: https://virtualenv.readthedocs.org/en/latest/ @@ -166,10 +169,11 @@ For other OS specific activation click `this link`_: .. _this link: http://artifacts.opnfv.org/vswitchperf/colorado/configguide/installation.html#other-requirements Traffic-Generators -------------------- +------------------ + VSPERF supports many Traffic-generators. For configuring VSPERF to work with the available traffic-generator go through `this`_. -.. _this: +.. _this: http://artifacts.opnfv.org/vswitchperf/colorado/configguide/trafficgen.html VSPERF supports the following traffic generators: @@ -191,35 +195,40 @@ and configure the various traffic generators. As KVM4NFV uses only IXIA traffic generator, it is discussed here. For complete documentation regarding traffic generators please follow this `link`_. -.. _link: +.. _link: https://gerrit.opnfv.org/gerrit/gitweb?p=vswitchperf.git;a=blob;f=docs/configguide/trafficgen.rst;h=85fc35b886d30db3b92a6b7dcce7ca742b70cbdc;hb=HEAD -========== IXIA Setup -========== +---------- -===================== Hardware Requirements -===================== -VSPERF requires the following hardware to run tests: IXIA traffic generator (IxNetwork), a machine that runs the IXIA client software and a CentOS Linux release 7.1.1503 (Core) host. +~~~~~~~~~~~~~~~~~~~~~ + +VSPERF requires the following hardware to run tests: IXIA traffic generator (IxNetwork), a machine that +runs the IXIA client software and a CentOS Linux release 7.1.1503 (Core) host. Installation -------------- +~~~~~~~~~~~~ Follow the [installation instructions] to install. -IXIA Setup ------------- On the CentOS 7 system ----------------------- +~~~~~~~~~~~~~~~~~~~~~~ + You need to install IxNetworkTclClient$(VER_NUM)Linux.bin.tgz. On the IXIA client software system -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Find the IxNetwork TCL server app (start -> All Programs -> IXIA -> IxNetwork -> IxNetwork_$(VER_NUM) -> IxNetwork TCL Server) - Right click on IxNetwork TCL Server, select properties - - Under shortcut tab in the Target dialogue box make sure there is the argument "-tclport xxxx" where xxxx is your port number (take note of this port number you will need it for the 10_custom.conf file). + - Under shortcut tab in the Target dialogue box make sure there is the argument "-tclport xxxx" + +where xxxx is your port number (take note of this port number you will need it for the 10_custom.conf file). -.. Figure:: ../images/IXIA1.png +.. figure:: images/IXIA1.png + :name: IXIA1 setup + :width: 100% + :align: center - Hit Ok and start the TCL server application @@ -261,7 +270,7 @@ Detailed description of options follows: .. _test-results-share: Test results share -------------------- +~~~~~~~~~~~~~~~~~~ VSPERF is not able to retrieve test results via TCL API directly. Instead, all test results are stored at IxNetwork TCL server. Results are stored at folder defined by @@ -285,19 +294,20 @@ Example of sharing configuration: Note: It is essential to use slashes '/' also in path configured by ``TRAFFICGEN_IXNET_TESTER_RESULT_DIR`` parameter. - * Install cifs-utils package. + +* Install cifs-utils package. e.g. at rpm based Linux distribution: - .. code-block:: console +.. code-block:: console yum install cifs-utils - * Mount shared directory, so VSPERF can access test results. +* Mount shared directory, so VSPERF can access test results. e.g. by adding new record into ``/etc/fstab`` - .. code-block:: console +.. code-block:: console mount -t cifs //_TCL_SERVER_IP_OR_FQDN_/ixia_results /mnt/ixia_results -o file_mode=0777,dir_mode=0777,nounix @@ -308,6 +318,7 @@ is visible at DUT inside ``/mnt/ixia_results`` directory. Cloning and building src dependencies ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + In order to run VSPERF, you will need to download DPDK and OVS. You can do this manually and build them in a preferred location, or you could use vswitchperf/src. The vswitchperf/src directory contains makefiles that will allow you to clone and build the libraries that VSPERF depends on, @@ -326,13 +337,16 @@ To delete a src subdirectory and its contents to allow you to re-clone simply us Configure the `./conf/10_custom.conf` file ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + The supplied `10_custom.conf` file must be modified, as it contains configuration items for which there are no reasonable default values. -The configuration items that can be added is not limited to the initial contents. Any configuration item mentioned in any .conf file in `./conf` directory can be added and that item will be overridden by the custom +The configuration items that can be added is not limited to the initial contents. Any configuration item +mentioned in any .conf file in `./conf` directory can be added and that item will be overridden by the custom configuration value. Using a custom settings file ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Alternatively a custom settings file can be passed to `vsperf` via the `--conf-file` argument. .. code:: bash @@ -347,8 +361,34 @@ argument will override both the default and your custom configuration files. Thi 2. Environment variables 3. Configuration file(s) +vloop_vnf +~~~~~~~~~ + +VSPERF uses a VM image called vloop_vnf for looping traffic in the deployment +scenarios involving VMs. The image can be downloaded from +``__. + +Please see the installation instructions for information on :ref:`vloop-vnf` +images. + +.. _l2fwd-module: + +l2fwd Kernel Module +~~~~~~~~~~~~~~~~~~~ + +A Kernel Module that provides OSI Layer 2 Ipv4 termination or forwarding with +support for Destination Network Address Translation (DNAT) for both the MAC and +IP addresses. l2fwd can be found in /src/l2fwd + +.. figure:: images/Guest_Scenario.png + :name: Guest_Scenario + :width: 100% + :align: center + + Executing tests ~~~~~~~~~~~~~~~~ + Before running any tests make sure you have root permissions by adding the following line to /etc/sudoers: .. code:: bash @@ -382,7 +422,7 @@ Some tests allow for configurable parameters, including test duration (in second ./vsperf --conf-file user_settings.py --tests RFC2544Tput - --test-param "rfc2544_duration=10;packet_sizes=128" + --test-param` "rfc2544_duration=10;packet_sizes=128" For all available options, check out the help dialog: @@ -393,6 +433,7 @@ For all available options, check out the help dialog: Testcases ---------- + Available Tests in VSPERF are: * phy2phy_tput @@ -444,9 +485,9 @@ Example of execution of VSPERF in "trafficgen" mode: --test-params "TRAFFIC={'traffic_type':'rfc2544_continuous','bidir':'False','framerate':60}" -================================ Packet Forwarding Test Scenarios -================================ +-------------------------------- + KVMFORNFV currently implements three scenarios as part of testing: * Host Scenario @@ -455,32 +496,47 @@ KVMFORNFV currently implements three scenarios as part of testing: Packet Forwarding Host Scenario -------------------------------- -Here Host is NODE-2. It has VSPERF installed in it and is properly configured to use IXIA Traffic-generator by providing IXIA CARD, PORTS and Lib paths along with IP. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Here host DUT has VSPERF installed in it and is properly configured to use IXIA Traffic-generator +by providing IXIA CARD, PORTS and Lib paths along with IP. please refer to figure.2 -.. Figure:: ../images/Host_Scenario.png +.. figure:: images/Host_Scenario.png + :name: Host_Scenario + :width: 100% + :align: center Packet Forwarding Guest Scenario --------------------------------- -Here the guest is a Virtual Machine (VM) launched by using a modified CentOS image(vsperf provided) -on Node-2 (Host) using Qemu. In this scenario, the packet is initially forwarded to Host which is -then forwarded to the launched guest. The time taken by the packet to reach the IXIA traffic-generator -via Host and Guest is calculated and published as a test result of this scenario. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. Figure:: ../images/Guest_Scenario.png +Here the guest is a Virtual Machine (VM) launched by using vloop_vnf provided by vsperf project +on host/DUT using Qemu. In this latency test the time taken by the frame/packet to travel from the +originating device through network involving a guest to destination device is calculated. +The resulting latency values will define the performance of installed kernel. + +.. figure:: images/Guest_Scenario.png + :name: Guest_Scenario + :width: 100% + :align: center Packet Forwarding SRIOV Scenario --------------------------------- -Unlike the packet forwarding to Guest-via-Host scenario, here the packet generated at the IXIA is -directly forwarded to the Guest VM launched on Host by implementing SR-IOV interface at NIC level -of Host .i.e., Node-2. The time taken by the packet to reach the IXIA traffic-generator is calculated -and published as a test result for this scenario. SRIOV-support_ is given below, it details how to use SR-IOV. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +In this test the packet generated at the IXIA is forwarded to the Guest VM launched on Host by +implementing SR-IOV interface at NIC level of host .i.e., DUT. The time taken by the packet to +travel through the network to the destination the IXIA traffic-generator is calculated and +published as a test result for this scenario. -.. Figure:: ../images/SRIOV_Scenario.png +SRIOV-support_ is given below, it details how to use SR-IOV. + +.. figure:: images/SRIOV_Scenario.png + :name: SRIOV_Scenario + :width: 100% + :align: center Using vfio_pci with DPDK ------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~ To use vfio with DPDK instead of igb_uio add into your custom configuration file the following parameter: @@ -521,7 +577,7 @@ To check that IOMMU is enabled on your platform: .. _SRIOV-support: Using SRIOV support -------------------- +~~~~~~~~~~~~~~~~~~~ To use virtual functions of NIC with SRIOV support, use extended form of NIC PCI slot definition: @@ -553,3 +609,25 @@ For example: * tests without vSwitch, where VM accesses VF interfaces directly by PCI-passthrough to measure raw VM throughput performance. +Using QEMU with PCI passthrough support +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Raw virtual machine throughput performance can be measured by execution of PVP +test with direct access to NICs by PCI passthrough. To execute VM with direct +access to PCI devices, enable vfio-pci_. In order to use virtual functions, +SRIOV-support_ must be enabled. + +Execution of test with PCI passthrough with vswitch disabled: + +.. code-block:: console + + $ ./vsperf --conf-file=/10_custom.conf \ + --vswitch none --vnf QemuPciPassthrough pvp_tput + +Any of supported guest-loopback-application_ can be used inside VM with +PCI passthrough support. + +Note: Qemu with PCI passthrough support can be used only with PVP test +deployment. + +.. _guest-loopback-application: diff --git a/docs/userguide/pcm_utility.userguide.rst b/docs/userguide/pcm_utility.userguide.rst index baef7059a..c8eb21d61 100644 --- a/docs/userguide/pcm_utility.userguide.rst +++ b/docs/userguide/pcm_utility.userguide.rst @@ -1,6 +1,15 @@ -========================================================= +.. This work is licensed under a Creative Commons Attribution 4.0 International License. + +.. http://creativecommons.org/licenses/by/4.0 + +=========================== +PCM Utility in KVMFORNFV +=========================== + Collecting Memory Bandwidth Information using PCM utility -========================================================= +--------------------------------------------------------- +This chapter includes how the PCM utility is used in kvmfornfv +to collect memory bandwidth information About PCM utility ----------------- @@ -22,10 +31,10 @@ Version Features | | cyclic testcases. | | | | +-----------------------------+-----------------------------------------------+ +| | - pcm-memory.x will be executed before the | +| Danube | execution of every testcase | | | - pcm-memory.x provides the memory bandwidth | | | data throught out the testcases | -| | - pcm-memory.x will be executedbefore the | -| Danube | execution of every testcase | | | - used for all test-types (stress/idle) | | | - Generated memory bandwidth logs which are | | | to published to the KVMFORFNV artifacts | @@ -124,3 +133,9 @@ signal will be passed to terminate the pcm-memory process which was executing th pcm-memory.x 60 &>/root/MBWInfo/MBWInfo_${testType}_${timeStamp} + where, + ${testType} = verify (or) daily + +Future Scope +------------ +PCM information will be added to cyclictest of kvmfornfv in yardstick. -- 2.16.6