1.openstack lbass v1 åv2çåºå«
openstack lbass v1 åv2çåºå«
OpenStackå ¶å®æä¸ä¸ªä¸åå¨ç¸å ³çç»ä»¶ï¼è¿ä¸ä¸ªç»ä»¶è¢«äººçç¥çç¨åº¦åç»ä»¶æ¬èº«åºç°æ¶é´çæ©ææ¯ç¸ç¬¦çï¼æçæç¨åº¦æåå¦ä¸ï¼Swiftââæä¾å¯¹è±¡åå¨ï¼ObjectStorageï¼ï¼å¨æ¦å¿µä¸ç±»ä¼¼äºAmazonS3æå¡ï¼ä¸è¿swiftå ·æå¾å¼ºçæ©å±æ§ãåä½åæä¹ æ§ï¼ä¹å ¼å®¹S3APIGlanceââæä¾èæºéåï¼Imageï¼åå¨å管çï¼å æ¬äºå¾å¤ä¸AmazonAMIcatalogç¸ä¼¼çåè½ãï¼Glanceçåå°æ°æ®ä»æåçå®è·µæ¥çæ¯åæ¾å¨Swiftçï¼ãCinderââæä¾ååå¨ï¼BlockStorageï¼ï¼ç±»ä¼¼äºAmazonçEBSååå¨æå¡ï¼ç®åä» ç»èæºæ载使ç¨ãï¼Amazonä¸ç´æ¯OpenStack设计ä¹åçå象对æåææ对象ï¼æ以åºæ¬ä¸å ³é®çåè½æ¨¡åé½æ对åºé¡¹ç®ãé¤äºä¸é¢æå°çä¸ä¸ªç»ä»¶ï¼å¯¹äºAWSä¸çéè¦çEC2æå¡ï¼OpenStackä¸æ¯Novaæ¥å¯¹åºï¼å¹¶ä¸ä¿æåEC2APIçå ¼å®¹æ§ï¼æä¸åçæ¹æ³å¯ä»¥å®ç°ï¼ä¸ä¸ªç»ä»¶ä¸ï¼Glance主è¦æ¯èæºéåç管çï¼æ以ç¸å¯¹ç®åï¼Swiftä½ä¸ºå¯¹è±¡åå¨å·²ç»å¾æçï¼è¿CloudStackä¹æ¯æå®ãCinderæ¯æ¯è¾æ°åºç°çååå¨ï¼è®¾è®¡ç念ä¸éï¼å¹¶ä¸ååä¸åå¨æç»åçæºä¼ï¼æ以ååæ¯è¾ç§¯æãSwiftå ³äºSwiftçæ¶æåé¨ç½²è®¨è®ºï¼é¤äºå®æ¹ç½ç«ï¼ç½ä¸ä¹æå¾å¤æç« ï¼è¿éå°±ä¸éå¤.(ä¹å¯ä»¥åèæä¹åå¨OpenStackä¸å½è¡æ´»å¨ä¸ä¸æµ·ç«æ¼è®²çPPT)ãä»å¼åä¸çï¼æè¿ä¹æ²¡æ太大çç»ææ§è°æ´ï¼æ以ææ³ä¸»è¦è¯´è¯´æ¯è¾éç¨çåºç¨é¢å好äºãä»ææäºè§£çå®é æ¡ä¾æ¥çï¼Swiftåºç°çé¢åæ4个ï¼(åºè¯¥è¿æï¼å¸æ大家çå°å®é ç¨ä¾è½å¤ææ)1.ç½çãSwiftç对称åå¸å¼æ¶æåå¤proxyå¤èç¹ç设计导è´å®ä»åºå éå°±éåäºå¤ç¨æ·å¤§å¹¶åçåºç¨æ¨¡å¼ï¼æå ¸åçåºç¨è«è¿äºç±»ä¼¼Dropboxçç½çåºç¨ï¼Dropboxå»å¹´åºå·²ç»çªç ´ä¸äº¿ç¨æ·æ°ï¼å¯¹äºè¿ç§è§æ¨¡ç访é®ï¼è¯å¥½çæ¶æ设计æ¯è½å¤æ¯æçæ ¹æ¬åå ãSwiftç对称æ¶æ使å¾æ°æ®èç¹ä»é»è¾ä¸çå¤äºå级å«ï¼æ¯å°èç¹ä¸åæ¶é½å ·ææ°æ®åç¸å ³çå æ°æ®ã并ä¸å æ°æ®çæ ¸å¿æ°æ®ç»æ使ç¨çæ¯åå¸ç¯ï¼ä¸è´æ§åå¸ç®æ³å¯¹äºèç¹çå¢åé½åªééå®ä½ç¯ç©ºé´ä¸çä¸å°é¨åæ°æ®,springboot框架源码å ·æè¾å¥½ç容éæ§åå¯æ©å±æ§ãå¦å¤æ°æ®æ¯æ ç¶æçï¼æ¯ä¸ªæ°æ®å¨ç£çä¸é½æ¯å®æ´çåå¨ãè¿å ç¹ç»¼åèµ·æ¥ä¿è¯äºåå¨çæ¬èº«çè¯å¥½çæ©å±æ§ãå¦å¤ååºç¨çç»åä¸ï¼Swiftæ¯è¯´HTTPåè®®è¿ç§è¯è¨çï¼è¿ä½¿å¾åºç¨ååå¨ç交äºåå¾ç®åï¼ä¸éè¦èèåºå±åºç¡ææ¶çç»èï¼åºç¨è½¯ä»¶ä¸éè¦è¿è¡ä»»ä½çä¿®æ¹å°±å¯ä»¥è®©ç³»ç»æ´ä½æ©å±å°é常大çç¨åº¦ã2.IaaSå ¬æäºSwiftå¨è®¾è®¡ä¸ç线æ§æ©å±ï¼é«å¹¶ååå¤ç§æ·æ¯æçç¹æ§ï¼ä½¿å¾å®ä¹é常éåå为IaaSçéæ©ï¼å ¬æäºè§æ¨¡è¾å¤§ï¼çéå°å¤§éèæºå¹¶åå¯å¨è¿ç§æ åµï¼æ以对äºèæºéåçåå°åå¨å ·ä½æ¥è¯´ï¼å®é ä¸çææå¨äºå¤§æ°æ®ï¼è¶ è¿Gï¼ç并å读æ§è½ï¼Swiftå¨OpenStackä¸ä¸å¼å§å°±æ¯ä½ä¸ºéååºçåå°åå¨ï¼ç»è¿RACKSpaceä¸åå°æºå¨çé¨ç½²è§æ¨¡ä¸çæ°å¹´å®è·µï¼Swiftå·²ç»è¢«è¯ææ¯ä¸ä¸ªæççéæ©ãå¦å¤å¦æåºäºIaaSè¦æä¾ä¸å±çSaaSæå¡ï¼å¤ç§æ·æ¯ä¸ä¸ªä¸å¯é¿å çé®é¢ï¼Swiftçæ¶æ设计æ¬èº«å°±æ¯æ¯æå¤ç§æ·çï¼è¿æ ·å¯¹æ¥èµ·æ¥æ´æ¹ä¾¿ã3.å¤ä»½å½æ¡£RackSpaceç主è¥ä¸å¡å°±æ¯æ°æ®çå¤ä»½å½æ¡£ï¼æ以Swiftå¨è¿ä¸ªé¢åä¹æ¯ä¹ ç»èéªï¼åæ¶ä»ä»¬è¿å»¶å±åºä¸ç§æ°ä¸å¡--âçå½æ¡£âãç±äºé¿å°¾æåºï¼æ°æ®å¯è½è¢«è°ç¨çæ¶é´çªè¶æ¥è¶é¿ï¼çå½æ¡£è½å¤ä¿è¯åºç¨å½æ¡£æ°æ®è½å¤å¨åé级å«éæ°è·åï¼åä¼ ç»ç£å¸¦æºå½æ¡£æ¹æ¡ä¸çæ°å°æ¶èè¨ï¼æ¯ä¸ä¸ªå¾å¤§çè¿æ¥ã4.移å¨äºèç½åCDN移å¨äºèç½åææºæ¸¸æç产ç大éçç¨æ·æ°æ®ï¼æ°æ®éä¸æ¯å¾å¤§ä½æ¯ç¨æ·æ°å¾å¤ï¼è¿ä¹æ¯Swiftè½å¤å¤ççé¢åãè³äºå ä¸CDNï¼å¦æ使ç¨Swiftï¼äºåå¨å°±å¯ä»¥ç´æ¥ååºç§»å¨è®¾å¤ï¼ä¸éè¦ä¸é¨çæå¡å¨å»ååºè¿ä¸ªHTTPç请æ±ï¼ä¹ä¸éè¦å¨æ°æ®ä¼ è¾ä¸åç»è¿ç§»å¨è®¾å¤ä¸çæ件系ç»ï¼ç´æ¥æ¯ç¨HTTPåè®®ä¸ä¼ äºç«¯ãå¦ææç»å¸¸è¢«å¹³å°è®¿é®çæ°æ®ç¼åèµ·æ¥ï¼å©ç¨ä¸å®çä¼åæºå¶ï¼æ°æ®å¯ä»¥ä»ä¸åçå°ç¹ååå°ä½ çç¨æ·é£éï¼è¿æ ·å°±è½æé«è®¿é®çé度ï¼ææè¿çå°Swiftçå¼å社åºæ人å¨è®¨è®ºè§é¢ç½ç«åºç¨åSwiftçç»åï¼çªä»¥ä¸ºæ¯å¼å¾å ³æ³¨çæ¹åãGlanceGlanceæ¯è¾ç®åï¼æ¯ä¸ä¸ªèæºéåçåå¨ãåå端novaï¼æè æ¯å®è£ äºGlance-clientçå ¶ä»èæ管çå¹³å°ï¼æä¾éåæå¡ï¼å æ¬åå¨ï¼æ¥è¯¢åæ£ç´¢ãè¿ä¸ªæ¨¡åæ¬èº«ä¸åå¨å¤§éçæ°æ®ï¼éè¦æè½½åå°åå¨ï¼Swiftï¼S3ãããï¼æ¥åæ¾å®é çéåæ°æ®ãGlance主è¦å æ¬ä¸é¢å 个é¨åï¼lAPIserviceï¼glance-api主è¦æ¯ç¨æ¥æ¥åNovaçåç§apiè°ç¨è¯·æ±ï¼å°è¯·æ±æ¾å ¥RBMQ交ç±åå°å¤çï¼ãlGlacne-registryç¨æ¥åMySQLæ°æ®åºè¿è¡äº¤äºï¼åå¨æè è·åéåçå æ°æ®ï¼æ³¨æï¼åæå¨Swiftä¸æå°ï¼Swiftå¨èªå·±çStorageServerä¸æ¯ä¸ä¿åå æ°æ®çï¼è¿å¿çå æ°æ®æ¯æä¿åå¨MySQLæ°æ®åºä¸çå ³äºéåçä¸äºä¿¡æ¯ï¼è¿ä¸ªå æ°æ®æ¯å±äºGlanceçãlImagestoreï¼åå°åå¨æ¥å£ï¼éè¿å®è·åéåï¼åå°æè½½çé»è®¤åå¨æ¯Swiftï¼ä½åæ¶ä¹æ¯æAmazonS3çå ¶ä»çéåãGlanceä»æç§è§åº¦ä¸çèµ·æ¥æç¹åèæåå¨ï¼ä¹æä¾APIï¼å¯ä»¥å®ç°æ¯è¾å®æ´çéå管çåè½ãæ以ç论ä¸å ¶ä»äºå¹³å°ä¹å¯ä»¥ä½¿ç¨å®ãGlanceæ¯è¾ç®åï¼åéäºäºå é¨ï¼æ以没å¥å¯ä»¥å¤è®¨è®ºçï¼ä¸å¦ççæ°åºæ¥çååå¨ç»ä»¶Cinderï¼ç®åæ对Cinderåºæ¬ççæ³æ¯æ»ä½ç设计ä¸éï¼ç»èååè½è¿æå¾å¤éè¦å®åçå°æ¹ï¼ç¦»ä¸ä¸ªæçç产åè¿æç¹è·ç¦»ãCinderOpenStackå°Fçæ¬ææ¯è¾å¤§çæ¹åï¼å ¶ä¸ä¹ä¸å°±æ¯å°ä¹åå¨Novaä¸çé¨åæä¹ æ§ååå¨åè½ï¼Nova-Volumeï¼å离äºåºæ¥ï¼ç¬ç«ä¸ºæ°çç»ä»¶Cinderãå®éè¿æ´åå端å¤ç§åå¨ï¼ç¨APIæ¥å£ä¸ºå¤çæä¾ååå¨æå¡ï¼ä¸»è¦æ ¸å¿æ¯å¯¹å·ç管çï¼å 许对å·ï¼å·çç±»åï¼å·çå¿«ç §è¿è¡å¤çãCinderå å«ä»¥ä¸ä¸ä¸ªä¸»è¦ç»æé¨åAPIserviceï¼Cinder-apiæ¯ä¸»è¦æå¡æ¥å£,è´è´£æ¥ååå¤çå¤ççAPI请æ±ï¼å¹¶å°è¯·æ±æ¾å ¥RabbitMQéåï¼äº¤ç±å端æ§è¡ãCinderç®åæä¾VolumeAPIV2Schedulerservice:å¤çä»»å¡éåçä»»å¡ï¼å¹¶æ ¹æ®é¢å®çç¥éæ©åéçVolumeServiceèç¹æ¥æ§è¡ä»»å¡ãç®åçæ¬çcinderä» ä» æä¾äºä¸ä¸ªSimpleScheduler,该è°åº¦å¨éæ©å·æ°éæå°çä¸ä¸ªæ´»è·èç¹æ¥å建å·ãVolumeservice:该æå¡è¿è¡å¨åå¨èç¹ä¸ï¼ç®¡çåå¨ç©ºé´ï¼å¡å¤çcinderæ°æ®åºçç»´æ¤ç¶æç读å请æ±ï¼éè¿æ¶æ¯éååç´æ¥å¨ååå¨è®¾å¤æ软件ä¸ä¸å ¶ä»è¿ç¨äº¤äºãæ¯ä¸ªåå¨èç¹é½æä¸ä¸ªVolumeServiceï¼è¥å¹²ä¸ªè¿æ ·çåå¨èç¹èåèµ·æ¥å¯ä»¥ææä¸ä¸ªåå¨èµæºæ± ãCinderéè¿æ·»å ä¸åååçæå®driversæ¥ä¸ºäºæ¯æä¸åç±»åååå·çåå¨ãç®åè½æ¯æçåä¸åå¨è®¾å¤æEMCåIBMçå 款ï¼ä¹è½éè¿LVMæ¯ææ¬å°åå¨åNFSåè®®æ¯æNASåå¨ï¼æ以NetappçNASåºè¯¥ä¹æ²¡é®é¢ï¼å¥½åå为ä¹å¨åªåä¸ãæå段æ¶é´è¿å¨Cinderçblueprintsçå°IBMçGPFSåå¸å¼æ件系ç»ï¼å¨ä»¥åççæ¬åºè¯¥ä¼æ·»å è¿æ¥å°ç®å为æ¢ï¼Cinder主è¦åOpenstackçNovaå é¨äº¤äºï¼ä¸ºä¹æä¾èæºå®ä¾æéè¦çå·Attachä¸å»ï¼ä½æ¯ç论ä¸ä¹å¯ä»¥åç¬åå¤çæä¾ååå¨ãé¨ç½²ä¸ï¼å¯ä»¥æä¸ä¸ªæå¡é¨ç½²å¨ä¸å°æå¡å¨ï¼ä¹å¯ä»¥ç¬ç«é¨ç½²å°ä¸åç©çèç¹ç°å¨Cinderè¿æ¯ä¸å¤æçï¼æå 个ææ¾çé®é¢è¿æ²¡å¾å¥½è§£å³ï¼ä¸æ¯æ¯æçåä¸åå¨è¿ä¸å¤å¤ï¼èä¸è¿ä¸æ¯æFCSANï¼å¦å¤åç¹æ ééæ£æ²¡è§£å³ï¼å é¨çscheduleè°åº¦ç®æ³ä¹å¤ªç®åãå¦å¤ç±äºå®æåç§åå¨æ´åè¿æ¥åå äºä¸å±ï¼ç®¡çåæ¯ææ³äºï¼ä½æ¯æçè¯å®æ¯æå½±åï¼æ§è½è¯å®ææèï¼ä½è¿ä¹æ¯æ²¡æ³çäºäºãOpenstackéè¿ä¸¤å¹´å¤åå±ï¼åå¾è¶æ¥è¶åºå¤§ãç®åå åå¨å°±åºç°äºä¸ç§ï¼å¯¹è±¡åå¨ãéååå¨åååå¨ãè¿ä¹æ¯ä¸ºäºæ»¡è¶³ä¸åçéæ±ï¼ä½ç°åºå¼æºé¡¹ç®çµæ´»å¿«éçç¹æ§ãæ»ç说æ¥ï¼å½éæ©ä¸å¥åå¨ç³»ç»çæ¶åï¼å¦æèèå°å°æ¥ä¼è¢«å¤ä¸ªåºç¨æå ±å使ç¨ï¼åºè¯¥è§ä¸ºé¿æçå³çãOpenstackä½ä¸ºä¸ä¸ªå¼æ¾çç³»ç»ï¼æ主è¦æ¯è§£å³è½¯ç¡¬ä»¶ä¾åºåéå®çé®é¢ï¼å¯ä»¥éæ¶éæ©æ°ç硬件ä¾åºåï¼å°æ°ç硬件åå·²æç硬件ç»ææ··åçé群ï¼ç»ä¸ç®¡çï¼å½ç¶ä¹å¯ä»¥æ¿æ¢è½¯ä»¶ææ¯æå¡çæä¾åï¼ä¸ç¨å¨åºç¨ãè¿æ¯å¼æºæ¬èº«çä¼å¿ï¼