Upgrade to Pro — share decks privately, control downloads, hide ads and more …

murakumo cloud controller

shin5ok
August 01, 2012

murakumo cloud controller

My original prototype for cloud virtual machines orchestrator.
https://github.com/shin5ok/murakumo
https://github.com/shin5ok/murakumo_node

The orchestrator based on this has been still running as common IaaS platform in a cloud provider.
It has been stable working for around five years.

shin5ok

August 01, 2012
Tweet

More Decks by shin5ok

Other Decks in Technology

Transcript

  1. .ZSFRVJSFNFOUT "TB4ZTUFN0QFSBUPS ɾ8FDBOEPBMMPQFSBUJPOXJUI$-* $PNNBOE-JOF  ɾ0QFSBUJPOT $POpHVSBUJPOTTIPVMECFBVUPNBUJPOBTNVDI BTQPTTJCMF 5IFSFJTOPUXSPOHTUBUVTCFUXFFOBDUVBMTZTUFNBOENBOBHFNFOUEBUBCBTFT "VUPDPOpHVSBUJPO

    "VUPSPMMCBDLJGJUIBTFSSPS ɾ5IF%FTJHOTIPVMECF4JNQMF  TP0QFSBUJPONFNCFSTDBOVOEFSTUBOETZTUFNTUSVDUVSF 0UIFSGFBUVSF MJLF)" JTBTFYUSBGVODUJPO ZPVDBODSFBUFUIFN XJUIBQJUIBUQSPWJEFEGSPNNVSBLVNP
  2. 5FDIOJDBM4QFDJpDBUJPO $POUSPMMFS NVSBLVNP /PEF NVSBLVNP@OPEF -BOH 1FSM -BOH.PEVMFT $BUBMZTUɺ%#*Y$MBTTɺ -PH-PH1FSMɺ%BUB66*%FUD

    $BUBMZTUɺ4ZT7JSUɺ 1BSBMMFM1SFGPSLFUD 8FC4FSWFS /HJOYɺ4UBSNBO )5514FSWFS14(* +PC2VFVF  5IF4DIXBSU[ %BUBCBTF .Z42-ʙ 42-JUF GPS+PCʣ 3FRVJSFQBDLBHF ʢGPS3FE)BUʣ QZUIPOWJSUJOTU -JCWJSUɺMJCHVFTUGTɺ 1PTUpY GPSBQJSFUSZRVFVFʣ 7FSJpFE04 3FE)BU-JOVY $FOU04ɺ4DJFOUJpD-JOVY
  3. 'FBUVSFPGTZTUFNTUSVDUVSF ɾ5IJO$POUSPMMFS 3JDI"HFOU "VUPOPNPVTMZXPSLJOHOPEFBHFOU+PC2VFVFQSPDFTTJOHIFBWZXPSLTBTZODISPOPVTMZ "VUPEFUFDUBOEDPOpHVSFUIFSFRVJSFTUPSBHF OFUXPSL 7-"/#SJEHF DPOpHVSBUJPOT )BSEUPCFNJTNBUDI7JSUVBM.BDIJOF`TTUBUVTBOENBOBHFNFOUEBUBJOEBUBCBTF ɾ-PPTFDPVQMFDPNQPOFOU

    *GTPNFDPNQPOFOUJTTUPQQJOH JUEPFTOPUB⒎FDU7JSUVBM.BDIJOFT $POUSPMMFSBOEOPEFDPNNVOJDBUFFBDIPUIFSXJUIXFCBQJPO)551  TPUIFZBSFTUBUFMFTT TPUIFZBSFTUSPOHUPGBJMVSF %POPUVTF-JCWJSUBTNVDIBTQPTTJCMF CFDBVTFJU`TOPUTJNQMFUPVTFDPNQMFUFMZ ɾ4JNQMFTFUVQ NVSBLVNPTFUVQUBLFTKVTUBCPVUNJOVUFT ɾ&BTZ.BJOUFOBODF ɾ"WBJMBCMFZPVSLOPXIPXUPTDBMFVQTDBMFPVU :PVDBOVTFZPVS8&# %#LOPXIPXUPFYUFOEZPVSDMPVETZTUFN
  4. NVSBLVNP$PNQPOFOU3FMBUJPOTIJQ api client (cli / web browser) node node job

    api storage agent MTA node api NPEFM $POUSPMMFS /PEF 4UPSBHF DB IUUQIUUQT IUUQIUUQT IUUQIUUQT IUUQIUUQT libvirtd
  5. ɾ7JSUVBM.BDIJOF0QFSBUJPOXJUI8FC"1* ɾ$SFBUF7JSUVBM.BDIJOF ɾ.PEJGZTUSVDUVSF7JSUVBM.BDIJOF  $16NFNPSZBTTJHO .VMUJEJTL PO.VMUJTUPSBHF ɺ.VMUJOFUXPSL 7-"/ 

    $IBOHJOHJTPPOMJOF .VMUJ*1BTTJHO 4VQQPSUQBSBWJSUVBM WJSUJP NPEF  4VQQPSU#SJEHFUZQF7JSUVBM.BDIJOF $IBOHJOHEJTLDBDIFNPEFBUCPPUJOH ɾ$MPOF7JSUVBM.BDIJOF "VUP$POpHVSBUJPOGPSOFUXPSLBOEIPTUOBNFPO-JOVY XJUIMJCHVFTUGT  ɾ#PPU4UPQ'PSDFTUPQ7JSUVBM.BDIJOF ɾ-JWF.JHSBUJPO ɾ)" FYQFSJNFOUBM  ɾ3FTPVSDF.BOBHFNFOUQFS1SPKFDU BOE"MMCZ4VQFS6TFS ɾ 7JSUVBM.BDIJOFTIBSF5FNQMBUF ɾ:PVDBOTFUVQTPNF7JSUVBM.BDIJOFGPSUFNQMBUF BOETIBSFUIFN NVSBLVNPGVODUJPO
  6. ɾ.BOBHFNFOU/PEFT 1IZTJDBM)PTUT TUBUVT SFTPVSDF "VUPTFMFDUOPEFTUIBUCPPU7JSUVBM.BDIJOF UIFZBSFTFMFDUFEXJUI FWFSZSFTPVSDFQBSBNFUFST ɾ.VMUJOFUXPSL 7-"/ .BOBHFNFOU*1BEESFTT

    BTTJHONFOU ɾ$PNCJOF.VMUJTUPSBHF 'PSFYBNQMF pSTUEJTLJONBJOTUPSBHF TFDPOEBSZEJTLJOCBDLVQTUPSBHF ɾ4UPSBHF"HFOUGPSqFYJCMFNBOBHFNFOU "VUPTFMFDUTUPSBHFBTTJHONFOUXJUITUPSBHFMPBE JPXBJU BWBJMBCMFDBQBDJUZ ɾ'BTU$MPOJOH ɾ$POpHGPSCJEEFO"1* NVSBLVNPGVODUJPO
  7. ɾNVSBLVNP$-* TVCDPNNBOE BQPJOUPG ɾ4VCDPNNBOEFYBNQMF ɾ(FUMJTUPGEFpOFE7JSUVBM.BDIJOFT NVSBLVNPWQTEFpOFMJTU ɾ$MPOFB7JSUVBM.BDIJOF "VUPDPOpHVSFOFUXPSL  NVSBLVNPWQTUFNQMBUFDMPOF=

    VVJEECBFGEECECDDBCF= OBNFNBJMTFSWFSWMBOJETFUOFUXPSLFUIBTTJHOJQ ɾ.PEJGZ7JSUVBM.BDIJOFTUSVDUVSF DQVOVNCFSUP NFNPSZBTTJHOUP(#  NVSBLVNPWQTEFpOFNPEJGZ= VVJEEBFCGCBC= DQVOVNCFSNFNPSZ ɾ-JWF.JHSBUJPOB7JSUVBM.BDIJOF NVSBLVNPWQTNJHSBUJPOVVJEEBFCGCBC= ETUOPEFOPEF ɾ(FUMJTUPGJOTUBODFTPOBMMQSPKFDUTʢ3FRVJSF4VQFS6TFS  NVSBLVNPWQTMJTUBMM NVSBLVNPGVODUJPO
  8. "1*FYBNQMF-JTUPGEFpOFE7JSUVBM.BDIJOFT 3FRVFTU(&5 IUUQT"1*@)0451035130+&$5@*%WQTEFpOFMJTU LFZ"1*@,&: \ BVUIFE  JT@BENJO  EBUB<

    \ VQEBUF@UJNF  NFNPSZ  SFHJTU@UJNF  DQV@OVNCFS  OBNFDFOUPTNJOJNVN  UBH  VVJEGBBEECFBBB ^    লུ   \ VQEBUF@UJNF  NFNPSZ  SFHJTU@UJNF  DQV@OVNCFS  OBNFOBU  UBH  VVJEFBBEFGFCBFFB ^ >  UBH  QSPKFDU@JE$0..0/  NFTTBHF  SFTVMU ^ 3FTQPOTFCPEZ
  9. 3FRVFTU1045 IUUQT"1*@)0451035130+&$5@*%WQTEFpOFDMPOF5&.1-"5&@66*% LFZ"1*@,&: 3FRVFTUCPEZ \ TFU@OFUXPSLFUI  OBNFDMPOFWQT  BTTJHO@JQ

     WMBO@JE ^ 3FTQPOTFCPEZ \ KPC@VVJEFECFEFBFCDFB  VVJEGBBEECFBBB  OPEFNVSBLVNPOPEF  NFTTBHF  BVUIFE  JT@BENJO  QSPKFDU@JE$0..0/  SFTVMU ^ 1SPDFTTJOHBTBTZODKPC ZPVDBOBTL"1*UIFSFTVMUXJUIKPC@VVJE https:/ /github.com/shin5ok/murakumo/wiki/api%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88 "1*%PDTʢVOEFSUIFDPOTUSVDUJPOʣ "1*FYBNQMF$MPOFB7JSUVBM.BDIJOF
  10. NVSBLVNPTZTUFNSFRVJSFNFOUT ɾ$POUSPMMFS "1* TFSWFSUPJOTUBMMNVSBLVNP )BWJOHPOFPSNPSF/*$ "TDPOUSPMMFSWJSUVBM4FSWFSJTBMTPPL CVUOPUVOEFSNVSBLVNPNBOBHFNFOU ɾ/PEFUPJOTUBMMNVSBLVNP@OPEF 1IZTJDBMTFSWFSXJUIWJSUVBMJ[BUJPOTVQQPSUDQV )BWJOHUXPPSNPSF/*$

     3FDPNNFOE NPSFUIBO(CQTTVQQPSUGPSTUPSBHFOFUXPSL ɾ4UPSBHF /'4TVQQPSUTUPSBHFʢ.VMUJ4UPSBHFBWBJMBCMFBUUIFTBNFUJNFʣ *GZPVXBOUUPVTF4UPSBHF"HFOU :PVIBWFUPCVJMETUPSBHFXJUI-JOVY PSPUIFS6OJY  ɾ/FUXPSL4XJUDIɿGPS(MPCBM1SJWBUFOFUXPSL 7-"/TVQQPSUFE ɾ/FUXPSL4XJUDIGPSNBOBHFNFOU DPNNPO-TXJUDI
  11. 4FSWJDF/FUXPSL4XJUDI 7-"/TVQQPSU NVSBLVNP $POUSPMMFS NVSBLVNP@OPEF NVSBLVNP@OPEF /'4 4UPSBHF 4UPSBHF4XJUDI .BOBHFNFOU/FUXPSL4XJUDI

    WQT WQT WQT WQT WQT WQT WQT WQT (MPCBM (MPCBM NVSBLVNPHFOFSBMDPOpHVSBUJPO 4UPSBHF .BOBHFNFOU 4UPSBHF4XJUDI
  12. 4FSWJDF/FUXPSL4XJUDI 1SJWBUF/FUXPSL4XJUDI .BOBHFNFOU/FUXPSL4XJUDI NVSBLVNPFYUFOEFEDPOpHVSBUJPO 4FSWJDF/FUXPSL4XJUDI %# %# $POUSPMMF S 4UPSBH

    F
 .BOBH FNFOU 4UPSBH F
 .BOBH FNFOU 4UPSBHF 4UPSBHF ospf WSSQ $POUSPMMF S /PEF4FSWFS(SPVQT 4UPSBHF/FUXPSL4XJUDI 3FQMJDBUJPO WJQ 3FEVOEBOUXJUI