OpenStackãé²åããã³ãã¥ããã£ãå人ããã³äŒæ¥ã¯ã©ã€ã¢ã³ãã®èŠæ±ã«å¿ããŠæ°ããæ©èœãæäŸããã«ã€ããŠãOpenStackãå®è¡ãããµãŒãã¹ãšããŠã®ã€ã³ãã©ã¹ãã©ã¯ãã£ïŒIaaSïŒããæ©æµãåããéèŠãªãµãŒãã¹ã1ã€ãããŸããããã¯ãµãŒãã¹ãšããŠã®ããŒã¿ããŒã¹ïŒdBaaSïŒã§ãã TroveãšåŒã°ããOpenStackãããžã§ã¯ãã®åãçµã¿ã¯ãdBaaSã®éçºãç®çãšããŠããŸãã Troveã«é¢ããã»ãšãã©ã®äŒè©±ã¯ããªãŒãã³ãœãŒã¹MySQLããŒã¿ããŒã¹ãäžå¿ã«å±éããŸãããOracle dB 12cãªã©ã®ä»ã®ãšã³ã¿ãŒãã©ã€ãºã¬ãã«ã®ããŒã¿ããŒã¹ã¯ãå®éã«ã¯Troveã§å®è¡ã§ããŸãããã«ãããã³ã·ãŒãå«ãã
ãµãŒãã¹ãšããŠã®ããŒã¿ããŒã¹ïŒDBaaSïŒ
ããŒã¿ããŒã¹ïŒDBïŒã¯ãäŒæ¥ã«ãšã£ãŠæãéèŠãªãµãŒãã¹ã®1ã€ã§ãã ãã®æ©èœã¯ãããŒã¿ãä¿åããã¢ããªã±ãŒã·ã§ã³ã®ããŒã¿ãæ€çŽ¢ãåæãæœåºã§ããããã«ããããšã§ãã 顧客ã¯ããªã¬ãŒã·ã§ãã«ã¯ã©ãŠãDBMSãšéãªã¬ãŒã·ã§ãã«ã¯ã©ãŠãDBMSã®äž¡æ¹ãæ¡åŒµã§ããå¿ èŠããããŸãã Troveãããžã§ã¯ãã®äž»ãªç®çã¯ãããŒã¿ããŒã¹èªäœã®ç®¡çã«é¢é£ããå°é£ãåé¿ããŠãOpenStackãŠãŒã¶ãŒãããŒã¿ããŒã¹ãç°¡åãã€è¿ éã«ç®¡çã§ããããã«ããããšã§ãã
çŸæç¹ã§ã¯ãTroveã¢ãã«ã¯æ¬¡ã®ããã«ãªã£ãŠããŸãã
Troveãããžã§ã¯ãã®ãã1ã€ã®éèŠãªç®æšã¯ããªãœãŒã¹ã®å²ãåœãŠãšè€éãªæäœã®èªååã§ããããã¯éåžžãã¡ã³ããã³ã¹ãšã³ãžãã¢/ DB管çè ã«ãã£ãŠå®è¡ãããŸãã ãããã«ã¯ãããŒã¿ããŒã¹ã®å±éãä¿®æ£ã®é©çšãããŒã¿ã®ããã¯ã¢ãããšåŸ©å ãããŒã¿ããŒã¹ã®ç£èŠãšæ°ããããŒã¿ããŒã¹ã®èšå®ãå«ãŸããŸãã
ä»æ¥ã®æ
ãããŸã§ãçŸåšã®Troveã¢ã»ã³ããªã«åºã¥ããŠããŒã¿ããŒã¹ã€ã³ã¹ã¿ã³ã¹ãäœæããããã»ã¹ã¯æ¬¡ã®ããã«ãªããŸãã
ããã¯ã以äžã§èª¬æããæé ã«å¯Ÿå¿ããŸãã
æé 1ïŒä»®æ³ããŒã¿ããŒã¹ãäœæããããã®èŠæ±ãéä¿¡ãããŸãã
ã¹ããã2ïŒKeystoneãä»ããèªèšŒèŠæ±ãå®è¡ãããŸãã
ã¹ããã3ïŒTroveã€ã³ã¹ã¿ã³ã¹ãæäŸãããŸãïŒããŒã¿ããŒã¹ãå®è¡ãããæ°ããVMã®äœæã«ãã€ãªãããŸãïŒã
ã¹ããã4ïŒTroveã¯ã以äžãå«ãã€ã³ã¹ã¿ã³ã¹ã®èª¬æãå«ãå¿çãè¿ããŸãã
ã€ã³ã¹ã¿ã³ã¹ã®a.ID
bãããŒã¿ãŠã§ã¢ããŠã¹ã®ã¿ã€ããŸãã¯ããŒãžã§ã³
cãããªã¥ãŒã ãµã€ãº
dãã€ã³ã¹ã¿ã³ã¹ã®IPã¢ãã¬ã¹
eããã®ä»ã®èŠæ±ãŸãã¯å¿ é å€æ°
çŸæç¹ã§ã¯ãOpenStackãã©ãããã©ãŒã ã®DBaaSã®å¶éã¯ããããŸã§Troveãåäžã®ããã³ããæã€ã€ã³ã¹ã¿ã³ã¹ã®ã¿ããµããŒãããŠããããšã§ãã Oracle dB 12cã®æ°æ©èœã®1ã€ã¯ãã«ãããã³ãæ©èœã§ããããã¯ããã ãœã³ãã€ã¿ãŒããã®ä»ã®éèäŒç€Ÿãªã©ã®é¡§å®¢ãçŸåšå®è£ ããŠããéèŠãªæ©èœã§ãã OpenStackãžã®é¢å¿ã®é«ãŸããèæ ®ããŠãéçºéšéã«ãã®æ©èœã®å®è£ ãå«ããããšã¯ãéèã»ã¯ã¿ãŒã®é¡§å®¢ãåŒãä»ããããã«éèŠã§ãã
ãã«ãããã³ã·ãŒãšãããŒã
ãã«ãããã³ãã¢ãŒããã¯ãã£ã«ããããœãããŠã§ã¢ïŒãœãããŠã§ã¢ïŒã®1ã€ã®ã€ã³ã¹ã¿ã³ã¹ãè€æ°ã®ã¯ã©ã€ã¢ã³ãã«ãµãŒãã¹ãæäŸã§ããŸãã ãã®ãããªé¡§å®¢ã¯ããããããã³ããšåŒã°ããŸãã ããã³ãã¯ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã®è²ãªã©ãã¢ããªã±ãŒã·ã§ã³ã®ç¹å®ã®ã³ã³ããŒãã³ããã«ã¹ã¿ãã€ãºã§ããå ŽåããããŸãããã¢ããªã±ãŒã·ã§ã³ã³ãŒããã«ã¹ã¿ãã€ãºããæ©èœã¯ãããŸããã
ãã®å ŽåããœãããŠã§ã¢ã®éçºãšä¿å®ã®ã³ã¹ãã¯ããã³ãéã§å ±æãããããããã«ãããã³ãã¢ãŒããã¯ãã£ã¯çµæžçã§ãã ããã¯ãåã¯ã©ã€ã¢ã³ãããœãããŠã§ã¢ã®ç¬èªã®ã³ããŒãæã¡ãã³ãŒãã«ãã¢ã¯ã»ã¹ã§ããã·ã³ã°ã«ããã³ã·ãŒã¢ãŒããã¯ãã£ãšã¯å¯Ÿç §çã§ãã ãã«ãããã³ãã¢ãŒããã¯ãã£ã§ã¯ããããã€ããŒã¯æŽæ°ã1åè¡ãã ãã§æžã¿ãŸãã ã·ã³ã°ã«ããã³ãã¢ãŒããã¯ãã£ã§ã¯ãæŽæ°ããã°ã©ã ãé©çšããã«ã¯ããããã€ããŒãè€æ°ã®ãœãããŠã§ã¢ã€ã³ã¹ã¿ã³ã¹ã«ãŸãããå¿ èŠããããŸãã
OpenStack Troveã®çŸåšã®Oracleèšç»ïŒ
1.åããã³ãã¯ãããŒã¿ããŒã¹ã®å°çšã³ããŒãåãåããŸã
aãäºåèšå®ãããVMã€ã¡ãŒãžã«åºã¥ã;
bãããã³ãã¯ã1ã€ãŸãã¯è€æ°ã®èšç®ããŒããš1ã€ãŸãã¯è€æ°ã®ããŒãã§ããŒã¿ãä¿åããŸãã
2.ã¯ã©ã€ã¢ã³ãã«ã¯ããµãŒãã¹ãå®å šã«å¶åŸ¡ããæ©èœããããŸãã
3.ããŒã¿ããŒã¹ã¢ããªã±ãŒã·ã§ã³ãããŒã¿ããŒã¹ã¯ãšãªèšèªãæ¥ç¶æ¹æ³ã®ãµããŒããæäŸããå¿ èŠããããŸãã
4.ãªã©ã¯ã«ã¯åããŠãåCPU /ã³ã¢ã®ã©ã€ã»ã³ã¹ã¢ãã«ãå€æŽããæ¯æã®ãµãã¹ã¯ãªãã·ã§ã³ã®äŸ¡æ Œãçºè¡šããŸãã
ãããã®å€æŽãå®è£ ããã«ã¯ãTroveãã¢ãŒããã¯ãã£ããããã«å€æŽããå¿ èŠããããŸãã
ãã®å Žåãã¿ã¹ã¯ãããŒã¯æ¬¡ã®ãšããã§ãã
1.ãŠãŒã¶ãŒãããŒã¿ããŒã¹ã«ãªã¯ãšã¹ããéä¿¡ããŸãïŒãã®äŸã§ã¯ãããŒã¿ãã«ããŒã¿ããŒã¹ïŒPDBïŒã§ãã
2.Keystoneã¯èªèšŒãªã¯ãšã¹ããåãåããŸãã
3. DBã³ã³ãããŒãæäŸãããŸãã
aãã²ã¹ããšãŒãžã§ã³ãã¯Oracleã«PDBã®äœæãèŠæ±ããŸãã
b.Oracleã¯PDBãäœæããŸãã
c.Oracleã¯ãæ¥ç¶å±æ§ãšãšãã«ã²ã¹ããšãŒãžã§ã³ãã«å¿çãéä¿¡ããŸãã
4.æ¥ç¶è³æ Œæ å ±ãå«ãå¿çããŠãŒã¶ãŒã«è¿ãããŸãã
ãããæ©èœãããã«ã¯ãTroveãããžã§ã¯ãã«æ¬¡ã®ã³ã³ããŒãã³ããå¿ èŠã§ãã
a.APIãµãŒããŒïŒAPIãµãŒããŒïŒ-ã²ã¹ããŠãŒã¶ãŒãžã®èŠæ±ãšåŒã³åºããçŽæ¥åä¿¡ããŠãããŒã¿ããŒã¹ãŠãŒã¶ãŒã®ãªã¹ãã®ååŸãªã©ã®éçšã¿ã¹ã¯ã解決ããŸãããã¿ã¹ã¯ãããŒãžã£ãŒã«é Œã£ãŠè€éãªå®æã¿ã¹ã¯ã解決ããŸãã
bãã¡ãã»ãŒãžãã¹-HTTPãªã¯ãšã¹ããä»ããŠãã¿ã¹ã¯ãããŒãžã£ãŒãã²ã¹ããšãŒãžã§ã³ããªã©ã®APIãã€ã³ãéã§ã¡ãã»ãŒãžãã«ãŒãã£ã³ã°ããã¡ãã»ãŒãžã³ã°ãã¥ãŒãããŒã«ãŒã
cãã¿ã¹ã¯ãããŒãžã£ã¯ãã€ã³ã¹ã¿ã³ã¹ã®ããããžã§ãã³ã°ãåã€ã³ã¹ã¿ã³ã¹ã®ã©ã€ããµã€ã¯ã«ã®ç£èŠãä»»æã®ã€ã³ã¹ã¿ã³ã¹ã§ã®æäœã®å®è¡ãæ åœããã·ã¹ãã ã®ãäž»åãã§ãã APIãµãŒããŒãšå¯Ÿè©±ããã¡ãã»ãŒãžãåä¿¡ããŠââè¿ä¿¡ããŸãã OpenStackãµãŒãã¹ã«ã¢ã¯ã»ã¹ããã«ã¯ãã¿ã¹ã¯ãããŒãžã£ãŒãšAPIãµãŒããŒã®äž¡æ¹ãHTTPé¢æ°ãåŒã³åºãå¿ èŠãããããšã«æ³šæããŠãã ããã
dãã²ã¹ããšãŒãžã§ã³ã-ããŒã¿ããŒã¹ãå®è¡ãããããŒã¿ãŠã§ã¢ããŠã¹ã§æäœã管çããã³å®è¡ããã²ã¹ãã€ã³ã¹ã¿ã³ã¹ã§å®è¡ããããµãŒãã¹ã ãªã³ã©ã€ã³ããŒã¿ãŠã§ã¢ããŠã¹ãæäŸããConductorãµãŒãã¹ãä»ããŠããŒãããŒãä¿¡å·ãAPIã«éä¿¡ããŸãã
e.ConductorïŒã³ã³ãã¯ã¿ãŒïŒ-ãã¹ãäžã§å®è¡ãããŠããã²ã¹ããµãŒãã¹ãã²ã¹ãã€ã³ã¹ã¿ã³ã¹ããã¡ãã»ãŒãžãåä¿¡ããŠââããã¹ãäžã®æ å ±ãæŽæ°ããŸãã ããŒã¿ããŒã¹ã®ããã¯ã¢ãããå®è¡ãããšããExplorerã¯æ¬¡ã®ããã«ãã¡ãã»ãŒãžãã¹ãä»ããŠéä¿¡ãããRPCã¡ãã»ãŒãžã䜿çšããŠå¿ èŠãªã¢ã¯ã·ã§ã³ãå®è¡ããŸãã
1.trove-conductorã¯ãšã³ããªãã€ã³ãã§ã
2. /etc/trove/trove-conductor.confã§æ§æãããRpcServiceã¯ãã³ã³ãã¯ã¿ãŒãããŒãžã£ãŒãèšå®ããŸã
3.èŠæ±ã¯ã¡ãã»ãŒãžãã¥ãŒã«ãããŸãã
4.Heartbeatã¯ããã¹ãŠã®ã€ã³ã¹ã¿ã³ã¹ã®ã¹ããŒã¿ã¹ãæŽæ°ããŸãã äž»ã«3ã€ã®ãªãã·ã§ã³ããããŸããæ°èŠããã«ãïŒäœææžã¿ïŒãããã³ã¢ã¯ãã£ãã§ãã ä»ã®ã¹ããŒã¿ã¹ãè¿œå ã§ããŸãã
ãã ããTroveã¯ãã®ãããªæ°ããæ§é ã«å¯Ÿå¿ããæºåãã§ããŠããŸããã
èŠç¹ã§
IcehouseãªãªãŒã¹ã®ã³ãã¥ããã£éçºèšç»ã«ã¯ã次ã®ç¹ãå«ãŸããŠããŸãã
â¢æ¡åŒµæ§ã匷åããã«ãŒãã«ã®äžè¬åã
â¢è€æ°ã®ã³ã¢ãæã€ããŒã¿ããŒã¹ã®ããŒãžã§ã³ç®¡çã®ãµããŒãã
â¢ããããžã§ãã³ã°ãšã¯ã©ã¹ã¿ãŒç®¡çã®ãµããŒãã
â¢å®å šãªã¢ãŒããã¯ãã£ã圢æããããã®æ¡åŒµæ§ïŒã³ã³ãã¯ã¿ãŒããã³ã¹ã±ãžã¥ãŒã©ãŒã³ã³ããŒãã³ãã䜿çšïŒã
â¢Amazonãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãµãŒãã¹ã®ããã©ã¡ãŒã¿ãŒã°ã«ãŒãããªã©ã®æ©èœãµããŒãã
â¢ã¹ã±ãžã¥ãŒã«ãããã¿ã¹ã¯ãèªååããŠå®è¡ããŸãã
â¢æå®/ CeilometerããµããŒãããŸãã
â¢ãã§ãŒã«ãªãŒããŒã®èªååã
â¢ãã³ãã¹ããã¹ãã®ç¯å²ã
çŸåšããã®ãªã¹ãã¯æ¬ èœããŠããŸããããã«ãããã³ã·ãŒãããã¯ãã§ãã ã ã©ãŒããªã©ã®ãµãŒãã¹ã䜿çšããå ŽåïŒãŠãŒã¶ãŒã¯é©åãªããŸããŸãªèšå®ã§å±éããããŒã¿ããŒã¹ãµãŒãã¹ãéžæã§ããŸãïŒãç¹å®ã®ããã³ãã«å²ãåœãŠãå¿ èŠããããªãœãŒã¹ã®éã決å®ããæ©èœã¯ããªãŒã±ã¹ãã¬ãŒã·ã§ã³ããŒã«ãæ倧éã«äœ¿çšãããäŒæ¥ã¯ã©ã€ã¢ã³ãã«ãšã£ãŠé åçã§ãããŒããŠã§ã¢ãšãœãããŠã§ã¢ã®ã³ã³ããŒãã³ãã®ç®¡çãšæäœã®ããã»ã¹ãçµã¿åãããŸãã ããšãã°ãMuranoã¯KeystoneãµãŒãã¹ã䜿çšããŠã¢ã¯ã»ã¹å¶åŸ¡ã匷åããŸããããã«ãããæå®ããããŠãŒã¶ãŒã®ã¿ãžã®ã¢ã¯ã»ã¹ãä¿èšŒãããTroveãã²ã¹ããšãŒãžã§ã³ããšå¯Ÿè©±ã§ãããããããŒã¿ããŒã¹ãè¿ éã«äœæã§ããŸãã
ãããã®æ©èœã¯ãã¹ãŠãšã³ã¿ãŒãã©ã€ãºãŠãŒã¶ãŒã«ãšã£ãŠé åçã§ãããå€ãã®äººã«ãšã£ãŠã¯ããã§ååã§ãã ãã ããäŒæ¥æ©èœã®è¿œå ã¬ãã«ãå¿ èŠãªã客æ§ã®å ŽåãTroveéçºèšç»ã«ã¯ãã®æ¹åãžã®ç§»è¡ãå«ãŸããŠããå¿ èŠããããŸãã
è±èªã®ãªãªãžãã«èšäºã