OpenStackãã©ãããã©ãŒã ãåçšã§äœ¿çšããããã®ããã€ãã®åºæ¬çãªèŠä»¶ããããŸããã¹ã¿ãŒãã¢ããã®éçºç°å¢çšã®å°ããªã¯ã©ã¹ã¿ãŒãšããŠããŸãã¯ã©ãŠããµãŒãã¹ã®ãªãœãŒã¹ãããã€ããŒã®å€§èŠæš¡ãªã€ã³ã¹ããŒã«ãšããŠã§ãã æãäžè¬çã§ãçµæãšããŠã次ã®èŠä»¶ãæãéèŠã§ãã
-äžæã®ãªãïŒHAïŒãµãŒãã¹ãšåé·æ§
-ã¯ã©ã¹ã¿ãŒã®ã¹ã±ãŒã©ããªãã£
-æè¡éçšã®èªåå
Mirantisã¯ãããã3ã€ã®èŠä»¶ãã¹ãŠãæºããã¢ãããŒããéçºããŸããã ãã®èšäºã¯ãåœç€Ÿã®ã¢ãããŒãã説æããäžé£ã®èšäºã®æåã®èšäºã§ãã ãã®èšäºã§ã¯ã䜿çšããæ¹æ³ãšããŒã«ã®æŠèŠã説æããŸãã
ç¡åé»ïŒHAïŒããã³åé·æ§
äžè¬ã«ãOpenStackãã©ãããã©ãŒã ã«åºã¥ããµãŒãã¹ã¯ãè€æ°ã®ã°ã«ãŒãã«åå²ã§ããŸãããã®å ŽåãåãµãŒãã¹ã®äžæã®ãªããµãŒãã¹ã¢ãããŒãã«åºã¥ããŠããŸãã
APIãµãŒãã¹
æåã®ã°ã«ãŒãã«ã¯ãAPIãµãŒããŒãå«ãŸããŸãã
-nova-api
-ã°ã©ã³ã¹API
-äžç®ã¬ãžã¹ããª
-ããŒã¹ããŒã³
HTTP / RESTãããã³ã«ã䜿çšããããããã¯ã©ã¹ã¿ãŒã«è¿œå ãããããŒããã©ã³ãµãŒã䜿çšããŠåé·æ§ãæ¯èŒçç°¡åã«å®çŸã§ããŸãã ããŒããã©ã³ãµãŒããã«ã¹ãã§ãã¯ããµããŒãããŠããå Žåãããã¯åºæ¬çãªé«å¯çšæ§APIãæäŸããã®ã«ååã§ãã OpenStackãã©ãããã©ãŒã ã®2012.1ãªãªãŒã¹ïŒEssexïŒã§ã¯ãSwift APIã®ã¿ãããã«ã¹ãã§ãã¯ãåŒã³åºãããµããŒãããŠããããšã«æ³šæããŠãã ããã ä»ã®ãµãŒãã¹ã®æ©èœããã¹ãããã«ã¯ããã®åŒã³åºãããµããŒãããããã«APIãžã®è¿œå ãå¿ èŠã§ãã
ã³ã³ãã¥ãŒãã£ã³ã°ãµãŒãã¹
2çªç®ã®ã°ã«ãŒãã«ã¯ãä»®æ³ãµãŒããŒãå®éã«ç®¡çãããããã«ãªãœãŒã¹ãæäŸãããµãŒãã¹ãå«ãŸããŸãã
-nova-compute
-nova-network
-nova-volume
ãããã®ãµãŒãã¹ã¯ãå®çšŒåç°å¢ã§ç¹å¥ãªåé·æ§ãå¿ èŠãšããŸããã ãããã®ãµãŒãã¹ã°ã«ââãŒããžã®ã¢ãããŒãã¯ãåºæ¬çãªã¯ã©ãŠãã³ã³ãã¥ãŒãã£ã³ã°ãã©ãã€ã ã«åºã¥ããŠããŸããã€ãŸããå€ãã®äº€æå¯èœãªã¯ãŒã¯ãããŒãããããã®ãã¡ã®1ã€ã倱ãããŠããã¯ã©ã¹ã¿ãŒãæäŸãããµãŒãã¹ã®é害ã§ã¯ãªããäžæçãªããŒã«ã«ç®¡çæ§ã®äžæã®ã¿ã«ã€ãªãããã©ãã€ã ã§ãã ãããã£ãŠãå€éšç£èŠã·ã¹ãã ã䜿çšããŠãããã®ãµãŒãã¹ã远跡ããã ãã§ååã§ãããã€ãã³ããã³ãã©ãŒã®åœ¢åŒã§å®è£ ãããäž»èŠãªå埩ã·ããªãªãèªç±ã«äœ¿çšã§ããŸãã æãåçŽãªã·ããªãªã¯ã管çè ã«éç¥ãéä¿¡ãã倱æãããµãŒãã¹ãåèµ·åããããšã§ãã
nova-networkãµãŒãã¹ã®ãã«ããã¹ããµããŒãæ©èœã«ãã£ãŠæäŸããããããã¯ãŒã¯ããŒã¿è»¢éãµãŒãã¹ã®é«å¯çšæ§ã«ã€ããŠã¯ãå ¬åŒã®OpenStackããã¥ã¡ã³ãã«èšèŒãããŠããŸãã ãã ããå®éã®äœæ¥ç°å¢ã§ã¯ããã®ã¹ããŒã ã«é »ç¹ã«åãæ¿ãããšããããã¯ãŒã¯ã«ãŒãã£ã³ã°ãä»ããå€éšããŒããŠã§ã¢ã«ãŒã¿ãŒãžã®è² è·è»¢éã䜿çšãããŸãã ãããã£ãŠãnova-networkãµãŒãã¹ã¯DHCPãµãŒããŒã®æ©èœã®ã¿ãå®è¡ããè€æ°ã®ããŒãã®ãµããŒãã«ãããDHCPãµãŒããŒãå¯äžã®é害ãã€ã³ãã§ã¯ãªãããšãä¿èšŒãããŸãã
ãã©ã³ããŒ
åé·æ§ã¯ãnova-schedulerãµãŒãã¹ã®äžå¯æ¬ ãªéšåã§ãã nova-schedulerã®æåã®ã€ã³ã¹ã¿ã³ã¹ãèµ·åãããšãRabbitMQãµãŒããŒã®ã¹ã±ãžã¥ãŒã©ãŒãã¥ãŒããã¡ãã»ãŒãžã®åä¿¡ãéå§ããŸãã ããã«ãããnova-computeãµãŒãã¹ãã¹ããŒã¿ã¹ãæŽæ°ããããã«äœ¿çšããè¿œå ã®ãã¥ãŒscheduler_fanout_ãäœæãããŸãã ãã¥ãŒåã®ãã©ã¡ãŒã¿ã¯ãæ°ããã¹ã±ãžã¥ãŒã©ã€ã³ã¹ã¿ã³ã¹ã®èå¥åã«çœ®ãæããããŸãã ãã®åŸèµ·åããããã¹ãŠã®nova-schedulerã¯åæ§ã®æ¹æ³ã§åäœãããããè¿œå ã®åŽåãªãã§äžŠè¡ããŠåäœã§ããŸãã
ãã¥ãŒãµãŒããŒ
RabbitMQãã¥ãŒãµãŒããŒã¯ããã¹ãŠã®novaãµãŒãã¹ã®äž»èŠãªéä¿¡ãã£ãã«ã§ãããå®çšŒåç°å¢ã®æ§æã§ä¿¡é Œã§ããå¿ èŠããããŸãã ã¯ã©ã¹ã¿ãŒã®äœæãšãã¥ãŒãã©ãŒãªã³ã°ã¯ãæåã¯RabbitMQãµãŒããŒã§ãµããŒããããŠãããããŒããã©ã³ãµãŒã䜿çšããŠã¯ã©ã¹ã¿ãŒã¢ãŒãã§åäœããŠããRabbitMQãµãŒããŒéã§æ¥ç¶ãåæ£ã§ããŸãã Mirantisã¯ãNova RPCã©ã€ãã©ãªã®ã¢ããããŒããéçºããŸãããããã«ããããã©ã€ããªãµãŒããŒã«é害ãçºçããæ¥ç¶ãåãå ¥ããããªãå Žåã«ããã¯ã¢ããRabbitMQãµãŒããŒã«åãæ¿ãããšããã§ã€ã«ãªãŒããŒãå¯èœã«ãªããŸãã
ããŒã¿ããŒã¹
ã»ãšãã©ã®å ŽåãOpenStackãã©ãããã©ãŒã ããããã€ãããšããMySQLããŒã¿ããŒã¹ã䜿çšãããŸãã ãŸããMirantisã¯ã€ã³ã¹ããŒã«ã§ãã®ããŒã¿ããŒã¹ã䜿çšããå Žåãã»ãšãã©ã§ãã çŸåšãŸã§ãäžæã®ãªãã¹ã±ãŒã©ãã«ãªMySQLããŒã¿ããŒã¹ãä¿èšŒããããã€ãã®ãœãªã¥ãŒã·ã§ã³ããããŸãã æãäžè¬çã«äœ¿çšãããã¬ããªã±ãŒã·ã§ã³ç®¡çããŒã«ã¯ããã«ããã¹ã¿ãŒã¬ããªã±ãŒã·ã§ã³ãããŒãžã£ãŒMySQL-MMMã§ãã ãã®ãœãªã¥ãŒã·ã§ã³ã¯ãMirantisã«ãã£ãŠå®è¡ãããããã€ãã®ã€ã³ã¹ããŒã«ã§äœ¿çšãããæ¢ç¥ã®å¶éãé€ããååã«ä¿¡é Œæ§ã®é«ãåäœãããŸãã
MMMã®äœ¿çšã«é倧ãªåé¡ã¯ãããŸããã§ããããããŒã¿ããŒã¹ãç¹ã«WSREPãGaleraã«åºã¥ãMySQLã¯ã©ã¹ã¿ãªã³ã°ãšã³ãžã³ã®åæ»ãªéçšã確ä¿ããããã«ãããææ°ã®ãªãŒãã³ãœãŒã¹ãœãªã¥ãŒã·ã§ã³ã®äœ¿çšãæ€èšããŠããŸãã Galera Clusterã¯ãã·ã³ãã«ã§ééçãªã¹ã±ãŒã©ããªãã£ã¡ã«ããºã ãæäŸããWSREPã¬ãã«ã§å®è£ ãããããŒã¿å€æŽã®è€æ°ã®ãœãŒã¹ã䜿çšããåæã¬ããªã±ãŒã·ã§ã³ã«ãããã©ãŒã«ããã¬ã©ã³ã¹ããµããŒãããŸãã
æ¡åŒµæ§
è² è·ãåæ£ããæ¹æ³ããŸãã¯è² è·ã䞊åã«åæ£ããæ¹æ³ãããã£ãã®ã§ãã¯ã©ã¹ã¿ãŒã«ãµãŒãã¹ããã»ã¹ãè¿œå ãããããæ¡åŒµããŠããå€ãã®è² è·ãæäŸã§ãããã€ãŸããæ°Žå¹³ãã¹ã±ãŒãªã³ã°ãå®è¡ã§ããã¡ã«ããºã ãå¿ èŠã§ãã OpenStackãã©ãããã©ãŒã ã®ã»ãšãã©ã®ã³ã³ããŒãã³ãã«ã€ããŠã¯ããµãŒããŒã€ã³ã¹ã¿ã³ã¹ãè¿œå ããããŒããã©ã³ãµãŒæ§æã«å«ããŠãã¯ã©ã¹ã¿ãŒãæ°Žå¹³æ¹åã«ã¹ã±ãŒãªã³ã°ããã ãã§ãã ãã ããããã¯ç£æ¥ãã©ã³ãã§2ã€ã®åé¡ã«ã€ãªãããŸãã
ã»ãšãã©ã®ã¯ã©ã¹ã¿ãŒã¯ããµãŒãã¹ã€ã³ã¹ã¿ã³ã¹ã§ã¯ãªãããŒãã«ãã£ãŠã¹ã±ãŒãªã³ã°ãããŸãã ãã®ç¹ã§ãã¯ã©ã¹ã¿ãŒã®ãã¹ããŒããã¹ã±ãŒãªã³ã°ã®å®è¡ãå¯èœã«ããããŒãã®åœ¹å²ã決å®ããããšãå¿ èŠã«ãªããŸãã 圹å²ã¯ãåºæ¬çã«ããŒãã§å®è¡ãããŠããäžé£ã®ãµãŒãã¹ã«å¯Ÿå¿ããã¯ã©ã¹ã¿ãŒã«ããŒããè¿œå ããããšã§æ¡åŒµããŸãã
å¶åŸ¡ããŒãã®è¿œå ã«ããã¯ã©ã¹ã¿ãŒã®æ°Žå¹³ã¹ã±ãŒãªã³ã°ã«ã¯ãç¹å®ã®é åºã§ããã€ãã®å Žæã§æ§æãå€æŽããå¿ èŠããããŸããã€ãŸããã¯ã©ã¹ã¿ãŒããããã€ãããµãŒãã¹ãéå§ããŠãããããŒããã©ã³ãµãŒæ§æãæŽæ°ããŠæ°ããããŒããå«ããå¿ èŠããããŸãã èšç®ããŒãã®å Žåãæé ã¯ç°¡åã§ãããããã§ããæ©åšãããµãŒãã¹æ§æãŸã§ããã¹ãŠã®ã¬ãã«ã§é«åºŠãªèªååãå¿ èŠã§ãã
ããŒããšããŒã«
OpenStackãµãŒãã¹ã¯é«åºŠãªæè»æ§ãåãããµãŒããŒã«åæ£ã§ããŸãããOpenStackãã©ãããã©ãŒã ããããã€ããããã®æãäžè¬çãªãªãã·ã§ã³ã¯ã管çããŒããšã³ã³ãã¥ãŒãã£ã³ã°ããŒãã®2çš®é¡ã®ããŒããæã€ããšã§ãã éçºçšã®å žåçãªOpenStackã€ã³ã¹ããŒã«ã«ã¯ãèšç®ã°ã«ãŒããé€ããã¹ãŠã®ãµãŒãã¹ãéå§ãã1ã€ã®å¶åŸ¡ããŒããšãã³ã³ãã¥ãŒãã£ã³ã°ãµãŒãã¹ãå®è¡ããä»®æ³ãµãŒããŒããã¹ãããè€æ°ã®ã³ã³ãã¥ãŒãã£ã³ã°ããŒããå«ãŸããŸãã
ãã®ãããªã¢ãŒããã¯ãã£ã¯åçšã€ã³ã¹ããŒã«ã«ã¯é©ããªãããšãæããã«ãªããŸãã å°èŠæš¡ãªã¯ã©ã¹ã¿ãŒã®å Žåãã³ã³ãã¥ãŒãã£ã³ã°ããŒãã«APIãµãŒããŒãã€ã³ã¹ããŒã«ããããŒã¿ããŒã¹ããã¥ãŒãµãŒããŒãããã³ã³ã³ãããŒã«ããŒãã®ã³ã³ãããŒã«ããã«ã®ã¿ãæ®ããŠãã¯ã©ã¹ã¿ãŒããŒããã§ããã ãèªçµŠèªè¶³ã«ããããšããå§ãããŸãã å¶åŸ¡ããŒãã®æ§æã«ã¯ãåé·æ§ãå«ãŸããŠããå¿ èŠããããŸãã ãã®ã¢ãŒããã¯ãã£ã«ã¯ã次ã®ããŒãããŒã«ãå®çŸ©ãããŠããŸãã
- çµäºããŒã ã ãã®ãµã€ãã¯ãè² è·åæ£ããã³çšŒåæéãµãŒãã¹ãå®è¡ããŸããããã«ã¯ãè² è·åæ£ããã³ã¯ã©ã¹ã¿ãŒæ§ç¯ã®ããã®ãœãããŠã§ã¢ãå«ãŸããå ŽåããããŸãã è² è·ã®ãã©ã³ã¹ãåãããã«èšèšããããããã¯ãŒã¯å ã®ããŒããŠã§ã¢ãšãœãããŠã§ã¢ã®è€åäœã¯ããšã³ãããŒããšããŠæ©èœã§ããŸãã åé·æ§ã確ä¿ããããã«ãã¯ã©ã¹ã¿ãŒå ã«å°ãªããšã2ã€ã®ãšã³ãããŒããäœæããããšããå§ãããŸãã
- å¶åŸ¡ããŒã ã ãã®ãµã€ãã¯ããã¥ãŒãµãŒããŒãããŒã¿ããŒã¹ãHorizoâânã³ã³ãããŒã«ããã«ãç£èŠã·ã¹ãã ãªã©ãã¯ã©ãŠãå šäœã®æäœãæäŸããéä¿¡ãµãŒãã¹ããã¹ãããŸãã ãã®ããŒãã§ã¯ãnova-schedulerãµãŒãã¹ãšAPIãµãŒããŒãèªç±ã«é 眮ã§ããŸããè² è·åæ£ã¯ãšã³ãããŒãã«ãã£ãŠå¶åŸ¡ãããŸãã åé·æ§ãæäŸããã«ã¯ãã¯ã©ã¹ã¿ãŒå ã«å°ãªããšã2ã€ã®å¶åŸ¡ããŒããäœæããå¿ èŠããããŸãã 管çããŒããšãšã³ãããŒãã¯åãç©çãµãŒããŒäžã§çµã¿åãããããšãã§ããŸãããnovaãµãŒãã¹ã®æ§æãå€æŽããå¿ èŠããããŸã-ããŒããã©ã³ãµãŒã䜿çšããããŒããããããã転éããå¿ èŠããããŸãã
- èšç®ããŒã ã ãã®ããŒãã¯ããã®ã³ã³ãã¥ãŒãã£ã³ã°ãã¯ãŒã䜿çšãããã€ããŒãã€ã¶ãŒãšä»®æ³ã€ã³ã¹ã¿ã³ã¹ããã¹ãããŸãã ãã«ããã¹ãã¹ããŒã ã䜿çšãããŠããå Žåãã³ã³ãã¥ãŒãã£ã³ã°ããŒãã¯ããã®äžã«ããä»®æ³ã€ã³ã¹ã¿ã³ã¹ã®ãããã¯ãŒã¯ã³ã³ãããŒã©ãŒãšããŠãæ©èœããŸãã
æ§æ管ç
äžèšã®ã¢ãŒããã¯ãã£ãåç©çãµãŒããŒã«å®è£ ããã«ã¯ãç¹å®ã®äžé£ã®æé ãå®è¡ããå¿ èŠããããŸãã ããã€ãã®ã¹ãããã¯éåžžã«è€éã§ãä»ã®ã¹ãããã«ã¯è€æ°ã®ããŒãã®ã»ããã¢ãããå«ãŸããŸãã ããšãã°ãããŒããã©ã³ãµãŒãæ§æããããããŒã¿å€æŽã®è€æ°ã®ãœãŒã¹ã§ã¬ããªã±ãŒã·ã§ã³ãèšå®ãããããŸãã OpenStackãã©ãããã©ãŒã ããããã€ããçŸåšã®ããã»ã¹ã¯è€éã§ãããããå®è£ ãæåãããã«ã¯ããããã®æäœïŒã¹ã¯ãªããïŒã®ã¹ã¯ãªãããèšè¿°ããããšãéèŠã§ãã ããã«ãããæåãªDevstackãCrowbarãªã©ãããã€ãã®ãããžã§ã¯ããåºçŸããŸããã
ã€ã³ã¹ããŒã«ããã»ã¹ã®ç°¡åãªã¹ã¯ãªããèšè¿°ã¯ãå®çšŒåç°å¢ã«OpenStackãœãªã¥ãŒã·ã§ã³ãæ£åžžã«ã€ã³ã¹ããŒã«ããããã¯ã©ã¹ã¿ãŒã®ã¹ã±ãŒã©ããªãã£ãæäŸãããããã«ã¯äžååã§ãã ãŸããã¢ãŒããã¯ãã£ã®å€æŽãã³ã³ããŒãã³ãããŒãžã§ã³ã®ã¢ããã°ã¬ãŒããå¿ èŠãªå Žåã¯ãæ°ããã¹ã¯ãªãããéçºããå¿ èŠããããŸãã ããã¯ãèšå®ãœãããŠã§ã¢ãšãããããã®ã¿ã¹ã¯å°çšã«èšèšãããããŒã«ã䜿çšããŠå®è¡ã§ããŸãã ãããã®äžã§æãæåãªã®ã¯PuppetãšChefã§ããããããã«åºã¥ããŠéçºããã補åããããŸãïŒããšãã°ãäžèšã®Crowbarã¯Chefããšã³ãžã³ãšããŠäœ¿çšããŸãïŒã
OpenStackãããŸããŸãªãããžã§ã¯ãã«ãããã€ããããã«ãPuppetãšChefã®äž¡æ¹ã䜿çšããŸããã åœç¶ãåããã°ã©ã ã«ã¯ç¬èªã®å¶éããããŸãã ç§ãã¡ã®çµéšã§ã¯ãæ§æãœãããŠã§ã¢ãéäžãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãšã³ãžã³ã«ãã£ãŠãµããŒããããŠããå Žåã«æé«ã®çµæãåŸãããã¹ã ãŒãºã§æåããå±éãåŸãããããšã瀺ãããŠããŸãã ããŒããŠã§ã¢ã¬ãã«ã§ç©çãµãŒããŒãã»ããã¢ããããã¢ããªã±ãŒã·ã§ã³ããã³ã€ã³ã¹ããŒã«ã®å質ã確èªããäžé£ã®ãã¹ããšçµã¿åããããšãåºç¯ãªããŒããŠã§ã¢æ§æããã³è«çã¢ãŒããã¯ãã£ã§OpenStackãã©ãããã©ãŒã ãè¿ éã«ã€ã³ã¹ããŒã«ã§ããçµ±åã¢ãããŒããåŸãããŸãã
éçšèªåå
ããŒãã®åœ¹å²ãèæ ®ããæ§æã·ã¹ãã ã§ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãšã³ãžã³ã䜿çšãããšãå±éããã»ã¹ãããªãé«åºŠã«èªååã§ããŸãã ã¹ã±ãŒãªã³ã°ãèªååããããšãã§ããŸãã ããã«ãããOpenStackã®éçšãšä¿å®ã®ã³ã¹ããåæžãããŸãã ã»ãšãã©ã®ææ°ã®ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãšã³ãžã³ã«ã¯ãã¯ã©ã¹ã¿ãŒå šäœãŸãã¯åã ã®éšåã管çããã¿ã¹ã¯ãå®è¡ãããªãã¬ãŒã¿ãŒçšã®ã³ãã³ãã©ã€ã³ã€ã³ã¿ãŒãã§ã€ã¹ãŸãã¯Webã€ã³ã¿ãŒãã§ã€ã¹ãäœæã§ããAPIããããŸãã
ããã«ã€ããŠã¯ã次ã®èšäºã§è©³ãã説æããŸãã