!"#$%&'()*#%+,'(-%.#*/$','01#2%
%3+4%&56"'21(6%'$%+,'(-%+'6"(7$0%8&'++9%
&:$%;'2#<%+3<%!*='>#)%?@A?%
&:,6:$%3B%C:2#=%
2:>:2#=D(2B1>6B*'6%
3*E$'F,#-0#6#$=2%:$-%-12*,:16#)%
• G',E2%:$-%-'*(6#$=:7'$%1$%'"#$%2'()*#%*,'(-%*'66($17#2%
• H$=#)$:,%-12*(221'$2%• I2"#*1:,%=/:$E2%='%J1$05#%;1:$0%K')%"#)61221'$%='%(2#%
*'66($1=5%:$:,5212%
• 3,,%L1#F2%#M")#22#-%1$%=/12%=(=')1:,%:)#%#$7)#,5%65%'F$%
30#$-:%
• N:)=%H%– 3$%'L#)L1#F%'K%'"#$%2'()*#%*,'(-%=#*/$','01#2%– 3%>)1#K%'L#)L1#F%:$-%:$:,5212%'K%K'()%H::&%*,'(-2%– G#:=()#%*'6":)12'$%'K%+,'(-&=:*E%:$-%!"#$&=:*E%
• N:)=%HH%– !"#$&=:*E%1$O-#"=/%:$:,5212%
N:)=%HP%3$%'L#)L1#F%'K%'"#$%2'()*#%*,'(-%=#*/$','01#2%
+,'(-%'"#$%2'()*#%2=:)7$0%='%,''E%*)'F-#-%
H::&%
N::&%
&::&%
Q12=')5<%/12=')5<%/12=')5R%
H::&%
• S:*E2":*#%:$-%T3&3%*'6>1$#%#U')=2<%!"#$&=:*E%
• +,(2=#)%:$-%0)1-2<%!"#$T#>(,:%• +1=)1M<%-'$:7$0%*'-#%='%3":*/#%• V)1-%:"",1*:7'$2%8W+&C9<%I(*:,5"=(2%N::&%
• V''0,#%3""%I$01$#%1$2"1)#2%3""&*:,#%&::&%
.16#%,1$#%K')%*,'(-%'"#$%2'()*#%
?@@X% ?@@Y% ?@@Z% ?@@[% ?@A@% ?@AA% ?@A?%
36:\'$%I+?% V''0,#%3""%
I$01$#%
H::&%:$-%N::&%'"#$%2'()*#%")']#*=2%=):1,%=/#1)%*'66#)*1:,%*'($=#)":)=2%>5%^%?%O%_%5#:)2%
?@@`%
?@@A%
3$%'"#$%2'()*#%,1*#$2#%")16#)%
• C&a%b%4H.%
– /c"PbbFFFB'"#$2'()*#B')0b,1*#$2#2b>2-O,1*#$2#B"/"%– d#:2=%)#2=)1*7L#%
• 3":*/#%8L?B@<%LABA9%
– /c"PbbFFFB'"#$2'()*#B')0b,1*#$2#2b:":*/#?B@B"/"%– /c"PbbFFFB'"#$2'()*#B')0b,1*#$2#2b:":*/#",OABAB"/"%– +:$%1$*,(-#%*'-#%1$%:%*'66#)*1:,%")'-(*=%
• dVNd%
– /c"Pbb'"#$2'()*#B')0b,1*#$2#2b,0",O_B@B/=6,%
– /c"PbbFFFB0$(B')0b,1*#$2#2b',-O,1*#$2#2b,0",O?BAB/=6,%
– 3,,'F2%-5$:61*%,1$E1$0%'K%$'$OVNd%b%$'$OdVNd%*'-#%='%dVNd%*'-#e%
'=/#)F12#<%:,6'2=%=/#%2:6#%:2%VNdB%
• VNd%8L?<%L_9%
– /c"Pbb'"#$2'()*#B')0b,1*#$2#2b0",O_B@B/=6,%
– /c"PbbFFFB0$(B')0b,1*#$2#2b',-O,1*#$2#2b0",O?B@B/=6,%
– &'()*#%*'-#%:$-%>1$:)1#2%1$*')"'):7$0%VNd%*'-#%:$-%>1$:)1#2%6(2=%>#%)#,#:2#-%($-#)%VNdB%
Mos
t res
trict
ive
for c
omm
erci
al u
se
Z%
d1*#$2#2%K')%*,'(-%'"#$%2'()*#%
H::&%
N::&%
&::&%
3":*/#%L?B@% 3":*/#%L?B@%
3":*/#%L?B@%
VNd% VNd%
VNd% 3":*/#%L?B@% 3":*/#%L?B@%
3":*/#%L?B@%C&a%
3":*/#%L?B@%12%=/#%6'2=%(2#-%,1*#$2#%
d:$0(:0#2%F)1c#$%1$%
H::&%
N::&%
&::&%
N5=/'$%
S(>5%
V'%
+%b%+ff%
S(>5%
&/#,,%2*)1"=2%
;:L:%
;:L:%
+b+ff%
N5=/'$%
N#),%
&/#,,%2*)1"=2%
N5=/'$%
&/#,,%2*)1"=2%
;:L:%
N5=/'$%
&/#,,%2*)1"=2%
;:L:%
N5=/'$%
S(>5<%NQN%#=*%S(>5%
NQN%
NQN%
+'$=)1>(7'$%0'L#)$:$*#%8Ab?9%
• +'$=)1>(=')%,1*#$2#%:0)##6#$=%8+d39%
• .5"1*:,,5%#1=/#)%3":*/#%L?B@%*'$=)1>(7'$%,1*#$2#%')%L#$-')O2"#*1g*%2161,:)%='%3":*/#%
• 3$5%'$#%*:$%)#:-%*'-#%:$-%)#"')=%:%>(0%• G',E2%/:L1$0%210$#-%+d3%*:$%2(>61=%:%":=*/%b%$#F%K#:=()#%
• h)1=#%b%("-:7$0%*'-#%12%=/)'(0/%*'$2#$2(2%')%L'7$0%
• +'661c#)2<%")']#*=%=#*/$1*:,%,#:-2%
• V):$=%*'"5)10/=%:$-%)'5:,=5%K)##%":=#$=%,1*#$2#%• T'=%#M"#*=#-%='%")'L1-#%2(""')=%K')%*'$=)1>(7'$2%
+'$=)1>(7'$%0'L#)$:$*#%8?b?9%
H::&%
N::&%
&::&%
!"#$&=:*E%
*'66($1=5%
IM:*=,5%2161,:)%='%%
3":*/#%*'$=)1>(=')%
d1*#$2#%:0)##6#$=%
I(*:,5"=(2%
*'$=)1>(=')%
,1*#$2#%
3":*/#%%
*'$=)1>(=')%
,1*#$2#%:0)##6#$=%
i6F:)#%*'$=)1>(=')%
,1*#$2#%2161,:)%='%
3":*/#%
*'$=)1>(=')%,1*#$2#%
3$5%
3$5%
;''6,:%*'$=)1>(=')%
,1*#$2#%2161,:)%='%
3":*/#%
*'$=)1>(=')%,1*#$2#%
a)(":,%*'$=)1>(=')%
,1*#$2#%:0)##6#$=%%
2161,:)%='%3":*/#%%
*'$=)1>(=')%
%,1*#$2#%
H::&%*,'(-2%
!"#$&=:*E%*'$*#"=(:,%:)*/1=#*=()#%
• +'6"(=#%8$'L:9%%%
– &=:)=%:$-%6:$:0#%L1)=(:,%1$2=:$*#2%3$:,'0'(2%='%36:\'$%
I+?<%S:*E2":*#%+,'(-%&#)L#)2%K')%*'6"(=#e%&_%:$-%
+,'(-G1,#2%K')%2='):0#B%
• C,'*E%2='):0#%8*1$-#)9%
– 4:$:0#2%>,'*E%2='):0#%
• H6:0#%2#)L1*#%80,:$*#9%
– &='):0#<%,''E("%:$-%)#=)1#L:,%252=#6%K')%i4%16:0#2%
• H-#$7=5%6:$:0#6#$=%8E#52='$#9%
– 3%($1g#-%1-#$7=5%6:$:0#6#$=%:*)'22%$'L:<%2F1j<%
0,:$*#<%*1$-#)<%k(:$=(6<%:$-%/')1\'$B%
• T#=F')E%8k(:$=(69%%
– L1)=(:,1\1$0%$#=F')E%
• a:2/>':)-%8/')1\'$9%%
– 3%216",#%F#>%"')=:,%
• !>]#*=%2='):0#%82F1j9%
– &=')#%'>]#*=2%1$%:%,:)0#%*:":*1=5%252=#6%
– 3$:,'0'(2%='%36:\'$%&_%')%S:*E2":*#%%
*,'(-%g,#2%
!"#$&=:*E%3NH%b%a:2/>':)-%
Storage (swift)
Compute (nova)
Block storage (cinder)
Image (glance)
Al%
Identity (keystone) Network (quantum)
!"#$&=:*E%K'($-:7'$%
• /c"PbbFFFB'"#$2=:*EB')0bK'($-:7'$b%• .#*/$1*:,%*'661c##%
– S#2"'$21>,#%K')%=#*/$1*:,%2=#F:)-2/1"%'K%!"#$&=:*E%– A_%='=:,%6#6>#)2%8`%-1)#*=%#,#*=2<%Z%")']#*=%=#*/$1*:,%,#:-29%
• C':)-%'K%-1)#*=')2%– N)'L1-#2%2=):=#01*%:$-%g$:$*1:,%'L#)210/=%'K%K'($-:7'$%– N,:7$(6<%0',-<%1$-1L1-(:,%
– Z%",:7$(6<%Z%0',-<%Z%1$-1L1-(:,%
• W2#)%*'661c##%
– W2#)%:-L'*:*5%:$-%K##->:*E%
!"#$&=:*E%-#6'%
+,'(-&=:*E%*'$*#"=(:,%:)*/1=#*=()#%
• +'6"(=#%%
– &=:)=%:$-%6:$:0#%L1)=(:,%1$2=:$*#2%3$:,'0'(2%='%36:\'$%
I+?<%S:*E2":*#%+,'(-%&#)L#)2%K')%*'6"(=#e%&_%:$-%
+,'(-G1,#2%K')%2='):0#B%
• C,'*E%2='):0#%8")16:)5%2='):0#9%
– 4:$:0#2%>,'*E%2='):0#%
• H6:0#%2#)L1*#%82#*'$-:)5%2='):0#9%
– &='):0#<%,''E("%:$-%)#=)1#L:,%252=#6%K')%i4%16:0#2%
• H-#$7=5%6:$:0#6#$=%8E#52='$#9%
– 3%($1g#-%1-#$7=5%6:$:0#6#$=%:*)'22%$'L:<%2F1j<%:$-%
0,:$*#%
• T#=F')E%
– L1)=(:,1\1$0%$#=F')E%
• a:2/>':)-%
– 3%2'"/127*:=#-%F#>%"')=:,%
+,'(-&=:*E%')%I+?%3NH%b%a:2/>':)-%
Compute Block storage Image
AY%
Identity Network
+,'(-&=:*E%-#6'%
I(*:,5"=(2%,'01*:,%:)*/1=#*=()#%
/c"2Pbb#$BF1E1"#-1:B')0bF1E1bI(*:,5"=(2mn?Z*'6"(7$0n?[o&'jF:)#m:)*/1=#*=()#%
!"#$T#>(,:%,'01*:,%:)*/1=#*=()#%
/c"Pbb'"#$$#>(,:B')0b-'*(6#$=:7'$P:)*/1L#2P)#,?B@P:)*/1=#*=()#%
S#,#:2#%*5*,#%
?@@Z% ?@@[% ?@A@% ?@AA% ?@A?%
?@@Z% ?@@[% ?@A@% ?@AA% ?@A?%
?@@Z% ?@@[% ?@A@% ?@AA% ?@A?%
?@@Z% ?@@[% ?@A@% ?@AA% ?@A?%
_B?<%_Bl<%_BX<%_BZ%
!"#$T#>(,:%
!"#$&=:*E%
+,'(-&=:*E%
I(*:,5"=(2%
?B?<%%%%%%%%%%%%_B@%?B@<%?B@A%AB?<%AB?BA<%ABl%="A<%="?<%AB@%
_B@B?%?B@B@% ^%?X%)#,#:2#2%^%
3(27$% C#M:)%
+:*=(2%a1:>,'%
I22#M% G',2'6%
IL#)5%21M%6'$=/2%
IL#)5%K'()%6'$=/2% _BAB?%
.'',2%(2#-%>5%'"#$%2'()*#%*,'(-2%
• &(>61p$0%>(02%
• +'$=)1>(7$0%":=*/%')%K#:=()#%• 3"")'L1$0%":=*/%')%K#:=()#%• .#27$0%*'-#%
a#L#,'"6#$=%-12*(221'$%
• HS+%• 4:1,1$0%,12=2%
• G')(62%
• +'$K#)#$*#2%– !"#$&=:*E%*'$K#)#$*#%8:j#)%#L#)5%)#,#:2#9%– +,'(-&=:*E%*',,:>'):7'$%*'$K#)#$*#%%
3$:,5\1$0%'"#$%2'()*#%*,'(-2%
• &'()*#%*'-#%b%,1$#2%'K%*'-#%81B#B<%2#61*','$2%')%+SdG29%
• +'66($1=5%1$L',L#6#$=%b%*'$=)1>(=')2%
• 3)*/1=#*=()#%:$-%1$=#)*'6"'$#$=%1$=#):*7'$%
• &=:7*%:$-%)($76#%:$:,5212%
• &#*()1=5%:)*/1=#*=()#%• N#)K')6:$*#<%)#,1:>1,1=5<%2=:>1,1=5<%(2:>1,1=5<%#:2#%'K%
:-61$12=):7'$%
• #=*%
d1$#2%b%g,#2%'K%*'-#%
• 3%k(1*E%1$-1*:=')%'K%=/#%*,'(-%6:=()1=5%:$-%#L',(7'$%
• N)'-(*7'$%*'-#<%=#2=%*'-#<%*'$g0():7'$%g,#2%• =*','$%L2%+SdGB%3,,%2(>2#k(#$=%$(6>#)2%:)#%K')%+SdG%
*:,*(,:=#-%(21$0%d1$(M%%wc -l%
H::&%*,'(-2P%,1$#2%:$-%g,#2%'K%*'-#%8Ab?9%
!"#$%&'()*+,-./-01**
2.-34%&'()*+5(&-$*6781*
93('.:"&3/*+67;1*
!"#$*<#=3.'*+67>781*
.'=:,%,'*% ?A@<@`A% A<?Y@<@`?% ?AY<[`@% A@[<?l`%
IM*,(-1$0%-'*%')%=#2=%g,#2%
!"#$%&'()*+,-./-01**
2.-34%&'()*+5(?-$*6781*
93('.:"&3/*+67;1*
!"#$*<#=3.'*+67>781*
.'=:,%g,#2% A<@AX% _<l[Z% A<?`_% l`Y%
d1$(M%E#)$#,P%Al<Yl_<[@@%8='=:,9<%_<Y_?<YYZ%8#M*,(-1$0%-)1L#)2<%:)*/9%
3":*/#%F#>2#)L#)P%?AZ<Y`_%
%
!"#$&=:*EP%#M*,(-#2%2F1j%*'-#B%HK%1$*,(-#-<%??[<AX`%,'*%
d'*%%b%g,#%):7'P%!"#$&=:*E%?@Y<%+,'(-&=:*E%_X_<%I(*:,5"=(2%AY_<%!"#$T#>(,:%?_[%
4#-1:$%g,#%21\#2P%%!"#$&=:*E%AAA<%+,'(-&=:*E%AA?<%I(*:,5"=(2%[_%!"#$T#>(,:%A`Y%%
+,'(-&=:*E%/:2%=/#%,:)0#2=%*'-#%>:2#%
4#=/'-','05%@A$#/*-B*(-4#*('.(3.'?-$*!"#$&=:*E%
• F*%O,%qg$-%B%r%0)#"%OI%stuB"5s%r%0)#"%vL%=#2=%r%0)#"%OL%s-'*sq%
• F*%O,%qg$-%B%r%0)#"%OI%stuB2/s%r%0)#"%=#2=%r%0)#"%OL%s-'*sq%
+,'(-&=:*E%
• F*%O,%qg$-%B%r%0)#"%OI%stuB]:L:s%r%0)#"%OL%=#2=%r%0)#"%OL%s-'*sq%
• F*%O,%qg$-%B%r%0)#"%OI%stuB"5s%r%0)#"%OL%=#2=%r%0)#"%OL%s-'*sq%
• F*%O,%qg$-%B%r%0)#"%OI%stuB2/s%r%0)#"%OL%=#2=%r%0)#"%OL%s-'*sq%
• F*%O,%qg$-%B%r%0)#"%OI%stuB]:L:s%r%0)#"%=#2=%r%0)#"%OL%s-'*sq%
• F*%O,%qg$-%B%r%0)#"%OI%stuB"5s%r%0)#"%=#2=%r%0)#"%OL%s-'*sq%
I(*:,5"=(2%
• F*%O,%qg$-%Br%0)#"%OI%stuB]:L:s%r%0)#"%OL%=#2=%r%0)#"%OL%s-'*sq%
• F*%O,%qg$-%B%r%0)#"%OI%stuB*wrtuB**wrtuB/wrtuB*""ws%r%0)#"%vL%=#2=%r%0)#"%OL%s-'*sq%
• F*%O,%qg$-%Br%0)#"%OI%stuB"5s%r%0)#"%OL%=#2=%r%0)#"%OL%s-'*sq%
• F*%O,%qg$-%B%r%0)#"%OI%stuB",s%r%0)#"%OL%%=#2=%r%0)#"%OL%s-'*xq%
• F*%O,%qg$-%Br%0)#"%OI%stuB"5s%r%0)#"%OL%=#2=%r%0)#"%OL%s-'*sq%
• F*%O,%qg$-%B%r%0)#"%OI%stuB]:L:ws%r%0)#"%=#2=%r%0)#"%OL%s-'*sq%
• F*%O,%qg$-%B%r%0)#"%OI%stuB*wrtuB**wrtuB/wrtuB*""ws%r%0)#"%=#2=%r%0)#"%OL%s-'*sq%
• F*%O,%qg$-%B%r%0)#"%OI%stuB",s%r%0)#"%%=#2=%r%0)#"%OL%s-'*sq%
!"#$T#>(,:%
• F*%O,%qg$-%B%r%0)#"%OI%stuB*wrtuB**wrtuB/wrtuB*""ws%r%0)#"%OL%=#2=%r%0)#"%OL%s-'*sq%
• F*%O,%qg$-%B%r%0)#"%OI%stuB)>s%r%0)#"%OL%%=#2=%r%0)#"%OL%s-'*xq%
• F*%O,%qg$-%B%r%0)#"%OI%stuB]:L:s%r%0)#"%OL%%=#2=%r%0)#"%OL%s-'*xq%
• F*%O,%qg$-%B%r%0)#"%OI%stuB2/s%r%0)#"%OL%%=#2=%r%0)#"%OL%s-'*sq%
• F*%O,%qg$-%B%r%0)#"%OI%stuB"5s%r%0)#"%OL%%=#2=%r%0)#"%OL%s-'*sq%
• F*%O,%qg$-%B%r%0)#"%OI%stuB*wrtuB**wrtuB/wrtuB*""ws%r%0)#"%=#2=%r%0)#"%OL%s-'*sq%
• F*%O,%qg$-%B%r%0)#"%OI%stuB)>s%r%0)#"%=#2=%r%0)#"%OL%s-'*sq%
• F*%O,%qg$-%B%r%0)#"%OI%stuB2/s%r%0)#"%=#2=%r%0)#"%OL%s-'*xq%
• F*%O,%qg$-%B%r%0)#"%OI%stuB]:L:s%r%0)#"%=#2=%r%0)#"%OL%s-'*sq%
,A.#/*-B*(-4#*('.(3.'?-$*!"#$&=:*E%
• ,2%qg$-%B%r%0)#"%OI%stuB"5s%r%0)#"%OL%=#2=%r%0)#"%OL%s-'*sq%%r%F*%v,%
• ,2%qg$-%B%r%0)#"%OI%stuB"5s%r%0)#"%=#2=%r%0)#"%OL%s-'*sq%%r%F*%O,%
• ,2%qg$-%B%r%0)#"%OI%stuB2/s%r%0)#"%vL%=#2=%r%0)#"%OL%s-'*sq%%r%F*%v,%
• ,2%qg$-%B%r%0)#"%OI%stuB2/s%r%0)#"%=#2=%r%0)#"%OL%s-'*sq%%r%F*%O,%
+,'(-&=:*E%
• ,2%qg$-%B%r%0)#"%OI%stuB]:L:s%r%0)#"%OL%=#2=%r%0)#"%OL%s-'*sq%%r%F*%O,%
• ,2%qg$-%B%r%0)#"%OI%stuB"5s%r%0)#"%OL%=#2=%r%0)#"%OL%s-'*sq%%r%F*%v,%
• ,2%qg$-%B%r%0)#"%OI%stuB2/s%r%0)#"%OL%=#2=%r%0)#"%OL%s-'*sq%%r%F*%v,%
• ,2%qg$-%B%r%0)#"%OI%stuB]:L:s%r%0)#"%=#2=%r%0)#"%OL%s-'*sq%%r%F*%O,%
• ,2%qg$-%B%r%0)#"%OI%stuB"5s%r%0)#"%=#2=%r%0)#"%OL%s-'*sq%%r%F*%v,%
• ,2%qg$-%B%r%0)#"%OI%stuB2/s%r%0)#"%=#2=%r%0)#"%OL%s-'*sq%%r%F*%v,%
I(*:,5"=(2%
• ,2%qg$-%B%r%0)#"%OI%stuB]:L:s%r%0)#"%OL%%=#2=%r%0)#"%OL%s-'*sq%%r%F*%v,%
• ,2%qg$-%B%r%0)#"%OI%stuB*wrtuB**wrtuB/wrtuB*""ws%r%0)#"%vL%=#2=%r%0)#"%OL%s-'*sq%r%F*%v,%
• ,2%qg$-%B%r%0)#"%OI%stuB"5s%r%0)#"%OL%=#2=%r%0)#"%OL%s-'*sq%%r%F*%O,%
• ,2%qg$-%B%r%0)#"%OI%stuB",s%r%0)#"%OL%=#2=%r%0)#"%OL%s-'*sq%%r%F*%O,%
• ,2%qg$-%B%r%0)#"%OI%stuB2/s%r%0)#"%OL%=#2=%r%0)#"%OL%s-'*sq%%r%F*%v,%
• ,2%qg$-%B%r%0)#"%OI%stuB]:L:s%r%0)#"%%=#2=%r%0)#"%OL%s-'*sq%%r%F*%v,%
• ,2%qg$-%B%r%0)#"%OI%stuB*wrtuB**wrtuB/wrtuB*""ws%r%0)#"%=#2=%r%0)#"%OL%s-'*sq%r%F*%v,%
• ,2%qg$-%B%r%0)#"%OI%stuB"5s%r%0)#"%=#2=%r%0)#"%OL%s-'*sq%%r%F*%O,%
• ,2%qg$-%B%r%0)#"%OI%stuB",s%r%0)#"%=#2=%r%0)#"%OL%s-'*sq%%r%F*%O,%
• ,2%qg$-%B%r%0)#"%OI%stuB2/s%r%0)#"%=#2=%r%0)#"%OL%s-'*sq%%r%F*%O,%
!"#$T#>(,:%
• ,2%qg$-%B%r%0)#"%OI%stuB*wrtuB**wrtuB/wrtuB*""ws%r%0)#"%OL%=#2=%r%0)#"%OL%s-'*sq%r%F*%O,%
• ,2%qg$-%B%r%0)#"%OI%stuB)>s%r%0)#"%OL%=#2=%r%0)#"%OL%s-'*sq%%r%F*%v,%
• ,2%qg$-%B%r%0)#"%OI%stuB2/s%r%0)#"%OL%=#2=%r%0)#"%OL%s-'*sq%%r%F*%O,%
• ,2%qg$-%B%r%0)#"%OI%stuB*wrtuB**wrtuB/wrtuB*""ws%r%0)#"%%=#2=%r%0)#"%OL%s-'*sq%r%F*%O,%
• ,2%qg$-%B%r%0)#"%OI%stuB)>s%r%0)#"%=#2=%r%0)#"%OL%s-'*sq%%r%F*%v,%
• ,2%qg$-%B%r%0)#"%OI%stuB2/s%r%0)#"%=#2=%r%0)#"%OL%s-'*sq%%r%F*%v,%
2-$CD3E'?-$*C.#/*• g$-%B%r%0)#"%OI%stuB*K0wrtuB1$1wrtuB*'$g0wrtuB*'$Kws%%r%F*%O,%
• g$-%B%r%0)#"%OI%stuB*K0wrtuB1$1wrtuB*'$g0wrtuB*'$Kws%%r%0)#"%OL%=#2=%r%0)#"%OL%-'*%%r%
F*%O,%
• !"#$&=:*E%
• g$-%B%r%0)#"%OI%stuB*K0wrtuB1$1wrtuB*'$g0wrtuB*'$Kws%%r%0)#"%OL%=#2=%r%0)#"%OL%-'*%%r%
0)#"%OL%>:>#,%r%0)#"%OL%='M%r%0)#"%OL%2F1j%r%0)#"%OL%2#=("B*K0%r%F*%v,%
%N)'L1-#-%:2O12%K)'6%:%=#M=%g,#%-(6"B%3*=(:,%*'66:$-2%6:5%
2,10/=,5%-1U#)B%
H::&%*,'(-2P%,1$#2%:$-%g,#2%'K%*'-#%8?b?9%
!"#$%&'()*+,-./-01**
2.-34%&'()*+5(&-$*6781*
93('.:"&3/*+67;1*
!"#$*<#=3.'*+67>781*
N5=/'$%
;:L:%
&/#,,%2*)1"=2%
N#),%
+b+ff%
S(>5%
?A@<@`A%
%
[Y@%
Al<[__%
A<?_Z<l_A%
AX<XZZ%
%
_<Z[[%
AX`<Z?_%
A<[A?%
_<?@`%
l_<AAA%
%
Y<@Y_%
_<`X@%
%
Y?<Y?`%
?`<ZZY%
!"#$%&'()*+,-./-01**
2.-34%&'()*+5(?-$*6781*
93('.:"&3/*+67;1*
!"#$*<#=3.'*+67>781*
N5=/'$%
;:L:%
&/#,,%2*)1"=2%
N#),%
+b+ff%
S(>5%
[[X%
%
?@%
Z?%
_<?XZ%
AlZ%
`?%
A<@Y`%
?l%
?A%
ZA%
%
%
_@%
?[%
%
?_?%
AXX%
!"#$&=:*E%12%F)1c#$%1$%N5=/'$%
+,'(-&=:*E%:$-%I(*:,5"=(2%:)#%")#-'61$:$=,5%F)1c#$%1$%;:L:%
!"#$T#>(,:%12%F)1c#$%1$%+%:$-%S(>5%%
H::&%*,'(-2P%,1$#2%:$-%g,#2%'K%*'-#%8=#27$09%8Abl9%
!"#$%&'()*+,-./-01**
2.-34%&'()*+5(?-$*6781*
93('.:"&3/*+67;1*
!"#$*<#=3.'*+67>781*
.'=:,%,'*% AZ`<@Y@% XZ<YYY% Y<A?_% A[<___%
!"#$%&'()*+,-./-01**
2.-34%&'()*+5(&-$*6781*
93('.:"&3/*+67;1*
!"#$*<#=3.'*+67>781*
.'=:,%,'*% ?A@<@`A% A<?Y@<@`?% ?AY<[`@% A@[<?l`%
.#27$0%
S#0(,:)%*'-#%
.#27$0%*'-#%12%1$%:--17'$%='%=/#%)#0(,:)%*'-#%
&'6#%1$210/=2%:>'(=%=#27$0%*'-#P%($1=%=#2=<%)#0)#221'$%=#2=%
!"#$&=:*E%/:2%=/#%,:)0#2=%=#27$0%*'-#%>:2#%
H::&%*,'(-2P%,1$#2%:$-%g,#2%'K%*'-#%8=#27$09%8?bl9%
!"#$%&'()*+,-./-01**
2.-34%&'()*+5(?-$*6781*
93('.:"&3/*+67;1*
!"#$*<#=3.'*+67>781*
N5=/'$%
;:L:%
&/#,,%2*)1"=2%
N#),%
+%
S(>5%
AZl<?AX%
%
Z`l%
l@<lYY%
?X<??l%
?<@YX%
%
%
l<X[Y%
AA[A%
`?@%
YA`%
%
%
?<l@Z%
[Z[%
%
AA<`lZ%
l<_ZZ%
!"#$%&'()*+,-./-01**
2.-34%&'()*+5(&-$*6781*
93('.:"&3/*+67;1*
!"#$*<#=3.'*+67>781*
N5=/'$%
;:L:%
&/#,,%2*)1"=2%
N#),%
+%
S(>5%
?A@<@`A%
%
[Y@%
Al<[__%
A<?_Z<l_A%
AX<XZZ%
%
_<Z[[%
AX`<Z?_%
A<[A?%
_<?@`%
l_<AAA%
%
Y<@Y_%
_<`X@%
%
Y?<Y?`%
?`<ZZY%
S#0(,:)%*'-#%
.#27$0%*'-#%
+,'(-&=:*E%=#27$0%*'-#%12%F)1c#$%1$%N5=/'$%:$-%;:L:%
H::&%*,'(-2P%,1$#2%:$-%g,#2%'K%*'-#%8=#27$09%8_bl9%
S#0(,:)%*'-#%
.#27$0%*'-#%
!"#$%&'()*+,-./-01**
2.-34%&'()*+5(&-$*6781*
93('.:"&3/*+67;1*
!"#$*<#=3.'*+67>781*
N5=/'$%
;:L:%
&/#,,%2*)1"=2%
N#),%
+%
S(>5%
A<@X@%
%
?@%
Z?%
_<?XZ%
AlZ%
`?%
A<@Y`%
?l%
?A%
ZA%
%
%
_@%
?[%
%
?_?%
AXX%
!"#$%&'()*+,-./-01**
2.-34%&'()*+5(?-$*6781*
93('.:"&3/*+67;1*
!"#$*<#=3.'*+67>781*
N5=/'$%
;:L:%
&/#,,%2*)1"=2%
N#),%
+%
S(>5%
`[l%
%
X%
lY%
AA`%
_`%
%
?Y%
AA%
[%
_%
%
%
Al%
[%
%
_@%
?[%
H::&%*,'(-2P%,1$#2%:$-%g,#2%'K%*'-#%8=#27$09%8lbl9%
.#27$0%,1$#2%'K%*'-#%
.#27$0%g,#2%
!"#$%&'()*+,-./-01**
2.-34%&'()*+5(?-$*6781*
93('.:"&3/*+67;1*
!"#$*<#=3.'*+67>781*
N5=/'$%
;:L:%
&/#,,%2*)1"=2%
N#),%
+%
S(>5%
`[l%
%
X%
lY%
AA`%
_`%
%
?Y%
AA%
[%
_%
%
%
Al%
[%
%
_@%
?[%
!"#$%&'()*+,-./-01**
2.-34%&'()*+5(&-$*6781*
93('.:"&3/*+67;1*
!"#$*<#=3.'*+67>781*
N5=/'$%
;:L:%
&/#,,%2*)1"=2%
N#),%
+%
S(>5%
AZl<?AX%
%
Z`l%
l@<lYY%
?X<??l%
?<@YX%
%
%
l<X[Y%
AA[A%
`?@%
YA`%
%
%
_@%
[Z[%
%
AA<`lZ%
l<_ZZ%
H::&%*,'(-2P%*'$g0():7'$%g,#2%
!"#$%&'()*+,-./-01**
2.-34%&'()*+5(&-$*6781*
93('.:"&3/*+67;1*
!"#$*<#=3.'*+67>781*
.'=:,%
*'$g0():7'$%
g,#2%
lA% ?A% ?% A[%
H$%I(*:,5"=(2<%:,,%'"7'$2%:)#%6'2=,5%-#g$#-%1$%:%21$0,#%*'$g0():7'$%g,#B%
D.'$(#* $-F'* (A$4#E* G3'$&30* )#:/&-$#*
.'=:,%
*'$g0():7'$%
g,#2%
Z% `% `% A[%
8A_%",(01$29%
l%
T(6>#)%'K%*'661c#)2%
• !"#$&=:*E%– +')#%YA%8Z@n%'K%*'661=29<%?l[%'**:21'$:,%
– /c"Pbb>1=#)01:B*'6b"(>,1*b)#"')=2b'"#$2=:*Eb?@A?m@[mK',2'6b%
• +,'(-&=:*E%– ?X%*'661c#)2%
– /c"2Pbb1$*(>:=')B:":*/#B')0b")']#*=2b*,'(-2=:*EB/=6,%
• I(*:,5"=(2%– ?@%"#'",#%F1=/%E:)6:%
– /c"2Pbb,:($*/":-B$#=b#(*:,5"=(2bf='"*'$=)1>(=')2%• !"#$T#>(,:%
– 4:]')P%Y<%A@[%*'$=)1>(=')2%
– /c"Pbb'"#$$#>(,:B')0b:>'(=P*'$=)1>(=')2%
%^A?`%"#'",#%-)1L1$0%:,,%=/#%-#L#,'"6#$=%1$%H::&%*,'(-2y%
C(02%g,#-<%>(02%*,'2#-%
• +,'(-&=:*E%– ?_[%*)#:=#-<%A[?%)#2',L#-%1$%=/#%,:2=%_@%-:52%– /c"2Pbb122(#2B:":*/#B')0b]1):b>)'F2#b
+d!Wa&.3+zo2#,#*=#-.:>{*'6B:=,:221:$B]1):B",(01$B252=#6B")']#*=
n_32(66:)5O":$#,%
• !"#$&=:*E%– ?Z?%$#F%>(02<%AZYl%'"#$%>(02<%_A[%1$O")'0)#22%>(02%– /c"2Pbb>(02B,:($*/":-B$#=b'"#$2=:*E%
• !"#$T#>(,:%– `?%>(02<%YY?%='=:,%– /c"Pbb-#LB'"#$$#>(,:B')0b")']#*=2b'"#$$#>(,:%
T'=%:%*'6")#/#$21L#%>(0%2(66:)5B%i1#F%'K%=/#%,:=#2=%>(02%K)'6%=/#%*'))#2"'$-1$0%H::&%F#>21=#B%
N)'*#22%K')%*'$=)1>(7$0%*'-#%
• !"#$&=:*E<%0#))1=%)#L1#F%• +,'(-&=:*E%• I(*:,5"=(2%• !"#$%T#>(,:%
• H2%!"#$&=:*E%*'66($1=5%")'*#22%6')#%')%,#22%#|*1#$=%=/:$%
'=/#)2}%
+'66($1=5%1$=#)#2=%:$:,5212%
• W21$0%#6:1,%,12=2%:$-%K')(62%'K%*,'(-%'"#$%2'()*#%")']#*=2<%
:$:,5\#P%
– h/1*/%'"#$%2'()*#%*,'(-%*'66($1=5%12%6'2=%:*7L#%1$%=#)62%'K%
$(6>#)%'K%=/)#:-2<%6#22:0#2<%":)7*1":$=2}%
– h/:=%12%=/#%6'$=/,5%"'"(,:7'$%0)'F=/%:$-%:*7L#%*'66($1=5%
"'"(,:7'$}%
– h/:=%:)#%=/#%=)#$-2}%
+/:,,#$0#2%1$%*'66($1=5%1$=#)#2=%:$:,5212%
• 3(='6:7*%0#$#):7'$%'K%#6:1,%6#22:0#2%8#B0B<%;HS39%
• a1U#)#$=%(2#)%1-2%• 3|,1:7'$%*/:$0#2%'K%(2#)2%
• a12*(221'$%$'=%/:""#$1$0%1$%6:1,1$0%,12=2%>(=%-1)#*=,5%'$%K')(6%
• +/:$01$0%'K%6:1,1$0%,12=2%8K)'6%1$*(>:7'$%='%*')#%")']#*=29%
%
– /c"PbbFFFBk5]'/$B$#=b}"{?l?Y%
d12=2%:$-%K')(62%:$:,5\#-%>5%J1$05#%
• !"#$&=:*E%
– /c"Pbb,12=2B,:($*/":-B$#=b'"#$2=:*E%– /c"2Pbb:$2F#)2B,:($*/":-B$#=b'"#$2=:*E%– /c"Pbb,12=2B'"#$2=:*EB')0b"1"#)6:1,b%
• +,'(-&=:*E%
– /c"Pbb6:1,O:)*/1L#2B:":*/#B')0b6'-m6>'Mb1$*(>:=')O*,'(-2=:*EO(2#)2b%
– /c"Pbb6:1,O:)*/1L#2B:":*/#B')0b6'-m6>'Mb1$*(>:=')O*,'(-2=:*EO-#Lb%
– /c"Pbb*,'(-2=:*EB')0bK')(6b1$-#MB/=6,%
• !"#$T#>(,:%
– /c"Pbb,12=2B'"#$$#>(,:B')0b"1"#)6:1,b(2#)2O'"#$$#>(,:B')0b%
– /c"Pbb,12=2B'"#$$#>(,:B')0b"1"#)6:1,b#*'252=#6O'"#$$#>(,:B')0b%
– /c"Pbb,12=2B'"#$$#>(,:B')0b"1"#)6:1,b1$=#)'"#):>1,1=5O'"#$$#>(,:B')0b%
• I(*:,5"=(2%
– /c"Pbb,12=2B#(*:,5"=(2B*'6b"1"#)6:1,b*'66($1=5b%
– /c"Pbb#$0:0#B#(*:,5"=(2B*'6b*(2='6#)b"')=:,b='"1*2b?A`Xl`O0#$#):,O
-12*(221'$2bk(#27'$2%
&'()*#P%J1$05#%;1:$0%8/c"PbbFFFBk5]'/$B$#=b}"{?l?Y9%
4'$=/,5%$(6>#)%'K%=/)#:-2%
&'()*#P%J1$05#%;1:$0%8/c"PbbFFFBk5]'/$B$#=b}"{?l?Y9%
!"#$&=:*E%:$-%+,'(-&=:*E%/:L#%/10/#)%-12*(221'$2%
h/:=%=5"#%'K%-12*(221'$2}%
h/5}%+'-#%6:=()1=5}%T(6>#)%'K%>(02}%T##-2%1$L#270:7'$%
4'$=/,5%$(6>#)%'K%6#22:0#2%
&'()*#P%J1$05#%;1:$0%8/c"PbbFFFBk5]'/$B$#=b}"{?l?Y9%
4'$=/,5%$(6>#)%'K%":)7*1":$=2%
&'()*#P%J1$05#%;1:$0%8/c"PbbFFFBk5]'/$B$#=b}"{?l?Y9%
3**(6(,:=#-%*'66($1=5%"'"(,:7'$%
&'()*#P%J1$05#%;1:$0%8/c"PbbFFFBk5]'/$B$#=b}"{?l?Y9%
4'$=/,5%":)7*1":$=2%L2B%$#F%6#6>#)2%
&'()*#P%J1$05#%;1:$0%8/c"PbbFFFBk5]'/$B$#=b}"{?l?Y9%
S#2#:)*/#)%H$=#)#2=%8SHOH9%
• 3$:,5\#%2'()*#%*'-#%#L',(7'$%'K%-1U#)#$=%*,'(-%2=:*E2%– S:=#%'K%*/:$0#%8#B0B<%,'*2%:$-%g,#2%6'-1g#-%')%:--#-%"#)%)#,#:2#9%
– T(6>#)%:$-%=5"#%'K%*'661=2%:$-%*'661c#)2%
– T(6>#)%:$-%=5"#%'K%>(02%g,#-%
– #=*%
S#2#:)*/#)%H$=#)#2=%8SHOHH9%
• N#)K')6:$*#%*'6":)12'$%'K%-1U#)#$=%*,'(-2%:$-%-1U#)#$=%
*'$g0():7'$2%
– N)'L121'$1$0%76#<%)($O76#%"#)K')6:$*#<%2=:>1,1=5%
a#21):>,#%K#:=()#2%1$%:$%H::&%*,'(-%
• C''=%K)'6%,'*:,%:$-%)#6'=#%-12E%
• I,:27*%HN%:--)#22#2%8~':7$0%HN29%
• &#*()1=5%)(,#2%
• 4'$1=')1$0%:$-%>1,,1$0%8C&&%2(""')=9%
• J('=:2%8"#)%)#2'()*#9%
• 3(=/#$7*:7'$%:$-%:(=/')1\:7'$%8"#)%)#2'()*#%b%(2#)9%
• 4(,7",#%/5"#)L12')%2(""')=%
• a12E%K')6:=2%
• !)0:$1\:7'$:,%:$-%g$:$*1:,%*'$=)',%
• W2#)%2"#*1g*%)#2'()*#%6:$:0#6#$=%
– H6:0#%:$-%$#=F')E%6:$:0#6#$=<%1B#B<%*)#:7$0%"#)%(2#)%16:0#2%:$-%*(2='6%
$#=F')E%='"','01#2%
• d1L#%610):7'$%K')%6:1$=#$:$*#%
• C:)#6#=:,%")'L121'$1$0%
%
!"#$&=:*E%*'$*#"=(:,%:)*/1=#*=()#%
• +'6"(=#%8$'L:9%%%
– &=:)=%:$-%6:$:0#%L1)=(:,%1$2=:$*#2%3$:,'0'(2%='%36:\'$%
I+?<%S:*E2":*#%+,'(-%&#)L#)2%K')%*'6"(=#e%&_%:$-%
+,'(-G1,#2%K')%2='):0#B%
• C,'*E%2='):0#%8*1$-#)9%
– 4:$:0#2%>,'*E%2='):0#%
• H6:0#%2#)L1*#%80,:$*#9%
– &='):0#<%,''E("%:$-%)#=)1#L:,%252=#6%K')%i4%16:0#2%
• H-#$7=5%6:$:0#6#$=%8E#52='$#9%
– 3%($1g#-%1-#$7=5%6:$:0#6#$=%:*)'22%$'L:<%2F1j<%
0,:$*#<%*1$-#)<%k(:$=(6<%:$-%/')1\'$B%
• T#=F')E%8k(:$=(69%%
– L1)=(:,1\1$0%$#=F')E%
• a:2/>':)-%8/')1\'$9%%
– 3%216",#%F#>%"')=:,%
• !>]#*=%2='):0#%82F1j9%
– &=')#%'>]#*=2%1$%:%,:)0#%*:":*1=5%252=#6%
– 3$:,'0'(2%='%36:\'$%&_%')%S:*E2":*#%%
*,'(-%g,#2%
!"#$&=:*E%3NH%b%a:2/>':)-%
Storage (swift)
Compute (nova)
Block storage (cinder)
Image (glance)
lZ%
Identity (keystone) Network (quantum)
!"#$&=:*E%:$-%+,'(-&=:*E%
!"#$%&'()*+,-./-01* 2.-34%&'()*+5(?-$1*
d:$0(:0#% N5=/'$<%&/#,,%2*)1"=2% ;:L:%86'2=,59<%N5=/'$<%&/#,,%2*)1"=2%
d1$#2%'K%*'-#% ?A@<@`A% A<?Y@<@`?%
a:=:>:2#%=:>,#2% Z_% AlA%
T(6>#)%'K%*'661c#)2% YA% ?X%
Q5"#)L12')%2(""')=% zi4<%�#$&#)L#)<%Q5"#)Oi<%i6F:)#%
8K'*(2%'$%zi49%
zi4<%�#$&#)L#)<%!):*,#%i4%
8!i49<%Q5"#)Oi<%i4F:)#%
a#",'56#$=%#M"#)1#$*#% d161=#-%8S:*E2":*#%}9% d:)0#%8#B0B%V'a:--59%
d1*#$2#% 3":*/#%?B@% 3":*/#%?B@%
V'L#)$:$*#% I,:>'):=#%2=)(*=()#% 3":*/#%
4'$1=')1$0%:$-%>1,,1$0% T'%8(2#%V:$0,1:%')%T:01'29% 4'$1=')1$0%8$'9<%C1,,1$0%85#29%
&1$0,#%210$%'$% Ä#2% Ä#2%
da3N%1$=#0):7'$% Ä#2% Ä#2%
J('=:%6:$:0#6#$=% N#)%")']#*=% N#)%)#2'()*#%
!)0:$1\:7'$:,%*'$=)',% C:21*% 3-L:$*#-%
a#,#0:=#-%:-61$12=):7'$% 3L:1,:>,#%1$%=/12%)#,#:2#% 3-L:$*#-%
!"#$&=:*E%:$-%+,'(-&=:*E%
!"#$%&'()*+,-./-01* 2.-34%&'()*+5(&-$1*
I,:27*%HN2% Ä#2% Ä#2%
N#)O=#$:$=%)'(=#)% 3L:1,:>,#%1$%=/12%)#,#:2#% Ä#2%
!>]#*=%2='):0#% Ä#2%8&F1j9% T'%8*:$%(2#%&F1j9%
!L#)2(>*)1"7'$% !E% !E%
d1L#%610):7'$%2(""')=% N'')% V''-%
I+?%*'6":7>1,1=5% Ä#2%8$'L:%I+?%3NH9% Ä#2%8+,'(-C)1-0#9%
Q10/%:L:1,:>1,1=5% C:21*% 3-L:$*#-%
C''=%K)'6%)#6'=#%-12E% 3L:1,:>,#%1$%=/12%)#,#:2#% Ä#2%
N:22F')-%#$*)5"7'$%
8K')%1$=#)%2#)L1*#%*'66($1*:7'$9%
T'%#$*)5"7'$% #$*)5"=#-%
C:)#6#=:,%1$2=:,,:7'$% T'% Ä#2%
a#=:1,#-%1$2=)(*7'$2%K')%2#p$0%("%
/5"#)L12')2%
zi4%'$,5% �#$&#)L#)<%i4F:)#%
4#22:0#%":221$0% S:>>1=4J%834JN9% ;:L:%
N)'*#22%')%=/)#:-%:)*/1=#*=()#%K')%
*'$=)',,#)%
N)'*#22%>:2#-%:)*/1=#*=()#% ./)#:-%:)*/1=#*=()#%
a'*(6#$=:7'$% Q.4d<%"-K% NaG%
N:)=%HHP%!"#$&=:*E%:$:,5212%
!"#$&=:*EP%:$%:,=#)$:=#%L1#F%
• T#Å,1M%*,'(-%:)*/1=#*=%3-)1:$%+'*E*)'jx2%C,'0%
• /c"Pbb"#)K*:"B>,'02"'=B*'6b?@AAb@Zb1O*'6#O='O(2#O*,'(-2O$'=O='O>(1,-O
=/#6B/=6,%
– !"#$%"&%'($%)*")"+$+',%"&%-)$+!'./0%.*12$%'(.'%3$/.2,$%4'5,%.+%")$+%,"2*/$%/"##2+4'6%)*"7$/'%4'%8499%84+%4+%'($%$+:;%<%:4,.1*$$=%'($%#",'%,2//$,,&29%")$+%,"2*/$%)*"7$/',%<%/.+%'(4+0%"&%(.>$%.%,'*"+1%4+:4>4:2.9%9$.:$*%8("%,)$+:,%.%9"'%"&%?#$%,.64+1%+"%'"%0$$)%'($%)*"7$/'%"+%'*./0;%!"#$%"&%'($%9$.,'%,2//$,,&29%.*$%9.*1$%#29?@>$+:"*%4+:2,'*6%/"+,"*?2#,;%
– A($%)*"39$#%84'(%.%/"+,"*?2#%4,%'(.'%4'%4,%(.*:%'"%1$'%4'%'"%.1*$$%"+%.+6'(4+1=%.+:%B*""0,%9.8%.))94$,%CA($%D6'(4/.9%D.+@D"+'(%E%.::4+1%*$,"2*/$,%'"%.%9.'$%,"F8.*$%)*"7$/'%#.0$,%4'%9.'$*G;%H(49$%4'%,$$#,%"3>4"2,%'(.'%.::4+1%#"*$%#$#3$*,%'"%-)$+!'./0%4,%.%1"":%'(4+1=%4+%)*./?/$=%4'%8499%,9"8%'($%)*"7$/'%:"8+;%
– <%(.>$+5'%6$'%,$$+%.%>4.39$%.9'$*+.?>$%'"%IH!=%32'%'(.'%:"$,+5'%#$.+%<%:"+5'%8.+'%'"%,$$%"+$;%D6%12$,,%4,%'(.'%4+%.3"2'%'8"%'"%'(*$$%6$.*,%&*"#%+"8%'($*$%#.6%3$%.%/*$:439$%.9'$*+.?>$;%J$K94L%(.,%.9*$.:6%,)$+'%.%9"'%"&%?#$%($9)4+1%IH!%,/.9$%.,%8$%M12*$:%"2'%"2*%.*/(4'$/'2*$=%8$%:"+5'%8.+'%'"%:"%'(.'%.1.4+=%,"%<5#%.9,"%8.4?+1%&"*%,"#$"+$%$9,$%C.+"'($*%9.*1$%$+:@2,$*G%'"%04/0%'($%?*$,%.+:%)*">$%'(.'%.+%.9'$*+.?>$%8"*0,;%
`?%
45%L1#FP%!"#$&=:*E%F1,,%2##%6')#%=):*7'$%1$%")1L:=#%*,'(-2B%
• I$-O='O#$-%2',(7'$%%
• 4#=#)1$0%:$-%>1,,1$0%
• Q10/%:L:1,:>1,1=5%
• I:2#%'K%:-61$12=):7'$%%
• &#:6,#22%-12:2=#)%)#*'L#)5%%
• #B0B<%"'F#)%K:1,()#%
• &#:6,#22%F')E,':-%6:$:0#6#$=%
• #B0B<%\#)'%-'F$O76#%
• &#*()1=5%/:)-#$1$0%
• #B0B<%g)#F:,,%)(,#2%
• +/:$0#%6:$:0#6#$=%
• H-#$7=5%6:$:0#6#$=%
• da3N%
• 4'$1=')1$0%
• T:01'2<%V:$0,1:%
• &='):0#%1$=#0):7'$%
• T#=F')E1$0%
• #B0B<%id3T2%
• +(2='61\:7'$%
• h')E%~'F%#$:>,#6#$=%
• h')E,':-%610):7'$%
• IB0B<%610):=#%F')E,':-2%1$='%*,'(-2%
• N)'L121'$1$0%:$-%)($76#%
"#)K')6:$*#%
• +'2=%
Legend Green: available, Red: not available / bad, Orange: Maybe, Black: don’t know
h/:=%:)#%E#5%0:"2%1$%!"#$&=:*E%K')%")1L:=#%
#$=#)")12#%*,'(-%#$:>,#6#$=}%
IL',(7'$%'K%!"#$&=:*E%,'*%t%
H#.#'/#4* <-F'* I.'$(#* J#:/&-$#* K3'$&30* %LAM* N-&'.*
3(27$% !*=%?@A@% AY<?ZZ% A?<[Y[% _@<X?Y%
C#M:)% G#>%?@AA% ?Y<Y_l% _<X?[% AX<@Al% lY<_YY%
+:*=(2% 3")%?@AA% l_<[lY% l<[?Y% AX<XX`% X`<`_[%
a1:>,'% &#"%?@AA% XX<_[`% [<[XA% A?<l`A% A`<`[A% [A<[lY%
I22#M% 3")%?@A?% ZY<Y`@% A`<X[Z% AA<```% AY<XlX% Al[<`[X%
G',2'6% &#"%?@A?% A__<Y?_% ?@<?YA% A_<[_[% l?<AAZ% A[<AAl% ??[<AX`%
t%+SdG%:$-%$'=%"5=/'$%,'*%
N)'*#22%K')%*'$=)1>(7$0%*'-#P%!"#$&=:*E%8Ab?9%
&'()*#P%/c"PbbF1E1B'"#$2=:*EB')0bC):$*/4'-#,%
&F1j<%61,#2='$#%{%)#,#:2#2%
!=/#)<%$'%
N)'*#22%K')%*'$=)1>(7$0%*'-#P%!"#$&=:*E%8?b?9%
• C(02%• C,(#")1$=2%
– G')%16",#6#$7$0%:%$#F%K#:=()#%
– /c"2Pbb>,(#")1$=2B,:($*/":-B$#=b'"#$2=:*E%
!"#$&=:*E%=#)61$','05%
• G,:L')2%L2%1$2=:$*#%=5"#2%• N)']#*=2%L2%=#$:$=2%8a1:>,'%:$-%I22#M9%L2%")']#*=2%8G',2'69%
!"#$&=:*E%*'$*#"=(:,%:)*/1=#*=()#%
• +'6"(=#%8$'L:9%%%
– &=:)=%:$-%6:$:0#%L1)=(:,%1$2=:$*#2%3$:,'0'(2%='%36:\'$%
I+?<%S:*E2":*#%+,'(-%&#)L#)2%K')%*'6"(=#e%&_%:$-%
+,'(-G1,#2%K')%2='):0#B%
• C,'*E%2='):0#%8*1$-#)9%
– 4:$:0#2%>,'*E%2='):0#%
• H6:0#%2#)L1*#%80,:$*#9%
– &='):0#<%,''E("%:$-%)#=)1#L:,%252=#6%K')%i4%16:0#2%
• H-#$7=5%6:$:0#6#$=%8E#52='$#9%
– 3%($1g#-%1-#$7=5%6:$:0#6#$=%:*)'22%$'L:<%2F1j<%
0,:$*#<%*1$-#)<%k(:$=(6<%:$-%/')1\'$B%
• T#=F')E%8k(:$=(69%%
– L1)=(:,1\1$0%$#=F')E%
• a:2/>':)-%8/')1\'$9%%
– 3%216",#%F#>%"')=:,%
• !>]#*=%2='):0#%82F1j9%
– &=')#%'>]#*=2%1$%:%,:)0#%*:":*1=5%252=#6%
– 3$:,'0'(2%='%36:\'$%&_%')%S:*E2":*#%%
*,'(-%g,#2%
!"#$&=:*E%3NH%b%a:2/>':)-%
Storage (swift)
Compute (nova)
Block storage (cinder)
Image (glance)
`Z%
Identity (keystone) Network (quantum)
!"#$&=:*E%*'$*#"=(:,%:)*/1=#*=()#%
!"#$&=:*E%*'6"(=#<%16:0#<%:$-%1-#$7=5%2#)L1*#%
• +'6"(=#%2#)L1*#%8$'L:9%
– 3NHP%nova-api – &*/#-(,#)P%nova-scheduler – T#=F')EP%nova-network
8)#",:*#-%>5%J(:$=(69%
– +'6"(=#%F')E#)P%nova-compute – T#=F')E%F')E#)P%quantum-agent – S#6'=#%*'$2',#P%nova-vncproxy
• H-#$7=5%2#)L1*#%8E#52='$#9%
– +)#-#$7:,2%K')%(2#)2<%")']#*=2P%keystone • H6:0#%2#)L1*#%80,:$*#9%
– 3NHP%glance-api – H6:0#%)#012=)5P%glance-registry – H6:0#2%*:$%:,2'%>#%2=')#-%'$%2F1j%
• !>]#*=%2='):0#%
– 3NHP%nova-objectstore • a:2/>':)-%
– h#>%1$=#)K:*#%K')%6:$:01$0%i42P%apache2
X@%
!"#$&=:*E%3NH%b%a:2/>':)-%
Storage (swift)
Compute (nova)
Block storage (cinder)
Image (glance)
Identity (keystone) Network (quantum)
!"#$&=:*E%*'$*#"=(:,%6:""1$0%
! +,'(-%*'$=)',,#)%– nova-api – nova-scheduler – nova-vncproxy – nova-network or
– quantum-sever – l3-agent – quantum-dhcp-gent
– cinder
– keystone
– glance-api – glance-registry
– Rabbitmq – mysql – horizon%– !&P%W>($=(<%S#-%Q:=%
! 3,,%*'6"'$#$=2%)($%:2%2=:$-:,'$#%2#)L1*#2%:$-%=5"1*:,,5%/:L#%:%+dHB%
! Q'F%-'%=/#2#%*'6"'$#$=2%*'66($1*:=#%F1=/%#:*/%'=/#)}%S:>>1=4J%
! H2%=/#)#%:$5%"#)212=#$=%2=:=#}%45&Jd%$'L:%-:=:>:2#<%E#52='$#%8*)#-#$7:,29%-:=:>:2#<%0,:$*#%816:0#%
6#=:-:=:9%-:=:>:2#%
XA%
! +'6"(=#%$'-#829%
– nova-compute – nova-network or – quantum-agent – Q5"#)L12')2P%zi4%86:1$9<%�#$<%i4F:)#%
! !>]#*=%&=')#%– nova-objectstore – !P%W>($=(<%S#-%Q:=%
glance-api.conf glance-registry.conf glance-api-paste.ini glance-registry-paste.ini policy.json
keystone.conf policy.json
nova.conf api-paste.ini policy.json
local_settings.py
nova.conf
quantum.conf ovs_quantum_plugin.ini l3_agent.ini, api_paste.ini cinder.conf, api-paste.ini policy.json
!"#$&=:*E%,'01*:,%:)*/1=#*=()#%
$'L:%
-:=:>:2#%
$'L:O:"1%
$'L:O2*/#-(,#)%
$'L:O*'6"(=#%
$'L:O$#=F')E%
-:2/>':)-%
8/')1\'$9%
H-#$7=5%
8E#52='$#9%
0,:$*#O:"1%
0,:$*#O)#012=)5%
0,:$*#%
-:=:>:2#% 82F1j9%$'L:O
'>]#*=2=')#%%
H6:0#%2=')#%
82F1j<%#=*9%
glance API (REST)
AMQP nova database keystone
!"#$&=:*E%,'01*:,%:)*/1=#*=()#%
X_%
E#52='$#%
-:=:>:2#%
J(#(#%
834JN9%
REST
REST
!"#$&=:*E%*'6"'$#$=2%
• J#:/&-$#*• V,:$*#%• T'L:%• T#=F')E1$0%8k(:$=(69%
• &F1j%
z#52='$#%81-#$7=59%
• +'$*#"=2%• +'6"'$#$=%-1:0):6%
• 4#22:0#%~'F%
• d161=:7'$2%
• z#52='$#%+dH%='',%
z#52='$#%81-#$7=59%*'$*#"=2%
• 3%2#)L1*#%
– 3%-:#6'$%
– 3%>:*E#$-%-:=:>:2#%
• .#$:$=%8:E:%")']#*=9%
– 3%*'$=:1$#)%(2#-%='%0)'("%')%12',:=#%)#2'()*#2%:$-b')%1-#$7=5%'>]#*=2B%a#"#$-1$0%'$%=/#%2#)L1*#%
'"#):=')<%:%=#$:$=%6:5%6:"%='%:%*(2='6#)<%:**'($=<%')0:$1\:7'$<%')%")']#*=B%%
• a'6:1$%
– +',,#*7'$%'K%")']#*=2%
• W2#)%
– 3%-101=:,%)#")#2#$=:7'$%'K%:%"#)2'$<%252=#6<%')%2#)L1*#%F/'%(2#2%!"#$&=:*E%*,'(-%2#)L1*#2B%%
– z#52='$#%:(=/#$7*:7'$%2#)L1*#2%F1,,%L:,1-:=#%=/:=%1$*'61$0%)#k(#2=%:)#%>#1$0%6:-#%>5%=/#%(2#)%
F/'%*,:162%='%>#%6:E1$0%=/#%*:,,B%W2#)2%/:L#%:%,'01$%:$-%6:5%>#%:2210$#-%='E#$2%='%:**#22%
)#2'()*#2B%W2#)2%6:5%>#%-1)#*=,5%:2210$#-%='%:%":)7*(,:)%=#$:$=%:$-%>#/:L#%:2%1K%=/#5%:)#%*'$=:1$#-%
1$%=/:=%=#$:$=B%
• S',#%
– 3%"#)2'$:,1=5%=/:=%:%(2#)%:22(6#2%F/#$%"#)K')61$0%:%2"#*1g*%2#=%'K%'"#):7'$2B%3%)',#%1$*,(-#2%:%2#=%
'K%)10/=%:$-%")1L1,#0#2B%3%(2#)%:22(61$0%=/:=%)',#%1$/#)1=2%=/'2#%)10/=2%:$-%")1L1,#0#2B%8#B0B<%:-61$%
:$-%6#6>#)%)',#9%
– Ç:-61$x%)',#%/:)-%*'-#-%F1=/1$%*'6"(=#%8$'L:9<%-:2/>':)-%8/')1\'$9%
%
XX%
z#52='$#%81-#$7=59%*'$*#"=2%
• +)#-#$7:,2%
– a:=:%=/:=%>#,'$02%='<%12%'F$#-%>5<%:$-%0#$#):,,5%'$,5%E$'F$%>5%:%(2#)%=/:=%=/#%(2#)%*:$%")#2#$=%='%")'L#%=/#5%:)#%F/'%=/#5%:)#%821$*#%$'%'$#%#,2#%2/'(,-%E$'F%=/:=%
-:=:9B%
– IM:6",#2%:)#P%
• :%6:=*/1$0%(2#)$:6#%:$-%":22F')-%
• :%='E#$%=/:=%F:2%122(#-%='%5'(%=/:=%$'>'-5%#,2#%E$'F2%'K%
• &#)L1*#%
– 3$%!"#$&=:*E%2#)L1*#<%2(*/%:2%+'6"(=#%8T'L:9<%!>]#*=%&='):0#%8&F1j9<%')%H6:0#%
&#)L1*#%8V,:$*#9B%3%2#)L1*#%")'L1-#2%'$#%')%6')#%#$-"'1$=2%=/)'(0/%F/1*/%(2#)2%
*:$%:**#22%)#2'()*#2%:$-%"#)K')6%8")#2(6:>,5%(2#K(,9%'"#):7'$2B%
• I$-"'1$=%
– 3$%$#=F')EO:**#221>,#%:--)#22<%(2(:,,5%-#2*)1>#-%>5%WSd<%F/#)#%:%2#)L1*#%6:5%>#%
:**#22#-B%HK%(21$0%:$%#M=#$21'$%K')%=#6",:=#2<%5'(%*:$%*)#:=#%:$%#$-"'1$=%=#6",:=#<%
F/1*/%)#")#2#$=2%=/#%=#6",:=#2%'K%:,,%=/#%*'$2(6:>,#%2#)L1*#2%=/:=%:)#%:L:1,:>,#%
:*)'22%=/#%)#01'$2B%
• J('=:2%:)#%$'=%-#g$#-%1$%E#52='$#<%:$-%1$2=#:-%-#g$#-%1$%$'L:B%!$,5%"#)%
=#$:$=%k('=:2%:)#%-#g$#-B%
XY%
z#52='$#%81-#$7=59%*'$*#"=2%
• %3(=/#$7*:7'$%
– 3(=/#$7*:7'$%12%=/#%:*=%'K%*'$g)61$0%=/#%1-#$7=5%'K%:%(2#)%')%=/#%=)(=/%'K%:%*,:16B%
– z#52='$#%F1,,%*'$g)6%=/:=%1$*'61$0%)#k(#2=%:)#%>#1$0%6:-#%>5%=/#%(2#)%F/'%*,:162%='%>#%
6:E1$0%=/#%*:,,%>5%L:,1-:7$0%:%2#=%'K%*,:162%=/:=%=/#%(2#)%12%6:E1$0B%./#2#%*,:162%:)#%1$17:,,5%1$%
=/#%K')6%'K%:%2#=%'K%*)#-#$7:,2%8(2#)$:6#%É%":22F')-<%')%(2#)$:6#%:$-%3NH%E#59B%%
– 3j#)%1$17:,%*'$g)6:7'$<%z#52='$#%F1,,%122(#%=/#%(2#)%:%='E#$%F/1*/%=/#%(2#)%*:$%=/#$%")'L1-#%
='%-#6'$2=):=#%=/:=%=/#1)%1-#$7=5%/:2%>##$%:(=/#$7*:=#-%F/#$%6:E1$0%2(>2#k(#$=%)#k(#2=2B%
• .'E#$%
– 3%='E#$%12%:$%:)>1=):)5%>1=%'K%=#M=%=/:=%12%(2#-%='%:**#22%)#2'()*#2B%I:*/%='E#$%/:2%:%2*'"#%
F/1*/%-#2*)1>#2%F/1*/%)#2'()*#2%:)#%:**#221>,#%F1=/%1=B%3%='E#$%6:5%>#%)#L'E#-%:=%:$576#%
:$-%12%L:,1-%K')%:%g$1=#%-():7'$B%
– &(""')=%:--17'$:,%")'='*',2%1$%=/#%K(=()#B%./#%1$=#$=%12%K')%E#52='$#%='%>#%:$%1$=#0):7'$%
2#)L1*#%K')#6'2=<%:$-%$'=%:2"1)#%='%>#%:%K(,,O~#-0#-%1-#$7=5%2=')#%:$-%6:$:0#6#$=%2',(7'$B%
– 3(='6:7*:,,5%*,#:$#-}%3(-1=%=):1,}%
– ;&!T%K')6:=%
XZ%
.'E#$%#M:6",#%
• .'E#$%1-<%#M"1)#2<%#M=):%
%
– fdc1e97a76b949ab9fcff82be81a2055 | !2012-05-13 02:43:12 !| ! {"metadata": { "roles": ["4bc4782551b74b44b0a3d807d21bc633"]}, "user": {"email": null, "enabled": true, "id": "9d4014d821b1480b9aae0da607c36206", "name": "novaUser", "tenantId": "837989adb0754a60995117b3f8864ccc"}, "tenant": {"enabled": true, "id": "837989adb0754a60995117b3f8864ccc", "name": "serviceTenant", "description": "Service Tenant"} } !
X[%
z#52='$#%*'6"'$#$=%-1:0):6%
Y@%
.#$:$=% W2#)%
:-61$% )',#%
&#)L1*#%
6#6>#)%
I$-"'1$=%
"(>,1*WSd%
1$=#)$:,WSd%
:-61$WSd%
"',1*5B]2'$%
ABBt%
A%
A%
*(2='6%
Hardcoded in files
+)#-#$7:,2%A% A%
has
has
has
e.g., nova, glance, swift, keystone ABBt%
ABBt%
A%
A%
A%
)',#%
(2#)%
":22F')-%
N',1*5%g,#%
Define role based access for service resources
+'$g0B%g,#%
ABBt% A%
Define service credentials
admin A%
A%
A%
A%
z#52='$#%~'F%K')%*)#:7$0%:%2#)L#)%8Ab?9%
YA%
W2#)% z#52='$#% T'L:% V,:$*#%
Credentials Token (role)
Get services and endpoints + token
Services + endpoints
Token + CreateInstance
Verify + token Token + GetImage
Verify + token
image
CreateInstance Success Success
z#52='$#%~'F%K')%*)#:7$0%:%2#)L#)%8?b?9%
Y?%
W2#)% z#52='$#% T'L:% V,:$*#% J(:$=(6%
Credentials Token (role)
Get services and endpoints + token
Services + endpoints
Token + CreateInstance
Verify + token Token + GetImage
Verify + token
image
Token + request to insert VIF into net
Verify + token
Token + verify user access to VIF
Successful response Successful response
z#52='$#%~'F%K')%*)#:7$0%:%2#)L#)%
Y_%http://docs.openstack.org/trunk/openstack-identity/admin/content/Identity-Service-Concepts-e1362.html
z#52='$#%8G',2'69%,161=:7'$2%
• .'E#$2%:)#%$'F%*)5"='0):"/1*:,,5%210$#-<%>(=%)#L'*:7'$}%• J('=:2%:)#%$'=%1$%E#52='$#%• Ç:-61$x%)',#%12%/:)-O*'-#-%1$%-1U#)#$=%!"#$&=:*E%*'6"'$#$=2%
• "',1*5B]2'$%12%:%g,#%:$-%12%$'=%1$*,(-#-%1$%=/#%-:=:>:2#%• .#$:$=2%*:$$'=%>#%$#2=#-%8:,=/'(0/%=/#5%*:$%>#%0)'("#-9%
Yl%
z#52='$#%+dH%='',%
• sudo keystone --os_username=novaUser --os_password=password --os_auth_url=http://IP:35357/v2.0 --os_tenant_id=serviceTenant user-list!
Y`%
S#2#:)*/#)%H$=#)#2=%8SHOHHH9%
• +'6",#=#%2#*()1=5%:$:,5212%'K%!"#$&=:*E%*'-#%>:2#%
– i(,$#):>1,17#2<%-5$:61*%:$:,5212<%='E#$%L#)1g*:7'$%
– &#*()#%":22F')-%2='):0#%
• H6",#6#$7$0%"#)%)#2'()*#%k('=:%
• 4'L1$0%(2#)2%8:$-%=/#1)%k('=:29%K)'6%'$#%:**'($=%='%:$'=/#)%
!"#$&=:*E%*'6"'$#$=2%
• z#52='$#%• I.'$(#*• T'L:%• T#=F')E1$0%8k(:$=(69%
• &F1j%
V,:$*#%
• +'$*#"=2%• V,:$*#%3NH%:$-%)#012=)5%2#)L#)%• H6:0#%2=:=(2%
• a12E%:$-%*'$=:1$#)%K')6:=2%
• V,:$*#%H6:0#%*:*/#%
• V,:$*#%+dH%='',%
YZ%
V,:$*#%816:0#%2#)L1*#9%*'$*#"=2%
• 3>1,1=5%='%2=')#%:$-%)#=)1#L#%L1)=(:,%6:*/1$#%16:0#2%
• 3>1,1=5%='%2=')#%:$-%)#=)1#L#%6#=:-:=:%:>'(=%=/#2#%L1)=(:,%6:*/1$#%16:0#2%
• +'66($1*:7'$%F1=/%V,:$*#%'**()2%L1:%:%SI&.O,1E#%Q..N%1$=#)K:*#B%
• H6:0#%*:*/#%K')%)($$1$0%:%*,(2=#)%'K%0,:$*#%2#)L#)2%
• V,:$*#%)#",1*:=')%
• V,:$*#%:)*/1=#*=()#%
– V,:$*#%3NH%2#)L#)<%-#K:(,=%"')=%[?[?%– V,:$*#%S#012=)5%2#)L#)<%-#K:(,=%"')=%[?[A%
• z#52='$#%1$=#0):7'$%
– 2#)L1*#m:-61$m(2#)<%2#)L1*#m":22F')-<%2#)L1*#m:-61$m)',#%
Y[%
V,:$*#%3NH%2#)L#)%
• S'(=#2%)#k(#2=2%K)'6%*,1#$=2%='%)#012=)1#2%'K%16:0#%6#=:-:=:%:$-%='%1=2%
>:*E#$-%2=')#2<%F/1*/%:)#%=/#%6#*/:$1262%>5%F/1*/%V,:$*#%:*=(:,,5%2:L#2%
1$*'61$0%L1)=(:,%6:*/1$#%16:0#2B%
• C:*E#$-%2=')#%F')E2%F1=/P%
– &F1j%• &F1j%12%=/#%/10/,5O:L:1,:>,#%'>]#*=%2='):0#%")']#*=%1$%!"#$&=:*EB%
– G1,#252=#6%%
• ./#%-#K:(,=%>:*E#$-%=/:=%V,:$*#%(2#2%='%2=')#%L1)=(:,%6:*/1$#%16:0#2%12%=/#%g,#252=#6%
>:*E#$-B%./12%216",#%>:*E#$-%F)1=#2%16:0#%g,#2%='%=/#%,'*:,%g,#252=#6B%
– &_%• ./12%>:*E#$-%:,,'F2%V,:$*#%='%2=')#%L1)=(:,%6:*/1$#%16:0#2%1$%36:\'$s2%&_%2#)L1*#B%
– Q..N%• V,:$*#%*:$%)#:-%L1)=(:,%6:*/1$#%16:0#2%=/:=%:)#%:L:1,:>,#%L1:%Q..N%2'6#F/#)#%'$%=/#%
H$=#)$#=B%./12%2=')#%12%)#:-'$,5B%
Z@%
V,:$*#%)#012=)5%2#)L#)%
• H6:0#%6#=:-:=:%6:-#%:L:1,:>,#%=/)'(0/%V,:$*#%*:$%>#%2=')#-%1$%16:0#%
Ç)#012=)1#2xB%
• H6:0#%)#012=)1#2%:)#%:$5%F#>%2#)L1*#%=/:=%:-/#)#2%='%=/#%V,:$*#%SI&.O,1E#%
3NH%K')%16:0#%6#=:-:=:B%
• V,:$*#%S#012=)5%3NH%
– 3$5%F#>%2#)L1*#%=/:=%"(>,12/#2%:$%3NH%=/:=%*'$K')62%='%=/#%K',,'F1$0%SI&.O,1E#%
3NH%2"#*1g*:7'$%*:$%>#%(2#-%>5%V,:$*#%:2%:%)#012=)5B%
ZA%
H6:0#%2=:=(2%
• H6:0#2%1$%0,:$*#%*:$%>#%1$%'$#%'K%=/#%K',,'F1$0%2=:=(2#2%
• queued!– ./#%16:0#%1-#$7g#)%/:2%>##$%)#2#)L#-%K')%:$%16:0#%1$%=/#%V,:$*#%)#012=)5B%T'%16:0#%-:=:%/:2%>##$%
(",':-#-%='%V,:$*#B%
• saving!– a#$'=#2%=/:=%:$%16:0#s2%):F%-:=:%12%*())#$=,5%>#1$0%(",':-#-%='%V,:$*#B%h/#$%:$%16:0#%12%)#012=#)#-%
F1=/%:%*:,,%='%qN!&.%b16:0#2q%:$-%=/#)#%12%:$%qMO16:0#O6#=:O,'*:7'$q%/#:-#)%")#2#$=<%=/:=%16:0#%F1,,%
$#L#)%>#%1$%=/#%q2:L1$0q%2=:=(2%8:2%=/#%16:0#%-:=:%12%:,)#:-5%:L:1,:>,#%1$%2'6#%'=/#)%,'*:7'$9B%
• active%%
– a#$'=#2%:$%16:0#%=/:=%12%K(,,5%:L:1,:>,#%1$%V,:$*#B%
• killed%%
– a#$'=#2%=/:=%:$%#))')%'**())#-%-()1$0%=/#%(",':-1$0%'K%:$%16:0#s2%-:=:<%:$-%=/:=%=/#%16:0#%12%$'=%
)#:-:>,#B%
• deleted!– V,:$*#%/:2%)#=:1$#-%=/#%1$K')6:7'$%:>'(=%=/#%16:0#<%>(=%1=%12%$'%,'$0#)%:L:1,:>,#%='%(2#B%3$%16:0#%1$%
=/12%2=:=#%F1,,%>#%)#6'L#-%:(='6:7*:,,5%:=%:%,:=#)%-:=#B%
• pending_delete!– ./12%12%2161,1:)%='%q-#,#=#-q<%/'F#L#)<%V,:$*#%/:2%$'=%5#=%)#6'L#-%=/#%16:0#%-:=:B%3$%16:0#%1$%=/12%
2=:=#%12%)#*'L#):>,#B%
Z?%
a12E%:$-%*'$=:1$#)%K')6:=2%
• h/#$%:--1$0%:$%16:0#%='%V,:$*#<%5'(%6:5%2"#*1K5%F/:=%=/#%L1)=(:,%6:*/1$#%16:0#s2%-12E%
K')6:=%:$-%*'$=:1$#)%K')6:=%:)#B%
• a12E%K')6:=%
– ./#%-12E%K')6:=%'K%:%L1)=(:,%6:*/1$#%16:0#%12%=/#%K')6:=%'K%=/#%($-#),51$0%-12E%16:0#B%i1)=(:,%
:"",1:$*#%L#$-')2%/:L#%-1U#)#$=%K')6:=2%K')%,:51$0%'(=%=/#%1$K')6:7'$%*'$=:1$#-%1$%:%L1)=(:,%
6:*/1$#%-12E%16:0#B%
• +'$=:1$#)%K')6:=%
– ./#%*'$=:1$#)%K')6:=%)#K#)2%='%F/#=/#)%=/#%L1)=(:,%6:*/1$#%16:0#%12%1$%:%g,#%K')6:=%=/:=%:,2'%
*'$=:1$2%6#=:-:=:%:>'(=%=/#%:*=(:,%L1)=(:,%6:*/1$#B%
Z_%
a12E%K')6:=2%
E'L*./12%12%:$%($2=)(*=()#-%-12E%16:0#%K')6:=%
FO4*./12%12%=/#%iQa%-12E%K')6:=<%:%*'66'$%-12E%K')6:=%(2#-%>5%L1)=(:,%6:*/1$#%6'$1=')2%K)'6%i4h:)#<%�#$<%41*)'2'j<%
i1)=(:,C'M<%:$-%'=/#)2%
F04)%%3$'=/#)%*'66'$%-12E%K')6:=%2(""')=#-%>5%6:$5%*'66'$%L1)=(:,%6:*/1$#%6'$1=')2%1$*,(-1$0%i6F:)#%
F4A*3%-12E%K')6:=%2(""')=#-%>5%i1)=(:,C'M%L1)=(:,%6:*/1$#%6'$1=')%:$-%=/#%JI4W%#6(,:=')%
A/-*3$%:)*/1L#%K')6:=%K')%=/#%-:=:%*'$=#$=2%'K%:$%'"7*:,%-12*%8#B0B%+aS!49B%
G(-LP*3%-12E%K')6:=%2(""')=#-%>5%=/#%JI4W%#6(,:=')%=/:=%*:$%#M":$-%-5$:61*:,,5%:$-%2(""')=2%+'"5%'$%h)1=#%
')A*./12%1$-1*:=#2%F/:=%12%2=')#-%1$%V,:$*#%12%:$%36:\'$%E#)$#,%16:0#%
'EA*./12%1$-1*:=#2%F/:=%12%2=')#-%1$%V,:$*#%12%:$%36:\'$%):6-12E%16:0#%
'0A*./12%1$-1*:=#2%F/:=%12%2=')#-%1$%V,:$*#%12%:$%36:\'$%6:*/1$#%16:0#%
Zl%
+'$=:1$#)%K')6:=2%
• ./#)#%:)#%=F'%6:1$%=5"#2%'K%*'$=:1$#)%K')6:=2P%!iG%:$-%36:\'$s2%34HB%H$%
:--17'$<%:%L1)=(:,%6:*/1$#%16:0#%6:5%/:L#%$'%*'$=:1$#)%K')6:=%:=%:,,%v%
>:21*:,,5<%1=s2%](2=%:%>,'>%'K%($2=)(*=()#-%-:=:%
• 'LK%
– ./12%12%=/#%!iG%*'$=:1$#)%K')6:=%821$0,#%')%6(,7",#%i42%1$%'$#%g,#e%+NW<%
6#6')5<%-12E<%2='):0#%)#k(1)#6#$=e%"')=:>,#9%
• >:)#%
– ./12%1$-1*:=#2%=/#)#%12%$'%*'$=:1$#)%')%6#=:-:=:%#$L#,'"#%K')%=/#%16:0#%
• :E1%
– ./12%1$-1*:=#2%F/:=%12%2=')#-%1$%V,:$*#%12%:$%36:\'$%E#)$#,%16:0#%
• :)1%
– ./12%1$-1*:=#2%F/:=%12%2=')#-%1$%V,:$*#%12%:$%36:\'$%):6-12E%16:0#%
• :61%
– ./12%1$-1*:=#2%F/:=%12%2=')#-%1$%V,:$*#%12%:$%36:\'$%6:*/1$#%16:0#%
Z`%
V,:$*#%16:0#%*:*/#%
• 4(,7",#%0,:$*#%3NH%2#)L#)2%*:*/#%16:0#%
– /c"Pbb-'*2B'"#$2=:*EB')0b-#L#,'"#)b0,:$*#b*:*/#B/=6,%
• H$*)#:2#-%2*:,:>1,1=5%-(#%='%1$*)#:2#-%$(6>#)%'K%#$-"'1$=2%2=')1$0%:%g,#<%
:--)#22%"'=#$7:,%$#=F')E%*'$0#27'$%122(#2B%
– +:*/#%6:M16(6%21\#%8$'=%k(1=#9%
• !"#):7'$2%
– N)#OK#=*/%16:0#2%1$='%*:*/#<%)#6'L#%16:0#2%K)'6%*:*/#%8(21$0%*)'$9%
ZX%
V,:$*#%+dH%='',%
• IM:6",#2%
– sudo glance --os_username=novaUser --os_password=password --os_auth_url=http://9.59.226.107:35357/v2.0 --os_tenant=serviceTenant index%
ZY%
!"#$&=:*E%*'6"'$#$=2%
• z#52='$#%• V,:$*#%• <-F'*• T#=F')E1$0%8k(:$=(69%
• &F1j%
T'L:%8*'6"(=#9%
• S:>>1=4J%
• &*/#-(,#)%• N)'L121'$1$0%")'*#22%• +)#:=#%2#)L#)%*'6",#=#%F')E~'F%8I22#M9%
• &'6#%")'L121'$1$0%"#)K')6:$*#%$(6>#)2%K')%-1U#)#$=%
!"#$&=:*E%*'$g0():7'$2%
34JN%")'='*',%
• 3-L:$*#-%4#22:0#%J(#(1$0%N)'='*',%
/c"2Pbb#$BF1E1"#-1:B')0bF1E1b3-L:$*#-m4#22:0#mJ(#(1$0mN)'='*',%[@%
S:>>1=4J%8W>($=(9<%JNHa%8SQId9%
• S:>>1=4J%12%:%6#22:0#%>)'E#)%:"",1*:7'$%=/:=%:**#"=2%:$-%K')F:)-2%6#22:0#2%>#=F##$%
:"",1*:7'$2%
• S:>>1=4J%12%:%"'2='|*#<%:%"'2=>'M<%:$-%:%"'2=6:$B%%
• H6",#6#$=2%:$-%)($2%34JN%")'='*',%
• N)'-(*#)P%:%")'0):6%=/:=%2#$-2%6#22:0#2%12%:%")'-(*#)%
• J(#(#P%$:6#%'K%:%6:1,>'M%=/:=%,1L#2%1$21-#2%S:>>1=4J%
– 4:$5%")'-(*#2%*:$%F)1=#%='%'$#%k(#(#<%6:$5%*'$2(6#)2%*:$%)#:-%%
K)'6%'$#%k(#(#%
• +'$2(6#)P%:%")'0):6%=/:=%F:1=2%='%)#*#1L#%6#22:0#2%
• IM*/:$0#P%:%")'-(*#)%'$,5%2#$-2%6#22:0#%='%:$%#M*/:$0#<%$#L#)%='%:%k(#(#%
– h/5}%+:$%/:$-,#%6(,7",#%k(#(#2%
– 3j#)%*)#:7$0%#M*/:$0#<%:$-%k(#(#2<%>1$-%=/#%k(#(#2%='%=/#%#M*/:$0#B%
%
Reference: http://www.rabbitmq.com/tutorials/tutorial-one-python.html [A%
S:>>1=4J%*'$=-%
• IM*/:$0#%=5"#2P%
– -1)#*=<%='"1*<%/#:-#)2<%K:$'(=%
– G:$'(=P%2#$-%6#22:0#%='%:,,%k(#(#2%
%
– a1)#*=P%6#22:0#%)'(7$0%>:2#-%'$%:%21$0,#%*)1=#)1:%
– .'"1*2P%6#22:0#%%%
http://www.rabbitmq.com/tutorials/tutorial-three-python.html
! SN+%*:,,2%
[?%
S:>>1=4J%*'$=-%
• d12=%:,,%#M*/:$0#2%
– sudo rabbitmqctl list_exchanges
• A%K:$'(=%#M*/:$0#%"#)%*'6"'$#$=%
$#=F')EmK:$'(=<%2*/#-(,#)mK:$'(=<%
*'6"(=#mK:$'(=<%R%
• A%='"1*%#M*/:$0#%$'L:%='"1*%
• d12=%:,,%k(#(#2%
– sudo rabbitmqctl list_queues
• d12=%:,,%>1$-1$02%
– sudo rabbitmqctl list_bindings
/c"PbbFFFB):>>1=6kB*'6b6:$b):>>1=6k*=,BAB6:$B/=6,%
[_%
S:>>1=4J%1$%!"#$&=:*E%
• /c"Pbb$'L:B'"#$2=:*EB')0b-#L)#Kb):>>1=B/=6,%
• !"#$&=:*E%(2#2%='"1*%>:2#-%#M*/:$0#%8$'L:9%:$-%K:$%'(=%#M*/:$0#2%K')%
*'6"'$#$=2%8*'6"(=#<%k(:$=(6<%2*/#-(,#)<%*1$-#)9%
3NH%2#)L#)%
8$'L:O:"19%
&*/#-(,#)%
8$'L:O2*/#-(,#)9%
*'6"(=#%
8$'L:O
*'6"(=#9%
*'6"(=#%
8$'L:O
*'6"(=#9%
*'6"(=#%
8$'L:O
*'6"(=#9%
k(:$=(6%
(-0"3&#*+$-F'Q(-0"3*
*1$-#)%
!"#$&=:*E%3NH%
REST AMQP
AMQP
AMQP
AMQP
[l%
&*/#-(,#)%
• "#)1'-1*m1$=#)L:,<%X@2%t%
• )#"')=m1$=#)L:,<%A@2%t%
• I:*/%*'6"(=#%$'-#%("-:=#%1=2%2=:=(2%L1:%34JN%#L#)5%
"#)1'-1*m1$=#)L:,%')%("'$%1$2=:$*#%*)#:7'$%:$-%-#,#7'$B%./#5%:)#%
2=')#-%1$%6#6')5B%
– T'=%(2:0#%1$K')6:7'$<%](2=%1$2=:$*#%")'L121'$#-%)#2'()*#%:,,'*:7'$2%
– +')',,:)5P%1K%2*/#-(,#)%-1#2<%:,,%1$K')6:7'$%12%,'2=%($7,%
"#)1'-1*m1$=#)L:,B%
– 4(,7",#%2*/#-(,#)2%*:$%>#%2=:)=#-B%Q'F#L#)<%1$K')6:7'$%12%$'=%
25$*/)'$1\#-B%
• I:*/%2#)L1*#%("-:=#%1=2%,:2=%)#"')=#-%76#%(21$0%)#"')=m1$=#)L:,B%
• &*/#-(,#)%6:E#2%:%-#*121'$%>:2#-%'$%1$O6#6')5%1$K')6:7'$%
)#*#1L#-%L1:%34JNB%
[`%
t%H$=#)L:,2%:)#%K')%I22#M%)#,#:2#B%
&*/#-(,#)%
• G1,=#)%2*/#-(,#)%8-#K:(,=%K')%*'6"(=#9%
• +/:$*#%2*/#-(,#)%8-#K:(,=%K')%L',(6#9%
• 4(,7%2*/#-(,#)%8='%2"#*1K5%-1U#)#$=%2*/#-(,#)2%K')%*'6"(=#%:$-%L',(6#9%
• &16",#%2*/#-(,#)%
• IL',(7'$%
– a1:>,'P%*/:$*#%2*/#-(,#)%K')%*'6"(=#%:$-%L',(6#%
– I22#MP%g,=#)%2*/#-(,#)%K')%*'6"(=#<%*/:$*#%K')%L',(6#%8*1$-#)9%
[X%
scheduler_driver=nova.scheduler.multi.MultiScheduler!volume_scheduler_driver=nova.scheduler.chance.ChanceScheduler!compute_scheduler_driver=nova.scheduler.filter_scheduler.FilterScheduler!scheduler_available_filters=nova.scheduler.filters.standard_filters!scheduler_default_filters=AvailabilityZoneFilter,RamFilter,ComputeFilter!least_cost_functions=nova.scheduler.least_cost.compute_fill_first_cost_fn!compute_fill_first_cost_fn_weight=-1.0!
G1,=#)%2*/#-(,#)%8Ab?9%
• !"#):=#2%'$%=/#%1$K')6:7'$%)#*#1L#-%L1:%34JN%
• .F'%2=#"2%
– &.IN%AP%3"",1#2%g,=#)2%K')%-#=#)61$1$0%/'2=2%K')%*'$21-#):7'$%F/#$%-12":=*/1$0%:%)#2'()*#%
– &.IN%?P%./#%g,=#)#-%/'2=2%:)#%=/#$%2#,#*=#-%:**')-1$0%='%*'2=%:$-%F#10/=%:,0')1=/6%
• &.IN%AP%G1,=#)2%
– &"#*1g#-%1$%$'L:B*'$K%
• 2*/#-(,#)m:L:1,:>,#mg,=#)2{$'L:B2*/#-(,#)Bg,=#)2B2=:$-:)-mg,=#)2%
• 2*/#-(,#)m:L:1,:>,#mg,=#)2{65g,=#)B45G1,=#)%
• 2*/#-(,#)m-#K:(,=mg,=#)2{3L:1,:>1,1=5Ñ'$#G1,=#)<S:6G1,=#)<+'6"(=#G1,=#)%
– 3L:1,:>1,1=5%\'$#%g,=#)%
– +'6"(=#%g,=#)%
• +/#*E%1K%:$%1$2=:$*#%F1=/%:%~:L')%*:$%>#%2=:)=#-%
– +')#%g,=#)%
• +/#*E%1K%2(|*1#$=%+NW%*')#2%:L:1,:>,#B%!=/#)F12#<%:%2*/#-(,#)%6:5%'L#)")'L121'$%:%/'2=B%
– H2',:=#-%g,=#)%
• a#g$#2%:%2#=%'K%12',:=#-%16:0#2%:$-%/'2=2%2(*/%=/:=%12',:=#-%16:0#2%*:$%'$,5%)($%'$%12',:=#-%/'2=2B%
– S:6%g,=#)%
• &*/#-(,#2%1$2=:$*#2%1K%=/#)#%12%2(|*1#$=%S34%:L:1,:>,#B%HK%$'=%2#=<%=/#%2*/#-(,#)%6:5%'L#)")'L121'$%:%/'2=B%
a#K:(,=%12%AB`B%
[Y%
G1,=#)%2*/#-(,#)%8?b?9%
• G1,=#)2%R%
– a1U#)#$=%/'2=%g,=#)%
• &*/#-(,#%=/#%1$2=:$*#%'$%:%-1U#)#$=%/'2=%K)'6%:%2#=%'K%1$2=:$*#2%
• &"#*1K5%(21$0%2*/#-(,#)m/1$=%
– &:6#%/'2=%g,=#)%
• &*/#-(,#%=/#%1$2=:$*#%'$%2:6#%/'2=%:2%'=/#)%2#=%'K%1$2=:$*#2%
– &16",#%+HaS%:|$1=5%g,=#)%
• &*/#-(,#%=/#%1$2=:$*#%>:2#-%'$%/'2=%HN%')%2(>$#=%):$0#%
%
– &.IN%?P%3"",51$0%=/#%*'2=%K($*7'$%
• G1,,%'$#%/'2=%g)2=%>:2#-%'$%K)##%6#6')5B%*'6"(=#mg,,mg)2=m*'2=mK$mF#10/={AB@%
• &")#:-%:)'($-B%*'6"(=#mg,,mg)2=m*'2=mK$mF#10/={OAB@%8:%$#0:7L#%L:,(#9%
[Z%
'2P2*/#-(,#)m/1$=2sP%Ö%
%%%%%%%%s-1U#)#$=m/'2=sP%Üs:@*K@_:`O-[?AOlZYYO>>`*OZX-?X*KZAZ#As<%
%%%%%%%%%%%%%%%%%%%%%%%%%%%sZ*A[AYlKOl??@OllK@OZ?l:O*-A###KA@?ZYsá<%
%%%%à%
s'2P2*/#-(,#)m/1$=2sP%Ö%
%%%%%%%%s>(1,-m$#:)m/'2=m1"sP%sA[?BAXZBABAs<%
%%%%%%%%s*1-)sP%s?ls%
%%%%à%
!=/#)%2*/#-(,#)2%
• +/:$*#%2*/#-(,#)%– S:$-'6,5%2#,#*=2%K)'6%=/#%,12=%'K%g,=#)#-%/'2=2%
• 4(,7%2*/#-(,#)%
– Q',-2%6(,7",#%2*/#-(,#)2<%'$#%K')%$'L:O*'6"(=#<%'$#%K')%$'L:O
L',(6#%
– .'"%,#L#,%2*/#-(,#)%2"#*1g#-%>5%=/#%2*/#-(,#)m-)1L#)%'"7'$%• &16",#%2*/#-(,#)%
– .)1#2%='%g$-%=/#%,#:2=%,':-#-%/'2=%
[[%
S#2#:)*/#)%H$=#)#2=%8SHOHi9%
• 3-L:$*#-%2*/#-(,#)%=/:=%1$*')"'):=#2%6'$1=')1$0%:$-%
2(""')=2%,1L#%610):7'$%
– N#)O(2#)%2*/#-(,1$0%
N)'L121'$1$0%")'*#22%8g)2=%16:0#9%%
8A9 +'"5%16:0#%'L#)%$#=F')E%K)'6%0,:$*#%='%"/521*:,%2#)L#)%-1)#*=')5%Ü')101$:,%16:0#á%
– bL:)b,1>b$'L:b1$2=:$*#2bm>:2#%8*:$%>#%6'($=#-%'L#)%TG&9%
8?9 +'$L#)=%16:0#%='%):F%81K%$'=%:,)#:-5<%*'$g0():>,#9%8k#6(O160%*'$L#)=%v!%R9%
8_9 a#,#=#%Ü')101$:,%16:0#á%
8l9 +)#:=#%:%*'"5%'K%=/#%=/#%16:0#%K)'6%8?9%8(21$0%*"9%Ü~:L')%16:0#á%
8`9 S#21\#%Ü~:L')%16:0#á%='%:%~:L')%8k#6(O160%)#21\#%R9%
8X9 G1,#%252=#6%*/#*E%8#?K2*E9%'$%Ü~:L')%16:0#á%
8Y9 S#21\#%='%g,#%252=#6%8)#21\#?K29%Ü~:L')%16:0#á%
8Z9 +)#:=#%:$%1$2=:$*#%-12*%K)'6%=/#%Ü~:L')%16:0#á%
– k#6(O160%*)#:=#%OK%k*'F?%O'%*,(2=#)m21\#{?4<>:*E1$0mg,#{bL:)b,1>b$'L:b1$2=:$*#2bm>:2#b
`l-XK#_Y[_:@?#A?A*A#@@ZYA[:KZZ[ZK`Z-`lAZmA@%bL:)b,1>b$'L:b1$2=:$*#2b1$2=:$*#O@@@@@@@Kb-12E%
8[9 +)#:=#%:$%#"/#6#):,%-12E%16:0#%
– k#6(O160%*)#:=#%OK%):F%bL:)b,1>b$'L:b1$2=:$*#2bm>:2#b#"/#6#):,m@m?@mT'$#%
8A@9 4:E#%g,#252=#6%'$%=/12%-12E%
– 6EK2B#M=_%Od%#"/#6#):,@%OG%bL:)b,1>b$'L:b1$2=:$*#2bm>:2#b#"/#6#):,m@m?@mT'$#%
8AA9%+)#:=#2%:%-12E%K')%=/#%1$2=:$*#%
– k#6(O160%*)#:=#%OK%k*'F?%O'%*,(2=#)m21\#{?4<>:*E1$0mg,#{bL:)b,1>b$'L:b1$2=:$*#2bm>:2#b#"/#6#):,m@m?@mT'$#%bL:)b,1>b$'L:b
1$2=:$*#2b1$2=:$*#O@@@@@@@Kb-12EB,'*:,%
N)'L121'$1$0%")'*#22%8g)2=%16:0#9%v%":1$%"'1$=2%
• T'%16:0#%:F:)#%")'L121'$1$0%
• +'"5%16:0#%'L#)%=/#%$#=F')E%
• +'$L#)=%16:0#%='%):F%
• +)#:=#%:%*'"5%'K%):F%16:0#%K')%:%":)7*(,:)%~:L')%
N)'L121'$1$0%")'*#22%82#*'$-%16:0#<%-1U#)#$=%
~:L')9%%
8A9 +'"5%16:0#%'L#)%$#=F')E%K)'6%0,:$*#%='%"/521*:,%2#)L#)%-1)#*=')5%Ü')101$:,%16:0#á%
– bL:)b,1>b$'L:b1$2=:$*#2bm>:2#%
8?9 +'$L#)=%16:0#%='%):F%81K%$'=%:,)#:-5<%*'$g0():>,#9%8k#6(O160%*'$L#)=%v!%R9%
8_9 a#,#=#%Ü')101$:,%16:0#á%
8l9 +)#:=#%:%*'"5%'K%=/#%=/#%16:0#%K)'6%8?9%8(21$0%*"9%Ü~:L')%16:0#á%
8`9 S#21\#%Ü~:L')%16:0#á%='%:%~:L')%8k#6(O160%)#21\#%R9%
8X9 G1,#%252=#6%*/#*E%8#?K2*E9%'$%Ü~:L')%16:0#á%
8Y9 S#21\#%='%g,#%252=#6%8)#21\#?K29%Ü~:L')%16:0#á%
8Z9 +)#:=#%:$%1$2=:$*#%-12*%K)'6%=/#%Ü~:L')%16:0#á%
– k#6(O160%*)#:=#%OK%k*'F?%O'%*,(2=#)m21\#{?4<>:*E1$0mg,#{bL:)b,1>b$'L:b1$2=:$*#2bm>:2#b
`l-XK#_Y[_:@?#A?A*A#@@ZYA[:KZZ[ZK`Z-`lAZmA@%bL:)b,1>b$'L:b1$2=:$*#2b1$2=:$*#O@@@@@@@Kb-12E%
8[9 +)#:=#%:$%#"/#6#):,%-12E%16:0#%
– k#6(O160%*)#:=#%OK%):F%bL:)b,1>b$'L:b1$2=:$*#2bm>:2#b#"/#6#):,m@m?@mT'$#%
8A@9 4:E#%g,#252=#6%'$%=/12%-12E%
– 6EK2B#M=_%Od%#"/#6#):,@%OG%bL:)b,1>b$'L:b1$2=:$*#2bm>:2#b#"/#6#):,m@m?@mT'$#%
8AA9%+)#:=#2%:%-12E%K')%=/#%1$2=:$*#%
– k#6(O160%*)#:=#%OK%k*'F?%O'%*,(2=#)m21\#{?4<>:*E1$0mg,#{bL:)b,1>b$'L:b1$2=:$*#2bm>:2#b#"/#6#):,m@m?@mT'$#%bL:)b,1>b$'L:b
1$2=:$*#2b1$2=:$*#O@@@@@@@Kb-12EB,'*:,%
N)'L121'$1$0%")'*#22%82#*'$-%16:0#<%-1U#)#$=%
~:L')9%v%":1$%"'1$=2%
• T'%16:0#%:F:)#%")'L121'$1$0%
• +)#:=#%:%*'"5%'K%):F%16:0#%K')%:%":)7*(,:)%~:L')%
N)'L121'$1$0%")'*#22%82#*'$-%16:0#<%2:6#%
~:L')9%%
8A9 +'"5%16:0#%'L#)%$#=F')E%K)'6%0,:$*#%='%"/521*:,%2#)L#)%-1)#*=')5%Ü')101$:,%16:0#á%
– bL:)b,1>b$'L:b1$2=:$*#2bm>:2#%
8?9 +'$L#)=%16:0#%='%):F%81K%$'=%:,)#:-5<%*'$g0():>,#9%8k#6(O160%*'$L#)=%v!%R9%
8_9 a#,#=#%Ü')101$:,%16:0#á%
8l9 +)#:=#%:%*'"5%'K%=/#%=/#%16:0#%K)'6%8?9%8(21$0%*"9%Ü~:L')%16:0#á%
8`9 S#21\#%Ü~:L')%16:0#á%='%:%~:L')%8k#6(O160%)#21\#%R9%
8X9 G1,#%252=#6%*/#*E%8#?K2*E9%'$%Ü~:L')%16:0#á%
8Y9 S#21\#%='%g,#%252=#6%8)#21\#?K29%Ü~:L')%16:0#á%
8Z9 +)#:=#%:$%1$2=:$*#%-12*%K)'6%=/#%Ü~:L')%16:0#á%
– k#6(O160%*)#:=#%OK%k*'F?%O'%*,(2=#)m21\#{?4<>:*E1$0mg,#{bL:)b,1>b$'L:b1$2=:$*#2bm>:2#b
`l-XK#_Y[_:@?#A?A*A#@@ZYA[:KZZ[ZK`Z-`lAZmA@%bL:)b,1>b$'L:b1$2=:$*#2b1$2=:$*#O@@@@@@@Kb-12E%
8[9 +)#:=#%:$%#"/#6#):,%-12E%16:0#%
– k#6(O160%*)#:=#%OK%):F%bL:)b,1>b$'L:b1$2=:$*#2bm>:2#b#"/#6#):,m@m?@mT'$#%
8A@9 4:E#%g,#252=#6%'$%=/12%-12E%
– 6EK2B#M=_%Od%#"/#6#):,@%OG%bL:)b,1>b$'L:b1$2=:$*#2bm>:2#b#"/#6#):,m@m?@mT'$#%
8AA9%+)#:=#2%:%-12E%K')%=/#%1$2=:$*#%
– k#6(O160%*)#:=#%OK%k*'F?%O'%*,(2=#)m21\#{?4<>:*E1$0mg,#{bL:)b,1>b$'L:b1$2=:$*#2bm>:2#b#"/#6#):,m@m?@mT'$#%bL:)b,1>b$'L:b
1$2=:$*#2b1$2=:$*#O@@@@@@@Kb-12EB,'*:,%
N)'L121'$1$0%")'*#22%,161=:7'$2%
• H6:0#%12%*'"1#-%'L#)%$#=F')E%
• 3%K(,,%*'"5%'K%16:0#%$##-2%='%>#%:L:1,:>,#%>#K')#%")'L121'$1$0%*:$%2=:)=%
• m>:2#%-1)#*=')5%'K%:,,%"/521*:,%2#)L#)2%*:$%>#%6'($=#-%'L#)%TG&%8')%'=/#)9%
– T'%$#=F')E%*'"5%– d#L#):0#%6:$5%i42%(21$0%=/#%2:6#%16:0#B%H6:0#%*'$L#)21'$2%='%~:L')2%*:$%
>#%61$161\#-B%
– N'=#$7:,%"#)K')6:$*#%/1=%-(#%='%16:0#%>,'*E%K#=*/1$0%'L#)%$#=F')EB%h1,,%>#%
6#:2()#-%:2%":)=%'K%>#$*/6:)E1$0%#U')=B%
– m>:2#%*,#:$%("B%a12:>,#-%>5%-#K:(,=B%.16#)2%:)#%-#g$#-B%
• h/:=%12%=/#%16":*=%'$%"#)K')6:$*#%1K%16:0#2%:$-%i4%-12E2%:)#%>'=/%1$%
&3T}%
– T##-2%='%>#%6#:2()#-%
+)#:=#%2#)L#)%*'6",#=#%6#22:0#%~'F%
• H$=#)*#"=%252=#6%:$-%,1>):)5%*:,,2%K')%:,,%'"#$2=:*E%
*'6"'$#$=2%
• S($%*'$=)',,#)%:$-%*'6"(=#%$'-#%'$%=/#%2:6#%"/521*:,%2#)L#)%
• N)'*#22%=/#%,'02%='%*)#:=#%=/#%~'F%
• &/'F%~'F%
i4%+)#:=#%'"#):7'$%8Ab?9%
!"#E'?-$* RE-(#//* SA'=.-* 9//#T*
&IdI+.%8='=:,9% E#52='$#% l_[% [Z%
T'L:O:"1% A@% `%
T'L:O*'6"(=#% A@% `%
T'L:O$#=F')E% A?% AX%
T'L:O2*/#-(,#)% A% ?%
V,:$*#O)#012=)5% X% l%
&IdI+.%8F1=/%;!HT9% T'L:O:"1% Al% @%
T'L:O*'6"(=#% A% A%
T'L:O$#=F')E% A% A%
V,:$*#O)#012=)5% X% l%
HT&IS.% T'L:O:"1% _% _%
T'L:O$#=F')E% A% A%
E#52='$#% @% _%
WNa3.I% T'L:O:"1% A% A%
T'L:O*'6"(=#% `% X%
T'L:O$#=F')E% l% l%
T'L:O2*/#-(,#)% @% A%
a):27*%-#*)#:2#%1$%E#52='$#%k(#)1#2%K)'6%a1:>,'%='%I22#M%8E#52='$#%='E#$%L#)1g*:7'$9%
!"#E'?-$* RE-(#//* SA'=.-* 9//#T*
2#$-89% E#52='$#% _A% ?X%
T'L:O:"1% ?Y% AY%
T'L:O*'6"(=#% l[% A[%
T'L:O$#=F')E% A[% AZ%
T'L:O2*/#-(,#)% A?% A?%
V,:$*#O:"1% ?Z% A_%
V,:$*#O)#012=)5% ?A% [%
)#*L89% E#52='$#% _A% A_%
T'L:O:"1% A[% A?%
T'L:O*'6"(=#% l% Al%
T'L:O$#=F')E% A?% AA%
T'L:O2*/#-(,#)% Z% Z%
V,:$*#O:"1% ?Z% AZ%
V,:$*#O)#012=)5% ?A% Al%
&#$-89%):>>1=% T'L:O:"1% AZ% AZ%
T'L:O*'6"(=#% AA% AA%
T'L:O$#=F')E% A[% AZ%
T'L:O2*/#-(,#)% A?% A?%
S#*L89%S:>>1=% T'L:O:"1% Al% Al%
T'L:O*'6"(=#% Y% Y%
T'L:O$#=F')E% A?% AA%
T'L:O2*/#-(,#)% Z% Z%
IL:,(:7'$%'K%-1U#)#$=%!"#$&=:*E%*'$g0():7'$2%
• IL:,(:=#%=/#%")'L121'$1$0%"#)K')6:$*#%K')%-1U#)#$=%!"#$&=:*E%
*'$g0():7'$2B%
• H$%!"#$&=:*E%Ç-#K:(,=x%*'$g0():7'$<%k*'F?%16:0#%12%*'"1#-%'L#)%=/#%
$#=F')E%='%=/#%/5"#)L12')<%*'$L#)=#-%1$='%):F<%:$-%=/#$%:%*'"5%'K%=/#%
16:0#%12%*)#:=#-%K)'6%F/1*/%=/#%i42%:)#%")'L121'$#-B%
• IM",')#%+3/A$D*(-$CD3E'?-$*"'E'0#&#E/U*$-*(O'$D#*&-*/-3E(#*(-4#1*– h/:=%12%=/#%")'L121'$1$0%"#)K')6:$*#%F/#$%16:0#%12%$'=%*'$L#)=#-%='%):F}%
– h/:=%12%=/#%")'L121'$1$0%"#)K')6:$*#%F/#$%16:0#2%:)#%2=')#-%'$%:%$#=F')E%
-)1L#<%2(*/%:2%TG&%')%1&+&H}%
S#2(,=2%NOE##*(-$CD3E'?-$/*• C:2#%*'$g0():7'$P%H6:0#%12%*'"1#-%'L#)%$#=F')E<%*'$L#)=#-%='%):F<%:$-%
16:0#%*:*/#%'K%*'6"(=#%$'-#%"'"(,:=#-%
• T'%):FP%H6:0#%12%*'"1#-%'L#)%$#=F')E<%T!.%*'$L#)=#-%='%):F<%:$-%
*:*/#-%'$%*'6"(=#%$'-#B%3%*/:1$%'K%k*'F?%g,#2%12%)#k(1)#-B%
• TG&P%&/:)#-%6'($=#-%-1)#*=')5%"'"(,:=#-%F1=/%16:0#2<%TG&%G&O*:*/#%12%
#$:>,#-B%
V$/ADO&/*• N)'L121'$1$0%"#)K')6:$*#%12%2161,:)<%F/#$%16:0#2%:)#%*:*/#-%'$%:%
*'6"(=#%$'-#%:$-%F/#$%16:0#2%:)#%2=')#-%1$%:%2#)L#)%16:0#%*:*/#<%:$-%
K#=*/#-%'L#)%TG&%F1=/%G&O*:*/#%#$:>,#-B%
• H$%=/#%>:2#%*'$g0():7'$<%>5%$'=%K')*1$0%:%k*'F?%16:0#%='%):F<%
:"")'M16:=#,5<%l@n%76#%12%2:L#-%8$'=%2/'F$%1$%g0()#9B%%CN"8$>$*=%'(4,%")?"+%#.6%(.>$%3.:%*2+?#$%)$*&"*#.+/$;G%
• .16#%='%2=:)=%:%7$5%:$-%,:)0#%16:0#%12%:,6'2=%=/#%2:6#%F/#$%16:0#2%:)#%
*:*/#-B%
• h/#$%TG&%6'($=#-%m>:2#%-'#2%$'=%/:L#%=/#%16:0#<%1=%=:E#2%_`O`@n%
6')#%76#%='%")'L121'$%g)2=%1$2=:$*#%:2%*'6":)#-%='%=/#%2*#$:)1'%F/#$%
16:0#%12%*'"1#-%'L#)%=/#%$#=F')E%8$'=%2/'F$%1$%g0()#9%
137
29.4 29.4
0
50
100
150
Base configuration
Base configuration
no raw
NFS
1382.2
37 33.2 0
500
1000
1500
Base configuration
Base configuration
no raw
NFS
H6:0#%21\#%8ABYVC9%
H6:0#%21\#%8AAVC9%
Average of five runs
!"#$&=:*E%$#=F')E1$0%AB@%
• 4:$:0#-%=/)'(0/%$'L:O$#=F')E%
– S($2%'$%:%*'$=)',,#)%')%*'6"(=#%/'2=%81$%Q3%*'$g0():7'$9%
• G,:=%$#=F')E1$0%
• G,:=%$#=F')E1$0%F1=/%aQ+N%
• id3T%$#=F')E1$0%
• G1M#-%L2B%G,':7$0%HN%:--)#22#2%
• 4(,7",#%TH+2%K')%1$2=:$*#2%
• 4#=:-:=:%2#)L1*#%
• Q10/%:L:1,:>1,1=5%
!"#$&=:*E%$#=F')E1$0%AB@%
• G,:=%$#=F')E1$0%– 3-61$12=):=')%2"#*1g#2%:%2(>$#=%
• G,:=%aQ+N%– 3-61$12=):=')%2"#*1g#2%:%2(>$#=%:$-%*'$g0()#2%:%aQ+N%2#)L#)%
8-$26:2k9%='%:2210$%gM#-%HN2%='%i42%
• id3T%$#=F')E1$0%– N#)%")']#*=%– V#=2%:%):$0#%'K%HN%:--)#22#2%=/:=%:)#%'$,5%L121>,#%1$21-#%id3T%
G,:=%$#=F')E1$0<%:,,%1$%'$#%2#)L#)%1$2=:,,:7'$%
• $'L:O$#=F')E%)($2%'$%*'$=)',,#)%
&'()*#P%!"#$&=:*E%-'*(6#$=:7'$%
G,:=%$#=F')E<%21$0,#%1$=#)K:*#<%6(,7",#%2#)L#)2%
• $'L:O$#=F')E%)($2%'$%*'$=)',,#)%
G,:=%$#=F')E<%6(,7",#%1$=#)K:*#2<%6(,7",#%
2#)L#)2%
• $'L:O$#=F')E%)($2%'$%*'$=)',,#)%
3,,%":*E#=2%-#27$#-%K')%'(=21-#%$#=F')E%:)#%2#$=%='%*'$=)',,#)B%&1$0,#%"'1$=%'K%K:1,()#B%
!"#$&=:*E%$#=F')E1$0%AB@P%Q3%6'-#%
• I:*/%/'2=%"#)K')62%=/#%$#=F')E1$0%]'>%'K%*#$=):,1\#-%*'$=)',,#)%
/c"Pbb-'*2B'"#$2=:*EB')0b=)($Eb'"#$2=:*EO*'6"(=#b:-61$b*'$=#$=b#M127$0O/:O$#=F')E1$0O'"7'$2B/=6,%
!"#$&=:*E%$#=F')E1$0%AB@P%6(,7$1*2%K')%i42%
• G,:=aQ+N%*'$g0():7'$%
/c"Pbb-'*2B'"#$2=:*EB')0b=)($Eb'"#$2=:*EO*'6"(=#b:-61$b*'$=#$=b(21$0O6(,7O$1*2B/=6,%
!"#$&=:*E%$#=F')E1$0%?B@P%J(:$=(6%
• V':,2%– S1*/%=#$:$=OK:*1$0%3NH%K')%-#g$1$0%1$%=/#%*,'(-%
• $#=F')E%='"','05%• 3--)#221$0%
• 3)*/1=#*=()#%– k(:$=(6O2#)L#)%82161,:)%='%*#$=):,%$'L:O$#=F')E9%
– ",(01$%:0#$=%• )($2%'$%#:*/%/5"#)L12')%='%"#)K')6%L1)=(:,%2F1=*/%*'$g0():7'$%
• H$=#):*=%F1=/%2#)L#)%=/)'(0/%S:>>1=%– -/*"%:0#$=%
• ")'L1-#2%-/*"%2#)L1*#2%='%=#$:$=%$#=F')E2B%&:6#%K')%:,,%=#$:$=2%
– ,_%:0#$=%• ")'L1-#2%d_bT3.%K')F:)-1$0%K')%i4%#M=#)$:,%$#=F')E%:**#22B%&:6#%K')%:,,%=#$:$=2%
– .($$#,1$0<%=($$#,1$0<%=($$#,1$0R%8VSI9%
!"#$&=:*E%$#=F')E1$0%?B@P%J(:$=(6%
/c"Pbb-'*2B'"#$2=:*EB')0b=)($Eb'"#$2=:*EO$#=F')Eb:-61$b*'$=#$=b*'$$#*7L1=5B/=6,%
J(:$=(6%-#",'56#$=%(2#%*:2#2%
• &1$0,#%~:=%$#=F')E%• 4(,7",#%~:=%$#=F')E%
• 41M#-%~:=%:$-%")1L:=#%$#=F')E%
• N)'L1-#)%)'(=#)%F1=/%")1L:=#%$#=F')E2%• N#)O=#$:$=%)'(=#)%F1=/%")1L:=#%$#=F')E2%
&1$0,#%~:=%$#=F')E%
/c"Pbb-'*2B'"#$2=:*EB')0b=)($Eb'"#$2=:*EO$#=F')Eb:-61$b*'$=#$=b(2#m*:2#2m21$0,#m~:=B/=6,%
4(,7",#%~:=%$#=F')E%
/c"Pbb-'*2B'"#$2=:*EB')0b=)($Eb'"#$2=:*EO$#=F')Eb:-61$b*'$=#$=b(2#m*:2#2m6(,7m~:=B/=6,%
41M#-%~:=%:$-%")1L:=#%$#=F')E%
/c"Pbb-'*2B'"#$2=:*EB')0b=)($Eb'"#$2=:*EO$#=F')Eb:-61$b*'$=#$=b(2#m*:2#2m61M#-B/=6,%
N)'L1-#)%)'(=#)%F1=/%")1L:=#%$#=F')E2%
/c"Pbb-'*2B'"#$2=:*EB')0b=)($Eb'"#$2=:*EO$#=F')Eb:-61$b*'$=#$=b(2#m*:2#2m21$0,#m)'(=#)B/=6,%
N#)O=#$:$=%)'(=#)2%F1=/%")1L:=#%$#=F')E2%
/c"Pbb-'*2B'"#$2=:*EB')0b=)($Eb'"#$2=:*EO$#=F')Eb:-61$b*'$=#$=b(2#m*:2#2m=#$:$=m)'(=#)B/=6,%
S#2#:)*/#)%H$=#)#2=%8SHOi9%
• i#)1K51$0%$#=F')E%*'$g0():7'$%'L#)%:%76#%"#)1'-%
• I$2()1$0%$'%2=:,#%1$K')6:7'$%
• N#)1'-1*%:(-1=2%
S#2#:)*/#)%H$=#)#2=%8SHOiH9%
• G:(,=%:$:,5212<%#2"#*1:,,5%K')%L1)=(:,1\#-%$#=F')E2%
Q10/%:L:1,:>1,1=5%:$-%#))')%)#*'L#)5%
• S($%6(,7",#%2*/#-(,#)2%
• $'L:O:"1<%21$0,#%1$2=:$*#B%$##-%,':-%>:,:$*#)2%K')%=/:=%• 0,:$*#O:"1<%21$0,#%1$2=:$*#B%S#*#1L#2%)#k(#2=2%'$,5%'L#)%SI&.%
8$'=%34JN9B%$##-%,':-%>:,:$*#)2%K')%=/:=%
• a:=:>:2#%:$-%34JN%2#)L#)B%
• I))')%)#*'L#)5%12%"'')%
A?[%
!"#$&=:*E%2#*()1=5%
• T'=%2'%0''-%• N:22F')-2%:)#%2=')#-%($#$*)5"=#-%1$%g,#2%• .'E#$%:(=/#$7*:7'$%
!L#)2(>2*)1"7'$%
• a12E%• 4#6')5%
• +NW%• T#=F')E%
ÇS#0(,:)x%*,'(-%
%
%
8 GB RAM 1 TB disk Quad core Xeon
8 GB RAM 1 TB disk Quad core Xeon
VM: 2 GB RAM 500 GB 1 CPU
4 VMs per physical machine
%
%
Black box indicates provisioned resources per VM
!L#)2(>2*)1>#-%*,'(-%
%
%
8 GB RAM 1 TB disk Quad core Xeon
8 GB RAM 1 TB disk Quad core Xeon
VM: 2 GB RAM 500 GB 1 CPU
8 VMs per physical machine
%
%
Black box indicates provisioned resources per VM
!L#)2(>2*)1>#-%*,'(-%
%
%
8 GB RAM 1 TB disk Quad core Xeon
8 GB RAM 1 TB disk Quad core Xeon
VM: 2 GB RAM 500 GB 1 CPU
8 VMs per physical machine
%
%
Black box indicates provisioned resources per VM
Green box indicates used resources per VM
!L#),':-y%
%
%
8 GB RAM 1 TB disk Quad core Xeon
8 GB RAM 1 TB disk Quad core Xeon
VM: 2 GB RAM 500 GB 1 CPU
8 VMs per physical machine
%
%
Black box indicates provisioned resources per VM
Green box indicates used resources per VM
VMs requesting more memory than available in physical server.
h/:=%:)#%'L#),':-%256"='62%K')%+NW<%6#6')5<%
$#=F')E<%-12E}%
• +NW%
– ,#22%+NW%2/:)#%"#)%i4<%,'$0%)($%k(#(#2%
• 4#6')5%
– &F:""1$0%='%/5"#)L12')%-12E<%=/):2/1$0%
• a12E%82"1$$1$09%
– H$*)#:2#-%)bF%,:=#$*5<%-#*)#:2#-%=/)'(0/"(=%%
• T#=F')E%
– d1$E%K(,,5%(7,1\#-%
%
+'$*,(21'$%
• h/1*/%'"#$%2'()*#%*,'(-%12%=/#%ÇF1$$#)x}%
– "%
• 4:$5%1$=#)#27$0%")'>,#62%K')%)#2#:)*/#)2%
– h/:=%=5"#%'K%")'>,#62%:$-%122(#2%:)#%2##$%1$%'"#$%2'()*#%*,'(-%
K')(62}%
– Q'F%='%:(-1=%*'$g0():7'$%1$K')6:7'$<%#2"#*1:,,5%F1=/%2'jF:)#%
-#g$#-%$#=F')E1$0%
– Q'F%='%("-:=#%H::&%2'jF:)#}%– #=*%
C:*E("%
H::&%+,'(-2P%:$%'L#)L1#F%
@A$#/*-B*(-4#* @'$D3'D#* ,A.#/* 2-$CD3E'?-$*C.#/*
!"#$&=:*E%8G',2'69%
801=/(>9%
?_@<_?@%
[Y@%
AZl<?AX%
Z`l%
N5=/'$%
&/#,,%2*)1"=2%
N5=/'$%8=#2=9%
&/#,,%2*)1"=2%8=#2=9%
A<@X@%
?@%
`[l%
X%
ll%
+,'(-&=:*E%83*='$%_B@9%
83":*/#%1$*(>:=')%
")']#*=9%
A<?_Z<l_A%
Al<[__%
AX<XZZ%
?X<??l%
l@<lYY%
?<@YX%
;:L:%
N5=/'$%
&/#,,%2*)1"=2%
;:L:%8=#2=9%
N5=/'$%8=#2=9%
&/#,,%2*)1"=2%8=#2=9%
_<?XZ%
Z?%
AlZ%
AA`%
lY%
_`%
?A%
I(*:,5"=(2%8_BA9%
801=/(>9%
AX`<Z?_%
l_<AAA%
_<Z[[%
_<?@`%
A<[A?%
l<X[Y%
YA`%
`?@%
AA[A%
;:L:%
+%
N5=/'$%
N#),%
&/#,,%
;:L:%8=#2=9%
+%8=#2=9%
N#),%8=#2=9%
&/#,,%8=#2=9%
A<@Y`%
ZA%
`?%
?A%
?l%
?Y%
_%
[%
AA%
?%
!"#$T#>(,:%8_BXB@9% Y?<Y?`%
?`<ZZY%
_<`X@%
Y<@Y_%
AA<`lZ%
l<_ZZ%
[Z[%
?<l@Z%
+%
S(>5%
&/#,,%2*)1"=2%
;:L:%
+%8=#2=9%
S(>5%8=#2=9%
&/#,,%8=#2=9%
;:L:%8=#2=9%
?_?%
AXX%
?[%
_@%
_@%
?[%
[%
Al%
A[%