ã¯ã©ãŠãã³ã³ãã¥ãŒãã£ã³ã°ã¯ç§ãã¡ã®ç掻ã«ã©ãã©ãæ·±ãæµžéããŠãããã¯ã©ãŠããµãŒãã¹ãäžåºŠã䜿çšããããšããªã人ã¯ããããããªãã§ããããããããã¯ã©ãŠããšã¯äœãããããŠãããã©ã®ããã«æ©èœãããã¯ãã»ãšãã©ã®å Žåãã¢ã€ãã¢ã®ã¬ãã«ã§ããç¥ã£ãŠãã人ã¯ã»ãšãã©ããŸããã5Gã¯ãã§ã«çŸå®ã®ãã®ã«ãªãã€ã€ããããã¬ã³ã ã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ãå®å šã«éã®ãœãªã¥ãŒã·ã§ã³ããä»®æ³åããããæ±ãã«ç§»è¡ããŠãããšãã®ããã«ãæ±ãœãªã¥ãŒã·ã§ã³ããã¯ã©ãŠããœãªã¥ãŒã·ã§ã³ã«ç§»è¡ãå§ããŠããŸãã
仿¥ã¯ãã¯ã©ãŠãã€ã³ãã©ã¹ãã©ã¯ãã£ã®å éšäžçã«ã€ããŠèª¬æããŸããç¹ã«ããããã¯ãŒã¯éšåã®åºæ¬ãåæããŸãã
ã¯ã©ãŠããšã¯äœã§ããïŒåãä»®æ³å-瞊æãã¥ãŒïŒ
è«ççãªè³ªå以äžã®ãã®ãããã-ããã¯ä»®æ³åã§ã¯ãããŸããããä»®æ³åãªãã§ã¯ãããŸããã§ããã 2ã€ã®å®çŸ©ãæ€èšããŠãã ããã
ã¯ã©ãŠãã³ã³ãã¥ãŒãã£ã³ã°ïŒä»¥äžãã¯ã©ãŠãïŒã¯ã忣ã³ã³ãã¥ãŒãã£ã³ã°ãªãœãŒã¹ãžã®ãŠãŒã¶ãŒãã¬ã³ããªãŒãªã¢ã¯ã»ã¹ãæäŸããããã®ã¢ãã«ã§ããããµãŒãã¹ãããã€ããŒããã®æå°ã®é å»¶ãšæå°ã®ã³ã¹ãã§ãªã³ããã³ãã§å±éããã³èµ·åããå¿ èŠããããŸãïŒNISTããã®å®çŸ©ã®ç¿»èš³ïŒã
ä»®æ³å-ããã¯ã1ã€ã®ç©çãšã³ãã£ãã£ïŒãµãŒããŒãªã©ïŒãè€æ°ã®ä»®æ³ãšã³ãã£ãã£ã«åå²ããŠããªãœãŒã¹äœ¿çšçãåäžãããæ©èœã§ãïŒããšãã°ãä»®æ³ååŸã«1ã€ã®ãµãŒããŒã80ã90ïŒ èªã¿èŸŒãŸãããšã3ã€ã®ãµãŒããŒã25ã30ïŒ èªã¿èŸŒãŸããŸãïŒãåœç¶ã®ããšãªãããä»®æ³åã¯ãªãœãŒã¹ã®äžéšãæ¶è²»ããŸãããã€ããŒãã€ã¶ãŒã«ãã£ãŒãããå¿ èŠããããŸãããå®éã«ç€ºãããŠããããã«ãã²ãŒã ã¯ãã£ã³ãã«ã®äŸ¡å€ããããŸããä»®æ³åã®çæ³çãªäŸã¯ãä»®æ³ãã·ã³ãå®å šã«æºåããVMWareããŸãã¯ããšãã°ç§ã奜ãKVMã§ãããããã¯ãã§ã«å¥œã¿ã®åé¡ã§ãã
ç§ãã¡ã¯ããã«æ°ä»ããã«èªåãã¡ã§ä»®æ³åã䜿çšããŠãããéã®ã«ãŒã¿ãŒã§ãããã§ã«ä»®æ³åã䜿çšããŠããŸããããšãã°ãææ°ããŒãžã§ã³ã®JunOSã§ã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã¯ãªã¢ã«ã¿ã€ã Linuxé åžãããïŒWind River 9ïŒã®äžã«ä»®æ³ãã·ã³ãšããŠã€ã³ã¹ããŒã«ãããŸããããããä»®æ³åã¯ã¯ã©ãŠãã§ã¯ãããŸããããã¯ã©ãŠãã¯ä»®æ³åãªãã§ã¯ååšã§ããŸããã
ä»®æ³åã¯ãã¯ã©ãŠããæ§ç¯ãããæ§æèŠçŽ ã®1ã€ã§ãã
è€æ°ã®ãã€ããŒãã€ã¶ãŒã1ã€ã®L2ãã¡ã€ã³ã«åéããããã€ãã®ansibleãä»ããŠvlanãèªåçã«ç»é²ããããã®yamlãã¬ã€ããã¯ãããã€ã远å ããä»®æ³ãã·ã³ãèªåçã«äœæããããã®ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ã·ã¹ãã ã®ãããªãã®ãè©°ã蟌ãã ãã§ã¯ãã¯ã©ãŠããäœæããããšã¯ã§ããŸãããããæ£ç¢ºã«ã¯ãããã¯å€æããŸãããçµæãšããŠåŸããããã©ã³ã±ã³ã·ã¥ã¿ã€ã³ã¯ç§ãã¡ãå¿ èŠãšããã¯ã©ãŠãã§ã¯ãããŸããããä»ã®èª°ããšããŠããããã誰ãã«ãšã£ãŠããã¯ç©¶æ¥µã®å€¢ã§ããããã«ãåãOpenstackã䜿çšããå Žåãå®éã«ã¯ãŸã ãã©ã³ã±ã³ã·ã¥ã¿ã€ã³ã§ããããŸããããã«ã€ããŠã¯ãŸã 話ããªãã§ãã ããã
ããããäžèšã®å®çŸ©ãããå®éã«ã¯ã©ãŠããšåŒã¶ããšãã§ãããã®ãå®å šã«æç¢ºã§ã¯ãªãããšãçè§£ããŠããŸãã
ãããã£ãŠãNISTïŒNational Institute of Standards and TechnologyïŒã®ããã¥ã¡ã³ãã«ã¯ãã¯ã©ãŠãã€ã³ãã©ã¹ãã©ã¯ãã£ã«å¿ èŠãª5ã€ã®äž»ãªç¹æ§ãèšèŒãããŠããŸãã
ãªã¯ãšã¹ãã«å¿ããŠãµãŒãã¹ãæäŸããŸãããŠãŒã¶ãŒã«ã¯ãèªåã«å²ãåœãŠãããã³ã³ãã¥ãŒã¿ãŒãªãœãŒã¹ïŒãããã¯ãŒã¯ãä»®æ³ãã£ã¹ã¯ãã¡ã¢ãªãããã»ããµã³ã¢ãªã©ïŒãžã®ç¡æã¢ã¯ã»ã¹ãèš±å¯ããå¿ èŠãããããããã®ãªãœãŒã¹ã¯èªåçã«ãã€ãŸããµãŒãã¹ãããã€ããŒã®ä»å ¥ãªãã«æäŸãããå¿ èŠããããŸãã
å¹ åºããµãŒãã¹ã®å¯çšæ§ããªãœãŒã¹ãžã®ã¢ã¯ã»ã¹ã¯ãæšæºã®PCãšã·ã³ã¯ã©ã€ã¢ã³ãããã³ã¢ãã€ã«ããã€ã¹ã®äž¡æ¹ã䜿çšã§ããããã«ãæšæºã®ã¡ã«ããºã ã«ãã£ãŠæäŸãããå¿ èŠããããŸãã
ãªãœãŒã¹ã®ããŒãªã³ã°ããªãœãŒã¹ããŒã«ã¯ãåæã«è€æ°ã®ã¯ã©ã€ã¢ã³ãã«ãªãœãŒã¹ãæäŸã§ããå¿ èŠããããŸããããã«ãããã¯ã©ã€ã¢ã³ããåé¢ããããªãœãŒã¹ã«å¯Ÿããçžäºã®åœ±é¿ãç«¶åãçºçããªããªããŸãããããã¯ãŒã¯ãããŒã«ã«å«ãŸããŠããŸããããã¯ãéè€ããã¢ãã¬ã¹æå®ã䜿çšããå¯èœæ§ã瀺ããŠããŸããããŒã«ã¯ãªã³ããã³ãã§æ¡åŒµããå¿ èŠããããŸããããŒã«ã䜿çšãããšãå¿ èŠãªã¬ãã«ã®ãªãœãŒã¹ã®åŸ©å åãšç©çãªãœãŒã¹ããã³ä»®æ³ãªãœãŒã¹ã®æœè±¡åãæäŸã§ããŸãããµãŒãã¹ã®åä¿¡è ã«ã¯ãèŠæ±ããããªãœãŒã¹ã®ã»ãããæäŸãããŸãïŒãããã®ãªãœãŒã¹ãç©ççã«é 眮ãããŠããå ŽåããµãŒããŒãšã¹ã€ããã®æ°ã¯ã¯ã©ã€ã¢ã³ããæ°ã«ããŸããïŒããã ãããããã€ããŒã¯ãããã®ãªãœãŒã¹ã®ééçãªäºçŽãä¿èšŒããå¿ èŠããããšããäºå®ãèæ ®ã«å ¥ããå¿ èŠããããŸãã
ããŸããŸãªæ¡ä»¶ãžã®è¿ éãªé©å¿ããµãŒãã¹ã¯æè»ã§ããå¿ èŠããããŸããã¯ã©ã€ã¢ã³ãã®èŠæ±ã«å¿ããŠããªãœãŒã¹ã®è¿ éãªæäŸããªãœãŒã¹ã®åå²ãåœãŠããªãœãŒã¹ã®è¿œå ãŸãã¯åæžãè¡ããã¯ã©ã€ã¢ã³ãã¯ã¯ã©ãŠããªãœãŒã¹ãç¡éã§ãããšæããå¿ èŠããããŸããããšãã°ãããããããããããã«ããµãŒããŒã®ããŒããã©ã€ããå£ããŠããŠããã£ã¹ã¯ãå£ããŠããããã«AppleiCloudã®ãã£ã¹ã¯ã¹ããŒã¹ã®äžéšã倱ããããšããèŠåã¯è¡šç€ºãããŸãããããã«ãããªãã®åŽããèŠããšããã®ãµãŒãã¹ã®å¯èœæ§ã¯ã»ãŒç¡éã§ã-ããªãã¯2TBãå¿ èŠã§ã-åé¡ãããŸãããããªãã¯æ¯æããšåãåããããŸãããåæ§ã«ãGoogle.DriveãŸãã¯Yandex.Diskã䜿çšããŠäŸã瀺ãããšãã§ããŸãã
æäŸããããµãŒãã¹ã枬å®ããæ©èœãã¯ã©ãŠãã·ã¹ãã ã¯ãæ¶è²»ããããªãœãŒã¹ãèªåçã«å¶åŸ¡ããã³æé©åããå¿ èŠããããŸããããããã®ã¡ã«ããºã ã¯ããŠãŒã¶ãŒãšãµãŒãã¹ãããã€ããŒã®äž¡æ¹ã«å¯ŸããŠééçã§ããå¿ èŠããããŸããã€ãŸããããªããšããªãã®é¡§å®¢ãã©ãã ãã®ãªãœãŒã¹ãæ¶è²»ããŠãããããã€ã§ã確èªã§ããŸãã
ãããã®èŠä»¶ã¯äž»ã«ãããªãã¯ã¯ã©ãŠãã®èŠä»¶ã§ããããããã©ã€ããŒãã¯ã©ãŠãïŒã€ãŸããäŒæ¥ã®å éšããŒãºã®ããã«èµ·åãããã¯ã©ãŠãïŒã®å Žåããããã®èŠä»¶ã¯ãããã«èª¿æŽã§ããŸãããã ããããã§ãå®è¡ããå¿ èŠããããŸããããããªããšãã¯ã©ãŠãã³ã³ãã¥ãŒãã£ã³ã°ã®ãã¹ãŠã®å©ç¹ãåŸãããšãã§ããŸããã
ãªãã¯ã©ãŠããå¿ èŠãªã®ã§ããïŒ
ãã ããæ°ãããã¯ãããžãŒãæ¢åã®ãã¯ãããžãŒãæ°ãããããã³ã«ã¯äœãã®ããã«äœæãããŸãïŒãã¡ãããRIP-ngãé€ãïŒããããã³ã«ã®ããã®ãããã³ã«-誰ããããå¿ èŠãšããŸããïŒãã¡ãããRIP-ngãé€ããŠïŒãã¯ã©ãŠãããŠãŒã¶ãŒ/ã¯ã©ã€ã¢ã³ãã«ããçš®ã®ãµãŒãã¹ãæäŸããããã«äœæãããããšã¯è«ççã§ããç§ãã¡ã¯çãDropboxãGoogle.Docsãªã©ã®å°ãªããšã2ã€ã®ã¯ã©ãŠããµãŒãã¹ã«ç²ŸéããŠããããããã®ã»ãšãã©ãæ£åžžã«äœ¿çšãããŠãããšæããŸããããšãã°ããã®èšäºã¯Google.Docsã¯ã©ãŠããµãŒãã¹ã䜿çšããŠæžãããŠããŸããããããç§ãã¡ãç¥ã£ãŠããã¯ã©ãŠããµãŒãã¹ã¯ãã¯ã©ãŠãã®æ©èœã®äžéšã«ãããŸãããããæ£ç¢ºã«ã¯ãSaaSã¿ã€ãã®ãµãŒãã¹ã«ãããŸãããã¯ã©ãŠããµãŒãã¹ã¯ãSaaSãPaaSãIaaSã®3ã€ã®æ¹æ³ã§æäŸã§ããŸããå¿ èŠãªãµãŒãã¹ã¯ãåžæãšèœåã«ãã£ãŠç°ãªããŸãã
ãããããé çªã«èããŠã¿ãŸãããã
Software as a ServiceïŒSaaSïŒã¯ãYandex.MailãGmailãªã©ã®ã¡ãŒã«ãµãŒãã¹ãªã©ãã¯ã©ã€ã¢ã³ãã«å®å šãªãµãŒãã¹ãæäŸããããã®ã¢ãã«ã§ãããã®ãããªãµãŒãã¹æäŸã¢ãã«ã§ã¯ãã¯ã©ã€ã¢ã³ããšããŠãå®éã«ã¯ãµãŒãã¹ã䜿çšãã以å€ã«äœãããŸãããã€ãŸãããµãŒãã¹ã®èšå®ããã®é害蚱容床ããŸãã¯äºçŽã«ã€ããŠèããå¿ èŠã¯ãããŸãããäž»ãªããšã¯ããªãã®ãã¹ã¯ãŒããå±éºã«ãããããšã§ã¯ãããŸããããã®ãµãŒãã¹ã®ãããã€ããŒã¯ããªãã®ããã«æ®ããããŸãããµãŒãã¹ãããã€ããŒã®èгç¹ããã圌ã¯ãµãŒããŒããŒããŠã§ã¢ããã¹ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ããããŒã¿ããŒã¹ããœãããŠã§ã¢ã®èšå®ãŸã§ããµãŒãã¹å šäœã«å¯ŸããŠå®å šãªè²¬ä»»ãè² ã£ãŠããŸãã
ãµãŒãã¹ãšããŠã®ãã©ãããã©ãŒã ïŒPaaSïŒ-ãã®ã¢ãã«ã䜿çšããå ŽåããµãŒãã¹ãããã€ããŒã¯ã¯ã©ã€ã¢ã³ãã«ãµãŒãã¹ã®ãã³ãã¬ãŒããæäŸããŸããããšãã°ãWebãµãŒããŒãèããŠã¿ãŸãããããµãŒãã¹ãããã€ããŒã¯ã¯ã©ã€ã¢ã³ãã«ä»®æ³ãµãŒããŒïŒå®éã«ã¯ãRAM / CPU /ã¹ãã¬ãŒãž/ããããªã©ã®ãªãœãŒã¹ã®ã»ããïŒãæäŸããOSãšå¿ èŠãªãœãããŠã§ã¢ããã®ãµãŒããŒã«ã€ã³ã¹ããŒã«ããŸããããã¯ã©ã€ã¢ã³ãèªèº«ãããããã¹ãŠãæ§æãããµãŒãã¹ã®ããã©ãŒãã³ã¹ã®ããã«ãã§ã«ã¯ã©ã€ã¢ã³ããçããŸãããµãŒãã¹ãããã€ããŒã¯ããããŸã§ãšåæ§ã«ãç©çæ©åšããã€ããŒãã€ã¶ãŒãä»®æ³ãã·ã³èªäœããã®ãããã¯ãŒã¯ã®å¯çšæ§ãªã©ã®æäœæ§ã«è²¬ä»»ããããŸããããµãŒãã¹èªäœã¯ãã§ã«ãã®è²¬ä»»ç¯å²å€ã§ãã
ãµãŒãã¹ãšããŠã®ã€ã³ãã©ã¹ãã©ã¯ãã£ïŒIaaSïŒ-ãã®ã¢ãããŒãã¯ãã§ã«è峿·±ããã®ã§ããå®éããµãŒãã¹ãããã€ããŒã¯ãå®å šãªä»®æ³åã€ã³ãã©ã¹ãã©ã¯ãã£ãã¯ã©ã€ã¢ã³ãã«æäŸããŸããã€ãŸããCPUã³ã¢ãRAMããããã¯ãŒã¯ãªã©ã®ãªãœãŒã¹ã®ã»ããïŒããŒã«ïŒãæäŸããŸãããã®ä»ã¯ãã¹ãŠã¯ã©ã€ã¢ã³ã次第ã§ããã¯ã©ã€ã¢ã³ãã¯ãããã䜿çšããŠäœããããã®ã§ãããããå²ãåœãŠãããããŒã«ïŒã¯ã©ãŒã¿ïŒå ã®ãªãœãŒã¹-ãµãã©ã€ã€ãŒã¯ç¹ã«éèŠã§ã¯ãããŸãããã¯ã©ã€ã¢ã³ãã¯ãç¬èªã®vEPCãäœæãããããããªãã¬ãŒã¿ãŒãäœæããŠãéä¿¡ãµãŒãã¹ãæäŸãããããããšãæãã§ããŸããééããããŸããããã®ãããªã·ããªãªã§ã¯ããµãŒãã¹ãããã€ããŒã¯ããªãœãŒã¹ã®æäŸããããã®éå®³èæ§ãšå¯çšæ§ãããã³ãããã®ãªãœãŒã¹ãããŒã«ã«çµåããã¯ã©ã€ã¢ã³ãã®èŠæ±ã«å¿ããŠãã€ã§ããªãœãŒã¹ã墿žããæ©èœãã¯ã©ã€ã¢ã³ãã«æäŸã§ããããã«ããOSã«è²¬ä»»ããããŸããã¯ã©ã€ã¢ã³ãã¯ãã»ã«ããµãŒãã¹ããŒã¿ã«ãšã³ã³ãœãŒã«ãä»ããŠããã¹ãŠã®ä»®æ³ãã·ã³ãšãã®ä»ã®èŠæãåããèªåã§æ§æããŸãããããã¯ãŒã¯ã®ç»é²ãå«ã¿ãŸãïŒå€éšãããã¯ãŒã¯ãé€ãïŒã
OpenStackãšã¯äœã§ããïŒ
3ã€ã®ãªãã·ã§ã³ãã¹ãŠã«ãããŠããµãŒãã¹ãããã€ããŒã¯ã¯ã©ãŠãã€ã³ãã©ã¹ãã©ã¯ãã£ãæå¹ã«ããOSãå¿ èŠãšããŸããå®éãSaaSã§ã¯ããã®ãã¯ãããžãŒã¹ã¿ãã¯ã®ã¹ã¿ãã¯å šäœãæ åœããéšéã¯1ã€ã§ã¯ãªããã€ã³ãã©ã¹ãã©ã¯ãã£ãæ åœããéšéããããŸããã€ãŸããå¥ã®éšéã«IaaSãæäŸãããã®éšéãSaaSã¯ã©ã€ã¢ã³ããæäŸããŸããOpenStackã¯ã倿°ã®ã¹ã€ããããµãŒããŒãããã³ã¹ãã¬ãŒãžã·ã¹ãã ãåäžã®ãªãœãŒã¹ããŒã«ã«åéãããã®å ±éããŒã«ããµãããŒã«ïŒããã³ãïŒã«åå²ãããããã®ãªãœãŒã¹ããããã¯ãŒã¯çµç±ã§ã¯ã©ã€ã¢ã³ãã«æäŸã§ããã¯ã©ãŠããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®1ã€ã§ãã
Openstackæšæºã®èªèšŒã¡ã«ããºã ã䜿çšããŠAPIãä»ããŠããããžã§ãã³ã°ããã³ç®¡çããããã³ã³ãã¥ãŒãã£ã³ã°ãªãœãŒã¹ãããŒã¿ã¹ãã¬ãŒãžãããã³ãããã¯ãŒã¯ãªãœãŒã¹ã®å€§èŠæš¡ãªããŒã«ãå¶åŸ¡ã§ããããã«ããã¯ã©ãŠããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§ãã
èšãæãããšãããã¯ã¯ã©ãŠããµãŒãã¹ïŒãããªãã¯ãšãã©ã€ããŒãã®äž¡æ¹ïŒãäœæããããã«èšèšãããäžé£ã®ç¡æãœãããŠã§ã¢ãããžã§ã¯ãã§ããã€ãŸãããµãŒããŒãšã¹ã€ããã³ã°æ©åšãåäžã®ãªãœãŒã¹ããŒã«ã«çµåãããããã®ãªãœãŒã¹ã管çããŠãå¿ èŠãªã¬ãã«ã®éå®³èæ§ãæäŸã§ããããŒã«ã®ã»ããã§ãã ..ã
ãã®èšäºã®å·çæç¹ã§ã¯ãOpenStackã®æ§é ã¯æ¬¡ã®ããã«ãªã£ãŠããŸããopenstack.org
ããååŸããç»å
OpenStackã®äžéšã§ããåã³ã³ããŒãã³ãã¯ãç¹å®ã®æ©èœãå®è¡ããŸãããã®åæ£ã¢ãŒããã¯ãã£ã«ãããå¿ èŠãªæ©èœã³ã³ããŒãã³ãã®ã»ããããœãªã¥ãŒã·ã§ã³ã«å«ããããšãã§ããŸãããã ããäžéšã®ã³ã³ããŒãã³ãã¯ã«ãŒãã³ã³ããŒãã³ãã§ãããããããåé€ãããšããœãªã¥ãŒã·ã§ã³å šäœãå®å šã«ãŸãã¯éšåçã«åäœããªããªããŸãããã®ãããªã³ã³ããŒãã³ããåç §ããã®ãéäŸã§ãã
- ããã·ã¥ããŒã-OpenStackãµãŒãã¹ã管çããããã®WebããŒã¹ã®GUI
- Keystoneã¯ãä»ã®ãµãŒãã¹ã«èªèšŒããã³æ¿èªæ©èœãæäŸãããŠãŒã¶ãŒã®è³æ Œæ å ±ãšåœ¹å²ã管çããäžå åãããIDãµãŒãã¹ã§ãã
- Neutron â , OpenStack ( VM )
- Cinder â
- Nova â
- Glance â
- Swift â
- Ceilometer â ,
- Heat â
ãã¹ãŠã®ãããžã§ã¯ããšãã®ç®çã®å®å šãªãªã¹ãã¯ãããã«ãããŸãã
åOpenStackã³ã³ããŒãã³ãã¯ãç¹å®ã®æ©èœãæ åœãããã®æ©èœã管çãããã®ãµãŒãã¹ãä»ã®ã¯ã©ãŠããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãµãŒãã¹ãšéä¿¡ããŠçµ±åã€ã³ãã©ã¹ãã©ã¯ãã£ãäœæããããã®APIãæäŸãããµãŒãã¹ã§ããããšãã°ãNovaã¯ãããã®ãªãœãŒã¹ã®æ§æã«ã¢ã¯ã»ã¹ããããã®ã³ã³ãã¥ãŒãã£ã³ã°ãªãœãŒã¹ç®¡çãšAPIãæäŸããGlanceã¯ãããã管çããããã®ã€ã¡ãŒãžç®¡çãšAPIãæäŸããCinderã¯ãããã管çããããã®ãããã¯ã¹ãã¬ãŒãžãšAPIãæäŸããŸãããã¹ãŠã®æ©èœã¯éåžžã«å¯æ¥ã«çžäºæ¥ç¶ãããŠããŸãã
ãã ãã倿ãããšãOpenStackã§å®è¡ãããŠãããã¹ãŠã®ãµãŒãã¹ã¯ãæçµçã«ã¯ãããã¯ãŒã¯ã«æ¥ç¶ãããããçš®ã®ä»®æ³ãã·ã³ïŒãŸãã¯ã³ã³ããïŒã«ãªããŸããçåãçããŸã-ãªãããã»ã©å€ãã®èŠçŽ ãå¿ èŠãªã®ã§ããïŒ
ä»®æ³ãã·ã³ãäœæãããããOpenstackã®ãããã¯ãŒã¯ãšæ°žç¶ã¹ãã¬ãŒãžã«æ¥ç¶ããããã®ã¢ã«ãŽãªãºã ãèŠãŠã¿ãŸãããã
- ãã·ã³ãäœæããããã®ãªã¯ãšã¹ããäœæãããšãããããHorizoâânïŒDashboardïŒãä»ãããªã¯ãšã¹ãã§ããããšãCLIãä»ãããªã¯ãšã¹ãã§ããããšãæåã«çºçããã®ã¯Keystoneã®ãªã¯ãšã¹ãæ¿èªã§ãããã·ã³ãäœæã§ããŸããããã®ãããã¯ãŒã¯ã䜿çšããæš©å©ããããŸãããååã§ããïŒãã©ããã¯ã©ãŒã¿ãªã©ã
- Keystoneã¯ãªã¯ãšã¹ããèªèšŒããå¿çã¡ãã»ãŒãžã§èªèšŒããŒã¯ã³ãçæããŸããããã¯åŸã§äœ¿çšãããŸããKeystoneããã®å¿çãåä¿¡ããåŸãèŠæ±ã¯NovaïŒnova apiïŒã«éä¿¡ãããŸãã
- Nova-api , Keystone, auth-
- Keystone auth- .
- Nova-api nova-database VM nova-scheduler.
- Nova-scheduler ( ), VM , . VM nova-database.
- nova-scheduler nova-compute . Nova-compute nova-conductor (nova-conductor nova, nova-database nova-compute, nova-database ).
- Nova-conductor nova-database nova-compute.
- nova-compute glance ID . Glace Keystone .
- Nova-compute neutron . glance, neutron Keystone, database ( ), nova-compute.
- Nova-compute cinder volume. glance, cider Keystone, volume .
- Nova-compute libvirt .
å®éãåçŽãªä»®æ³ãã·ã³ãäœæããããã®äžèŠåçŽãªæäœã¯ãã¯ã©ãŠããã©ãããã©ãŒã ã®èŠçŽ éã®APIåŒã³åºãã®ãã®ãããªæžŠã«å€ãããŸããããã«ãã芧ã®ãšããã以åã«æå®ããããµãŒãã¹ã§ãããçžäºäœçšãè¡ãããå°ããªã³ã³ããŒãã³ãã§æ§æãããŠããŸãããã·ã³ã®äœæã¯ãã¯ã©ãŠããã©ãããã©ãŒã ãæäŸãããã®ã®ã»ãã®äžéšã«ãããŸããããã©ãã£ãã¯ã®ãã©ã³ã¹ããšããµãŒãã¹ããããã¯ã¹ãã¬ãŒãžãæ åœãããµãŒãã¹ãDNSãæ åœãããµãŒãã¹ããã¢ã¡ã¿ã«ãµãŒããŒã®ããããžã§ãã³ã°ãæ åœãããµãŒãã¹ãªã©ããããŸããä»®æ³ãã·ã³ãïŒä»®æ³åã§ã¯ãªãïŒçŸã®çŸ€ãã®ããã«æ±ããŸããä»®æ³ç°å¢ã§ãã·ã³ã«äœããçºçããå ŽåïŒããã¯ã¢ãããªã©ãã埩å ããå ŽåïŒãã¯ã©ãŠãã¢ããªã±ãŒã·ã§ã³ã¯ãã®ããã«æ§ç¯ãããŸããä»®æ³ãã·ã³ããã®ãããªéèŠãªåœ¹å²ãæãããªãããã«-ä»®æ³ãã·ã³ããæ»ãã ã-ããã¯åé¡ã§ã¯ãããŸãã-æ°ãããã·ã³ã¯ãã³ãã¬ãŒãã«åºã¥ããŠåçŽã«äœæããã圌ããèšãããã«ãããŒã ã¯å µå£«ã®åªå€±ã«æ°ã¥ããŸããã§ãããåœç¶ãããã«ãããªãŒã±ã¹ãã¬ãŒã·ã§ã³ã¡ã«ããºã ãæäŸãããŸããHeatãã³ãã¬ãŒãã䜿çšãããšãæ°åã®ãããã¯ãŒã¯ãšä»®æ³ãã·ã³ã§æ§æãããè€éãªæ©èœãåé¡ãªãç°¡åã«å±éã§ããŸãã
ãããã¯ãŒã¯ãªãã§ã¯ã¯ã©ãŠãã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ååšããªãããšãåžžã«èŠããŠãã䟡å€ããããŸããåèŠçŽ ã¯ãäœããã®æ¹æ³ã§ãããã¯ãŒã¯ãä»ããŠä»ã®èŠçŽ ãšçžäºäœçšããŸããããã«ãã¯ã©ãŠãã«ã¯å®å šã«ééçãªãããã¯ãŒã¯ããããŸããåœç¶ãã¢ã³ããŒã¬ã€ãããã¯ãŒã¯ã¯å€ããå°ãªããéçã§ã-æ°ããããŒããšã¹ã€ããã¯æ¯æ¥è¿œå ãããŸãããããªãŒããŒã¬ã€ã³ã³ããŒãã³ãã¯çµ¶ãã倿Žãããå¯èœæ§ããããå¿ ç¶çã«å€æŽãããŸã-æ°ãããããã¯ãŒã¯ã远å ãŸãã¯åé€ãããæ°ããä»®æ³ãã·ã³ã衚瀺ãããå€ãä»®æ³ãã·ã³ã¯æ¶æ» ããŸãããŸããèšäºã®åé ã§èª¬æããã¯ã©ãŠãã®å®çŸ©ããèŠããŠããããã«ããªãœãŒã¹ã¯ãŠãŒã¶ãŒã«èªåçã«å²ãåœãŠããããµãŒãã¹ãããã€ããŒã®ä»å ¥ã¯æå°éïŒãŸãã¯ãã以äžïŒã§ããå¿ èŠããããŸããã€ãŸãããããã¯ãŒã¯ãªãœãŒã¹ã®æäŸã®çš®é¡ãããã¯çŸåšãhttp / httpsããã¢ã¯ã»ã¹ã§ããå人ã¢ã«ãŠã³ãã®åœ¢åŒã®ããã³ããšã³ãã®åœ¢åŒã§ãããããã¯ãšã³ããšããŠVasilyãæ åœãããããã¯ãŒã¯ãšã³ãžãã¢ã§ããããã¯ãVasilyã«8ã€ã®ãã³ããããå Žåã§ããã¯ã©ãŠãã§ã¯ãããŸããã
ãããã¯ãŒã¯ãµãŒãã¹ã§ããNeutronã¯ãã¯ã©ãŠãã€ã³ãã©ã¹ãã©ã¯ãã£ã®ãããã¯ãŒã¯éšåã管çããããã®APIãæäŸããŸãããã®ãµãŒãã¹ã¯ãNetwork-as-a-ServiceïŒNaaSïŒãšåŒã°ããæœè±¡åã¬ã€ã€ãŒãæäŸããããšã«ãããOpenstackãããã¯ãŒã¯éšåã®æ£åžžæ§ãšç®¡çãæäŸããŸããã€ãŸãããããã¯ãŒã¯ã¯ãããšãã°CPUä»®æ³ã³ã¢ãRAMãšåãä»®æ³æž¬å®å¯èœãŠãããã§ãã
ãã ããOpenStackãããã¯ãŒãã³ã°ã¢ãŒããã¯ãã£ã«ç§»ãåã«ãOpenStackãããã¯ãŒãã³ã°ãã©ã®ããã«æ©èœããããããã³ãããã¯ãŒã¯ãã¯ã©ââãŠãã®éèŠãã€äžå¯æ¬ ãªéšåã§ããçç±ãèŠãŠã¿ãŸãããã
ãããã£ãŠã2ã€ã®REDã¯ã©ã€ã¢ã³ãä»®æ³ãã·ã³ãš2ã€ã®GREENã¯ã©ã€ã¢ã³ãä»®æ³ãã·ã³ããããŸãããããã®ãã·ã³ã次ã®ãããª2ã€ã®ãã€ããŒãã€ã¶ãŒã«é 眮ãããŠãããšããŸãã
çŸæç¹ã§ã¯ãããã¯4å°ã®ãµãŒããŒã®ä»®æ³åã«éããããããŸã§ã«è¡ã£ãã®ã¯4å°ã®ãµãŒããŒãä»®æ³åããŠã2å°ã®ç©çãµãŒããŒã«é 眮ããããšã ãã§ãããããŠä»ã®ãšããã圌ãã¯ãããã¯ãŒã¯ã«ããæ¥ç¶ãããŠããŸããã
ã¯ã©ãŠããååŸããã«ã¯ãããã€ãã®ã³ã³ããŒãã³ãã远å ããå¿ èŠããããŸãããŸãããããã¯ãŒã¯éšåãä»®æ³åããŸããããã4å°ã®ãã·ã³ããã¢ã§æ¥ç¶ããå¿ èŠããããã¯ã©ã€ã¢ã³ãã¯æ£ç¢ºã«L2æ¥ç¶ãæãã§ããŸããã¹ã€ããã䜿çšããŠãã®æ¹åã«ãã©ã³ã¯ãèšå®ããlinuxããªããžã䜿çšããŠãã¹ãŠã管çããããããé«åºŠãªopenvswitchãŠãŒã¶ãŒã®å ŽåïŒããã«æ»ããŸãïŒããã ãããããã¯ãŒã¯ã¯å€æ°ååšããå¯èœæ§ããããã¹ã€ãããä»ããŠL2ãåžžã«ããã·ã¥ããããšã¯æåã®æ¹æ³ã§ã¯ãããŸããããã®ãããããŸããŸãªéšéããµãŒãã¹ãã¹ã¯ãã¢ããªã±ãŒã·ã§ã³ã®å®è¡ãæ°ãæåŸ ã€ããã©ãã«ã·ã¥ãŒãã£ã³ã°ãæ°é±éè¡ããªã©ããã®ã¢ãããŒãã¯çŸä»£ã®äžçã§ã¯æ©èœããªããªããŸããããããŠãäŒç€Ÿãããã«æ°ä»ãã®ãæ©ããã°æ©ãã»ã©ãåé²ãããããªããŸãããããã£ãŠããã€ããŒãã€ã¶ãŒéã§ãä»®æ³ãã·ã³ãéä¿¡ããL3ãããã¯ãŒã¯ãéžæãããã§ã«ãã®L3ãããã¯ãŒã¯ã®äžã«ãä»®æ³ã®éãåãããL2ïŒãªãŒããŒã¬ã€ïŒãããã¯ãŒã¯ãæ§ç¯ããŸããä»®æ³ãã·ã³ã®ãã©ãã£ãã¯ãå®è¡ãããå Žæã GREãGeneveããŸãã¯VxLANãã«ãã»ã«åãšããŠäœ¿çšã§ããŸããç¹ã«éèŠã§ã¯ãããŸããããããã§ã¯åŸè ã«ã€ããŠè©³ããèŠãŠãããŸãããã
VTEPãã©ããã«é 眮ããå¿ èŠããããŸãïŒVxLANã®çšèªã«èª°ãã粟éããŠããããšãé¡ã£ãŠããŸãïŒã L3ãããã¯ãŒã¯ã¯ããã«ãµãŒããŒãé¢ããã®ã§ããµãŒããŒèªäœã«VTEPãé 眮ããããšã劚ãããã®ã¯äœããªããOVSïŒOpenvSwitchïŒã¯ãããå®å šã«è¡ãããšãã§ããŸãããã®çµæã次ã®ããã«ãªããŸãã
ãVMéã®ãã©ãã£ãã¯ãåå²ããå¿ èŠããããããä»®æ³ãã·ã³ãžã®ããŒãã®vlançªå·ã¯ç°ãªããŸããã¿ã°çªå·ã¯ã1ã€ã®ä»®æ³ã¹ã€ããå ã§ã®ã¿åœ¹å²ãæãããŸããVxLANã«ã«ãã»ã«åããå ŽåãVNIããããããåé¡ãªãã¿ã°çªå·ãåé€ã§ããããã§ãã
ããã§ãåé¡ãªããã·ã³ãšä»®æ³ãããã¯ãŒã¯ãäœæã§ããŸãã
ãã ããã¯ã©ã€ã¢ã³ãã«å¥ã®ãã·ã³ããããå¥ã®ãããã¯ãŒã¯äžã«ããå Žåã¯ã©ããªããŸããïŒãããã¯ãŒã¯éã®ã«ãŒãåãå¿ èŠã§ããéäžã«ãŒãã䜿çšããå Žåã®ç°¡åãªãªãã·ã§ã³ãåæããŸããã€ãŸãããã©ãã£ãã¯ã¯ç¹å¥ãªå°çšãããã¯ãŒã¯ããŒããä»ããŠã«ãŒãã£ã³ã°ãããŸãïŒéåžžããããã¯å¶åŸ¡ããŒããšçµã¿åãããããããåãããšãã§ããŸãïŒã
è€éãªããšã§ã¯ãªãããã§ããå¶åŸ¡ããŒãã«ããªããžã€ã³ã¿ãŒãã§ã€ã¹ãäœæããããã«ãã©ãã£ãã¯ãéããããããå¿ èŠãªå Žæã«ã«ãŒãã£ã³ã°ããŸããããããåé¡ã¯ãREDã¯ã©ã€ã¢ã³ãã10.0.0.0/24ãããã¯ãŒã¯ã䜿çšãããã®ã«å¯ŸããGREENã¯ã©ã€ã¢ã³ãã10.0.0.0/24ãããã¯ãŒã¯ã䜿çšããããšããããšã§ããã€ãŸããã¢ãã¬ã¹ã¹ããŒã¹ã®äº€å·®ãå§ãŸããŸããããã«ãã¯ã©ã€ã¢ã³ãã¯ãä»ã®ã¯ã©ã€ã¢ã³ããå éšãããã¯ãŒã¯ã«ã«ãŒãã£ã³ã°ãããããšãæãã§ããŸãããããã¯è«ççã§ãããããã¯ãŒã¯ãšé¡§å®¢ããŒã¿ã®ãã©ãã£ãã¯ãåé¢ããããã«ãããããã«åå¥ã®ååãå²ãåœãŠãŸããå®éãããŒã ã¹ããŒã¹ã¯Linuxãããã¯ãŒã¯ã¹ã¿ãã¯ã®ã³ããŒã§ããã€ãŸããããŒã ã¹ããŒã¹REDã®ã¯ã©ã€ã¢ã³ãã¯ãããŒã ã¹ããŒã¹GREENã®ã¯ã©ã€ã¢ã³ãããå®å šã«åé¢ãããŠããŸãïŒãããã®ã¯ã©ã€ã¢ã³ããããã¯ãŒã¯éã®ã«ãŒãã£ã³ã°ã¯ãããã©ã«ãã®ããŒã ã¹ããŒã¹ãä»ããŠèš±å¯ããããããã§ã«ã¢ããã¹ããªãŒã ãã©ã³ã¹ããŒãæ©åšã§èš±å¯ãããŸãïŒã
ã€ãŸããæ¬¡ã®ã¹ããŒã ãåŸãããŸãã
L2ãã³ãã«ã¯ããã¹ãŠã®èšç®ããŒãããå¶åŸ¡ããŒãã«åæããŸãããããã®ãããã¯ãŒã¯ã®L3ã€ã³ã¿ãŒãã§ã€ã¹ãé 眮ãããŠããããŒãã§ããããããåé¢å°çšã®åå空éã«ãããŸãã
ããããç§ãã¡ã¯æãéèŠãªããšãå¿ããŠããŸããŸãããä»®æ³ãã·ã³ã¯ãã¯ã©ã€ã¢ã³ãã«ãµãŒãã¹ãæäŸããå¿ èŠããããŸããã€ãŸããä»®æ³ãã·ã³ã«ã¯ãã¢ã¯ã»ã¹ã§ããå€éšã€ã³ã¿ãŒãã§ã€ã¹ãå°ãªããšã1ã€å¿ èŠã§ããã€ãŸããç§ãã¡ã¯å€ã®äžçã«åºãããå¿ èŠããããŸããããã«ã¯ããŸããŸãªãªãã·ã§ã³ããããŸããæãç°¡åãªãªãã·ã§ã³ãäœæããŸãããã 1ã€ã®ãããã¯ãŒã¯ã«ã¯ã©ã€ã¢ã³ãã远å ããŸããããããã¯ããããã€ããŒã®ãããã¯ãŒã¯ã§æå¹ã§ãããä»ã®ãããã¯ãŒã¯ãšéè€ããŸããããããã¯ãŒã¯ã¯éè€ããŠããŠããããã€ããŒãããã¯ãŒã¯åŽã®ããŸããŸãªVRFã調ã¹ãããšãã§ããŸãããããã®ãããã¯ãŒã¯ã¯ãåã¯ã©ã€ã¢ã³ãã®åååã«ãååšããŸãããã ãããããã¯1ã€ã®ç©ççïŒãŸãã¯ããè«ççãªçµåïŒã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠå€çã«å ¥ããŸããã¯ã©ã€ã¢ã³ããã©ãã£ãã¯ãåé¢ããããã«ãå€éšã«åãããã©ãã£ãã¯ã¯ãã¯ã©ã€ã¢ã³ãã«å²ãåœãŠãããVLANã¿ã°ã§ã¿ã°ä»ããããŸãã
ãã®çµæã次ã®ã¹ããŒã ãåŸãããŸããã
åççãªè³ªå-èšç®ããŒãèªäœã«ã²ãŒããŠã§ã€ãäœæããŠã¿ãŸãããïŒããã¯å€§ããªåé¡ã§ã¯ãããŸãããããã«ã忣ã«ãŒã¿ãŒïŒDVRïŒããªã³ã«ãããšããã®ããã«æ©èœããŸãããã®ã·ããªãªã§ã¯ãOpenstackã®ããã©ã«ãã§ããéäžåã²ãŒããŠã§ã€ã䜿çšããæãåçŽãªãªãã·ã§ã³ãæ€èšããŸããé«è² è·æ©èœã®å Žåã忣ã«ãŒã¿ãŒãšSR-IOVããã¹ã¹ã«ãŒãªã©ã®é«éåãã¯ãããžãŒã®äž¡æ¹ã䜿çšããŸããã圌ããèšãããã«ãããã¯ãŸã£ããå¥ã®è©±ã§ãããŸããåºæ¬çãªéšåãæ±ããæ¬¡ã«è©³çްãèŠãŠãããŸãããã
å®éãç§ãã¡ã®ã¹ããŒã ã¯ãã§ã«æ©èœããŠããŸãããããã€ãã®ãã¥ã¢ã³ã¹ããããŸãã
- ã©ãããããããã·ã³ãä¿è·ããå¿ èŠããããŸããã€ãŸããã¯ã©ã€ã¢ã³ãã«åããŠã¹ã€ããã€ã³ã¿ãŒãã§ã€ã¹ã«ãã£ã«ã¿ãŒãæããå¿ èŠããããŸãã
- ä»®æ³ãã·ã³ãèªåçã«IPã¢ãã¬ã¹ãååŸã§ããããã«ããããšã§ãæ¯åã³ã³ãœãŒã«ããå ¥åããŠã¢ãã¬ã¹ãç»é²ããå¿ èŠããªããªããŸãã
ãã·ã³ã®ä¿è·ããå§ããŸãããããã®ããã«ãå¹³å¡ãªiptablesã䜿çšã§ããŸãã
ã€ãŸããããããžãããå°ãè€éã«ãªããŸãã
ãããã«é²ãã§ã¿ãŸããããDHCPãµãŒããŒã远å ããå¿ èŠããããŸããåã¯ã©ã€ã¢ã³ãã®DHCPãµãŒããŒã®å ŽæãšããŠæãçæ³çãªå Žæã¯ãåååãé 眮ãããŠãããåè¿°ã®å¶åŸ¡ããŒãã§ãã
ãã ããå°ããªåé¡ããããŸãããã¹ãŠãåèµ·åãããã¹ãŠã®DHCPã¢ãã¬ã¹ãªãŒã¹æ å ±ãæ¶ããå Žåã¯ã©ããªããŸãããæ°ããã¢ãã¬ã¹ããã·ã³ã«çºè¡ãããããšã¯è«ççã§ãããããã¯ããŸã䟿å©ã§ã¯ãããŸããããã¡ã€ã³åã䜿çšããŠã¯ã©ã€ã¢ã³ãããšã«DNSãµãŒããŒã远å ããæ¹æ³ã¯ã2ã€ãããŸãïŒk8sã®ãããã¯ãŒã¯éšåãšåæ§ã«ïŒã¢ãã¬ã¹ã¯ããã»ã©éèŠã§ã¯ãããŸããããå€éšãããã¯ãŒã¯ã§ãã¢ãã¬ã¹ãçºè¡ã§ãããããå€éšãããã¯ãŒã¯ã«åé¡ããããŸãã DHCPçµç±-ã¯ã©ãŠããã©ãããã©ãŒã ã®DNSãµãŒããŒããã³å€éšDNSãµãŒããŒãšã®åæãå¿ èŠã§ããããã¯ãç§ã®æèŠã§ã¯ããŸãæè»ã§ã¯ãããŸããããããªãå¯èœã§ãããŸãã¯ã2çªç®ã®ãªãã·ã§ã³ã¯ãã¡ã¿ããŒã¿ã䜿çšããããšã§ããã€ãŸãããã·ã³ã«çºè¡ãããã¢ãã¬ã¹ã«é¢ããæ å ±ãä¿åããŠããã·ã³ããã§ã«ã¢ãã¬ã¹ãåä¿¡ããŠââããå Žåã«DHCPãµãŒããŒããã·ã³ã«çºè¡ããã¢ãã¬ã¹ãèªèã§ããããã«ããŸãã 2çªç®ã®ãªãã·ã§ã³ã¯ãè»ã«é¢ããè¿œå æ å ±ãä¿åã§ãããããããã·ã³ãã«ã§æè»æ§ããããŸããæ¬¡ã«ããšãŒãžã§ã³ãã®ã¡ã¿ããŒã¿ãã¹ããŒãã«è¿œå ããŸãã
å€éšãããã¯ãŒã¯ããããã¯ãŒã¯å šäœã§æå¹ã§ããå Žåãè€éã«ãªãããããã¹ãŠã®ã¯ã©ã€ã¢ã³ãã«1ã€ã®å€éšãããã¯ãŒã¯ã䜿çšã§ããããšãåé¡ã«ãªããŸãããããã®ãããã¯ãŒã¯ã®å²ãåœãŠãåžžã«å²ãåœãŠãŠå¶åŸ¡ããå¿ èŠããããŸãããã¹ãŠã®ã¯ã©ã€ã¢ã³ãã«åäžã®å€éšäºåæ§ææžã¿ãããã¯ãŒã¯ã䜿çšããæ©èœã¯ããããªãã¯ã¯ã©ãŠããäœæãããšãã«éåžžã«åœ¹ç«ã¡ãŸããããã«ãããã¢ãã¬ã¹ããŒã¿ããŒã¹ã確èªããããã¯ã©ã€ã¢ã³ãã®å€éšãããã¯ãŒã¯ããšã«äžæã®ã¢ãã¬ã¹ã¹ããŒã¹ãéžæãããããå¿ èŠããªããªãããããã·ã³ã®å±éã容æã«ãªããŸããããã«ãäºåã«å€éšãããã¯ãŒã¯ãç»é²ããããšãã§ããå±éæã«å€éšã¢ãã¬ã¹ãã¯ã©ã€ã¢ã³ããã·ã³ã«é¢é£ä»ããã ãã§æžã¿ãŸãã
ãããŠãããã§NATãå©ãã«ãªããŸããNAT倿ã䜿çšããŠãããã©ã«ãã®åååãä»ããŠã¯ã©ã€ã¢ã³ããå€ã®äžçã«åºãããããšãå¯èœã«ããŸããããŠãããã«å°ãåé¡ããããŸããã¯ã©ã€ã¢ã³ããµãŒããŒããµãŒããŒãšããŠã§ã¯ãªãã¯ã©ã€ã¢ã³ããšããŠæ©èœããå Žåãã€ãŸããæ¥ç¶ãåãå ¥ããã®ã§ã¯ãªãéå§ããå Žåã«é©ããŠããŸããããããç§ãã¡ãšäžç·ã«ããã¯éã«ãªããŸãããã®å Žåãå®å NATãå®è¡ããŠããã©ãã£ãã¯ãåä¿¡ãããšãã«ããã®ãã©ãã£ãã¯ãã¯ã©ã€ã¢ã³ãAã®ä»®æ³ãã·ã³Aã察象ãšããŠããããšãå¶åŸ¡ããŒããçè§£ã§ããããã«ããå¿ èŠããããŸããã€ãŸããå€éšã¢ãã¬ã¹ïŒ100.1.1.1ãªã©ïŒããå éšã¢ãã¬ã¹10.0.0.1ã«NAT倿ãè¡ãå¿ èŠããããŸãããã®å Žåããã¹ãŠã®ã¯ã©ã€ã¢ã³ããåããããã¯ãŒã¯ã䜿çšããŸãããå éšã®åé¢ã¯å®å šã«ä¿æãããŸããã€ãŸããå¶åŸ¡ããŒãã§dNATãšsNATãäœæããå¿ èŠããããŸããã¯ã©ãŠãã«ãã©ãã°ããå¿ èŠãããããããããŒãã£ã³ã°ã¢ãã¬ã¹ãŸãã¯å€éšãããã¯ãŒã¯ããããã¯ãã®äž¡æ¹ãåæã«å²ãåœãŠãåäžã®ãããã¯ãŒã¯ã䜿çšããŸãããããŒãã£ã³ã°ã¢ãã¬ã¹ã¯å³ã«è¿œå ããŸããããå€éšãããã¯ãŒã¯ã¯ä»¥åã«è¿œå ãããŸãŸã«ããŠãããŸããåã¯ã©ã€ã¢ã³ãã«ã¯ç¬èªã®å€éšãããã¯ãŒã¯ããããŸãïŒå³ã§ã¯ãå€éšã€ã³ã¿ãŒãã§ã€ã¹ã§vlan 100ããã³200ãšããŠæå®ãããŠããŸãïŒã
ãã®çµæãããçšåºŠã®æè»æ§ãåãããè峿·±ããšåæã«ããèãããããœãªã¥ãŒã·ã§ã³ãåŸãããŸãããããããŸã§ã®ãšãããéå®³èæ§ã¡ã«ããºã ã¯ãããŸããã
ãŸããå¶åŸ¡ããŒãã1ã€ãããªãããããã®é害ã«ãããã¹ãŠã®ã·ã¹ãã ã厩å£ããŸãããã®åé¡ãä¿®æ£ããã«ã¯ãå°ãªããšã3ããŒãã®ã¯ã©ãŒã©ã ãäœæããå¿ èŠããããŸãããããå³ã«è¿œå ããŸãããã
åœç¶ããã¹ãŠã®ããŒããåæãããã¢ã¯ãã£ãããŒããçµäºãããšãå¥ã®ããŒãããã®è²¬ä»»ãåŒãç¶ããŸãã
次ã®åé¡ã¯ä»®æ³ãã·ã³ãã£ã¹ã¯ã§ããçŸæç¹ã§ã¯ããããã¯ãã€ããŒãã€ã¶ãŒèªäœã«ä¿åãããŠããããã€ããŒãã€ã¶ãŒã«åé¡ãçºçããå Žåããã¹ãŠã®ããŒã¿ã倱ãããŸãããã£ã¹ã¯ã§ã¯ãªããµãŒããŒå šäœã倱ãããå Žåãã¬ã€ãã®ååšã¯ãŸã£ãã圹ã«ç«ã¡ãŸããããããè¡ãã«ã¯ãäžéšã®ã¹ãã¬ãŒãžã®ããã³ããšã³ããšããŠæ©èœãããµãŒãã¹ãäœæããå¿ èŠããããŸããã©ã®ãããªçš®é¡ã®ã¹ãã¬ãŒãžã«ãªããã¯ç§ãã¡ã«ãšã£ãŠç¹ã«éèŠã§ã¯ãããŸãããããã£ã¹ã¯ãšããŒãã®äž¡æ¹ãå Žåã«ãã£ãŠã¯ãã£ããããå šäœã®é害ããããŒã¿ãä¿è·ããå¿ èŠããããŸããããã«ã¯ããã€ãã®ãªãã·ã§ã³ããããŸã-ãã¡ãããã¡ã€ããŒãã£ãã«ãåããSANãããã¯ãŒã¯ããããŸãããæ£çŽã«èšããš-FCã¯ãã§ã«éå»ã®éºç©ã§ã-茞éäžã®E1ã®ã¢ããã°-ã¯ããç§ã¯åæããŸããããã¯ãŸã 䜿çšãããŠããŸããããããªãã§ã¯çµ¶å¯Ÿã«äžå¯èœãªå Žåã«éããŸãããããã£ãŠãä»ã«ãè峿·±ãä»£æ¿æ¡ãããããšãç¥ã£ãŠã2020幎ã«FCãããã¯ãŒã¯ãèªäž»çã«å±éããããšã¯ããŸãããããããã«ããããŠãããããã¹ãŠã®å¶éãåããFCãç§ãã¡ã«å¿ èŠãªãã¹ãŠã§ãããšä¿¡ããŠãã人ã ãããŸãããç§ã¯äž»åŒµããŸãããã誰ããç¬èªã®æèŠãæã£ãŠããŸãããã ããç§ã®æèŠã§æãè峿·±ã解決çã¯ãCephãªã©ã®SDSã䜿çšããããšã§ãã
ã»ãã¡ãã¯ãåé·æ§ã®ããã®ãªãã·ã§ã³ã®æãšãã«ãvyskodostupnoeã¹ãã¬ãŒãžãœãªã¥ãŒã·ã§ã³ã«ããªããå¯èœã«ãããã£ã¹ã¯ã®ãã±ãŒã·ã§ã³ãµãŒããããã³ãµãŒããã£ããããå ãªã©ã«åºã¥ããŠãè€æ°ã®ãã£ã¹ã¯ã«ããŒã¿ã®å®å šãªè€è£œã§çµãã笊å·ããªãã£ïŒã¢ããã°RAID 5ãŸãã¯6ïŒä»¥æ¥ã
ã®ããã«Cephã¢ã»ã³ããªã«ã¯ããã«3ã€ã®ããŒããå¿ èŠã§ããã¹ãã¬ãŒãžãšã®å¯Ÿè©±ãããããã¯ããªããžã§ã¯ããããã³ãã¡ã€ã«ã¹ãã¬ãŒãžãµãŒãã¹ã䜿çšããŠãããã¯ãŒã¯çµç±ã§å®è¡ãããŸããã¹ããŒãã«ã¹ãã¬ãŒãžã远å ããŸãã
: compute â â storage+compute â ceph storage. â SDS . â â storage ( ) â CPU SDS ( , , ). compute storage.ããããã¹ãŠãäœããã®æ¹æ³ã§ç®¡çããå¿ èŠããããŸãããã·ã³ããããã¯ãŒã¯ãä»®æ³ã«ãŒã¿ãŒãªã©ãäœæã§ãããã®ãå¿ èŠã§ãããããè¡ãã«ã¯ãããã·ã¥ããŒããšããŠæ©èœãããµãŒãã¹ãå¶åŸ¡ããŒãã«è¿œå ããŸããã¯ã©ã€ã¢ã³ãã¯http /ãä»ããŠãã®ããŒã¿ã«ã«æ¥ç¶ã§ããŸãã httpsãšãããå¿ èŠãªããšã¯äœã§ãããŸãïŒãŸããã»ãšãã©ïŒã
ãã®çµæãçŸåšããã©ãŒã«ããã¬ã©ã³ãã·ã¹ãã ããããŸãããã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã®ãã¹ãŠã®èŠçŽ ãäœããã®æ¹æ³ã§ç®¡çããå¿ èŠããããŸããOpenstackã¯ãããžã§ã¯ãã®ã»ããã§ããããããããç¹å®ã®æ©èœãæäŸããããšã¯åã«èª¬æããŸãããã芧ã®ãšãããæ§æããã³å¶åŸ¡ããå¿ èŠã®ããèŠçŽ ã¯ååã«ãããŸãã仿¥ã¯ãããã¯ãŒã¯éšåã«ã€ããŠã話ããŸãã
äžæ§åã¢ãŒããã¯ãã£
OpenStackã¯Neutronã§ãããä»®æ³ãã·ã³ã®ããŒãããç°ãªãL2ãããã¯ãŒã¯ã«ããVMéã®å ±éã®L2ãããã¯ãŒã¯ãã©ãã£ãã¯ã«ãŒãã£ã³ã°ãœãããŠã§ã¢ã«æ¥ç¶ããå€éšã«ã«ãŒãã£ã³ã°ããŠãNATããããŒãã£ã³ã°IPãDHCPãªã©ã®ãµãŒãã¹ãæäŸããŸãã
é«ã¬ãã«ã®ãããã¯ãŒã¯ãµãŒãã¹ïŒåºæ¬éšåïŒã¯æ¬¡ã®ããã«èª¬æã§ããŸãã
VMãèµ·åãããšããããã¯ãŒã¯ãµãŒãã¹ã¯æ¬¡ã®ããã«ãªããŸãã
- ãã®VMïŒãŸãã¯è€æ°ã®ããŒãïŒã®ããŒããäœæããDHCPãµãŒãã¹ã«éç¥ããŸãã
- æ°ããä»®æ³ãããã¯ãŒã¯ããã€ã¹ãïŒlibvirtãä»ããŠïŒäœæãããŸãã
- VMã¯ãæé 1ã§äœæãã1ã€ïŒè€æ°ã®ããŒãïŒã«æ¥ç¶ããŸãã
å¥åŠãªããšã«ãNeutronã®ä»äºã®äžå¿ã«ã¯ãLinuxã«é£ã³èŸŒãã ããšã®ãã人ãªã誰ã§ãç¥ã£ãŠããæšæºçãªã¡ã«ããºã ããããŸãããããã¯ãåååãiptablesãlinuxããªããžãopenvswitchãconntrackãªã©ã§ãã
Neutronã¯SDNã³ã³ãããŒã©ãŒã§ã¯ãªãããšãããã«æããã«ããå¿ èŠããããŸãã
Neutronã¯ãçžäºæ¥ç¶ãããããã€ãã®ã³ã³ããŒãã³ãã§æ§æãããŠããŸã
ãOpenstack-neutron-serverã¯ãAPIãä»ããŠãŠãŒã¶ãŒã®èŠæ±ãåŠçããããŒã¢ã³ã§ãããã®ããŒã¢ã³ã¯ãããã¯ãŒã¯æ¥ç¶ãèŠå®ããŠããŸãããããã©ã°ã€ã³ã«å¿ èŠãªæ å ±ãæäŸãããã©ã°ã€ã³ã¯å¿ èŠãªãããã¯ãŒã¯èŠçŽ ãæ§æããŸããOpenStackããŒãäžã®NeutronãšãŒãžã§ã³ãã¯NeutronãµãŒããŒã«ç»é²ããŸãã
Neutron-serverã¯ãå®éã«ã¯pythonã§èšè¿°ãããã¢ããªã±ãŒã·ã§ã³ã§ãããæ¬¡ã®2ã€ã®éšåã§æ§æãããŠããŸãã
- RESTãµãŒãã¹
- Neutronãã©ã°ã€ã³ïŒã³ã¢/ãµãŒãã¹ïŒ
RESTãµãŒãã¹ã¯ãä»ã®ã³ã³ããŒãã³ãããã®APIåŒã³åºãïŒããšãã°ãæ å ±ãæäŸããèŠæ±ãªã©ïŒãåä¿¡ããããã«èšèšãããŠããŸãã
ãã©ã°ã€ã³ã¯ãAPIèŠæ±ã§åŒã³åºããããã©ã°ã€ã³ãœãããŠã§ã¢ã³ã³ããŒãã³ã/ã¢ãžã¥ãŒã«ã§ããã€ãŸãããµãŒãã¹ã®å²ãåœãŠã¯ããããä»ããŠè¡ãããŸãããã©ã°ã€ã³ã¯ããµãŒãã¹ãšã«ãŒãã®2ã€ã®ã¿ã€ãã«åããããŸããååãšããŠãhorseãã©ã°ã€ã³ã¯äž»ã«VMéã®ã¢ãã¬ã¹ã¹ããŒã¹ãšL2æ¥ç¶ã®ç®¡çãæ åœãããµãŒãã¹ãã©ã°ã€ã³ã¯ãã§ã«VPNãFWãªã©ã®è¿œå æ©èœãæäŸããŠããŸãã
仿¥å©çšå¯èœãªãã©ã°ã€ã³ã®ãªã¹ãã¯ãããšãã°ããã§è¡šç€ºã§ããŸãã
ãµãŒãã¹ãã©ã°ã€ã³ã¯è€æ°ããå ŽåããããŸãããããŒã¹ãã©ã°ã€ã³ã¯1ã€ãããããŸããã
Openstack-neutron-ml2æšæºã®Openstackã«ãŒããã©ã°ã€ã³ã§ãããã®ãã©ã°ã€ã³ã¯ïŒä»¥åã®ãã©ã°ã€ã³ãšã¯ç°ãªãïŒã¢ãžã¥ã©ãŒã¢ãŒããã¯ãã£ãåããŠãããæ¥ç¶ãããŠãããã©ã€ããŒãä»ããŠãããã¯ãŒã¯ãµãŒãã¹ãæ§æããŸãããã©ã°ã€ã³èªäœã«ã€ããŠã¯å°ãåŸã§æ€èšããŸããå®éãOpenStackããããã¯ãŒã¯éšåã«æã€æè»æ§ãæäŸããããã§ããã«ãŒããã©ã°ã€ã³ã¯çœ®ãæããããšãã§ããŸãïŒããšãã°ãContrail Networkingããã®ãããªçœ®ãæããè¡ããŸãïŒã
RPCãµãŒãã¹ïŒrabbitmq-serverïŒ -ãã¥ãŒç®¡çãšä»ã®OpenStackãµãŒãã¹ãšã®éä¿¡ãããã³ãããã¯ãŒã¯ãµãŒãã¹ãšãŒãžã§ã³ãéã®éä¿¡ãæäŸãããµãŒãã¹ã
ãããã¯ãŒã¯ãšãŒãžã§ã³ã-ãããã¯ãŒã¯ãµãŒãã¹ãæ§æãããŠããåããŒãã«é 眮ãããŠãããšãŒãžã§ã³ãã
ãšãŒãžã§ã³ãã«ã¯ããã€ãã®çš®é¡ããããŸãã
äž»ãªãšãŒãžã§ã³ãã¯L2ãšãŒãžã§ã³ãããããã®ãšãŒãžã§ã³ãã¯ãå¶åŸ¡ããŒãïŒããæ£ç¢ºã«ã¯ãããã³ãã«ãµãŒãã¹ãæäŸãããã¹ãŠã®ããŒãïŒãå«ãåãã€ããŒãã€ã¶ãŒã§å®è¡ããããã®äž»ãªæ©èœã¯ãä»®æ³ãã·ã³ãå ±éã®L2ãããã¯ãŒã¯ã«æ¥ç¶ããã€ãã³ããçºçãããšãã«ã¢ã©ãŒããçæããããšã§ãïŒããšãã°ãããŒããç¡å¹/æå¹ã«ããŸãïŒã
次ã®ãããã»ã©éèŠã§ã¯ãªããšãŒãžã§ã³ãã¯L3ãšãŒãžã§ã³ãã§ã..ãããã©ã«ãã§ã¯ããã®ãšãŒãžã§ã³ãã¯ãããã¯ãŒã¯ããŒãäžã§æä»çã«å®è¡ããïŒå€ãã®å Žåããããã¯ãŒã¯ããŒãã¯å¶åŸ¡ããŒããšçµã¿åããããŸãïŒãããã³ããããã¯ãŒã¯éïŒãããã¯ãŒã¯ãšä»ã®ããã³ãã®ãããã¯ãŒã¯éã®äž¡æ¹ã§ãNATããã³DHCPãµãŒãã¹ãæäŸããå€éšã§å©çšå¯èœïŒã®ã«ãŒãã£ã³ã°ãæäŸããŸãããã ããDVRïŒåæ£ã«ãŒã¿ãŒïŒã䜿çšããå ŽåãL3ãã©ã°ã€ã³ã®å¿ èŠæ§ã¯èšç®ããŒãã«ãçŸããŸãã
L3ãšãŒãžã§ã³ãã¯ãLinuxããŒã ã¹ããŒã¹ã䜿çšããŠãåããã³ãã«ç¬èªã®åé¢ããããããã¯ãŒã¯ã®ã»ãããšããã©ãã£ãã¯ãã«ãŒãã£ã³ã°ããã¬ã€ã€ãŒ2ãããã¯ãŒã¯ã«ã²ãŒããŠã§ã€ãµãŒãã¹ãæäŸããä»®æ³ã«ãŒã¿ãŒã®æ©èœãæäŸããŸãã
ããŒã¿ããŒã¹-ãããã¯ãŒã¯ããµãããããããŒããããŒã«ãªã©ã®èå¥åã®ããŒã¿ããŒã¹ã
å®éãNeutronã¯ä»»æã®ãããã¯ãŒã¯ãšã³ãã£ãã£ã®äœæããAPIèŠæ±ãåãå ¥ããèŠæ±ãèªèšŒããRPCïŒãã©ã°ã€ã³ãŸãã¯ãšãŒãžã§ã³ãã«ã¢ãã¬ã¹æå®ããå ŽåïŒãŸãã¯REST APIïŒSDNã§éä¿¡ããå ŽåïŒãä»ããŠãèŠæ±ããããµãŒãã¹ãç·šæããããã«å¿ èŠãªæç€ºããšãŒãžã§ã³ãã«éä¿¡ããŸãïŒãã©ã°ã€ã³ãä»ããŠïŒ ..ã
次ã«ããã¹ãã€ã³ã¹ããŒã«ïŒå±éæ¹æ³ãšãå®éã®éšåã®åŸåã«å«ãŸãããã®ïŒã«ç®ãåããŠãã©ã®ã³ã³ããŒãã³ããé 眮ãããŠãããã確èªããŸãããã
(overcloud) [stack@undercloud ~]$ openstack network agent list
+--------------------------------------+--------------------+-------------------------------------+-------------------+-------+-------+---------------------------+
| ID | Agent Type | Host | Availability Zone | Alive | State | Binary |
+--------------------------------------+--------------------+-------------------------------------+-------------------+-------+-------+---------------------------+
| 10495de9-ba4b-41fe-b30a-b90ec3f8728b | Open vSwitch agent | overcloud-novacompute-1.localdomain | None | :-) | UP | neutron-openvswitch-agent |
| 1515ad4a-5972-46c3-af5f-e5446dff7ac7 | L3 agent | overcloud-controller-0.localdomain | nova | :-) | UP | neutron-l3-agent |
| 322e62ca-1e5a-479e-9a96-4f26d09abdd7 | DHCP agent | overcloud-controller-0.localdomain | nova | :-) | UP | neutron-dhcp-agent |
| 9c1de2f9-bac5-400e-998d-4360f04fc533 | Open vSwitch agent | overcloud-novacompute-0.localdomain | None | :-) | UP | neutron-openvswitch-agent |
| d99c5657-851e-4d3c-bef6-f1e3bb1acfb0 | Open vSwitch agent | overcloud-controller-0.localdomain | None | :-) | UP | neutron-openvswitch-agent |
| ff85fae6-5543-45fb-a301-19c57b62d836 | Metadata agent | overcloud-controller-0.localdomain | None | :-) | UP | neutron-metadata-agent |
+--------------------------------------+--------------------+-------------------------------------+-------------------+-------+-------+---------------------------+
(overcloud) [stack@undercloud ~]$
å®éããããNeutronã®å šäœçãªæ§é ã§ããããã§ãML2ãã©ã°ã€ã³ã«å°ãæéãããã䟡å€ããããŸãã
ã¢ãžã¥ã©ãŒã¬ã€ã€ãŒ2
äžèšã®ããã«ããã©ã°ã€ã³ã¯æšæºã®OpenStackã«ãŒããã©ã°ã€ã³ã§ãããã¢ãžã¥ã©ãŒã¢ãŒããã¯ãã£ãåããŠããŸãã
ML2ãã©ã°ã€ã³ã®å身ã¯ã¢ããªã·ãã¯æ§é ã§ãããããšãã°ã1ã€ã®ã€ã³ã¹ããŒã«ã§è€æ°ã®ãã¯ãããžãŒãçµã¿åãããŠäœ¿çšââããããšã¯ã§ããŸããã§ãããããšãã°ãopenvswitchãšlinuxbridgeã®äž¡æ¹ãåæã«äœ¿çšããããšã¯ã§ããŸããïŒæåãŸãã¯2çªç®ã®ããããïŒããã®ããããã®ã¢ãŒããã¯ãã£ãåããML2ãã©ã°ã€ã³ãäœæãããŸããã
ML2ã«ã¯ã2ã€ã®ã³ã³ããŒãã³ãããããŸãã2ã€ã®ã¿ã€ãã®ãã©ã€ããŒïŒã¿ã€ããã©ã€ããŒãšã¡ã«ããºã ãã©ã€ããŒã§ãã
ã¿ã€ããã©ã€ãã¯ãVxLANãVLANãGREãªã©ããããã¯ãŒã¯æ¥ç¶ãæŽçããããã«äœ¿çšããããã¯ãããžãå®çŸ©ããŸããåæã«ããã©ã€ããŒã䜿çšãããšãããŸããŸãªãã¯ãããžãŒã䜿çšã§ããŸããæšæºãã¯ãããžã¯ããªãŒããŒã¬ã€ãããã¯ãŒã¯ããã³vlanå€éšãããã¯ãŒã¯çšã®VxLANã«ãã»ã«åã§ãã
ã¿ã€ããã©ã€ãã«ã¯ã次ã®ã¿ã€ãã®ãããã¯ãŒã¯ãå«ãŸããŸãã
ãã©ãã-ã¿ã°ä»ããããŠããªã
VLANã®ãããã¯ãŒã¯-ã¿ã°ä»ãããããããã¯ãŒã¯
ããŒã«ã«-ãªãŒã«ã€ã³ã¯ã³ã€ã³ã¹ããŒã«çšã®ç¹å¥ãªã¿ã€ãã®ãããã¯ãŒã¯ïŒãã®ãããªã€ã³ã¹ããŒã«ã¯éçºè ãŸãã¯ãã¬ãŒãã³ã°ã®ããããã«å¿ èŠã§ãïŒ
GRE -
GREVxLANãã³ãã«ã䜿çšãããªãŒããŒã¬ã€ãããã¯ãŒã¯-VxLANãã³ãã«ã䜿çšãããªãŒããŒã¬ã€ãããã¯ãŒã¯
ã¡ã«ããºã ãã©ã€ããŒã¯ãã¿ã€ããã©ã€ããŒã§æå®ããããã¯ãããžãŒã®ç·šæãæäŸããææ®µãå®çŸ©ããŸã-ããšãã°ãopenvswitchãsr-iovãopendaylightãOVNãªã©ã
ãã®ãã©ã€ããŒã®å®è£ ã«å¿ããŠãNeutronã«ãã£ãŠå¶åŸ¡ããããšãŒãžã§ã³ãã䜿çšãããããå€éšSDNã³ã³ãããŒã©ãŒãšã®æ¥ç¶ã䜿çšãããL2ãããã¯ãŒã¯ã®ç·šæãã«ãŒãã£ã³ã°ãªã©ã®ãã¹ãŠã®åé¡ãåŠçãããŸãã
äŸML2ãOVSãšäžç·ã«äœ¿çšããå Žåã¯ãåèšç®ããŒãã«ã¯ãOVSã管çããL2ãšãŒãžã§ã³ããèšå®ãããŠããŸãããã ããããšãã°OVNãOpenDayLightã䜿çšããå ŽåãOVSã³ã³ãããŒã«ããã®ç®¡èœäžã«ãããŸããNeutronã¯ã«ãŒããã©ã°ã€ã³ãä»ããŠã³ã³ãããŒã©ãŒã«ã³ãã³ããæäŸãã圌ã¯ãã§ã«èšãããããšãå®è¡ããŸãã
OpenvSwitchã®æŽæ°
çŸåšãOpenStackã®äž»èŠã³ã³ããŒãã³ãã®1ã€ã¯OpenvSwitchã§ãã
JuniperContrailãNokiaNuageãªã©ã®è¿œå ãã³ããŒSDNã䜿çšããã«OpenStackãã€ã³ã¹ããŒã«ããå ŽåãOVSã¯ã¯ã©ãŠããããã¯ãŒã¯ã®ã¡ã€ã³ãããã¯ãŒã¯ã³ã³ããŒãã³ãã§ãããiptablesãconntrackãnamespacesãšãšãã«ããã«ãããã³ã·ãŒãåããæ¬æ ŒçãªãªãŒããŒã¬ã€ãããã¯ãŒã¯ãç·šæã§ããŸããåœç¶ããã®ã³ã³ããŒãã³ãã¯ãããšãã°ããµãŒãããŒãã£ç¬èªã®ïŒãã³ããŒïŒSDNãœãªã¥ãŒã·ã§ã³ã䜿çšããå Žåã«çœ®ãæããããšãã§ããŸãã
OVSã¯ãä»®æ³ãã©ãã£ãã¯ãã©ã¯ãŒããŒãšããŠä»®æ³ç°å¢ã§äœ¿çšããããã«èšèšããããªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã¹ã€ããã§ãã
çŸåšãOVSã«ã¯ãQoSãLACPãVLANãVxLANãGENEVEãOpenFlowãDPDKãªã©ã®ãã¯ãããžãŒãå«ãéåžžã«åªããæ©èœããããŸãã
泚ïŒåœåãOVSã¯ãé«è² è·ã®ãã¬ã³ã æ©èœã®ãœããã¹ã€ãããšããŠã¯èããããŠããããWEBãµãŒããŒãã¡ãŒã«ãµãŒããŒãªã©ã垯åå¹ ãããŸã䜿çšããªãITæ©èœåãã«èšèšãããŠããŸããããã ããOVSã¯æçµæ±ºå®äžã§ãããçŸåšã®OVSå®è£ ã§ã¯ããã©ãŒãã³ã¹ãšæ©èœãå€§å¹ ã«åäžããŠãããããé«è² è·æ©èœãåããéä¿¡äºæ¥è ã䜿çšã§ããŸããããšãã°ãDPDKã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ããµããŒãããOVSå®è£ ããããŸãã
ç¥ã£ãŠããã¹ã3ã€ã®éèŠãªOVSã³ã³ããŒãã³ãããããŸãã
- ã«ãŒãã«ã¢ãžã¥ãŒã«-ã³ã³ãããŒã«ããåä¿¡ããã«ãŒã«ã«åºã¥ããŠãã©ãã£ãã¯ãåŠçãããã«ãŒãã«ã¹ããŒã¹ã«ããã³ã³ããŒãã³ãã
- vSwitch daemon (ovs-vswitchd) â , user space, kernel â
- Database server â , , OVS, . OVSDB SDN .
ããããã¹ãŠã«ã¯ãovs-vsctlãovs-appctlãovs-ofctlãªã©ã®äžé£ã®èšºæããã³ç®¡çãŠãŒãã£ãªãã£ãä»å±ããŠããŸãã
çŸåšãOpenstackã¯ãEPCãSBCãHLRãªã©ã®ãããã¯ãŒã¯æ©èœãç§»è¡ããããã«éä¿¡äºæ¥è ã«ãã£ãŠåºã䜿çšãããŠããŸããäžéšã®æ©èœã¯ãOVSã®åœ¢åŒã§åé¡ãªãåäœã§ããŸãããããšãã°ãEPCã¯ãµãã¹ã¯ã©ã€ããŒãã©ãã£ãã¯ãåŠçããŸããã€ãŸããEPCã¯ããèªäœãä»ããŠå€§éã®ãã©ãã£ãã¯ãééãããŸãïŒçŸåšããã©ãã£ãã¯éã¯æ¯ç§æ°çŸã®ã¬ãããã«éããŸãïŒãåœç¶ãã«ãŒãã«ã¹ããŒã¹ãä»ããŠãã®ãããªãã©ãã£ãã¯ãé§åããããšã¯ïŒãã©ã¯ãŒããŒã¯ããã©ã«ãã§ããã«ããããïŒãè¯ãèãã§ã¯ãããŸããããããã£ãŠãOVSã¯ãå€ãã®å ŽåãDPDKã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãã¯ãããžãŒã䜿çšããŠãŠãŒã¶ãŒã¹ããŒã¹ã«å®å šã«ãããã€ãããNICããã«ãŒãã«ããã€ãã¹ããŠãŠãŒã¶ãŒã¹ããŒã¹ã«ãã©ãã£ãã¯ã転éããŸãã
泚ïŒãã¬ã³ã æ©èœçšã«å±éãããã¯ã©ãŠãã®å ŽåãOVSããã€ãã¹ããèšç®ããŒãããã¹ã€ããã³ã°æ©åšã«çŽæ¥ãã©ãã£ãã¯ãåºåããããšãã§ããŸããSR-IOVããã³ãã¹ã¹ã«ãŒã¡ã«ããºã ã¯ããã®ç®çã§äœ¿çšãããŸãã
å®éã®ã¬ã€ã¢ãŠãã§ã¯ã©ã®ããã«æ©èœããŸããïŒ
ããã§ã¯ãå®éã®éšåã«ç§»ãããã¹ãŠãå®éã«ã©ã®ããã«æ©èœããããèŠãŠã¿ãŸãããã
ç°¡åãªOpenstackã€ã³ã¹ããŒã«ãå±éããããšããå§ããŸããããå®éšçšã®ãµãŒããŒã®ã»ãããæå ã«ãªããããä»®æ³ãã·ã³ãã1ã€ã®ç©çãµãŒããŒã«ã¬ã€ã¢ãŠããã¢ã»ã³ãã«ããŸããã¯ãããã¡ããããã®ãããªãœãªã¥ãŒã·ã§ã³ã¯åçšç®çã«ã¯é©ããŠããŸããããOpenstackã§ãããã¯ãŒã¯ãã©ã®ããã«æ©èœãããã®äŸãèŠããšããã®ãããªã€ã³ã¹ããŒã«ã§ååã§ããããã«ããã¬ãŒãã³ã°ç®çã®ãã®ãããªã€ã³ã¹ããŒã«ã¯ããã©ãã£ãã¯ãªã©ããã£ããã§ãããããããã«è峿·±ããã®ã§ãã
åºæ¬çãªéšåã ããèŠãå¿ èŠããããããè€æ°ã®ãããã¯ãŒã¯ã䜿çšããããšã¯ã§ããŸãããã2ã€ã®ãããã¯ãŒã¯ã®ã¿ã䜿çšããŠãã¹ãŠãã¬ã€ãºããŸãããã®ã¬ã€ã¢ãŠãã®2çªç®ã®ãããã¯ãŒã¯ã¯ãã¢ã³ããŒã¯ã©ãŠããšdnsãµãŒããŒãžã®ã¢ã¯ã»ã¹å°çšã«äœ¿çšãããŸããä»ã®ãšãããå€éšãããã¯ãŒã¯ã«ã€ããŠã¯è§ŠããŸãããããã¯ãå¥ã®å€§ããªèšäºã®ãããã¯ã§ãã
ããã§ã¯ãé çªã«å§ããŸãããããŸããå°ãçè«ã TripleOïŒOpenstackäžã®OpenstackïŒã䜿çšããŠOpenstackãã€ã³ã¹ããŒã«ããŸãã TripleOã®æ¬è³ªã¯ãã¢ã³ããŒã¯ã©ãŠããšåŒã°ããOpenstackãªãŒã«ã€ã³ã¯ã³ïŒã€ãŸãã1ã€ã®ããŒãïŒãã€ã³ã¹ããŒã«ããå±éãããOpenstackã®æ©èœã䜿çšããŠããªãŒããŒã¯ã©ãŠããšåŒã°ããæªçšãç®çãšããOpenstackãã€ã³ã¹ããŒã«ããããšã§ãã Undercloudã¯ãã³ã³ãã¥ãŒãã£ã³ã°ãå¶åŸ¡ãã¹ãã¬ãŒãžããŒããšããŠæ©èœãããã€ããŒãã€ã¶ãŒãããããžã§ãã³ã°ããããã«ãç©çãµãŒããŒïŒãã¢ã¡ã¿ã«ïŒã管çããåºæã®æ©èœïŒç®èãªãããžã§ã¯ãïŒã䜿çšããŸããã€ãŸããOpenstackã®ãããã€ã«ãµãŒãããŒãã£ã®ããŒã«ã䜿çšããŠããŸãããOpenstackãOpenstackãšãšãã«ãããã€ããŸããã€ã³ã¹ããŒã«ãé²ãã«ã€ããŠãããã¯ã¯ããã«æç¢ºã«ãªãã®ã§ãããã§æ¢ãŸã£ãŠå ã«é²ãããšã¯ããŸããã
: Openstack, . â , , . . ceph ( ) (Storage management Storage) , , QoS , . .
泚ïŒä»®æ³ãã·ã³ã«åºã¥ãä»®æ³ç°å¢ã§ä»®æ³ãã·ã³ãå®è¡ãããããæåã«ãã¹ããããä»®æ³åãæå¹ã«ããå¿ èŠããããŸãã
ãã¹ããããä»®æ³åãæå¹ã«ãªã£ãŠãããã©ããã¯ã次ã®ããã«ç¢ºèªã§ããŸãã
[root@hp-gen9 bormoglotx]# cat /sys/module/kvm_intel/parameters/nested N [root@hp-gen9 bormoglotx]#
æåNã衚瀺ãããŠããå Žåã¯ããããã¯ãŒã¯äžã«ããã¬ã€ãïŒããšãã°ããã®ã¬ã€ãïŒã«åŸã£ãŠããã¹ããããä»®æ³åã®ãµããŒããæå¹ã«ããŸãã
ä»®æ³ãã·ã³ããæ¬¡ã®ã¹ããŒã ãçµã¿ç«ãŠãå¿ èŠããããŸãã
ç§ã®å Žåãå°æ¥ã®ã€ã³ã¹ããŒã«ã®äžéšã§ããä»®æ³ãã·ã³ã®æ¥ç¶æ§ã®ããã«ïŒ7ã€ãããŸããããªãœãŒã¹ãããŸããªãå Žåã¯4ã€ã§æžãŸããããšãã§ããŸãïŒãOpenvSwitchã䜿çšããŸããã1ã€ã®ovsããªããžãäœæããããŒãã°ã«ãŒããä»ããŠä»®æ³ãã·ã³ãããã«æ¥ç¶ããŸããããããè¡ãããã«ã次ã®åœ¢åŒã®xmlãã¡ã€ã«ãäœæããŸããã
[root@hp-gen9 ~]# virsh net-dumpxml ovs-network-1
<network>
<name>ovs-network-1</name>
<uuid>7a2e7de7-fc16-4e00-b1ed-4d190133af67</uuid>
<forward mode='bridge'/>
<bridge name='ovs-br1'/>
<virtualport type='openvswitch'/>
<portgroup name='trunk-1'>
<vlan trunk='yes'>
<tag id='100'/>
<tag id='101'/>
<tag id='102'/>
</vlan>
</portgroup>
<portgroup name='access-100'>
<vlan>
<tag id='100'/>
</vlan>
</portgroup>
<portgroup name='access-101'>
<vlan>
<tag id='101'/>
</vlan>
</portgroup>
</network>
ããã§ã¯ãã°ã«ãŒãã®3ã€ã®ããŒãïŒ2ã€ã®ã¢ã¯ã»ã¹ãš1ã€ã®ãã©ã³ã¯ïŒã宣èšãããŠããŸãïŒåŸè ã¯DNSãµãŒããŒã«å¿ èŠã§ãããããããªãã§å®è¡ããããšãããã¹ããã·ã³ã§èµ·åããããšãã§ããŸã-ããã¯ããªãã«ãšã£ãŠãã䟿å©ãªæ¹æ³ã§ãïŒã次ã«ããã®ãã³ãã¬ãŒãã䜿çšããŠãvirshnet-defineãä»ããŠã§ããããšã宣èšããŸãã
virsh net-define ovs-network-1.xml
virsh net-start ovs-network-1
virsh net-autostart ovs-network-1
次ã«ããã€ããŒãã€ã¶ãŒã®ããŒãã®æ§æãç·šéããŸãããã
[root@hp-gen9 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens1f0
TYPE=Ethernet
NAME=ens1f0
DEVICE=ens1f0
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=ovs-br1
ONBOOT=yes
OVS_OPTIONS="trunk=100,101,102"
[root@hp-gen9 ~]
[root@hp-gen9 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ovs-br1
DEVICE=ovs-br1
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.255.200
PREFIX=24
[root@hp-gen9 ~]#
泚ïŒãã®ã·ããªãªã§ã¯ãããŒãovs-br1ã®ã¢ãã¬ã¹ã¯vlanã¿ã°ããªãããã䜿çšã§ããŸããããããä¿®æ£ããã«ã¯ãã³ãã³ãsudo ovs-vsctl set port ovs-br1 tag = 100ãçºè¡ããŸãããã ããåèµ·åãããšããã®ã¿ã°ã¯è¡šç€ºãããªããªããŸãïŒã¿ã°ãæå®ã®äœçœ®ã«ä¿æããæ¹æ³ã誰ããç¥ã£ãŠããå Žåã¯ãéåžžã«æè¬ããŸãïŒããã ããããã¯ããã»ã©éèŠã§ã¯ãããŸããããã®ã¢ãã¬ã¹ã¯ã€ã³ã¹ããŒã«æã«ã®ã¿å¿ èŠã§ãããOpenstackãå®å šã«å±éãããŠãããšãã«ã¯å¿ èŠãªãããã§ããæ¬¡ã«ãã¢ã³ããŒã¯ã©ãŠãã«ãŒãäœæããŸãã
virt-install -n undercloud --description "undercloud" --os-type=Linux --os-variant=centos7.0 --ram=8192 --vcpus=8 --disk path=/var/lib/libvirt/images/undercloud.qcow2,bus=virtio,size=40,format=qcow2 --network network:ovs-network-1,model=virtio,portgroup=access-100 --network network:ovs-network-1,model=virtio,portgroup=access-101 --graphics none --location /var/lib/libvirt/boot/CentOS-7-x86_64-Minimal-2003.iso --extra-args console=ttyS0
ã€ã³ã¹ããŒã«äžã«ããã·ã³åããã¹ã¯ãŒãããŠãŒã¶ãŒãntpãµãŒããŒãªã©ãå¿ èŠãªãã¹ãŠã®ãã©ã¡ãŒã¿ãŒãèšå®ãããšãããã«ããŒããæ§æã§ããŸãããã€ã³ã¹ããŒã«åŸã¯ãã³ã³ãœãŒã«ãããã·ã³ã«ã¢ã¯ã»ã¹ããŠå¿ èŠãªãã¡ã€ã«ãä¿®æ£ããæ¹ãç°¡åã§ããæ¢è£œã®ã€ã¡ãŒãžãæ¢ã«ããå Žåã¯ãããã䜿çšããããç§ãšåãããã«å®è¡ã§ããŸããCentos7ã®æå°ã€ã¡ãŒãžãããŠã³ããŒãããããã䜿çšããŠVMãã€ã³ã¹ããŒã«ããŸãã
ã€ã³ã¹ããŒã«ãæ£åžžã«å®äºãããšãã¢ã³ããŒã¯ã©ãŠããé 眮ã§ããä»®æ³ãã·ã³ãã§ãããããŸãã
[root@hp-gen9 bormoglotx]# virsh list
Id Name State
----------------------------------------------------
6 dns-server running
62 undercloud running
ãŸããã€ã³ã¹ããŒã«ããã»ã¹äžã«å¿ èŠãªããŒã«ãã€ã³ã¹ããŒã«ããŸãã
sudo yum update -y
sudo yum install -y net-tools
sudo yum install -y wget
sudo yum install -y ipmitool
Undercloudã®ã€ã³ã¹ããŒã«
ã¹ã¿ãã¯ãŠãŒã¶ãŒãäœæãããã¹ã¯ãŒããèšå®ããŠsudoerã«è¿œå ãããã¹ã¯ãŒããå ¥åããã«sudoãä»ããŠrootã³ãã³ããå®è¡ã§ããããã«ããŸãã
useradd stack
passwd stack
echo âstack ALL=(root) NOPASSWD:ALLâ > /etc/sudoers.d/stack
chmod 0440 /etc/sudoers.d/stack
ããã§ãhostsãã¡ã€ã«ã§ãã«ããŒã undercloudãæå®ããŸãã
vi /etc/hosts
127.0.0.1 undercloud.openstack.rnd localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
次ã«ããªããžããªã远å ããå¿ èŠãªãœãããŠã§ã¢ãã€ã³ã¹ããŒã«ããŸãã
sudo yum install -y https://trunk.rdoproject.org/centos7/current/python2-tripleo-repos-0.0.1-0.20200409224957.8bac392.el7.noarch.rpm
sudo -E tripleo-repos -b queens current
sudo -E tripleo-repos -b queens current ceph
sudo yum install -y python-tripleoclient
sudo yum install -y ceph-ansible
泚ïŒcephãã€ã³ã¹ããŒã«ããäºå®ããªãå Žåã¯ãcephé¢é£ã®ã³ãã³ããå ¥åããå¿ èŠã¯ãããŸãããã¯ã€ãŒã³ãºãªãªãŒã¹ã䜿çšããŸãããã奜ããªãã®ã䜿çšã§ããŸããæ¬¡ã«ãã¢ã³ããŒã¯ã©ãŠãæ§æãã¡ã€ã«ããŠãŒã¶ãŒã®ã¹ã¿ãã¯ããŒã ãã£ã¬ã¯ããªã«ã³ããŒããŸãã
cp /usr/share/instack-undercloud/undercloud.conf.sample ~/undercloud.conf
次ã«ããã®ãã¡ã€ã«ãã€ã³ã¹ããŒã«ã«åãããŠèª¿æŽããŠä¿®æ£ããå¿ èŠããããŸãã
次ã®è¡ããã¡ã€ã«ã®å é ã«è¿œå ããŸãã
vi undercloud.conf
[DEFAULT]
undercloud_hostname = undercloud.openstack.rnd
local_ip = 192.168.255.1/24
network_gateway = 192.168.255.1
undercloud_public_host = 192.168.255.2
undercloud_admin_host = 192.168.255.3
undercloud_nameservers = 192.168.255.253
generate_service_certificate = false
local_interface = eth0
local_mtu = 1450
network_cidr = 192.168.255.0/24
masquerade = true
masquerade_network = 192.168.255.0/24
dhcp_start = 192.168.255.11
dhcp_end = 192.168.255.50
inspection_iprange = 192.168.255.51,192.168.255.100
scheduler_max_attempts = 10
ã ãããèšå®ãçµãïŒ
undercloud_hostname -å®å šundercloudãµãŒããŒåã¯ãDNSãµãŒãã®ãšã³ããªãšäžèŽããªããã°ãªããŸãã
local_ipãprovizheningãããã¯ãŒã¯ãžã®ããŒã«ã«ã¢ãã¬ã¹undercloud -
network_gateway -åãããŒã«ã«ã¢ãã¬ã¹ãã€ã³ã¹ããŒã«æã«å€ã®äžçã«ã¢ã¯ã»ã¹ããããã®ã²ãŒããŠã§ã€ãšããŠæ©èœããŸãovercloudããŒãã¯ããŸããããŒã«ã«IPãšäžèŽãã
undercloud_public_hostããããžã§ãã³ã°ãããã¯ãŒã¯ããä»»æã®ããªãŒã¢ãã¬ã¹å²ãåœãŠãå€éšAPIã®äœæ-
undercloud_admin_hostããããžã§ãã³ã°ãããã¯ãŒã¯ããä»»æã®ããªãŒã¢ãã¬ã¹ãå²ãåœãŠãããå éšAPIã¢ãã¬ã¹ã
undercloud_nameserversãDNSãµãŒã-
generate_service_certificate-ãã®è¡ã¯çŸåšã®äŸã§ã¯éåžžã«éèŠã§ã
ãfalseã«èšå®ãããŠããªãå Žåãã€ã³ã¹ããŒã«äžã«ãšã©ãŒãçºçãããããåé¡ã¯ãããã¯ãŒã¯ããããžã§ãã³ã°ã®RedHatãã°ãã©ãã«ãŒlocal_interfaceã€ã³ã¿ãŒãã§ã€ã¹ã«èšè¿°ãããŠããŸãããã®ã€ã³ã¿ãŒãã§ã€ã¹ã¯ã¢ã³ããŒã¯ã©ãŠãã®å±éäžã«åæ§æããããããã¢ã³ããŒ
ã¯ã©ãŠãã«2ã€ã®ã€ã³ã¿ãŒãã§ã€ã¹ãå¿ èŠã§ãã1ã€ã¯ã¢ã¯ã»ã¹çšããã1ã€ã¯local_mtuã®ããããžã§ãã³ã°çšã§ããMTUãç§ãã¡ã¯1500ããŒãOVS Svichaãæã£ãŠãã¹ãã©ããšMTUç§ãæã£ãŠããã®ã§ã1450幎ã®å€ã«çœ®ãããšãå¿ èŠã§ãããVXLANããã±ãŒãžã«ã«ãã»ã«åãããŠããã§ããããã®
network_cidr -ããããžã§ãã³ã°ãããã¯ãŒã¯
ãã¹ã«ã¬ãŒã-å€éšãããã¯ãŒã¯ã«ã¢ã¯ã»ã¹ããããã®NATã®äœ¿çš
masquerade_network -ãããã¯ãŒã¯ãšããæå¿ãNAT -sya
dhcp_start-å±éãªãŒããŒ
ã¯ã©ãŠãäžã«ããŒãã«ã¢ãã¬ã¹ãå²ãåœãŠãããã¢ãã¬ã¹ããŒã«ã®éå§ã¢ãã¬ã¹dhcp_end-å±éãªãŒããŒã¯ã©ãŠãäžã«ããŒãã«ã¢ãã¬ã¹ãå²ãåœãŠãããã¢ãã¬ã¹ããŒã«ã®æçµã¢ãã¬ã¹
inspection_iprange-ã€ã³ããã¹ãã¯ã·ã§ã³ã«å¿ èŠãªã¢ãã¬ã¹ã®ããŒã«ïŒäžèšã®ããŒã«ãšäº€å·®ããŠã¯ãªããŸããïŒ ïŒ
scheduler_max_attempts-ãªãŒããŒã¯ã©ãŠãã®ã€ã³ã¹ããŒã«ã®æå€§è©Šè¡åæ°ïŒããŒãã®æ°ä»¥äžã§ããå¿ èŠããããŸãïŒ
ãã¡ã€ã«ãèšè¿°ãããåŸãã¢ã³ããŒã¯ã©ãŠãããããã€ããã³ãã³ããäžããããšãã§ããŸãã
openstack undercloud install
ã¢ã€ãã³ã«ããããŸãããæé ã¯10åãã30åããããŸããæçµçã«ã¯ã次ã®ãããªåºåã衚瀺ãããŸãã
vi undercloud.conf
2020-08-13 23:13:12,668 INFO:
#############################################################################
Undercloud install complete.
The file containing this installation's passwords is at
/home/stack/undercloud-passwords.conf.
There is also a stackrc file at /home/stack/stackrc.
These files are needed to interact with the OpenStack services, and should be
secured.
#############################################################################
ãã®åºåã¯ãã¢ã³ããŒã¯ã©ãŠããæ£åžžã«ã€ã³ã¹ããŒã«ãããããšã瀺ããŠããŸããããã§ãã¢ã³ããŒã¯ã©ãŠãã®ã¹ããŒã¿ã¹ã確èªããŠããªãŒããŒã¯ã©ãŠãã®ã€ã³ã¹ããŒã«ã«é²ãããšãã§ããŸãã
ifconfigã®åºåãèŠããšãæ°ããããªããžã€ã³ã¿ãŒãã§ã€ã¹ãããããšãããããŸãã
[stack@undercloud ~]$ ifconfig
br-ctlplane: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450
inet 192.168.255.1 netmask 255.255.255.0 broadcast 192.168.255.255
inet6 fe80::5054:ff:fe2c:89e prefixlen 64 scopeid 0x20<link>
ether 52:54:00:2c:08:9e txqueuelen 1000 (Ethernet)
RX packets 14 bytes 1095 (1.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 20 bytes 1292 (1.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ãªãŒããŒã¯ã©ãŠãã®å±éã¯ããã®ã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠå®è¡ãããŸãã
以äžã®åºåããã1ã€ã®ããŒãã«ãã¹ãŠã®ãµãŒãã¹ãããããšãããããŸãã
(undercloud) [stack@undercloud ~]$ openstack host list
+--------------------------+-----------+----------+
| Host Name | Service | Zone |
+--------------------------+-----------+----------+
| undercloud.openstack.rnd | conductor | internal |
| undercloud.openstack.rnd | scheduler | internal |
| undercloud.openstack.rnd | compute | nova |
+--------------------------+-----------+----------+
以äžã¯ãã¢ã³ããŒã¯ã©ãŠããããã¯ãŒã¯éšåã®æ§æã§ãã
(undercloud) [stack@undercloud ~]$ python -m json.tool /etc/os-net-config/config.json
{
"network_config": [
{
"addresses": [
{
"ip_netmask": "192.168.255.1/24"
}
],
"members": [
{
"dns_servers": [
"192.168.255.253"
],
"mtu": 1450,
"name": "eth0",
"primary": "true",
"type": "interface"
}
],
"mtu": 1450,
"name": "br-ctlplane",
"ovs_extra": [
"br-set-external-id br-ctlplane bridge-id br-ctlplane"
],
"routes": [],
"type": "ovs_bridge"
}
]
}
(undercloud) [stack@undercloud ~]$
ãªãŒããŒã¯ã©ãŠãã€ã³ã¹ããŒã«
çŸæç¹ã§ã¯ãã¢ã³ããŒã¯ã©ãŠããããªãããªãŒããŒã¯ã©ãŠããæ§ç¯ããããã®ååãªããŒãããããŸããããããã£ãŠããŸããå¿ èŠãªä»®æ³ãã·ã³ãå±éããŸããå±éäžã«ãã¢ã³ããŒã¯ã©ãŠãèªäœããªãŒããŒã¯ã©ãŠããã·ã³ã«OSãšå¿ èŠãªãœãããŠã§ã¢ãã€ã³ã¹ããŒã«ããŸã-ã€ãŸãããã·ã³ãå®å šã«å±éããå¿ èŠã¯ãããŸãããããã®ããã®ãã£ã¹ã¯ãäœæããŠãã®ãã©ã¡ãŒã¿ã決å®ããã ãã§ã-å®éã«ã¯ãOSãã€ã³ã¹ããŒã«ãããŠããªããã¢ãµãŒããŒãååŸããŸã..ã
ä»®æ³ãã·ã³ã®ãã£ã¹ã¯ãå ¥ã£ãŠãããã©ã«ããŒã«ç§»åããå¿ èŠãªãµã€ãºã®ãã£ã¹ã¯ãäœæããŸãã
cd /var/lib/libvirt/images/
qemu-img create -f qcow2 -o preallocation=metadata control-1.qcow2 60G
qemu-img create -f qcow2 -o preallocation=metadata compute-1.qcow2 60G
qemu-img create -f qcow2 -o preallocation=metadata compute-2.qcow2 60G
qemu-img create -f qcow2 -o preallocation=metadata storage-1.qcow2 160G
qemu-img create -f qcow2 -o preallocation=metadata storage-2.qcow2 160G
ã«ãŒãããæäœããŠãããããæš©éã«åé¡ãçºçããªãããã«ããããã®ãã£ã¹ã¯ã®ææè ã倿Žããå¿ èŠããããŸãã
[root@hp-gen9 images]# ls -lh
total 5.8G
drwxr-xr-x. 2 qemu qemu 4.0K Aug 13 16:15 backups
-rw-r--r--. 1 root root 61G Aug 14 03:07 compute-1.qcow2
-rw-r--r--. 1 root root 61G Aug 14 03:07 compute-2.qcow2
-rw-r--r--. 1 root root 61G Aug 14 03:07 control-1.qcow2
-rw-------. 1 qemu qemu 41G Aug 14 03:03 dns-server.qcow2
-rw-r--r--. 1 root root 161G Aug 14 03:07 storage-1.qcow2
-rw-r--r--. 1 root root 161G Aug 14 03:07 storage-2.qcow2
-rw-------. 1 qemu qemu 41G Aug 14 03:07 undercloud.qcow2
[root@hp-gen9 images]#
[root@hp-gen9 images]#
[root@hp-gen9 images]# chown qemu:qemu /var/lib/libvirt/images/*qcow2
[root@hp-gen9 images]# ls -lh
total 5.8G
drwxr-xr-x. 2 qemu qemu 4.0K Aug 13 16:15 backups
-rw-r--r--. 1 qemu qemu 61G Aug 14 03:07 compute-1.qcow2
-rw-r--r--. 1 qemu qemu 61G Aug 14 03:07 compute-2.qcow2
-rw-r--r--. 1 qemu qemu 61G Aug 14 03:07 control-1.qcow2
-rw-------. 1 qemu qemu 41G Aug 14 03:03 dns-server.qcow2
-rw-r--r--. 1 qemu qemu 161G Aug 14 03:07 storage-1.qcow2
-rw-r--r--. 1 qemu qemu 161G Aug 14 03:07 storage-2.qcow2
-rw-------. 1 qemu qemu 41G Aug 14 03:08 undercloud.qcow2
[root@hp-gen9 images]#
泚ïŒcephã調æ»ããããã«ã€ã³ã¹ããŒã«ããå Žåã¯ãå°ãªããšã2ã€ã®ãã£ã¹ã¯ã§å°ãªããšã3ã€ã®ããŒããäœæãããã³ãã¬ãŒãã§ä»®æ³ãã£ã¹ã¯vdaãvdbãªã©ã䜿çšãããããšã瀺ããŸããããã§ãããããã¹ãŠã®ãã·ã³ãå®çŸ©ããå¿ èŠããããŸãã
virt-install --name control-1 --ram 32768 --vcpus 8 --os-variant centos7.0 --disk path=/var/lib/libvirt/images/control-1.qcow2,device=disk,bus=virtio,format=qcow2 --noautoconsole --vnc --network network:ovs-network-1,model=virtio,portgroup=access-100 --network network:ovs-network-1,model=virtio,portgroup=trunk-1 --dry-run --print-xml > /tmp/control-1.xml
virt-install --name storage-1 --ram 16384 --vcpus 4 --os-variant centos7.0 --disk path=/var/lib/libvirt/images/storage-1.qcow2,device=disk,bus=virtio,format=qcow2 --noautoconsole --vnc --network network:ovs-network-1,model=virtio,portgroup=access-100 --dry-run --print-xml > /tmp/storage-1.xml
virt-install --name storage-2 --ram 16384 --vcpus 4 --os-variant centos7.0 --disk path=/var/lib/libvirt/images/storage-2.qcow2,device=disk,bus=virtio,format=qcow2 --noautoconsole --vnc --network network:ovs-network-1,model=virtio,portgroup=access-100 --dry-run --print-xml > /tmp/storage-2.xml
virt-install --name compute-1 --ram 32768 --vcpus 12 --os-variant centos7.0 --disk path=/var/lib/libvirt/images/compute-1.qcow2,device=disk,bus=virtio,format=qcow2 --noautoconsole --vnc --network network:ovs-network-1,model=virtio,portgroup=access-100 --dry-run --print-xml > /tmp/compute-1.xml
virt-install --name compute-2 --ram 32768 --vcpus 12 --os-variant centos7.0 --disk path=/var/lib/libvirt/images/compute-2.qcow2,device=disk,bus=virtio,format=qcow2 --noautoconsole --vnc --network network:ovs-network-1,model=virtio,portgroup=access-100 --dry-run --print-xml > /tmp/compute-2.xml
æåŸã«ãã³ãã³ã--print-xml> /tmp/storage-1.xmlããããŸããããã¯ã/ tmp /ãã©ã«ããŒå ã®åãã·ã³ã®èª¬æãå«ãxmlãã¡ã€ã«ãäœæããŸãã远å ããªããšãä»®æ³ãã·ã³ãå®çŸ©ã§ããŸããã
次ã«ãããããã¹ãŠã®ãã·ã³ãvirshã§å®çŸ©ããå¿ èŠããããŸãã
virsh define --file /tmp/control-1.xml
virsh define --file /tmp/compute-1.xml
virsh define --file /tmp/compute-2.xml
virsh define --file /tmp/storage-1.xml
virsh define --file /tmp/storage-2.xml
[root@hp-gen9 ~]# virsh list --all
Id Name State
----------------------------------------------------
6 dns-server running
64 undercloud running
- compute-1 shut off
- compute-2 shut off
- control-1 shut off
- storage-1 shut off
- storage-2 shut off
[root@hp-gen9 ~]#
ä»ãå°ããªãã¥ã¢ã³ã¹-tripleOã¯ãã€ã³ã¹ããŒã«ããã³ã€ã³ããã¹ãã¯ã·ã§ã³äžã«ãµãŒããŒã管çããããã«IPMIã䜿çšããŸãã
ã€ã³ããã¹ãã¯ã·ã§ã³ã¯ãããŒãã®ãããªãããããžã§ãã³ã°ã«å¿ èŠãªãã©ã¡ãŒã¿ãååŸããããã«ããŒããŠã§ã¢ãæ€æ»ããããã»ã¹ã§ããã€ã³ããã¹ãã¯ã·ã§ã³ã¯ããã¢ã¡ã¿ã«ãµãŒããŒã§åäœããããã«èšèšããããµãŒãã¹ã§ããironicã䜿çšããŠå®è¡ãããŸãã
ããããããã«åé¡ããããŸããIPMIã¢ã€ã¢ã³ãµãŒããŒã«åå¥ã®ããŒãïŒãŸãã¯å ±æããŒãããããŸãããããã¯éèŠã§ã¯ãããŸããïŒãããå Žåãä»®æ³ãã·ã³ã«ã¯ãã®ãããªããŒãããããŸãããããã§ãvbmcãšåŒã°ããã¯ã©ãããå©ãã«ãªããŸããããã¯ãIPMIããŒãããšãã¥ã¬ãŒãã§ãããŠãŒãã£ãªãã£ã§ãããã®ãã¥ã¢ã³ã¹ã¯ãESXIãã€ããŒãã€ã¶ãŒã§ãã®ãããªã©ããç«ã¡äžããã人ã«ã¯ç¹ã«æ³šæãæã䟡å€ããããŸãããã¡ãããvbmcã®é¡äŒŒç©ããããã©ããããããªãå Žåã¯ããã¹ãŠãå±éããåã«ãã®è³ªåã«æžæãå¿ èŠããããŸãã
vbmcãã€ã³ã¹ããŒã«ããŸãã
yum install yum install python2-virtualbmc
OSãããã±ãŒãžãèŠã€ããããªãå Žåã¯ããªããžããªã远å ããŸãã
yum install -y https://www.rdoproject.org/repos/rdo-release.rpm
次ã«ããŠãŒãã£ãªãã£ãæ§æããŸããããã§ã¯ãã¹ãŠãæ¥ãã¹ãããšã§ããããã§ãvbmcãªã¹ãã«ãµãŒããŒããªãããšã¯è«ççã§ãã
[root@hp-gen9 ~]# vbmc list
[root@hp-gen9 ~]#
ãããã衚瀺ããã«ã¯ã次ã®ããã«æåã§å®£èšããå¿ èŠããããŸãã
[root@hp-gen9 ~]# vbmc add control-1 --port 7001 --username admin --password admin
[root@hp-gen9 ~]# vbmc add storage-1 --port 7002 --username admin --password admin
[root@hp-gen9 ~]# vbmc add storage-2 --port 7003 --username admin --password admin
[root@hp-gen9 ~]# vbmc add compute-1 --port 7004 --username admin --password admin
[root@hp-gen9 ~]# vbmc add compute-2 --port 7005 --username admin --password admin
[root@hp-gen9 ~]#
[root@hp-gen9 ~]# vbmc list
+-------------+--------+---------+------+
| Domain name | Status | Address | Port |
+-------------+--------+---------+------+
| compute-1 | down | :: | 7004 |
| compute-2 | down | :: | 7005 |
| control-1 | down | :: | 7001 |
| storage-1 | down | :: | 7002 |
| storage-2 | down | :: | 7003 |
+-------------+--------+---------+------+
[root@hp-gen9 ~]#
ã³ãã³ãã®æ§æã¯æç¢ºã§èª¬æããªããšæããŸãããã ããçŸæç¹ã§ã¯ããã¹ãŠã®ã»ãã·ã§ã³ãDOWNã¹ããŒã¿ã¹ã«ãªã£ãŠããŸããããããUPã¹ããŒã¿ã¹ã«ããã«ã¯ã以äžãæå¹ã«ããå¿ èŠããããŸãã
[root@hp-gen9 ~]# vbmc start control-1
2020-08-14 03:15:57,826.826 13149 INFO VirtualBMC [-] Started vBMC instance for domain control-1
[root@hp-gen9 ~]# vbmc start storage-1
2020-08-14 03:15:58,316.316 13149 INFO VirtualBMC [-] Started vBMC instance for domain storage-1
[root@hp-gen9 ~]# vbmc start storage-2
2020-08-14 03:15:58,851.851 13149 INFO VirtualBMC [-] Started vBMC instance for domain storage-2
[root@hp-gen9 ~]# vbmc start compute-1
2020-08-14 03:15:59,307.307 13149 INFO VirtualBMC [-] Started vBMC instance for domain compute-1
[root@hp-gen9 ~]# vbmc start compute-2
2020-08-14 03:15:59,712.712 13149 INFO VirtualBMC [-] Started vBMC instance for domain compute-2
[root@hp-gen9 ~]#
[root@hp-gen9 ~]#
[root@hp-gen9 ~]# vbmc list
+-------------+---------+---------+------+
| Domain name | Status | Address | Port |
+-------------+---------+---------+------+
| compute-1 | running | :: | 7004 |
| compute-2 | running | :: | 7005 |
| control-1 | running | :: | 7001 |
| storage-1 | running | :: | 7002 |
| storage-2 | running | :: | 7003 |
+-------------+---------+---------+------+
[root@hp-gen9 ~]#
ãããŠæåŸã®ä»äžã-ãã¡ã€ã¢ãŠã©ãŒã«ã«ãŒã«ãä¿®æ£ããå¿ èŠããããŸãïŒãŸãããŸãã¯å®å šã«ãªãã«ããïŒïŒ
firewall-cmd --zone=public --add-port=7001/udp --permanent
firewall-cmd --zone=public --add-port=7002/udp --permanent
firewall-cmd --zone=public --add-port=7003/udp --permanent
firewall-cmd --zone=public --add-port=7004/udp --permanent
firewall-cmd --zone=public --add-port=7005/udp --permanent
firewall-cmd --reload
ããã§ã¯ãã¢ã³ããŒã¯ã©ãŠãã«ç§»åããŠããã¹ãŠãæ©èœããããšã確èªããŸãããããã¹ããã·ã³ã®ã¢ãã¬ã¹ã¯192.168.255.200ã§ããå±éã®æºåäžã«ãå¿ èŠãªipmitoolããã±ãŒãžãã¢ã³ããŒã¯ã©ãŠãã«è¿œå ããŸããã
[stack@undercloud ~]$ ipmitool -I lanplus -U admin -P admin -H 192.168.255.200 -p 7001 power status
Chassis Power is off
[stack@undercloud ~]$ ipmitool -I lanplus -U admin -P admin -H 192.168.255.200 -p 7001 power on
Chassis Power Control: Up/On
[stack@undercloud ~]$
[root@hp-gen9 ~]# virsh list
Id Name State
----------------------------------------------------
6 dns-server running
64 undercloud running
65 control-1 running
ã芧ã®ãšãããvbmcãä»ããŠå¶åŸ¡ããŒããæ£åžžã«èµ·åããŸãããæ¬¡ã«ããªãã«ããŠæ¬¡ã«é²ã¿ãŸãã
[stack@undercloud ~]$ ipmitool -I lanplus -U admin -P admin -H 192.168.255.200 -p 7001 power off
Chassis Power Control: Down/Off
[stack@undercloud ~]$ ipmitool -I lanplus -U admin -P admin -H 192.168.255.200 -p 7001 power status
Chassis Power is off
[stack@undercloud ~]$
[root@hp-gen9 ~]# virsh list --all
Id Name State
----------------------------------------------------
6 dns-server running
64 undercloud running
- compute-1 shut off
- compute-2 shut off
- control-1 shut off
- storage-1 shut off
- storage-2 shut off
[root@hp-gen9 ~]#
次ã®ã¹ãããã¯ããªãŒããŒã¯ã©ãŠããã€ã³ã¹ããŒã«ãããããŒãã®ã€ã³ããã¹ãã¯ã·ã§ã³ã§ãããããè¡ãã«ã¯ãããŒãã®èª¬æãå«ãjsonãã¡ã€ã«ãæºåããå¿ èŠããããŸãããã¢ãµãŒããŒãžã®ã€ã³ã¹ããŒã«ãšã¯ç°ãªãããã¡ã€ã«ã¯åãã·ã³ã§vbmcãå®è¡ãããŠããããŒããæå®ããããšã«æ³šæããŠãã ããã
[root@hp-gen9 ~]# virsh domiflist --domain control-1
Interface Type Source Model MAC
-------------------------------------------------------
- network ovs-network-1 virtio 52:54:00:20:a2:2f
- network ovs-network-1 virtio 52:54:00:3f:87:9f
[root@hp-gen9 ~]# virsh domiflist --domain compute-1
Interface Type Source Model MAC
-------------------------------------------------------
- network ovs-network-1 virtio 52:54:00:98:e9:d6
[root@hp-gen9 ~]# virsh domiflist --domain compute-2
Interface Type Source Model MAC
-------------------------------------------------------
- network ovs-network-1 virtio 52:54:00:6a:ea:be
[root@hp-gen9 ~]# virsh domiflist --domain storage-1
Interface Type Source Model MAC
-------------------------------------------------------
- network ovs-network-1 virtio 52:54:00:79:0b:cb
[root@hp-gen9 ~]# virsh domiflist --domain storage-2
Interface Type Source Model MAC
-------------------------------------------------------
- network ovs-network-1 virtio 52:54:00:a7:fe:27
泚ïŒå¶åŸ¡ããŒãã«ã¯2ã€ã®ã€ã³ã¿ãŒãã§ãŒã¹ããããŸããããã®å Žåã¯éèŠã§ã¯ãããŸããããã®ã€ã³ã¹ããŒã«ã§ã¯ã1ã€ã§ååã§ããçŸåšãjsonãã¡ã€ã«ãæºåããŠããŸããããããžã§ãã³ã°ãå®è¡ãããããŒãã®ãããŒã¢ãã¬ã¹ãããŒãã®ãã©ã¡ãŒã¿ãæå®ãããããã«ååãä»ããipmiãžã®ã¢ã¯ã»ã¹æ¹æ³ãæå®ããå¿ èŠããããŸãã
{
"nodes":[
{
"mac":[
"52:54:00:20:a2:2f"
],
"cpu":"8",
"memory":"32768",
"disk":"60",
"arch":"x86_64",
"name":"control-1",
"pm_type":"pxe_ipmitool",
"pm_user":"admin",
"pm_password":"admin",
"pm_addr":"192.168.255.200",
"pm_port":"7001"
},
{
"mac":[
"52:54:00:79:0b:cb"
],
"cpu":"4",
"memory":"16384",
"disk":"160",
"arch":"x86_64",
"name":"storage-1",
"pm_type":"pxe_ipmitool",
"pm_user":"admin",
"pm_password":"admin",
"pm_addr":"192.168.255.200",
"pm_port":"7002"
},
{
"mac":[
"52:54:00:a7:fe:27"
],
"cpu":"4",
"memory":"16384",
"disk":"160",
"arch":"x86_64",
"name":"storage-2",
"pm_type":"pxe_ipmitool",
"pm_user":"admin",
"pm_password":"admin",
"pm_addr":"192.168.255.200",
"pm_port":"7003"
},
{
"mac":[
"52:54:00:98:e9:d6"
],
"cpu":"12",
"memory":"32768",
"disk":"60",
"arch":"x86_64",
"name":"compute-1",
"pm_type":"pxe_ipmitool",
"pm_user":"admin",
"pm_password":"admin",
"pm_addr":"192.168.255.200",
"pm_port":"7004"
},
{
"mac":[
"52:54:00:6a:ea:be"
],
"cpu":"12",
"memory":"32768",
"disk":"60",
"arch":"x86_64",
"name":"compute-2",
"pm_type":"pxe_ipmitool",
"pm_user":"admin",
"pm_password":"admin",
"pm_addr":"192.168.255.200",
"pm_port":"7005"
}
]
}
次ã«ãç®èãªç»åãæºåããå¿ èŠããããŸãããããè¡ãã«ã¯ãwgetãä»ããŠããããããŠã³ããŒãããã€ã³ã¹ããŒã«ããŸãã
(undercloud) [stack@undercloud ~]$ sudo wget https://images.rdoproject.org/queens/delorean/current-tripleo-rdo/overcloud-full.tar --no-check-certificate
(undercloud) [stack@undercloud ~]$ sudo wget https://images.rdoproject.org/queens/delorean/current-tripleo-rdo/ironic-python-agent.tar --no-check-certificate
(undercloud) [stack@undercloud ~]$ ls -lh
total 1.9G
-rw-r--r--. 1 stack stack 447M Aug 14 10:26 ironic-python-agent.tar
-rw-r--r--. 1 stack stack 1.5G Aug 14 10:26 overcloud-full.tar
-rw-------. 1 stack stack 916 Aug 13 23:10 stackrc
-rw-r--r--. 1 stack stack 15K Aug 13 22:50 undercloud.conf
-rw-------. 1 stack stack 2.0K Aug 13 22:50 undercloud-passwords.conf
(undercloud) [stack@undercloud ~]$ mkdir images/
(undercloud) [stack@undercloud ~]$ tar -xpvf ironic-python-agent.tar -C ~/images/
ironic-python-agent.initramfs
ironic-python-agent.kernel
(undercloud) [stack@undercloud ~]$ tar -xpvf overcloud-full.tar -C ~/images/
overcloud-full.qcow2
overcloud-full.initrd
overcloud-full.vmlinuz
(undercloud) [stack@undercloud ~]$
(undercloud) [stack@undercloud ~]$ ls -lh images/
total 1.9G
-rw-rw-r--. 1 stack stack 441M Aug 12 17:24 ironic-python-agent.initramfs
-rwxr-xr-x. 1 stack stack 6.5M Aug 12 17:24 ironic-python-agent.kernel
-rw-r--r--. 1 stack stack 53M Aug 12 17:14 overcloud-full.initrd
-rw-r--r--. 1 stack stack 1.4G Aug 12 17:18 overcloud-full.qcow2
-rwxr-xr-x. 1 stack stack 6.5M Aug 12 17:14 overcloud-full.vmlinuz
(undercloud) [stack@undercloud ~]$
ã¢ã³ããŒã¯ã©ãŠããžã®ç»åã®ã¢ããããŒãïŒ
(undercloud) [stack@undercloud ~]$ openstack overcloud image upload --image-path ~/images/
Image "overcloud-full-vmlinuz" was uploaded.
+--------------------------------------+------------------------+-------------+---------+--------+
| ID | Name | Disk Format | Size | Status |
+--------------------------------------+------------------------+-------------+---------+--------+
| c2553770-3e0f-4750-b46b-138855b5c385 | overcloud-full-vmlinuz | aki | 6761064 | active |
+--------------------------------------+------------------------+-------------+---------+--------+
Image "overcloud-full-initrd" was uploaded.
+--------------------------------------+-----------------------+-------------+----------+--------+
| ID | Name | Disk Format | Size | Status |
+--------------------------------------+-----------------------+-------------+----------+--------+
| 949984e0-4932-4e71-af43-d67a38c3dc89 | overcloud-full-initrd | ari | 55183045 | active |
+--------------------------------------+-----------------------+-------------+----------+--------+
Image "overcloud-full" was uploaded.
+--------------------------------------+----------------+-------------+------------+--------+
| ID | Name | Disk Format | Size | Status |
+--------------------------------------+----------------+-------------+------------+--------+
| a2f2096d-c9d7-429a-b866-c7543c02a380 | overcloud-full | qcow2 | 1487475712 | active |
+--------------------------------------+----------------+-------------+------------+--------+
Image "bm-deploy-kernel" was uploaded.
+--------------------------------------+------------------+-------------+---------+--------+
| ID | Name | Disk Format | Size | Status |
+--------------------------------------+------------------+-------------+---------+--------+
| e413aa78-e38f-404c-bbaf-93e582a8e67f | bm-deploy-kernel | aki | 6761064 | active |
+--------------------------------------+------------------+-------------+---------+--------+
Image "bm-deploy-ramdisk" was uploaded.
+--------------------------------------+-------------------+-------------+-----------+--------+
| ID | Name | Disk Format | Size | Status |
+--------------------------------------+-------------------+-------------+-----------+--------+
| 5cf3aba4-0e50-45d3-929f-27f025dd6ce3 | bm-deploy-ramdisk | ari | 461759376 | active |
+--------------------------------------+-------------------+-------------+-----------+--------+
(undercloud) [stack@undercloud ~]$
ãã¹ãŠã®ç»åãèªã¿èŸŒãŸããŠããããšã確èªããŸã
(undercloud) [stack@undercloud ~]$ openstack image list
+--------------------------------------+------------------------+--------+
| ID | Name | Status |
+--------------------------------------+------------------------+--------+
| e413aa78-e38f-404c-bbaf-93e582a8e67f | bm-deploy-kernel | active |
| 5cf3aba4-0e50-45d3-929f-27f025dd6ce3 | bm-deploy-ramdisk | active |
| a2f2096d-c9d7-429a-b866-c7543c02a380 | overcloud-full | active |
| 949984e0-4932-4e71-af43-d67a38c3dc89 | overcloud-full-initrd | active |
| c2553770-3e0f-4750-b46b-138855b5c385 | overcloud-full-vmlinuz | active |
+--------------------------------------+------------------------+--------+
(undercloud) [stack@undercloud ~]$
ãã1ã€ã®ã¿ãã-dnsãµãŒããŒã远å ããå¿ èŠããããŸãïŒ
(undercloud) [stack@undercloud ~]$ openstack subnet list
+--------------------------------------+-----------------+--------------------------------------+------------------+
| ID | Name | Network | Subnet |
+--------------------------------------+-----------------+--------------------------------------+------------------+
| f45dea46-4066-42aa-a3c4-6f84b8120cab | ctlplane-subnet | 6ca013dc-41c2-42d8-9d69-542afad53392 | 192.168.255.0/24 |
+--------------------------------------+-----------------+--------------------------------------+------------------+
(undercloud) [stack@undercloud ~]$ openstack subnet show f45dea46-4066-42aa-a3c4-6f84b8120cab
+-------------------+-----------------------------------------------------------+
| Field | Value |
+-------------------+-----------------------------------------------------------+
| allocation_pools | 192.168.255.11-192.168.255.50 |
| cidr | 192.168.255.0/24 |
| created_at | 2020-08-13T20:10:37Z |
| description | |
| dns_nameservers | |
| enable_dhcp | True |
| gateway_ip | 192.168.255.1 |
| host_routes | destination='169.254.169.254/32', gateway='192.168.255.1' |
| id | f45dea46-4066-42aa-a3c4-6f84b8120cab |
| ip_version | 4 |
| ipv6_address_mode | None |
| ipv6_ra_mode | None |
| name | ctlplane-subnet |
| network_id | 6ca013dc-41c2-42d8-9d69-542afad53392 |
| prefix_length | None |
| project_id | a844ccfcdb2745b198dde3e1b28c40a3 |
| revision_number | 0 |
| segment_id | None |
| service_types | |
| subnetpool_id | None |
| tags | |
| updated_at | 2020-08-13T20:10:37Z |
+-------------------+-----------------------------------------------------------+
(undercloud) [stack@undercloud ~]$
(undercloud) [stack@undercloud ~]$ neutron subnet-update f45dea46-4066-42aa-a3c4-6f84b8120cab --dns-nameserver 192.168.255.253
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
Updated subnet: f45dea46-4066-42aa-a3c4-6f84b8120cab
(undercloud) [stack@undercloud ~]$
ããã§ãã€ã³ããã¹ãã¯ã·ã§ã³ã®ã³ãã³ããçºè¡ã§ããŸãã
(undercloud) [stack@undercloud ~]$ openstack overcloud node import --introspect --provide inspection.json
Started Mistral Workflow tripleo.baremetal.v1.register_or_update. Execution ID: d57456a3-d8ed-479c-9a90-dff7c752d0ec
Waiting for messages on queue 'tripleo' with no timeout.
5 node(s) successfully moved to the "manageable" state.
Successfully registered node UUID b4b2cf4a-b7ca-4095-af13-cc83be21c4f5
Successfully registered node UUID b89a72a3-6bb7-429a-93bc-48393d225838
Successfully registered node UUID 20a16cc0-e0ce-4d88-8f17-eb0ce7b4d69e
Successfully registered node UUID bfc1eb98-a17a-4a70-b0b6-6c0db0eac8e8
Successfully registered node UUID 766ab623-464c-423d-a529-d9afb69d1167
Waiting for introspection to finish...
Started Mistral Workflow tripleo.baremetal.v1.introspect. Execution ID: 6b4d08ae-94c3-4a10-ab63-7634ec198a79
Waiting for messages on queue 'tripleo' with no timeout.
Introspection of node b89a72a3-6bb7-429a-93bc-48393d225838 completed. Status:SUCCESS. Errors:None
Introspection of node 20a16cc0-e0ce-4d88-8f17-eb0ce7b4d69e completed. Status:SUCCESS. Errors:None
Introspection of node bfc1eb98-a17a-4a70-b0b6-6c0db0eac8e8 completed. Status:SUCCESS. Errors:None
Introspection of node 766ab623-464c-423d-a529-d9afb69d1167 completed. Status:SUCCESS. Errors:None
Introspection of node b4b2cf4a-b7ca-4095-af13-cc83be21c4f5 completed. Status:SUCCESS. Errors:None
Successfully introspected 5 node(s).
Started Mistral Workflow tripleo.baremetal.v1.provide. Execution ID: f5594736-edcf-4927-a8a0-2a7bf806a59a
Waiting for messages on queue 'tripleo' with no timeout.
5 node(s) successfully moved to the "available" state.
(undercloud) [stack@undercloud ~]$
åºåãããããããã«ããã¹ãŠããšã©ãŒãªãã§çµäºããŸããããã¹ãŠã®ããŒãã䜿çšå¯èœã§ããããšã確èªããŸãããã
(undercloud) [stack@undercloud ~]$ openstack baremetal node list
+--------------------------------------+-----------+---------------+-------------+--------------------+-------------+
| UUID | Name | Instance UUID | Power State | Provisioning State | Maintenance |
+--------------------------------------+-----------+---------------+-------------+--------------------+-------------+
| b4b2cf4a-b7ca-4095-af13-cc83be21c4f5 | control-1 | None | power off | available | False |
| b89a72a3-6bb7-429a-93bc-48393d225838 | storage-1 | None | power off | available | False |
| 20a16cc0-e0ce-4d88-8f17-eb0ce7b4d69e | storage-2 | None | power off | available | False |
| bfc1eb98-a17a-4a70-b0b6-6c0db0eac8e8 | compute-1 | None | power off | available | False |
| 766ab623-464c-423d-a529-d9afb69d1167 | compute-2 | None | power off | available | False |
+--------------------------------------+-----------+---------------+-------------+--------------------+-------------+
(undercloud) [stack@undercloud ~]$
ååãšããŠãããŒãã管çå¯èœãªå¥ã®ç¶æ ã«ããå Žåã¯ãåé¡ãçºçããããããã°ã調ã¹ãŠããªãçºçããã®ããææ¡ããå¿ èŠããããŸãããã®ã·ããªãªã§ã¯ä»®æ³åã䜿çšããŠãããä»®æ³ãã·ã³ãŸãã¯vbmcã®äœ¿çšã«é¢é£ãããã°ãããå¯èœæ§ãããããšã«æ³šæããŠãã ããã
次ã«ãã©ã®ããŒããã©ã®æ©èœãå®è¡ããããæå®ããå¿ èŠããããŸããã€ãŸããããŒããå±éãããããã¡ã€ã«ãæå®ããå¿ èŠããããŸãã
(undercloud) [stack@undercloud ~]$ openstack overcloud profiles list
+--------------------------------------+-----------+-----------------+-----------------+-------------------+
| Node UUID | Node Name | Provision State | Current Profile | Possible Profiles |
+--------------------------------------+-----------+-----------------+-----------------+-------------------+
| b4b2cf4a-b7ca-4095-af13-cc83be21c4f5 | control-1 | available | None | |
| b89a72a3-6bb7-429a-93bc-48393d225838 | storage-1 | available | None | |
| 20a16cc0-e0ce-4d88-8f17-eb0ce7b4d69e | storage-2 | available | None | |
| bfc1eb98-a17a-4a70-b0b6-6c0db0eac8e8 | compute-1 | available | None | |
| 766ab623-464c-423d-a529-d9afb69d1167 | compute-2 | available | None | |
+--------------------------------------+-----------+-----------------+-----------------+-------------------+
(undercloud) [stack@undercloud ~]$ openstack flavor list
+--------------------------------------+---------------+------+------+-----------+-------+-----------+
| ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public |
+--------------------------------------+---------------+------+------+-----------+-------+-----------+
| 168af640-7f40-42c7-91b2-989abc5c5d8f | swift-storage | 4096 | 40 | 0 | 1 | True |
| 52148d1b-492e-48b4-b5fc-772849dd1b78 | baremetal | 4096 | 40 | 0 | 1 | True |
| 56e66542-ae60-416d-863e-0cb192d01b09 | control | 4096 | 40 | 0 | 1 | True |
| af6796e1-d0c4-4bfe-898c-532be194f7ac | block-storage | 4096 | 40 | 0 | 1 | True |
| e4d50fdd-0034-446b-b72c-9da19b16c2df | compute | 4096 | 40 | 0 | 1 | True |
| fc2e3acf-7fca-4901-9eee-4a4d6ef0265d | ceph-storage | 4096 | 40 | 0 | 1 | True |
+--------------------------------------+---------------+------+------+-----------+-------+-----------+
(undercloud) [stack@undercloud ~]$
åããŒãã®ãããã¡ã€ã«ã瀺ããŸãã
openstack baremetal node set --property capabilities='profile:control,boot_option:local' b4b2cf4a-b7ca-4095-af13-cc83be21c4f5
openstack baremetal node set --property capabilities='profile:ceph-storage,boot_option:local' b89a72a3-6bb7-429a-93bc-48393d225838
openstack baremetal node set --property capabilities='profile:ceph-storage,boot_option:local' 20a16cc0-e0ce-4d88-8f17-eb0ce7b4d69e
openstack baremetal node set --property capabilities='profile:compute,boot_option:local' bfc1eb98-a17a-4a70-b0b6-6c0db0eac8e8
openstack baremetal node set --property capabilities='profile:compute,boot_option:local' 766ab623-464c-423d-a529-d9afb69d1167
ãã¹ãŠãæ£ããè¡ãããããšã確èªããŸãã
(undercloud) [stack@undercloud ~]$ openstack overcloud profiles list
+--------------------------------------+-----------+-----------------+-----------------+-------------------+
| Node UUID | Node Name | Provision State | Current Profile | Possible Profiles |
+--------------------------------------+-----------+-----------------+-----------------+-------------------+
| b4b2cf4a-b7ca-4095-af13-cc83be21c4f5 | control-1 | available | control | |
| b89a72a3-6bb7-429a-93bc-48393d225838 | storage-1 | available | ceph-storage | |
| 20a16cc0-e0ce-4d88-8f17-eb0ce7b4d69e | storage-2 | available | ceph-storage | |
| bfc1eb98-a17a-4a70-b0b6-6c0db0eac8e8 | compute-1 | available | compute | |
| 766ab623-464c-423d-a529-d9afb69d1167 | compute-2 | available | compute | |
+--------------------------------------+-----------+-----------------+-----------------+-------------------+
(undercloud) [stack@undercloud ~]$
ãã¹ãŠãæ£ãããã°ããªãŒããŒã¯ã©ãŠãããããã€ããã³ãã³ããå®è¡ããŸãã
openstack overcloud deploy --templates --control-scale 1 --compute-scale 2 --ceph-storage-scale 2 --control-flavor control --compute-flavor compute --ceph-storage-flavor ceph-storage --libvirt-type qemu
å®éã®ã€ã³ã¹ããŒã«ã§ã¯ãã«ã¹ã¿ã ãã³ãã¬ãŒããèªç¶ã«äœ¿çšãããŸãããã®å Žåããã³ãã¬ãŒãã®ãã¹ãŠã®ç·šéã説æããå¿ èŠããããããããã»ã¹ãéåžžã«è€éã«ãªããŸãã以åã«æžããããã«ãç°¡åãªã€ã³ã¹ããŒã«ã§ãããããã©ã®ããã«æ©èœãããã確èªããã®ã«ååã§ãã
泚ïŒãã®å Žåããã¹ããããä»®æ³åã䜿çšããããã倿°--libvirt-typeqemuãå¿ èŠã§ããããããªããšãä»®æ³ãã·ã³ãå®è¡ãããŸããã
ããã§ãçŽ1æéããŸãã¯ãã以äžïŒããŒããŠã§ã¢ã®æ©èœã«ãã£ãŠç°ãªããŸãïŒãããããã®æéã®åŸã«æ¬¡ã®ç¢æã衚瀺ãããããšãæåŸ ã§ããŸãã
2020-08-14 08:39:21Z [overcloud]: CREATE_COMPLETE Stack CREATE completed successfully
Stack overcloud CREATE_COMPLETE
Host 192.168.255.21 not found in /home/stack/.ssh/known_hosts
Started Mistral Workflow tripleo.deployment.v1.get_horizon_url. Execution ID: fcb996cd-6a19-482b-b755-2ca0c08069a9
Overcloud Endpoint: http://192.168.255.21:5000/
Overcloud Horizon Dashboard URL: http://192.168.255.21:80/dashboard
Overcloud rc file: /home/stack/overcloudrc
Overcloud Deployed
(undercloud) [stack@undercloud ~]$
ããã§ããªãŒãã³ã¹ã¿ãã¯ã®ã»ãŒæ¬æ ŒçãªããŒãžã§ã³ãã§ããŸããããã®ããŒãžã§ã³ã§ãåŠç¿ããããå®éšãè¡ã£ããããããšãã§ããŸã
ããã¹ãŠãæ£åžžã«æ©èœããããšã確èªããŸãããããŠãŒã¶ãŒã®ããŒã ãã£ã¬ã¯ããªã¹ã¿ãã¯ã«ã¯ã2ã€ã®ãã¡ã€ã«ããããŸãã1ã€ã¯stackrcïŒã¢ã³ããŒã¯ã©ãŠãã管çããããïŒã§ããã1ã€ã¯overcloudrcïŒãªãŒããŒã¯ã©ãŠãã管çããããïŒã§ãããããã®ãã¡ã€ã«ã«ã¯ãèªèšŒã«å¿ èŠãªæ å ±ãå«ãŸããŠããããããœãŒã¹ãšããŠæå®ããå¿ èŠããããŸãã
(undercloud) [stack@undercloud ~]$ openstack server list
+--------------------------------------+-------------------------+--------+-------------------------+----------------+--------------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+-------------------------+--------+-------------------------+----------------+--------------+
| fd7d36f4-ce87-4b9a-93b0-add2957792de | overcloud-controller-0 | ACTIVE | ctlplane=192.168.255.15 | overcloud-full | control |
| edc77778-8972-475e-a541-ff40eb944197 | overcloud-novacompute-1 | ACTIVE | ctlplane=192.168.255.26 | overcloud-full | compute |
| 5448ce01-f05f-47ca-950a-ced14892c0d4 | overcloud-cephstorage-1 | ACTIVE | ctlplane=192.168.255.34 | overcloud-full | ceph-storage |
| ce6d862f-4bdf-4ba3-b711-7217915364d7 | overcloud-novacompute-0 | ACTIVE | ctlplane=192.168.255.19 | overcloud-full | compute |
| e4507bd5-6f96-4b12-9cc0-6924709da59e | overcloud-cephstorage-0 | ACTIVE | ctlplane=192.168.255.44 | overcloud-full | ceph-storage |
+--------------------------------------+-------------------------+--------+-------------------------+----------------+--------------+
(undercloud) [stack@undercloud ~]$
(undercloud) [stack@undercloud ~]$ source overcloudrc
(overcloud) [stack@undercloud ~]$
(overcloud) [stack@undercloud ~]$ openstack project list
+----------------------------------+---------+
| ID | Name |
+----------------------------------+---------+
| 4eed7d0f06544625857d51cd77c5bd4c | admin |
| ee1c68758bde41eaa9912c81dc67dad8 | service |
+----------------------------------+---------+
(overcloud) [stack@undercloud ~]$
(overcloud) [stack@undercloud ~]$
(overcloud) [stack@undercloud ~]$ openstack network agent list
+--------------------------------------+--------------------+-------------------------------------+-------------------+-------+-------+---------------------------+
| ID | Agent Type | Host | Availability Zone | Alive | State | Binary |
+--------------------------------------+--------------------+-------------------------------------+-------------------+-------+-------+---------------------------+
| 10495de9-ba4b-41fe-b30a-b90ec3f8728b | Open vSwitch agent | overcloud-novacompute-1.localdomain | None | :-) | UP | neutron-openvswitch-agent |
| 1515ad4a-5972-46c3-af5f-e5446dff7ac7 | L3 agent | overcloud-controller-0.localdomain | nova | :-) | UP | neutron-l3-agent |
| 322e62ca-1e5a-479e-9a96-4f26d09abdd7 | DHCP agent | overcloud-controller-0.localdomain | nova | :-) | UP | neutron-dhcp-agent |
| 9c1de2f9-bac5-400e-998d-4360f04fc533 | Open vSwitch agent | overcloud-novacompute-0.localdomain | None | :-) | UP | neutron-openvswitch-agent |
| d99c5657-851e-4d3c-bef6-f1e3bb1acfb0 | Open vSwitch agent | overcloud-controller-0.localdomain | None | :-) | UP | neutron-openvswitch-agent |
| ff85fae6-5543-45fb-a301-19c57b62d836 | Metadata agent | overcloud-controller-0.localdomain | None | :-) | UP | neutron-metadata-agent |
+--------------------------------------+--------------------+-------------------------------------+-------------------+-------+-------+---------------------------+
(overcloud) [stack@undercloud ~]$
ç§ã®ã€ã³ã¹ããŒã«ã§ã¯ããã1ã€å°ããªã¿ãããå¿ èŠã§ãã䜿çšããŠãããã·ã³ã¯å¥ã®ãããã¯ãŒã¯äžã«ãããããã³ã³ãããŒã©ãŒã«ã«ãŒãã远å ããŸãããããè¡ãã«ã¯ãheat-adminã¢ã«ãŠã³ãã§control-1ã«ç§»åããã«ãŒããèšè¿°ããŸã
(undercloud) [stack@undercloud ~]$ ssh heat-admin@192.168.255.15
Last login: Fri Aug 14 09:47:40 2020 from 192.168.255.1
[heat-admin@overcloud-controller-0 ~]$
[heat-admin@overcloud-controller-0 ~]$
[heat-admin@overcloud-controller-0 ~]$ sudo ip route add 10.169.0.0/16 via 192.168.255.254
ããŠãä»ãããªãã¯å°å¹³ç·ã«è¡ãããšãã§ããŸãããã¹ãŠã®æ å ±ïŒã¢ãã¬ã¹ããŠãŒã¶ãŒåããã¹ã¯ãŒãïŒã¯ããã¡ã€ã«/ããŒã /ã¹ã¿ãã¯/ overcloudrcã«ãããŸããæçµçãªã¹ããŒã ã¯æ¬¡ã®ããã«ãªããŸãã
ã¡ãªã¿ã«ãç§ãã¡ã®ã€ã³ã¹ããŒã«ã§ã¯ããã·ã³ã®ã¢ãã¬ã¹ã¯DHCPãä»ããŠçºè¡ãããã芧ã®ãšããããã©ã³ãã ã«ãçºè¡ãããŸããå¿ èŠã«å¿ããŠãå±éäžã«ã©ã®ã¢ãã¬ã¹ãã©ã®ãã·ã³ã«ã¢ã¿ãããããããã³ãã¬ãŒãã«ããŒãã³ãŒãã£ã³ã°ã§ããŸãã
ä»®æ³ãã·ã³éã§ãã©ãã£ãã¯ã¯ã©ã®ããã«æµããŸããïŒ
ãã®èšäºã§ã¯ããã©ãã£ãã¯ãæž¡ãããã®3ã€ã®ãªãã·ã§ã³ã«ã€ããŠæ€èšããŸãã
- 1ã€ã®L2ãããã¯ãŒã¯ã®1ã€ã®ãã€ããŒãã€ã¶ãŒã«2ã€ã®ãã·ã³
- 1ã€ã®L2ãããã¯ãŒã¯å ã®ç°ãªããã€ããŒãã€ã¶ãŒäžã®2å°ã®ãã·ã³
- ç°ãªããããã¯ãŒã¯äžã®2å°ã®ãã·ã³ïŒãããã¯ãŒã¯éã§ã«ãŒãåïŒ
次åã¯ããããŒãã£ã³ã°ã¢ãã¬ã¹ãšåæ£ã«ãŒãã£ã³ã°ã䜿çšããŠãå€éšãããã¯ãŒã¯ãä»ããŠå€éšã«ã¢ã¯ã»ã¹ã§ããã±ãŒã¹ã«ã€ããŠæ€èšããŸããããã§ã¯ãå éšãã©ãã£ãã¯ã«çŠç¹ãåœãŠãŸãã
ãã¹ãããããã«ã次ã®ã¹ããŒã ããŸãšããŸããã
ã4ã€ã®ä»®æ³ãã·ã³ãäœæããŸãã-1ã€ã®L2ãããã¯ãŒã¯ã«3ã€-net-1ãnet-2ãããã¯ãŒã¯ã«ãã1ã€
(overcloud) [stack@undercloud ~]$ nova list --tenant 5e18ce8ec9594e00b155485f19895e6c
+--------------------------------------+------+----------------------------------+--------+------------+-------------+-----------------+
| ID | Name | Tenant ID | Status | Task State | Power State | Networks |
+--------------------------------------+------+----------------------------------+--------+------------+-------------+-----------------+
| f53b37b5-2204-46cc-aef0-dba84bf970c0 | vm-1 | 5e18ce8ec9594e00b155485f19895e6c | ACTIVE | - | Running | net-1=10.0.1.85 |
| fc8b6722-0231-49b0-b2fa-041115bef34a | vm-2 | 5e18ce8ec9594e00b155485f19895e6c | ACTIVE | - | Running | net-1=10.0.1.88 |
| 3cd74455-b9b7-467a-abe3-bd6ff765c83c | vm-3 | 5e18ce8ec9594e00b155485f19895e6c | ACTIVE | - | Running | net-1=10.0.1.90 |
| 7e836338-6772-46b0-9950-f7f06dbe91a8 | vm-4 | 5e18ce8ec9594e00b155485f19895e6c | ACTIVE | - | Running | net-2=10.0.2.8 |
+--------------------------------------+------+----------------------------------+--------+------------+-------------+-----------------+
(overcloud) [stack@undercloud ~]$
äœæããããã·ã³ãã©ã®ãã€ããŒãã€ã¶ãŒã«é 眮ãããŠããããèŠãŠã¿ãŸãããã
(overcloud) [stack@undercloud ~]$ nova show f53b37b5-2204-46cc-aef0-dba84bf970c0 | egrep "hypervisor_hostname|instance_name|hostname"
| OS-EXT-SRV-ATTR:hostname | vm-1 |
| OS-EXT-SRV-ATTR:hypervisor_hostname | overcloud-novacompute-0.localdomain |
| OS-EXT-SRV-ATTR:instance_name | instance-00000001 |
(overcloud) [stack@undercloud ~]$ nova show fc8b6722-0231-49b0-b2fa-041115bef34a | egrep "hypervisor_hostname|instance_name|hostname"
| OS-EXT-SRV-ATTR:hostname | vm-2 |
| OS-EXT-SRV-ATTR:hypervisor_hostname | overcloud-novacompute-1.localdomain |
| OS-EXT-SRV-ATTR:instance_name | instance-00000002 |
(overcloud) [stack@undercloud ~]$ nova show 3cd74455-b9b7-467a-abe3-bd6ff765c83c | egrep "hypervisor_hostname|instance_name|hostname"
| OS-EXT-SRV-ATTR:hostname | vm-3 |
| OS-EXT-SRV-ATTR:hypervisor_hostname | overcloud-novacompute-0.localdomain |
| OS-EXT-SRV-ATTR:instance_name | instance-00000003 |
(overcloud) [stack@undercloud ~]$ nova show 7e836338-6772-46b0-9950-f7f06dbe91a8 | egrep "hypervisor_hostname|instance_name|hostname"
| OS-EXT-SRV-ATTR:hostname | vm-4 |
| OS-EXT-SRV-ATTR:hypervisor_hostname | overcloud-novacompute-1.localdomain |
| OS-EXT-SRV-ATTR:instance_name | instance-00000004 |
ïŒovercloudïŒ[stack @ undercloudã] $
ãã·ã³vm-1ãšvm-3ã¯compute-0ã«ããããã·ã³vm-2ãšvm-4ã¯ããŒãcompute-1ã«ãããŸãã
ããã«ãä»®æ³ã«ãŒã¿ãŒãäœæãããæå®ããããããã¯ãŒã¯éã®ã«ãŒãã£ã³ã°ãå¯èœã«ãªããŸãã
(overcloud) [stack@undercloud ~]$ openstack router list --project 5e18ce8ec9594e00b155485f19895e6c
+--------------------------------------+----------+--------+-------+-------------+-------+----------------------------------+
| ID | Name | Status | State | Distributed | HA | Project |
+--------------------------------------+----------+--------+-------+-------------+-------+----------------------------------+
| 0a4d2420-4b9c-46bd-aec1-86a1ef299abe | router-1 | ACTIVE | UP | False | False | 5e18ce8ec9594e00b155485f19895e6c |
+--------------------------------------+----------+--------+-------+-------------+-------+----------------------------------+
(overcloud) [stack@undercloud ~]$
ã«ãŒã¿ãŒã«ã¯ããããã¯ãŒã¯ã®ã²ãŒããŠã§ã€ãšããŠæ©èœãã2ã€ã®ä»®æ³ããŒãããããŸãã
(overcloud) [stack@undercloud ~]$ openstack router show 0a4d2420-4b9c-46bd-aec1-86a1ef299abe | grep interface
| interfaces_info | [{"subnet_id": "2529ad1a-6b97-49cd-8515-cbdcbe5e3daa", "ip_address": "10.0.1.254", "port_id": "0c52b15f-8fcc-4801-bf52-7dacc72a5201"}, {"subnet_id": "335552dd-b35b-456b-9df0-5aac36a3ca13", "ip_address": "10.0.2.254", "port_id": "92fa49b5-5406-499f-ab8d-ddf28cc1a76c"}] |
(overcloud) [stack@undercloud ~]$
ãããããã©ãã£ãã¯ãã©ã®ããã«é²ãããèŠãåã«ãå¶åŸ¡ããŒãïŒãããã¯ãŒã¯ããŒãã§ãããïŒãšèšç®ããŒãã«çŸåšãããã®ãèŠãŠã¿ãŸããããèšç®ããŒãããå§ããŸãããã
[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-vsctl show
[heat-admin@overcloud-novacompute-0 ~]$ sudo sudo ovs-appctl dpif/show
system@ovs-system: hit:3 missed:3
br-ex:
br-ex 65534/1: (internal)
phy-br-ex 1/none: (patch: peer=int-br-ex)
br-int:
br-int 65534/2: (internal)
int-br-ex 1/none: (patch: peer=phy-br-ex)
patch-tun 2/none: (patch: peer=patch-int)
br-tun:
br-tun 65534/3: (internal)
patch-int 1/none: (patch: peer=patch-tun)
vxlan-c0a8ff0f 3/4: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.19, remote_ip=192.168.255.15)
vxlan-c0a8ff1a 2/4: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.19, remote_ip=192.168.255.26)
[heat-admin@overcloud-novacompute-0 ~]$
çŸåšãããŒãã«ã¯3ã€ã®ovsããªããžïŒbr-intãbr-tunãbr-exïŒããããŸãããããã®éã«ãã芧ã®ãšãããäžé£ã®ã€ã³ã¿ãŒãã§ã€ã¹ããããŸããããããããããããã«ãããããã¹ãŠã®ã€ã³ã¿ãŒãã§ã€ã¹ãå³ã«é 眮ããŠãäœãèµ·ãããã確èªããŸãã
VxLANãã³ãã«ãçºçããã¢ãã¬ã¹ããã1ã€ã®ãã³ãã«ãcompute-1ïŒ192.168.255.26ïŒã«çºçãã2çªç®ã®ãã³ãã«ãcontrol-1ïŒ192.168.255.15ïŒã確èªããŠããããšãããããŸããããããæãè峿·±ãã®ã¯ãbr-exã«ç©çã€ã³ã¿ãŒãã§ã€ã¹ããªãããšã§ããã©ã®ãããŒãæ§æãããŠããããèŠããšãçŸæç¹ã§ã¯ãã®ããªããžã¯ãã©ãã£ãã¯ã®ã¿ãããããã§ããããšãããããŸãã
[heat-admin@overcloud-novacompute-0 ~]$ ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450
inet 192.168.255.19 netmask 255.255.255.0 broadcast 192.168.255.255
inet6 fe80::5054:ff:fe6a:eabe prefixlen 64 scopeid 0x20<link>
ether 52:54:00:6a:ea:be txqueuelen 1000 (Ethernet)
RX packets 2909669 bytes 4608201000 (4.2 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1821057 bytes 349198520 (333.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[heat-admin@overcloud-novacompute-0 ~]$
åºåãããããããã«ãã¢ãã¬ã¹ã¯ä»®æ³ããªããžã€ã³ã¿ãŒãã§ã€ã¹ã§ã¯ãªããç©çããŒãã«çŽæ¥ãã蟌ãŸããŠããŸãã
[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-appctl fdb/show br-ex
port VLAN MAC Age
[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-ofctl dump-flows br-ex
cookie=0x9169eae8f7fe5bb2, duration=216686.864s, table=0, n_packets=303, n_bytes=26035, priority=2,in_port="phy-br-ex" actions=drop
cookie=0x9169eae8f7fe5bb2, duration=216686.887s, table=0, n_packets=0, n_bytes=0, priority=0 actions=NORMAL
[heat-admin@overcloud-novacompute-0 ~]$
æåã®ã«ãŒã«ã«ããã°ãphy-br-exããŒãããã®ãã¹ãŠãç Žæ£ããå¿ èŠããããŸãã
å®éã«ã¯ããã®ã€ã³ã¿ãŒãã§ã€ã¹ïŒbr-intãšã®ãžã£ã³ã¯ã·ã§ã³ïŒãé€ããŠããã©ãã£ãã¯ããã®ããªããžã«å°éããå Žæã¯ä»ã«ãããŸããããããããã倿ãããšãBUMãã©ãã£ãã¯ã¯ãã§ã«ããªããžã«å°çããŠããŸãã
ã€ãŸãããã®ããŒãããã®ãã©ãã£ãã¯ã¯VxLANãã³ãã«ã®ã¿ãééã§ããä»ã«ã¯äœãééã§ããŸããããã ããDVRããªã³ã«ãããšç¶æ³ã¯å€ãããŸãããå¥ã®æ©äŒã«å¯ŸåŠããŸããããšãã°vlanã䜿çšããŠãããã¯ãŒã¯åé¢ã䜿çšããå Žåã0çªç®ã®vlanã«1ã€ã®L3ã€ã³ã¿ãŒãã§ã€ã¹ã§ã¯ãªããè€æ°ã®ã€ã³ã¿ãŒãã§ã€ã¹ããããŸãããã ããVxLANãã©ãã£ãã¯ã¯åãæ¹æ³ã§ããŒãããéä¿¡ãããŸãããããçš®ã®å°çšvlanã«ã«ãã»ã«åãããŸãã
èšç®ããŒããèŠã€ããŠãå¶åŸ¡ããŒãã«ç§»åããŸãã
[heat-admin@overcloud-controller-0 ~]$ sudo ovs-appctl dpif/show
system@ovs-system: hit:930491 missed:825
br-ex:
br-ex 65534/1: (internal)
eth0 1/2: (system)
phy-br-ex 2/none: (patch: peer=int-br-ex)
br-int:
br-int 65534/3: (internal)
int-br-ex 1/none: (patch: peer=phy-br-ex)
patch-tun 2/none: (patch: peer=patch-int)
br-tun:
br-tun 65534/4: (internal)
patch-int 1/none: (patch: peer=patch-tun)
vxlan-c0a8ff13 3/5: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.15, remote_ip=192.168.255.19)
vxlan-c0a8ff1a 2/5: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.15, remote_ip=192.168.255.26)
[heat-admin@overcloud-controller-0 ~]$
å®éããã¹ãŠãåãã§ãããšèšããŸãããIPã¢ãã¬ã¹ã¯ç©çã€ã³ã¿ãŒãã§ã€ã¹ã§ã¯ãªããä»®æ³ããªããžã«ãããŸããããã¯ããã®ããŒãããã©ãã£ãã¯ãå€ã®äžçã«åããããŒãã§ãããšããäºå®ã®ããã«è¡ãããŸãã
[heat-admin@overcloud-controller-0 ~]$ ifconfig br-ex
br-ex: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450
inet 192.168.255.15 netmask 255.255.255.0 broadcast 192.168.255.255
inet6 fe80::5054:ff:fe20:a22f prefixlen 64 scopeid 0x20<link>
ether 52:54:00:20:a2:2f txqueuelen 1000 (Ethernet)
RX packets 803859 bytes 1732616116 (1.6 GiB)
RX errors 0 dropped 63 overruns 0 frame 0
TX packets 808475 bytes 121652156 (116.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[heat-admin@overcloud-controller-0 ~]$
[heat-admin@overcloud-controller-0 ~]$ sudo ovs-appctl fdb/show br-ex
port VLAN MAC Age
3 100 28:c0:da:00:4d:d3 35
1 0 28:c0:da:00:4d:d3 35
1 0 52:54:00:98:e9:d6 0
LOCAL 0 52:54:00:20:a2:2f 0
1 0 52:54:00:2c:08:9e 0
3 100 52:54:00:20:a2:2f 0
1 0 52:54:00:6a:ea:be 0
[heat-admin@overcloud-controller-0 ~]$
ãã®ããŒãã¯br-exããªããžã«é¢é£ä»ããããŠãããvlanã¿ã°ããªãããããã®ããŒãã¯ãã¹ãŠã®vlanãèš±å¯ããããã©ã³ã¯ããŒãã§ããäžèšã®åºåã®vlan-id 0ã§ç€ºãããŠããããã«ããã©ãã£ãã¯ã¯ã¿ã°ãªãã§å€éšã«éä¿¡ãããŸãã
çŸæç¹ã§ä»ã®ãã¹ãŠã¯èšç®ããŒãã«äŒŒãŠããŸã-åãããªããžãåããã³ãã«ã2ã€ã®èšç®ããŒãã«è¡ããŸãã
ãã®èšäºã§ã¯ã¹ãã¬ãŒãžããŒãã«ã€ããŠã¯èæ ®ããŸããããçè§£ããããã«ããããã®ããŒãã®ãããã¯ãŒã¯éšåã¯æ¥ãã¹ãç¹ãŸã§å¹³å¡ã§ãããšèšããªããã°ãªããŸããããã®å ŽåãIPã¢ãã¬ã¹ããã³ã°ããŠããç©çããŒãïŒeth0ïŒã¯1ã€ã ãã§ãããã ãã§ãã VxLANãã³ãã«ããã³ãã«ããªããžãªã©ã¯ãããŸããããã€ã³ãããªããããovã¯ãŸã£ãããããŸããããããã¯ãŒã¯åé¢ã䜿çšããå Žåããã®ããŒãã«ã¯2ã€ã®ã€ã³ã¿ãŒãã§ã€ã¹ïŒç©çããŒããããŒããŸãã¯2ã€ã®vlanã®ã¿ããããŸã-é¢ä¿ãããŸãã-å¿ èŠãªãã®ã«ãã£ãŠç°ãªããŸãïŒ-1ã€ã¯ç®¡ççšããã1ã€ã¯ãã©ãã£ãã¯çšïŒVMãã£ã¹ã¯ãžã®æžã蟌ã¿ãããã®èªã¿åãïŒãã£ã¹ã¯ãªã©ïŒã
ãµãŒãã¹ããªãå Žåã«ããŒãã«äœãããããææ¡ããŸãããæ¬¡ã«ã4ã€ã®ä»®æ³ãã·ã³ãèµ·åããŠãäžèšã®ã¹ããŒã ãã©ã®ããã«å€åããããèŠãŠã¿ãŸããããããŒããä»®æ³ã«ãŒã¿ãŒãªã©ãå¿ èŠã§ãã
ãããŸã§ã®ãšããããããã¯ãŒã¯ã¯æ¬¡ã®ãã
ã«ãªã£ãŠããŸããåã³ã³ãã¥ãŒã¿ãŒã«2ã€ã®ä»®æ³ãã·ã³ããããŸãããã¹ãŠãcompute-0ã«ã©ã®ããã«å«ãŸããŠããããèŠãŠã¿ãŸãããã
[heat-admin@overcloud-novacompute-0 ~]$ sudo virsh list
Id Name State
----------------------------------------------------
1 instance-00000001 running
3 instance-00000003 running
[heat-admin@overcloud-novacompute-0 ~]$
ãã·ã³ã«ã¯ãä»®æ³ã€ã³ã¿ãŒãã§ã€ã¹ã1ã€ã ããããŸã-tap95d96a75-a0ïŒ
[heat-admin@overcloud-novacompute-0 ~]$ sudo virsh domiflist instance-00000001
Interface Type Source Model MAC
-------------------------------------------------------
tap95d96a75-a0 bridge qbr95d96a75-a0 virtio fa:16:3e:44:98:20
[heat-admin@overcloud-novacompute-0 ~]$
ãã®ã€ã³ã¿ãŒãã§ã€ã¹ã¯ãLinuxããªããžã調ã¹ãŸãã
[heat-admin@overcloud-novacompute-0 ~]$ sudo brctl show
bridge name bridge id STP enabled interfaces
docker0 8000.0242904c92a8 no
qbr5bd37136-47 8000.5e4e05841423 no qvb5bd37136-47
tap5bd37136-47
qbr95d96a75-a0 8000.de076cb850f6 no qvb95d96a75-a0
tap95d96a75-a0
[heat-admin@overcloud-novacompute-0 ~]$
åºåãããããããã«ãæ å£ã«ã¯2ã€ã®ã€ã³ã¿ãŒãã§ã€ã¹ïŒtap95d96a75-a0ãšqvb95d96a75-a0ïŒãããããŸããã
OpenStackã®ä»®æ³ãããã¯ãŒã¯ããã€ã¹ã®çš®é¡ã«ã€ããŠå°ããåç¥ã®ããã«ãvEthãã¢ã§ããqvb95d96a75-a0ããŒããæ å£ã«ããå Žåã察å¿ãããã®ã¯ã©ãã«ãããŸãããè«ççã«ã¯qvo95d96a75-a0ãšåŒã°ããå¿ èŠããããŸããOVSã«ããããŒããèŠãŠã¿ãŸãããã
詳ãã説æãã䟡å€ããããŸã
ãvtap-ã€ã³ã¹ã¿ã³ã¹ïŒVMïŒã«æ¥ç¶ãããä»®æ³ã€ã³ã¿ãŒãã§ã€ã¹qbr-Linuxããªããž
qvbãšqvo-LinuxããªããžãšOpen vSwitchããªããžã«æ¥ç¶ãããvEthãã¢
br-intãbr-tunã br-vlan-vSwitchããªããžãéã
patch-ãint-br-ãphy-br--vSwitchããããéã-ããªããž
qgãqrãhaãfgãsgãæ¥ç¶ããã€ã³ã¿ãŒãã§ã€ã¹-ä»®æ³ããã€ã¹ãOVSã«æ¥ç¶ããããã«äœ¿çšããvSwitchããŒããéã
[heat-admin@overcloud-novacompute-0 ~]$ sudo sudo ovs-appctl dpif/show
system@ovs-system: hit:526 missed:91
br-ex:
br-ex 65534/1: (internal)
phy-br-ex 1/none: (patch: peer=int-br-ex)
br-int:
br-int 65534/2: (internal)
int-br-ex 1/none: (patch: peer=phy-br-ex)
patch-tun 2/none: (patch: peer=patch-int)
qvo5bd37136-47 6/6: (system)
qvo95d96a75-a0 3/5: (system)
br-tun:
br-tun 65534/3: (internal)
patch-int 1/none: (patch: peer=patch-tun)
vxlan-c0a8ff0f 3/4: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.19, remote_ip=192.168.255.15)
vxlan-c0a8ff1a 2/4: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.19, remote_ip=192.168.255.26)
[heat-admin@overcloud-novacompute-0 ~]$
ã芧ã®ãšãããããŒãã¯br-intã«ãããŸããBr-intã¯ãä»®æ³ãã·ã³ã®ããŒããçµäºããã¹ã€ãããšããŠæ©èœããŸããqvo95d96a75-a0ã«å ããŠãåºåã«ã¯ããŒãqvo5bd37136-47ã衚瀺ãããŸããããã¯ã2çªç®ã®ä»®æ³ãã·ã³ãžã®ããŒãã§ãããã®çµæãç§ãã¡ã®ã¹ããŒã ã¯æ¬¡ã®ããã«ãªããŸãã
æ³šææ·±ãèªè ãããã«èå³ãæã€ã¯ãã®è³ªå-ä»®æ³ãã·ã³ããŒããšOVSããŒãã®éã«Linuxããªããžãããã®ã¯ãªãã§ããïŒäºå®ãã»ãã¥ãªãã£ã°ã«ãŒãã¯ãã·ã³ãä¿è·ããããã«äœ¿çšãããŸããããã¯iptablesã«ãããŸãããOVSã¯iptablesã§ã¯æ©èœããªãããããã®ãã¯ã©ããããçºæãããŸããããã ããããèªäœã¯é·çãããŠããŸããæ°ãããªãªãŒã¹ã§ã¯conntrackã«çœ®ãæããããŠããŸãã
ã€ãŸããæçµçã«ã¹ããŒã ã¯æ¬¡ã®ããã«ãªããŸãã
1ã€ã®L2ãããã¯ãŒã¯ã®1ã€ã®ãã€ããŒãã€ã¶ãŒã«2ã€ã®ãã·ã³
ãããã®2ã€ã®VMã¯åãL2ãããã¯ãŒã¯å ã«ãããåããã€ããŒãã€ã¶ãŒäžã«ãããããäž¡æ¹ã®ãã·ã³ãåãVLANå ã«ããããããããã®éã®ãã©ãã£ãã¯ã¯br-intãä»ããŠè«ççã«ããŒã«ã«ã«ç§»åããŸãã
[heat-admin@overcloud-novacompute-0 ~]$ sudo virsh domiflist instance-00000001
Interface Type Source Model MAC
-------------------------------------------------------
tap95d96a75-a0 bridge qbr95d96a75-a0 virtio fa:16:3e:44:98:20
[heat-admin@overcloud-novacompute-0 ~]$
[heat-admin@overcloud-novacompute-0 ~]$
[heat-admin@overcloud-novacompute-0 ~]$ sudo virsh domiflist instance-00000003
Interface Type Source Model MAC
-------------------------------------------------------
tap5bd37136-47 bridge qbr5bd37136-47 virtio fa:16:3e:83:ad:a4
[heat-admin@overcloud-novacompute-0 ~]$
[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-appctl fdb/show br-int
port VLAN MAC Age
6 1 fa:16:3e:83:ad:a4 0
3 1 fa:16:3e:44:98:20 0
[heat-admin@overcloud-novacompute-0 ~]$
åãL2ãããã¯ãŒã¯å ã®ç°ãªããã€ããŒãã€ã¶ãŒäžã®2å°ã®ãã·ã³æ¬¡ã«ãåãL2ãããã¯ãŒã¯å ã®ç°ãªããã€ããŒãã€ã¶ãŒäžã«ãã
2å°ã®ãã·ã³éã§ãã©ãã£ãã¯ãã©ã®ããã«ç§»åããããèŠãŠã¿ãŸããããæ£çŽãªãšãããäœãå€ããããšã¯ãªãããã€ããŒãã€ã¶ãŒéã®ãã©ãã£ãã¯ã ããvxlanãã³ãã«ãééããŸããäŸãèŠãŠã¿ãŸãããã
ãã©ãã£ãã¯ãç£èŠããä»®æ³ãã·ã³ã®ã¢ãã¬ã¹ïŒ
[heat-admin@overcloud-novacompute-0 ~]$ sudo virsh domiflist instance-00000001
Interface Type Source Model MAC
-------------------------------------------------------
tap95d96a75-a0 bridge qbr95d96a75-a0 virtio fa:16:3e:44:98:20
[heat-admin@overcloud-novacompute-0 ~]$
[heat-admin@overcloud-novacompute-1 ~]$ sudo virsh domiflist instance-00000002
Interface Type Source Model MAC
-------------------------------------------------------
tape7e23f1b-07 bridge qbre7e23f1b-07 virtio fa:16:3e:72:ad:53
[heat-admin@overcloud-novacompute-1 ~]$
compute-0ã§br-intã®è»¢éããŒãã«ã確èªããŸãã
[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-appctl fdb/show br-int | grep fa:16:3e:72:ad:53
2 1 fa:16:3e:72:ad:53 1
[heat-admin@overcloud-novacompute-0 ~]
ãã©ãã£ãã¯ã¯ããŒã2ã«è¡ãå¿ èŠããããŸã-ãã®ããŒããäœã§ããããèŠãŠã¿ãŸãããïŒ
[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-ofctl show br-int | grep addr
1(int-br-ex): addr:7e:7f:28:1f:bd:54
2(patch-tun): addr:0a:bd:07:69:58:d9
3(qvo95d96a75-a0): addr:ea:50:9a:3d:69:58
6(qvo5bd37136-47): addr:9a:d1:03:50:3d:96
LOCAL(br-int): addr:1a:0f:53:97:b1:49
[heat-admin@overcloud-novacompute-0 ~]$
ããã¯patch-tunãã€ãŸãbr-tunãžã®ã€ã³ã¿ãŒãã§ãŒã¹ã§ããbr-tunã®ãã±ãããã©ããªããèŠãŠã¿ãŸãããã
[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-ofctl dump-flows br-tun | grep fa:16:3e:72:ad:53
cookie=0x8759a56536b67a8e, duration=1387.959s, table=20, n_packets=1460, n_bytes=138880, hard_timeout=300, idle_age=0, hard_age=0, priority=1,vlan_tci=0x0001/0x0fff,dl_dst=fa:16:3e:72:ad:53 actions=load:0->NXM_OF_VLAN_TCI[],load:0x16->NXM_NX_TUN_ID[],output:2
[heat-admin@overcloud-novacompute-0 ~]$
ãã±ããã¯VxLANã«ããã¯ãããããŒã2ã«éä¿¡ãããŸããããŒã2ãã©ãã«ã€ãªããããèŠãŠã¿ãŸãããã
[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-ofctl show br-tun | grep addr
1(patch-int): addr:b2:d1:f8:21:96:66
2(vxlan-c0a8ff1a): addr:be:64:1f:75:78:a7
3(vxlan-c0a8ff0f): addr:76:6f:b9:3c:3f:1c
LOCAL(br-tun): addr:a2:5b:6d:4f:94:47
[heat-admin@overcloud-novacompute-0 ~]$
ããã¯compute-1ã®vxlanãã³ãã«ã§ãã
[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-appctl dpif/show | egrep vxlan-c0a8ff1a
vxlan-c0a8ff1a 2/4: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.19, remote_ip=192.168.255.26)
[heat-admin@overcloud-novacompute-0 ~]$
compute-1ã«ç§»åããããã±ãŒãžã§æ¬¡ã«äœãèµ·ãããã確èªããŸãã
[heat-admin@overcloud-novacompute-1 ~]$ sudo ovs-appctl fdb/show br-int | egrep fa:16:3e:44:98:20
2 1 fa:16:3e:44:98:20 1
[heat-admin@overcloud-novacompute-1 ~]$
Macã¯compute-1ã®br-int転éããŒãã«ã«ãããäžèšã®åºåãããããããã«ãããŒã2ãã€ãŸãbr-tunãžã®ããŒãããèŠãããšãã§ããŸãã
[heat-admin@overcloud-novacompute-1 ~]$ sudo ovs-ofctl show br-int | grep addr
1(int-br-ex): addr:8a:d7:f9:ad:8c:1d
2(patch-tun): addr:46:cc:40:bd:20:da
3(qvoe7e23f1b-07): addr:12:78:2e:34:6a:c7
4(qvo3210e8ec-c0): addr:7a:5f:59:75:40:85
LOCAL(br-int): addr:e2:27:b2:ed:14:46
ããã§ã¯ãcompute-1ã®br-intã«å®å macãããããšãããããŸãã
[heat-admin@overcloud-novacompute-1 ~]$ sudo ovs-appctl fdb/show br-int | egrep fa:16:3e:72:ad:53
3 1 fa:16:3e:72:ad:53 0
[heat-admin@overcloud-novacompute-1 ~]$
ã€ãŸããåä¿¡ãããã±ããã¯ããŒã3ã«éä¿¡ããããã®èåŸã«instance-00000003ä»®æ³ãã·ã³ãæ¢ã«é 眮ãããŠããŸãã
ä»®æ³ã€ã³ãã©ã¹ãã©ã¯ãã£ã§åŠç¿ããããã«Openstackãå±éããããšã®å©ç¹ã¯ããã€ããŒãã€ã¶ãŒéã®ãã©ãã£ãã¯ãç°¡åã«ãã£ããããŠããããã©ããªããã確èªã§ããããšã§ãããããå®è¡ããvnetããŒãã§compute-0ã«åããŠtcpdumpãå®è¡ããŸãã
[root@hp-gen9 bormoglotx]# tcpdump -vvv -i vnet3
tcpdump: listening on vnet3, link-type EN10MB (Ethernet), capture size 262144 bytes
*****************omitted*******************
04:39:04.583459 IP (tos 0x0, ttl 64, id 16868, offset 0, flags [DF], proto UDP (17), length 134)
192.168.255.19.39096 > 192.168.255.26.4789: [no cksum] VXLAN, flags [I] (0x08), vni 22
IP (tos 0x0, ttl 64, id 8012, offset 0, flags [DF], proto ICMP (1), length 84)
10.0.1.85 > 10.0.1.88: ICMP echo request, id 5634, seq 16, length 64
04:39:04.584449 IP (tos 0x0, ttl 64, id 35181, offset 0, flags [DF], proto UDP (17), length 134)
192.168.255.26.speedtrace-disc > 192.168.255.19.4789: [no cksum] VXLAN, flags [I] (0x08), vni 22
IP (tos 0x0, ttl 64, id 59124, offset 0, flags [none], proto ICMP (1), length 84)
10.0.1.88 > 10.0.1.85: ICMP echo reply, id 5634, seq 16, length 64
*****************omitted*******************
æåã®è¡ã¯ãã¢ãã¬ã¹10.0.1.85ã®ããããã¢ãã¬ã¹10.0.1.88ïŒICMPãã©ãã£ãã¯ïŒã«éä¿¡ãããvni 22ã®VxLANãã±ããã«ã©ããããããã±ããããã¹ã192.168.255.19ïŒcompute-0ïŒãããã¹ã192.168.255.26ïŒèšç®-1ïŒãVNIãovsã§æå®ããããã®ãšäžèŽããããšã確èªã§ããŸãã
ãã®è¡ã«æ»ããŸãããactions = loadïŒ0-> NXM_OF_VLAN_TCI []ãloadïŒ0x16-> NXM_NX_TUN_ID []ãoutputïŒ2ã0x16ã¯16é²vniã§ãããã®æ°å€ã10çªç®ã®ã·ã¹ãã ã«å€æããŠã¿ãŸãããã
16 = 6*16^0+1*16^1 = 6+16 = 22
ã€ãŸããvniã¯çŸå®ã«å¯Ÿå¿ããŸãã
2è¡ç®ã¯ãªã¿ãŒã³ãã©ãã£ãã¯ã瀺ããŠããŸãããããã§èª¬æããã®ã¯æå³ããªãããã¹ãŠãæç¢ºã§ãã
ç°ãªããããã¯ãŒã¯äžã®2å°ã®ãã·ã³ïŒãããã¯ãŒã¯éã®ã«ãŒãã£ã³ã°ïŒ
仿¥ã®æåŸã®ã±ãŒã¹ã¯ãä»®æ³ã«ãŒã¿ãŒã䜿çšãã1ã€ã®ãããžã§ã¯ãå ã®ãããã¯ãŒã¯éã®ã«ãŒãã£ã³ã°ã§ããDVRããªãå Žåãæ€èšããŠããããïŒå¥ã®èšäºã§èª¬æããŸãïŒãã«ãŒãã£ã³ã°ã¯ãããã¯ãŒã¯ããŒãã§çºçããŸãããã®å Žåããããã¯ãŒã¯ããŒãã¯ç¬ç«ãããšã³ãã£ãã£ã§ã¯ãªããå¶åŸ¡ããŒãã«ãããŸãã
ãŸããã«ãŒãã£ã³ã°ãæ©èœããããšã確èªããŸãããã
$ ping 10.0.2.8
PING 10.0.2.8 (10.0.2.8): 56 data bytes
64 bytes from 10.0.2.8: seq=0 ttl=63 time=7.727 ms
64 bytes from 10.0.2.8: seq=1 ttl=63 time=3.832 ms
^C
--- 10.0.2.8 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 3.832/5.779/7.727 ms
ãã®å Žåããã±ããã¯ã²ãŒããŠã§ã€ã«éãããããã«ã«ãŒãã£ã³ã°ãããå¿ èŠããããããã²ãŒããŠã§ã€ã®MACã¢ãã¬ã¹ãèŠã€ããå¿ èŠããããŸãããã®ãããã€ã³ã¹ã¿ã³ã¹ã®ARPããŒãã«ã確èªããŸãã
$ arp
host-10-0-1-254.openstacklocal (10.0.1.254) at fa:16:3e:c4:64:70 [ether] on eth0
host-10-0-1-1.openstacklocal (10.0.1.1) at fa:16:3e:e6:2c:5c [ether] on eth0
host-10-0-1-90.openstacklocal (10.0.1.90) at fa:16:3e:83:ad:a4 [ether] on eth0
host-10-0-1-88.openstacklocal (10.0.1.88) at fa:16:3e:72:ad:53 [ether] on eth0
次ã«ãå®å ïŒ10.0.1.254ïŒã§ãã©ãã£ãã¯ãéä¿¡ããå ŽæãèŠãŠã¿ãŸããããfaïŒ16ïŒ3eïŒc4ïŒ64ïŒ70ïŒ
[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-appctl fdb/show br-int | egrep fa:16:3e:c4:64:70
2 1 fa:16:3e:c4:64:70 0
[heat-admin@overcloud-novacompute-0 ~]$
ããŒã2ãã©ãã«ã€ãªãããã調ã¹ãŸãã
[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-ofctl show br-int | grep addr
1(int-br-ex): addr:7e:7f:28:1f:bd:54
2(patch-tun): addr:0a:bd:07:69:58:d9
3(qvo95d96a75-a0): addr:ea:50:9a:3d:69:58
6(qvo5bd37136-47): addr:9a:d1:03:50:3d:96
LOCAL(br-int): addr:1a:0f:53:97:b1:49
[heat-admin@overcloud-novacompute-0 ~]$
ãã¹ãŠãè«ççã§ããã©ãã£ãã¯ã¯br-tunã«éãããŸããã©ã®vxlanãã³ãã«ã«ã©ããããããèŠãŠã¿ãŸãããïŒ
[heat-admin@overcloud-novacompute-0 ~]$ sudo ovs-ofctl dump-flows br-tun | grep fa:16:3e:c4:64:70
cookie=0x8759a56536b67a8e, duration=3514.566s, table=20, n_packets=3368, n_bytes=317072, hard_timeout=300, idle_age=0, hard_age=0, priority=1,vlan_tci=0x0001/0x0fff,dl_dst=fa:16:3e:c4:64:70 actions=load:0->NXM_OF_VLAN_TCI[],load:0x16->NXM_NX_TUN_ID[],output:3
[heat-admin@overcloud-novacompute-0 ~]$
3çªç®ã®ããŒãã¯vxlanãã³ãã«ã§ãã
[heat-admin@overcloud-controller-0 ~]$ sudo ovs-ofctl show br-tun | grep addr
1(patch-int): addr:a2:69:00:c5:fa:ba
2(vxlan-c0a8ff1a): addr:86:f0:ce:d0:e8:ea
3(vxlan-c0a8ff13): addr:72:aa:73:2c:2e:5b
LOCAL(br-tun): addr:a6:cb:cd:72:1c:45
[heat-admin@overcloud-controller-0 ~]$
ããã¯å¶åŸ¡ããŒãã調ã¹ãŸãã
[heat-admin@overcloud-controller-0 ~]$ sudo sudo ovs-appctl dpif/show | grep vxlan-c0a8ff1a
vxlan-c0a8ff1a 2/5: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.15, remote_ip=192.168.255.26)
[heat-admin@overcloud-controller-0 ~]$
ãã©ãã£ãã¯ã¯å¶åŸ¡ããŒãã«å°éããã®ã§ãå¶åŸ¡ããŒãã«ç§»åããŠãã«ãŒãã£ã³ã°ãã©ã®ããã«è¡ããããã確èªããå¿ èŠããããŸãã
èŠããŠããããã«ãå éšã®å¶åŸ¡ããŒãã¯èšç®ããŒããšãŸã£ããåãããã«èŠããŸãããåã3ã€ã®ããªããžã§ãããŒããå€éšã«ãã©ãã£ãã¯ãéä¿¡ã§ããç©çããŒããæã£ãŠããã®ã¯br-exã ãã§ãããã€ã³ã¹ã¿ã³ã¹ã®äœæã«ãããèšç®ããŒãã®æ§æã倿ŽãããŸãããLinuxããªããžãiptablesãããã³ã€ã³ã¿ãŒãã§ã€ã¹ãããŒãã«è¿œå ãããŸããããããã¯ãŒã¯ãšä»®æ³ã«ãŒã¿ãŒã®äœæããå¶åŸ¡ããŒãã®æ§æã«ãã®çè·¡ãæ®ããŸããã
ãããã£ãŠãã²ãŒããŠã§ã€ã®ãããŒã¢ãã¬ã¹ãå¶åŸ¡ããŒãã®br-int転éããŒãã«ã«ããå¿ èŠãããããšã¯æããã§ãããããããã«ãããã©ãã«èŠãããã確èªããŸãããïŒ
[heat-admin@overcloud-controller-0 ~]$ sudo ovs-appctl fdb/show br-int | grep fa:16:3e:c4:64:70
5 1 fa:16:3e:c4:64:70 1
[heat-admin@overcloud-controller-0 ~]$
[heat-admin@overcloud-controller-0 ~]$ sudo ovs-ofctl show br-int | grep addr
1(int-br-ex): addr:2e:58:b6:db:d5:de
2(patch-tun): addr:06:41:90:f0:9e:56
3(tapca25a97e-64): addr:fa:16:3e:e6:2c:5c
4(tap22015e46-0b): addr:fa:16:3e:76:c2:11
5(qr-0c52b15f-8f): addr:fa:16:3e:c4:64:70
6(qr-92fa49b5-54): addr:fa:16:3e:80:13:72
LOCAL(br-int): addr:06:de:5d:ed:44:44
[heat-admin@overcloud-controller-0 ~]$
Macã¯ããŒãqr-0c52b15f-8fããèŠãããšãã§ããŸããOpenstackã®ä»®æ³ããŒãã®ãªã¹ãã«æ»ããšããã®ããŒãã¿ã€ãã¯ãããŸããŸãªä»®æ³ããã€ã¹ãOVSã«æ¥ç¶ããããã«äœ¿çšãããŸããããæ£ç¢ºã«ã¯ãqrã¯ãåååãšããŠè¡šãããä»®æ³ã«ãŒã¿ãŒãžã®ããŒãã§ãã
ãµãŒããŒäžã«ããåååãèŠãŠã¿ãŸãããã
[heat-admin@overcloud-controller-0 ~]$ sudo ip netns
qrouter-0a4d2420-4b9c-46bd-aec1-86a1ef299abe (id: 2)
qdhcp-7d541e74-1c36-4e1d-a7c4-0968c8dbc638 (id: 1)
qdhcp-67a3798c-32c0-4c18-8502-2531247e3cc2 (id: 0)
[heat-admin@overcloud-controller-0 ~]$
3éšãŸã§ãããããååãã倿ãããšãããããã®ç®çãæšæž¬ããããšãã§ããŸããåŸã§IDã0ãš1ã®ã€ã³ã¹ã¿ã³ã¹ã«æ»ããŸããããã§ãåååqrouter-0a4d2420-4b9c-46bd-aec1-86a1ef299abeã«é¢å¿ããããŸãã
[heat-admin@overcloud-controller-0 ~]$ sudo ip netns exec qrouter-0a4d2420-4b9c-46bd-aec1-86a1ef299abe ip route
10.0.1.0/24 dev qr-0c52b15f-8f proto kernel scope link src 10.0.1.254
10.0.2.0/24 dev qr-92fa49b5-54 proto kernel scope link src 10.0.2.254
[heat-admin@overcloud-controller-0 ~]$
ãã®åååã«ã¯ãåã«äœæãã2ã€ã®å éšååããããŸããäž¡æ¹ã®ä»®æ³ããŒããbr-intã«è¿œå ãããŸããããŒãqr-0c52b15f-8fã®ãã¹ã¢ãã¬ã¹ã確èªããŸããããå®å ã®ãããŒã¢ãã¬ã¹ãã倿ãããšããã©ãã£ãã¯ã¯æ£ç¢ºã«ãã®ã€ã³ã¿ãŒãã§ã€ã¹ã«éä¿¡ãããããã§ãã
[heat-admin@overcloud-controller-0 ~]$ sudo ip netns exec qrouter-0a4d2420-4b9c-46bd-aec1-86a1ef299abe ifconfig qr-0c52b15f-8f
qr-0c52b15f-8f: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450
inet 10.0.1.254 netmask 255.255.255.0 broadcast 10.0.1.255
inet6 fe80::f816:3eff:fec4:6470 prefixlen 64 scopeid 0x20<link>
ether fa:16:3e:c4:64:70 txqueuelen 1000 (Ethernet)
RX packets 5356 bytes 427305 (417.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5195 bytes 490603 (479.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[heat-admin@overcloud-controller-0 ~]$
ã€ãŸãããã®å Žåããã¹ãŠãæšæºã«ãŒãã£ã³ã°ã®æ³åã«åŸã£ãŠæ©èœããŸãããã©ãã£ãã¯ã¯ãã¹ã10.0.2.8ã察象ãšããŠããããã2çªç®ã®ã€ã³ã¿ãŒãã§ã€ã¹qr-92fa49b5-54ãçµç±ããŠãvxlanãã³ãã«ãçµç±ããŠèšç®ããŒãã«å°éããå¿ èŠããããŸãã
[heat-admin@overcloud-controller-0 ~]$ sudo ip netns exec qrouter-0a4d2420-4b9c-46bd-aec1-86a1ef299abe arp
Address HWtype HWaddress Flags Mask Iface
10.0.1.88 ether fa:16:3e:72:ad:53 C qr-0c52b15f-8f
10.0.1.90 ether fa:16:3e:83:ad:a4 C qr-0c52b15f-8f
10.0.2.8 ether fa:16:3e:6c:ad:9c C qr-92fa49b5-54
10.0.2.42 ether fa:16:3e:f5:0b:29 C qr-92fa49b5-54
10.0.1.85 ether fa:16:3e:44:98:20 C qr-0c52b15f-8f
[heat-admin@overcloud-controller-0 ~]$
ãã¹ãŠãè«ççã§ãããé©ãããšã§ã¯ãããŸãããbr-intã®ãã¹ã10.0.2.8ã®ãããŒã¢ãã¬ã¹ã衚瀺ãããŠããå Žæã確èªããŸãã
[heat-admin@overcloud-controller-0 ~]$ sudo ovs-appctl fdb/show br-int | grep fa:16:3e:6c:ad:9c
2 2 fa:16:3e:6c:ad:9c 1
[heat-admin@overcloud-controller-0 ~]$
[heat-admin@overcloud-controller-0 ~]$ sudo ovs-ofctl show br-int | grep addr
1(int-br-ex): addr:2e:58:b6:db:d5:de
2(patch-tun): addr:06:41:90:f0:9e:56
3(tapca25a97e-64): addr:fa:16:3e:e6:2c:5c
4(tap22015e46-0b): addr:fa:16:3e:76:c2:11
5(qr-0c52b15f-8f): addr:fa:16:3e:c4:64:70
6(qr-92fa49b5-54): addr:fa:16:3e:80:13:72
LOCAL(br-int): addr:06:de:5d:ed:44:44
[heat-admin@overcloud-controller-0 ~]$
äºæ³ã©ããããã©ãã£ãã¯ã¯br-tunã«éãããŸããæ¬¡ã«ããã©ãã£ãã¯ãã©ã®ãã³ãã«ã«è¡ãããèŠãŠã¿ãŸãããã
[heat-admin@overcloud-controller-0 ~]$ sudo ovs-ofctl dump-flows br-tun | grep fa:16:3e:6c:ad:9c
cookie=0x2ab04bf27114410e, duration=5346.829s, table=20, n_packets=5248, n_bytes=498512, hard_timeout=300, idle_age=0, hard_age=0, priority=1,vlan_tci=0x0002/0x0fff,dl_dst=fa:16:3e:6c:ad:9c actions=load:0->NXM_OF_VLAN_TCI[],load:0x63->NXM_NX_TUN_ID[],output:2
[heat-admin@overcloud-controller-0 ~]$
[heat-admin@overcloud-controller-0 ~]$ sudo ovs-ofctl show br-tun | grep addr
1(patch-int): addr:a2:69:00:c5:fa:ba
2(vxlan-c0a8ff1a): addr:86:f0:ce:d0:e8:ea
3(vxlan-c0a8ff13): addr:72:aa:73:2c:2e:5b
LOCAL(br-tun): addr:a6:cb:cd:72:1c:45
[heat-admin@overcloud-controller-0 ~]$
[heat-admin@overcloud-controller-0 ~]$ sudo sudo ovs-appctl dpif/show | grep vxlan-c0a8ff1a
vxlan-c0a8ff1a 2/5: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.15, remote_ip=192.168.255.26)
[heat-admin@overcloud-controller-0 ~]$
ãã©ãã£ãã¯ã¯compute-1ã®åã«ãã³ãã«ã«å ¥ããŸããããŠãcompute-1ã§ã¯ãã¹ãŠãåçŽã§ã-br-tunãããã±ããã¯br-intã«è¡ããããããä»®æ³ãã·ã³ã®ã€ã³ã¿ãŒãã§ãŒã¹ã«è¡ããŸãïŒ
[heat-admin@overcloud-controller-0 ~]$ sudo sudo ovs-appctl dpif/show | grep vxlan-c0a8ff1a
vxlan-c0a8ff1a 2/5: (vxlan: egress_pkt_mark=0, key=flow, local_ip=192.168.255.15, remote_ip=192.168.255.26)
[heat-admin@overcloud-controller-0 ~]$
[heat-admin@overcloud-novacompute-1 ~]$ sudo ovs-appctl fdb/show br-int | grep fa:16:3e:6c:ad:9c
4 2 fa:16:3e:6c:ad:9c 1
[heat-admin@overcloud-novacompute-1 ~]$ sudo ovs-ofctl show br-int | grep addr
1(int-br-ex): addr:8a:d7:f9:ad:8c:1d
2(patch-tun): addr:46:cc:40:bd:20:da
3(qvoe7e23f1b-07): addr:12:78:2e:34:6a:c7
4(qvo3210e8ec-c0): addr:7a:5f:59:75:40:85
LOCAL(br-int): addr:e2:27:b2:ed:14:46
[heat-admin@overcloud-novacompute-1 ~]$
ãããå®éã«æ£ããã€ã³ã¿ãŒãã§ã€ã¹ã§ããããšã確èªããŸãããã
[heat-admin@overcloud-novacompute-1 ~]$ brctl show
bridge name bridge id STP enabled interfaces
docker0 8000.02429c001e1c no
qbr3210e8ec-c0 8000.ea27f45358be no qvb3210e8ec-c0
tap3210e8ec-c0
qbre7e23f1b-07 8000.b26ac0eded8a no qvbe7e23f1b-07
tape7e23f1b-07
[heat-admin@overcloud-novacompute-1 ~]$
[heat-admin@overcloud-novacompute-1 ~]$ sudo virsh domiflist instance-00000004
Interface Type Source Model MAC
-------------------------------------------------------
tap3210e8ec-c0 bridge qbr3210e8ec-c0 virtio fa:16:3e:6c:ad:9c
[heat-admin@overcloud-novacompute-1 ~]$
å®éãç§ãã¡ã¯ããã±ãŒãžå šäœã調ã¹ãŸããããã©ãã£ãã¯ãããŸããŸãªvxlanãã³ãã«ãééããããŸããŸãªVNIã§çµäºããããšã«æ°ä»ãããšæããŸããããããã©ã®ãããªVNIã§ãããã確èªããŠãããããŒãã®å¶åŸ¡ããŒãã§ãã³ããåéãããã©ãã£ãã¯ãäžèšã®ãšããã«éä¿¡ãããããšã確èªããŸãã
ãããã£ãŠãcompute-0ãžã®ãã³ãã«ã«ã¯æ¬¡ã®ã¢ã¯ã·ã§ã³ããããŸã=ããŒãïŒ0-> NXM_OF_VLAN_TCI []ãããŒãïŒ0x16-> NXM_NX_TUN_ID []ãåºåïŒ3ã0x16ã10é²è¡šèšã«å€æããïŒ
0x16 = 6*16^0+1*16^1 = 6+16 = 22
èšç®ãããã³ãã«-1ã«ã¯æ¬¡ã®VNIããããŸãïŒactions = loadïŒ0-> NXM_OF_VLAN_TCI []ãloadïŒ0x63-> NXM_NX_TUN_ID []ãoutputïŒ2ã10é²è¡šèšã§0x63ã倿ããïŒ
0x63 = 3*16^0+6*16^1 = 3+96 = 99
ããŠããã³ããèŠãŠã¿ãŸãããïŒ
[root@hp-gen9 bormoglotx]# tcpdump -vvv -i vnet4
tcpdump: listening on vnet4, link-type EN10MB (Ethernet), capture size 262144 bytes
*****************omitted*******************
04:35:18.709949 IP (tos 0x0, ttl 64, id 48650, offset 0, flags [DF], proto UDP (17), length 134)
192.168.255.19.41591 > 192.168.255.15.4789: [no cksum] VXLAN, flags [I] (0x08), vni 22
IP (tos 0x0, ttl 64, id 49042, offset 0, flags [DF], proto ICMP (1), length 84)
10.0.1.85 > 10.0.2.8: ICMP echo request, id 5378, seq 9, length 64
04:35:18.710159 IP (tos 0x0, ttl 64, id 23360, offset 0, flags [DF], proto UDP (17), length 134)
192.168.255.15.38983 > 192.168.255.26.4789: [no cksum] VXLAN, flags [I] (0x08), vni 99
IP (tos 0x0, ttl 63, id 49042, offset 0, flags [DF], proto ICMP (1), length 84)
10.0.1.85 > 10.0.2.8: ICMP echo request, id 5378, seq 9, length 64
04:35:18.711292 IP (tos 0x0, ttl 64, id 43596, offset 0, flags [DF], proto UDP (17), length 134)
192.168.255.26.42588 > 192.168.255.15.4789: [no cksum] VXLAN, flags [I] (0x08), vni 99
IP (tos 0x0, ttl 64, id 55103, offset 0, flags [none], proto ICMP (1), length 84)
10.0.2.8 > 10.0.1.85: ICMP echo reply, id 5378, seq 9, length 64
04:35:18.711531 IP (tos 0x0, ttl 64, id 8555, offset 0, flags [DF], proto UDP (17), length 134)
192.168.255.15.38983 > 192.168.255.19.4789: [no cksum] VXLAN, flags [I] (0x08), vni 22
IP (tos 0x0, ttl 63, id 55103, offset 0, flags [none], proto ICMP (1), length 84)
10.0.2.8 > 10.0.1.85: ICMP echo reply, id 5378, seq 9, length 64
*****************omitted*******************
æåã®ãã±ããã¯ããã¹ã192.168.255.19ïŒcompute-0ïŒãããã¹ã192.168.255.15ïŒcontrol-1ïŒãžã®vni 22ã®vxlanãã±ããã§ããããã®å éšã§ICMPãã±ããããã¹ã10.0.1.85ãããã¹ã10.0.2.8ã«ããã¯ãããŸããäžã§èšç®ããããã«ãvniã¯åºåã§èŠããã®ã«å¯Ÿå¿ããŸãã
2çªç®ã®ãã±ããã¯ããã¹ã192.168.255.15ïŒcontrol-1ïŒãããã¹ã192.168.255.26ïŒcompute-1ïŒãžã®vni 99ã®vxlanãã±ããã§ããããã®äžã«ICMPãã±ããããã¹ã10.0.1.85ãããã¹ã10.0.2.8ã«ããã¯ãããŸããäžã§èšç®ããããã«ãvniã¯åºåã§èŠããã®ã«å¯Ÿå¿ããŸãã
次ã®2ã€ã®ãã±ããã¯ã10.0.1.85ã§ã¯ãªã10.0.2.8ããã®ãªã¿ãŒã³ãã©ãã£ãã¯ã§ãã
ã€ãŸããæçµçã«ã次ã®å¶åŸ¡ããŒãã¹ããŒã ãåŸãããŸãã
ã 2ã€ã®åååãå¿ããŸããïŒ
[heat-admin@overcloud-controller-0 ~]$ sudo ip netns
qrouter-0a4d2420-4b9c-46bd-aec1-86a1ef299abe (id: 2)
qdhcp-7d541e74-1c36-4e1d-a7c4-0968c8dbc638 (id: 1)
qdhcp-67a3798c-32c0-4c18-8502-2531247e3cc2 (id: 0)
[heat-admin@overcloud-controller-0 ~]$
ã¯ã©ãŠããã©ãããã©ãŒã ã®ã¢ãŒããã¯ãã£ã«ã€ããŠèª¬æããããã«ããã·ã³ãDHCPãµãŒããŒããã¢ãã¬ã¹ãèªåçã«åä¿¡ããã®ã¯çŽ æŽãããããšã§ãããããã¯ã2ã€ã®ãããã¯ãŒã¯10.0.1.0/24ããã³10.0.2.0/24çšã®2ã€ã®DHCPãµãŒããŒã§ãã
ãããããã§ããããšã確èªããŸãããããã®åååã«ã¯ãDHCPãµãŒããŒèªäœã®ã¢ãã¬ã¹ã§ãã10.0.1.1ãšãã1ã€ã®ã¢ãã¬ã¹ãããªããbr-intã«ãå«ãŸããŠããŸãã
[heat-admin@overcloud-controller-0 ~]$ sudo ip netns exec qdhcp-67a3798c-32c0-4c18-8502-2531247e3cc2 ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 1 bytes 28 (28.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1 bytes 28 (28.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
tapca25a97e-64: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450
inet 10.0.1.1 netmask 255.255.255.0 broadcast 10.0.1.255
inet6 fe80::f816:3eff:fee6:2c5c prefixlen 64 scopeid 0x20<link>
ether fa:16:3e:e6:2c:5c txqueuelen 1000 (Ethernet)
RX packets 129 bytes 9372 (9.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 49 bytes 6154 (6.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
å¶åŸ¡ããŒãã®ååã«qdhcp-67a3798c-32c0-4c18-8502-2531247e3cc2ãå«ãããã»ã¹ããããã©ãããèŠãŠã¿ãŸãããã
[heat-admin@overcloud-controller-0 ~]$ ps -aux | egrep qdhcp-7d541e74-1c36-4e1d-a7c4-0968c8dbc638
root 640420 0.0 0.0 4220 348 ? Ss 11:31 0:00 dumb-init --single-child -- ip netns exec qdhcp-7d541e74-1c36-4e1d-a7c4-0968c8dbc638 /usr/sbin/dnsmasq -k --no-hosts --no-resolv --pid-file=/var/lib/neutron/dhcp/7d541e74-1c36-4e1d-a7c4-0968c8dbc638/pid --dhcp-hostsfile=/var/lib/neutron/dhcp/7d541e74-1c36-4e1d-a7c4-0968c8dbc638/host --addn-hosts=/var/lib/neutron/dhcp/7d541e74-1c36-4e1d-a7c4-0968c8dbc638/addn_hosts --dhcp-optsfile=/var/lib/neutron/dhcp/7d541e74-1c36-4e1d-a7c4-0968c8dbc638/opts --dhcp-leasefile=/var/lib/neutron/dhcp/7d541e74-1c36-4e1d-a7c4-0968c8dbc638/leases --dhcp-match=set:ipxe,175 --local-service --bind-dynamic --dhcp-range=set:subnet-335552dd-b35b-456b-9df0-5aac36a3ca13,10.0.2.0,static,255.255.255.0,86400s --dhcp-option-force=option:mtu,1450 --dhcp-lease-max=256 --conf-file= --domain=openstacklocal
heat-ad+ 951620 0.0 0.0 112944 980 pts/0 S+ 18:50 0:00 grep -E --color=auto qdhcp-7d541e74-1c36-4e1d-a7c4-0968c8dbc638
[heat-admin@overcloud-controller-0 ~]$
ãã®ãããªããã»ã¹ããããäžèšã®åºåã«ç€ºãããŠããæ å ±ã«åºã¥ããŠãããšãã°ãçŸåšã®è³è²žæã確èªã§ããŸãã
[heat-admin@overcloud-controller-0 ~]$ cat /var/lib/neutron/dhcp/7d541e74-1c36-4e1d-a7c4-0968c8dbc638/leases
1597492111 fa:16:3e:6c:ad:9c 10.0.2.8 host-10-0-2-8 01:fa:16:3e:6c:ad:9c
1597491115 fa:16:3e:76:c2:11 10.0.2.1 host-10-0-2-1 *
[heat-admin@overcloud-controller-0 ~]$
ãã®çµæãå¶åŸ¡ããŒãã§ãã®ãããªäžé£ã®ãµãŒãã¹ãå©çšã§ããŸãã
èŠããŠãããŠãã ãããããã¯ã4å°ã®ãã·ã³ã2ã€ã®å éšãããã¯ãŒã¯ã1ã€ã®ä»®æ³ã«ãŒã¿ãŒã§ããçŸåšãå€éšãããã¯ãŒã¯ã¯ãããŸãããããŸããŸãªãããžã§ã¯ããå±±ã»ã©ãããããããã«ç¬èªã®ãããã¯ãŒã¯ããããŸãïŒéè€ããŠããŸãïŒã ïŒã忣ã«ãŒã¿ãŒããªãã«ããŸããããæçµçã«ãã¹ããã³ãã«ã¯å¶åŸ¡ããŒãã1ã€ãããããŸããã§ããïŒéå®³èæ§ã®ããã«ã3ã€ã®ããŒãã®ã¯ã©ãŒã©ã ãå¿ èŠã§ãïŒãåååŒã§ã¯ãã¹ãŠããå°ããè€éã«ãªãã®ã¯è«ççã§ããããã®åçŽãªäŸã§ã¯ããããã©ã®ããã«æ©èœããããçè§£ããŠããŸãããã¡ããã3ã€ãŸãã¯300ã®åååãããå Žåã¯éèŠã§ãããæ§é å šäœã®æäœã®èгç¹ããã¯ãäœãå€ãããŸãã...ãããä»ã®ãšããããçš®ã®ãã³ããŒSDNãåºå·ããªãã§ãã ãããããããããã¯ãŸã£ããå¥ã®è©±ã§ãã
é¢çœãã£ããšæããŸããã³ã¡ã³ã/远å ãããŸãããå ŽåããŸãã¯ç§ãå ¬ç¶ãšåãã€ããå ŽæïŒç§ã¯äººéã§ãããç§ã®æèŠã¯åžžã«äž»èгçã§ãïŒ-ä¿®æ£/远å ããå¿ èŠããããã®ãæžããŠãã ãã-ç§ãã¡ã¯ãã¹ãŠãä¿®æ£/远å ããŸãã
çµè«ãšããŠãOpenstackïŒããã©ãšãã³ããŒã®äž¡æ¹ïŒãVMWareã®ã¯ã©ãŠããœãªã¥ãŒã·ã§ã³ãšæ¯èŒããããšã«ã€ããŠå°ãã話ãããããšæããŸã-ããæ°å¹Žãã®è³ªåãé »ç¹ã«åããŠãããæ£çŽãªãšãããç§ã¯ããã«ããããããŠããŸãããããã§ããŸã ã§ããç§ã®æèŠã§ã¯ãããã2ã€ã®è§£æ±ºçãæ¯èŒããããšã¯éåžžã«å°é£ã§ãããäž¡æ¹ã®è§£æ±ºçã«ã¯äžå©ãªç¹ãããããšã¯æçœã§ããäžæ¹ã®è§£æ±ºçãéžæãããšãã¯ãé·æãšçæãæ¯èŒæ€èšããå¿ èŠããããŸãã
OpenStackãã³ãã¥ããã£äž»å°ã®ãœãªã¥ãŒã·ã§ã³ã§ããå ŽåãVMWareã¯ãã¯ã©ã€ã¢ã³ããããéã皌ãããšã«æ £ããŠããå¶å©äŒæ¥ã§ãããããå¿ èŠãªããšã ããå®è¡ããæš©å©ããããŸãïŒèªã¿åããå©çããããŸãïŒãããã¯è«ççã§ãããããã倧ãããŠå€ªããã®ã1ã€ãããŸããããšãã°ãNokiaããOpenStackãéããŠãJuniperïŒContrail CloudïŒãªã©ã®ãœãªã¥ãŒã·ã§ã³ã«åãæ¿ããããšã¯ã§ããŸãããVMWareãéããããšã¯ã»ãšãã©ã§ããŸãããç§ã«ãšã£ãŠãããã2ã€ã®ãœãªã¥ãŒã·ã§ã³ã¯æ¬¡ã®ããã«ãªããŸããOpenstackïŒãã³ããŒïŒã¯ãããªãã眮ãããåçŽãªã±ãŒãžã§ãããéµãæã£ãŠããŠããã€ã§ãçµäºã§ããŸãã VMWareã¯é»éã®æª»ã§ãããææè ã¯æª»ã®éµãæã£ãŠãããããã¯ããªãã«ããªãã®è²»çšãããããŸãã
ç§ã¯æåã®è£œåã2çªç®ã®è£œåããã£ã³ããŒã³ããŠããŸãã-ããªãã¯ããªããå¿ èŠãªãã®ãéžæããŸãããããããã®ãããªéžæè¢ãããã°ããã¬ã³ã ã¯ã©ãŠãã«ã¯äž¡æ¹ã®ãœãªã¥ãŒã·ã§ã³ïŒITã¯ã©ãŠãçšã®VMWareïŒäœè² è·ã䟿å©ãªç®¡çïŒãäžéšã®ãã³ããŒã®OpenStackïŒNokiaãšJuniperãéåžžã«åªããã¿ãŒã³ããŒãœãªã¥ãŒã·ã§ã³ãæäŸïŒïŒãéžæããŸããç§ã¯çŽç²ãªITã«Openstackã䜿çšããŸãã-ããã¯å€§ç ²ã§ã¹ãºã¡ãæã€ãããªãã®ã§ãããåé·æ§ãé€ããŠãããã䜿çšããããšãžã®çŠå¿ã¯èŠãããŸããããã ãããã¬ã³ã ã§VMWareã䜿çšããïŒãã©ãŒãã©ãã¿ãŒã§çŠç€«ãéã¶æ¹æ³ïŒããšã¯ãå€ããèŠããšçŸããã§ããããã©ã€ããŒã¯1åã§ã¯ãªã10åã®ããªãããè¡ãå¿ èŠããããŸãã
ç§ã®æèŠã§ã¯ãVMWareã®æå€§ã®æ¬ ç¹ã¯ããã®å®å šãªééæ§ã§ã-äŒç€Ÿã¯ãvSANããã€ããŒãã€ã¶ãŒã³ã¢ã«ãããã®ãªã©ããããã©ã®ããã«æ©èœãããã«ã€ããŠã®æ å ±ãæäŸããŸãã-ããã¯åã«ããã«ãšã£ãŠæçã§ã¯ãããŸãã-ã€ãŸããVMWareã®å°éå®¶ã«ãªãããšã¯æ±ºããŠãããŸãã-ãã³ããŒã®ãµããŒãããªããã°ãããªãã¯éåœã«ãããŸãïŒå¹³å¡ãªè³ªåã«å°æããŠããVMWareã®å°éå®¶ã«äŒãããšããããããŸãïŒãç§ã«ãšã£ãŠãVMWareã¯ããŒããããã¯ãããè»ãè³Œå ¥ããŠããŸã-ã¯ããããããã¿ã€ãã³ã°ãã«ãã倿Žã§ããã¹ãã·ã£ãªã¹ããããŸããããã®ãœãªã¥ãŒã·ã§ã³ã販売ãã人ã ããããŒããéããããšãã§ããŸããå人çã«ã¯ãèªåã«åããªã解決çã¯å¥œãã§ã¯ãããŸãããããªãã¯ããªãããã³ãããã®äžã«è¡ãå¿ èŠã¯ãªããããããªããšèšãã§ããããã¯ããããã¯å¯èœã§ããã20ã30å°ã®ä»®æ³ãã·ã³ã40ã50å°ã®ãããã¯ãŒã¯ããã¯ã©ãŠãã§å€§èŠæš¡ãªæ©èœãçµã¿ç«ãŠãå¿ èŠãããå Žåã«ãç§ã¯ããªããèŠãŠãããŸããååã¯å€ã«åºãããšæã£ãŠãããæ®ãã®ååã¯SR-IOVã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãèŠæ±ããŠããŸããããããªããšããããã®ãã·ã³ãããã«æ°åå°å¿ èŠã«ãªããŸããããããªããšãããã©ãŒãã³ã¹ãååã«ãªããŸããã
ä»ã®èгç¹ãããã®ã§ãäœãéžæãããã¯ããªã次第ã§ãããããŠæãéèŠãªããšã¯ãåŸã§ããªããéžæãã責任ããããšããããšã§ããããã¯ç§ã®æèŠã§ããå°ãªããšã4ã€ã®è£œåïŒNokiaãJuniperãRed HatãVMWareïŒãèŠãŠãè§Šããããšããã人ã§ããã€ãŸããç§ã¯æ¯èŒãããã®ããããŸãã