Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
OpenStackÊÇʲô£¬OpenStackÏê½â

 
  2061  次浏览      27
 2019-7-18 
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚcsdn,ÎÄÕÂÖ÷Òª½éÉÜÁËÔÆ·þÎñÌṩÉ̵ĸÅÄî¼Ü¹¹£¬OpenStack ComputeÂß¼­¼Ü¹¹£¬¸ÅÄîÓ³É䣬ϵͳ¼Ü¹¹£¬ÎïÀí¼Ü¹¹£¬·þÎñ¼Ü¹¹µÈÏà¹Ø¡£

1. OpenStackÊÇʲô

OpenStack¹Ù·½µÄ½âÊͺܹٷ½£¬¶øÇÒ´Ó²»Í¬½Ç¶È£¬Ò²Óв»Í¬µÄÀí½â£¬OpenStack¿ÉÒÔÀí½âΪһ¸öÔÆ²Ù×÷ϵͳ

OpenStackÆìϰüº¬ÁËÒ»×éÓÉÉçÇøÎ¬»¤µÄ¿ªÔ´ÏîÄ¿£¬ËûÃÇ·Ö±ðÊÇOpenStackCompute(Nova)£¬OpenStackObjectStorage(Swift)£¬ÒÔ¼°OpenStackImageService(Glance)¡£

OpenStackCompute[1]£¬ÎªÔÆ×éÖ¯µÄ¿ØÖÆÆ÷£¬ËüÌṩһ¸ö¹¤¾ßÀ´²¿ÊðÔÆ£¬°üÀ¨ÔËÐÐʵÀý¡¢¹ÜÀíÍøÂçÒÔ¼°¿ØÖÆÓû§ºÍÆäËûÏîÄ¿¶ÔÔÆµÄ·ÃÎÊ(thecloudthroughusersandprojects)¡£Ëüµ×²ãµÄ¿ªÔ´ÏîÄ¿Ãû³ÆÊÇNova£¬ÆäÌṩµÄÈí¼þÄÜ¿ØÖÆIaaSÔÆ¼ÆËãÆ½Ì¨£¬ÀàËÆÓÚAmazonEC2ºÍRackspaceCloudServers¡£Êµ¼ÊÉÏËü¶¨ÒåµÄÊÇ£¬ÓëÔËÐÐÔÚÖ÷»ú²Ù×÷ϵͳÉÏDZÔÚµÄÐéÄ⻯»úÖÆ½»»¥µÄÇý¶¯£¬±©Â¶»ùÓÚWebAPIµÄ¹¦ÄÜ¡£

OpenStackObjectStorage[2]£¬ÊÇÒ»¸ö¿ÉÀ©Õ¹µÄ¶ÔÏó´æ´¢ÏµÍ³¡£¶ÔÏó´æ´¢Ö§³Ö¶àÖÖÓ¦Ó㬱ÈÈç¸´ÖÆºÍ´æµµÊý¾Ý£¬Í¼Ïñ»òÊÓÆµ·þÎñ£¬´æ´¢´Î¼¶¾²Ì¬Êý¾Ý£¬¿ª·¢Êý¾Ý´æ´¢ÕûºÏµÄÐÂÓ¦Ó㬴洢ÈÝÁ¿ÄÑÒÔ¹À¼ÆµÄÊý¾Ý£¬ÎªWebÓ¦Óô´½¨»ùÓÚÔÆµÄµ¯ÐÔ´æ´¢¡£

OpenStackImageService[1]£¬ÊÇÒ»¸öÐéÄâ»ú¾µÏñµÄ´æ´¢¡¢²éѯºÍ¼ìË÷ϵͳ£¬·þÎñ°üÀ¨µÄRESTfulAPIÔÊÐíÓû§Í¨¹ýHTTPÇëÇó²éѯVM¾µÏñÔªÊý¾Ý£¬ÒÔ¼°¼ìË÷ʵ¼ÊµÄ¾µÏñ¡£VM¾µÏñÓÐËÄÖÖÅäÖ÷½Ê½£º¼òµ¥µÄÎļþϵͳ£¬ÀàËÆOpenStackObjectStorageµÄ¶ÔÏó´æ´¢ÏµÍ³£¬Ö±½ÓÓÃAmazon'sSimpleStorageSolution(S3)´æ´¢£¬ÓôøÓÐObjectStoreµÄS3¼ä½Ó·ÃÎÊS3¡£

Èý¸öÏîÄ¿µÄ»ù±¾¹ØÏµÈçÏÂͼ1-1Ëùʾ£º

1-1 OpenStackÈý¸ö×é¼þµÄ¹ØÏµ

2. ÔÆ·þÎñÌṩÉ̵ĸÅÄî¼Ü¹¹

OpenStackÄܰïÎÒÃǽ¨Á¢×Ô¼ºµÄIaaS£¬ÌṩÀàËÆAmazonWebServiceµÄ·þÎñ¸ø¿Í»§¡£ÎªÊµÏÖÕâÒ»µã£¬ÎÒÃÇÐèÒªÌṩ¼¸¸ö¸ß¼¶ÌØÐÔ£º

a)ÔÊÐíÓ¦ÓÃÓµÓÐÕß×¢²áÔÆ·þÎñ£¬²é¿´ÔËÓúͼƷÑÇé¿ö;

b)ÔÊÐíDevelopers/DevOpsfolks´´½¨ºÍ´æ´¢ËûÃÇÓ¦ÓõÄ×Ô¶¨Òå¾µÏñ;

c)ÔÊÐíËûÃÇÆô¶¯¡¢¼à¿ØºÍÖÕֹʵÀý;

d)ÔÊÐíCloudOperatorÅäÖúͲÙ×÷»ù´¡¼Ü¹¹

ÕâËĵ㶼ֱ»÷ÌṩIaaSµÄºËÐÄ£¬ÏÖÔÚ¼ÙÉèÄãͬÒâÁËÕâËĸöÌØÐÔ£¬ÏÖÔھͿÉÒÔ½«ËüÃǷŽøÈçÏÂËùʾµÄ¸ÅÄî¼Ü¹¹2-1ÖС£

2-1 OpenStack ¸ÅÄî¼Ü¹¹

ÔÚ´ËÄ£ÐÍÖУ¬×÷Õß¼ÙÉèÁËÐèÒªÓëÔÆ½»»¥µÄËĸöÓû§¼¯£ºdevelopers,devops,ownersandoperators£¬²¢ÎªÃ¿ÀàÓû§»®·ÖÁËËûÃÇËùÐèÒªµÄ¹¦ÄÜ¡£¸Ã¼Ü¹¹²ÉÓõÄÊǷdz£ÆÕͨµÄ·Ö²ã·½·¨(presentation,logicandresources)£¬Ëü´øÓÐÁ½¸öÕý½»ÇøÓò¡£

չʾ²ã£¬×é¼þÓëÓû§½»»¥£¬½ÓÊܺͳÊÏÖÐÅÏ¢¡£WebportalsΪ·Ç¿ª·¢ÕßÌṩͼÐνçÃæ£¬Îª¿ª·¢ÕßÌṩAPI¶Ëµã¡£Èç¹ûÊǸü¸´ÔӵĽṹ£¬¸ºÔؾùºâ£¬¿ØÖÆ´úÀí£¬°²È«ºÍÃû³Æ·þÎñÒ²¶¼»áÔÚÕâ²ã¡£

Âß¼­²ãÎªÔÆÌṩÂß¼­(intelligence)ºÍ¿ØÖƹ¦ÄÜ¡£Õâ²ã°üÀ¨²¿Êð(¸´ÔÓÈÎÎñµÄ¹¤×÷Á÷)£¬µ÷¶È(×÷Òµµ½×ÊÔ´µÄÓ³Éä)£¬²ßÂÔ(Åä¶îµÈµÈ)£¬¾µÏñ×¢²áimageregistry(ʵÀý¾µÏñµÄÔªÊý¾Ý)£¬ÈÕÖ¾(ʼþºÍ¼ÆÁ¿)¡£

¼ÙÉè¾ø´ó¶àÊý·þÎñÌṩÕßÒѾ­Óпͻ§Éí·ÝºÍ¼Æ·Ñϵͳ¡£ÈκÎÔÆ¼Ü¹¹¶¼ÐèÒªÕûºÏÕâЩϵͳ¡£

ÔÚÈκθ´ÔӵĻ·¾³Ï£¬ÎÒÃǶ¼½«ÐèÒªÒ»¸ömanagement²ãÀ´²Ù×÷Õâ¸ö»·¾³¡£ËüÓ¦¸Ã°üÀ¨Ò»¸öAPI·ÃÎÊÔÆ¹ÜÀíÌØÐÔÒÔ¼°Ò»Ð©¼à¿ØÐÎʽ(forms)¡£ºÜ¿ÉÄÜ£¬¼à¿Ø¹¦Äܽ«ÒÔÕûºÏµÄÐÎʽ¼ÓÈëÒ»¸öÒÑ´æÔڵŤ¾ßÖС£µ±Ç°µÄ¼Ü¹¹ÖÐÒѾ­ÎªÎÒÃÇÐéÄâµÄ·þÎñÌṩÉ̼ÓÈëÁËmonitoringºÍadminAPI£¬ÔÚ¸üÍêÈ«µÄ¼Ü¹¹ÖУ¬Ä㽫¼ûµ½Ò»ÏµÁеÄÖ§³Ö¹¦ÄÜ£¬±ÈÈçprovisioningºÍconfigurationmanagement¡£

×îºó£¬×ÊÔ´²ã¡£¼ÈÈ»ÕâÊÇÒ»¸öcomputeÔÆ£¬ÎÒÃǾÍÐèҪʵ¼ÊµÄcompute¡¢networkºÍstorage×ÊÔ´£¬ÒÔ¹©Ó¦¸øÎÒÃǵĿͻ§¡£¸Ã²ãÌṩÕâЩ·þÎñ£¬ÎÞÂÛËûÃÇÊÇ·þÎñÆ÷£¬ÍøÂç½»»»»ú£¬NAS(networkattachedstorage)»¹ÊÇÆäËûµÄһЩ×ÊÔ´¡£

3. OpenStack Compute¼Ü¹¹

3.1 OpenStack ComputeÂß¼­¼Ü¹¹

OpenStack ComputeÂß¼­¼Ü¹¹ÖУ¬×é¼þÖеľø´ó¶àÊý¿É·ÖΪÁ½ÖÖ×Ô¶¨Òå±àдµÄPythonÊØ»¤½ø³Ì(custom written python daemons)¡£

a) ½ÓÊÕºÍЭµ÷APIµ÷ÓõÄWSGIÓ¦ÓÃ(nova-api, glance-api, etc)

b) Ö´Ðв¿ÊðÈÎÎñµÄWorkerÊØ»¤½ø³Ì(nova-compute, nova-network, nova-schedule, etc.)

È»¶ø£¬Âß¼­¼Ü¹¹ÖÐÓÐÁ½¸öÖØÒªµÄ²¿·Ö£¬¼È²»ÊÇ×Ô¶¨Òå±àд£¬Ò²²»ÊÇ»ùÓÚPython£¬ËüÃÇÊÇÏûÏ¢¶ÓÁкÍÊý¾Ý¿â¡£¶þÕß¼ò»¯Á˸´ÔÓÈÎÎñ(ͨ¹ýÏûÏ¢´«µÝºÍÐÅÏ¢¹²ÏíµÄÈÎÎñ)µÄÒì²½²¿Êð¡£

Âß¼­¼Ü¹¹Í¼3-1ÈçÏÂËùʾ£º

3-1 OpenStack ComputeÂß¼­¼Ü¹¹

´ÓͼÖУ¬ÎÒÃÇ¿ÉÒÔ×ܽá³öÈýµã£º

a) ÖÕ¶ËÓû§(DevOps, Developers ºÍÆäËûµÄ OpenStack ×é¼þ)ͨ¹ýºÍnova-api¶Ô»°À´ÓëOpenStack Compute½»»¥¡£

b) OpenStack ComputeÊØ»¤½ø³ÌÖ®¼äͨ¹ý¶ÓÁÐ(ÐÐΪ)ºÍÊý¾Ý¿â(ÐÅÏ¢)À´½»»»ÐÅÏ¢£¬ÒÔÖ´ÐÐAPIÇëÇó¡£

c) OpenStack Glance»ù±¾ÉÏÊǶÀÁ¢µÄ»ù´¡¼Ü¹¹£¬OpenStack Computeͨ¹ýGlance APIÀ´ºÍËü½»»¥¡£

Æä¸÷¸ö×é¼þµÄÇé¿öÈçÏ£º

a) nova-apiÊØ»¤½ø³ÌÊÇOpenStack ComputeµÄÖÐÐÄ¡£ËüΪËùÓÐAPI²éѯ(OpenStack API »ò EC2 API)Ìṩ¶Ëµã£¬³õʼ»¯¾ø´ó¶àÊý²¿Êð»î¶¯(±ÈÈçÔËÐÐʵÀý)£¬ÒÔ¼°ÊµÊ©Ò»Ð©²ßÂÔ(¾ø´ó¶àÊýµÄÅä¶î¼ì²é)¡£

b) nova-compute½ø³ÌÖ÷ÒªÊÇÒ»¸ö´´½¨ºÍÖÕÖ¹ÐéÄâ»úʵÀýµÄWorkerÊØ»¤½ø³Ì¡£Æä¹ý³ÌÏ൱¸´ÔÓ£¬µ«ÊÇ»ù±¾Ô­ÀíºÜ¼òµ¥£º´Ó¶ÓÁÐÖнÓÊÕÐÐΪ£¬È»ºóÔÚ¸üÐÂÊý¾Ý¿âµÄ״̬ʱ£¬Ö´ÐÐһϵÁеÄϵͳÃüÁîÖ´ÐÐËûÃÇ¡£

c) nova-volume¹ÜÀíÓ³Éäµ½¼ÆËã»úʵÀýµÄ¾íµÄ´´½¨¡¢¸½¼ÓºÍÈ¡Ïû¡£ÕâЩ¾í¿ÉÒÔÀ´×ԺܶàÌṩÉÌ£¬±ÈÈ磬ISCSIºÍAoE¡£

d) Nova-network workerÊØ»¤½ø³ÌÀàËÆÓÚnova-computeºÍnova-volume¡£Ëü´Ó¶ÓÁÐÖнÓÊÕÍøÂçÈÎÎñ£¬È»ºóÖ´ÐÐÈÎÎñÒÔ²Ù¿ØÍøÂ磬±ÈÈç´´½¨bridging interfaces»ò¸Ä±äiptables rules¡£

e) QueueÌṩÖÐÐÄhub£¬ÎªÊØ»¤½ø³Ì´«µÝÏûÏ¢¡£µ±Ç°ÓÃRabbitMQʵÏÖ¡£µ«ÊÇÀíÂÛÉÏÄÜÊÇpython ampqlibÖ§³ÖµÄÈκÎAMPQÏûÏ¢¶ÓÁС£

f) SQL database´æ´¢ÔÆ»ù´¡¼Ü¹¹Öеľø´ó¶àÊý±àÒëʱºÍÔËÐÐʱ״̬¡£Õâ°üÀ¨ÁË¿ÉÓõÄʵÀýÀàÐÍ£¬ÔÚÓõÄʵÀý£¬¿ÉÓõÄÍøÂçºÍÏîÄ¿¡£ÀíÂÛÉÏ£¬OpenStack ComputeÄÜÖ§³ÖSQL-AlchemyÖ§³ÖµÄÈκÎÊý¾Ý¿â£¬µ«Êǵ±Ç°¹ã·ºÊ¹ÓõÄÊý¾Ý¿âÊÇsqlite3(½öÊʺϲâÊԺͿª·¢¹¤×÷)£¬MySQLºÍPostgreSQL¡£

g) OpenStack Glance£¬ÊÇÒ»¸öµ¥¶ÀµÄÏîÄ¿£¬ËüÊÇÒ»¸öcompute¼Ü¹¹ÖпÉÑ¡µÄ²¿·Ö£¬·ÖΪÈý¸ö²¿·Ö£ºglance-api, glance-registry and the image store. ÆäÖУ¬glance-api½ÓÊÜAPIµ÷Óã¬glance-registry¸ºÔð´æ´¢ºÍ¼ìË÷¾µÏñµÄÔªÊý¾Ý£¬Êµ¼ÊµÄImage Blob´æ´¢ÔÚImage StoreÖС£Image Store¿ÉÒÔÊǶàÖÖ²»Í¬µÄObject Store£¬°üÀ¨OpenStack Object Storage (Swift)

h) ×îºó£¬user dashboardÊÇÁíÒ»¸ö¿ÉÑ¡µÄÏîÄ¿¡£OpenStack DashboardÌṩÁËÒ»¸öOpenStack Compute½çÃæÀ´¸øÓ¦Óÿª·¢ÕߺÍdevops staffÀàËÆAPIµÄ¹¦ÄÜ¡£µ±Ç°ËüÊÇ×÷ΪDjango web ApplicationÀ´ÊµÏֵġ£µ±È»£¬Ò²ÓÐÆäËû¿ÉÓõÄWebǰ¶Ë¡£

3.2 ¸ÅÄîÓ³Éä

½«Âß¼­¼Ü¹¹Ó³Éäµ½¸ÅÄî¼Ü¹¹ÖÐ(Èç3-2Ëùʾ)£¬¿ÉÒÔ¿´¼ûÎÒÃÇ»¹È±ÉÙʲô¡£

3-2 Âß¼­¼Ü¹¹µ½¸ÅÄî¼Ü¹¹µÄÓ³Éä

ÕâÖÖ¸²¸Ç·½Ê½²¢²»ÊÇΨһµÄ£¬ÕâÀïµÄÖ»ÊÇ×÷ÕßµÄÀí½â¡£Í¨¹ý¸²¸ÇOpenStack Compute Âß¼­×é¼þ£¬GlanceºÍDashboard£¬À´±íʾ¹¦ÄÜ·¶Î§¡£¶ÔÓÚÿһ¸ö¸²¸Ç£¬¶¼ÓÐÏàÓ¦µÄÌṩ¸Ã¹¦ÄܵÄÂß¼­×é¼þµÄÃû³Æ¡£

a) ÔÚÕâÖÖ¸²¸Ç·¶Î§ÖУ¬×î´óµÄ²î¾àÊÇloggingºÍbilling¡£´Ë¿Ì£¬OpenStack ComputeûÓÐÄÜЭµ÷loggingʼþ¡¢¼Ç¼ÈÕÖ¾ÒÔ¼°´´½¨/³ÊÏÖbillsµÄBilling×é¼þ¡£ÕæÕýµÄ½¹µãÊÇloggingºÍBillingµÄÕûºÏ¡£ÕâÄÜͨ¹ýÒÔÏ·½Ê½À´²¹¾È¡£±ÈÈç´úÂëÀ©³ä£¬ÉÌÒµ²úÆ·»òÕß·þÎñ»òÕß×Ô¶¨ÒåÈÕÖ¾½âÎöµÄÕûºÏ¡£

b) IdentityÒ²ÊÇδÀ´¿ÉÄÜÒª²¹³äµÄÒ»µã¡£

c) customer portalÒ²ÊÇÒ»¸öÕûºÏµã¡£user dashboard(¼ûÔËÐеÄʵÀý£¬Æô¶¯ÐµÄʵÀý)ûÓÐÌṩһ¸ö½çÃæ£¬À´ÔÊÐíÓ¦ÓÃÓµÓÐÕßÇ©Êð·þÎñ£¬¸ú×ÙËüÃǵķÑÓÃÒÔ¼°ÉùÃ÷ÓÐÎÊÌâµÄƱ¾Ý(lodge trouble tickets)¡£¶øÇÒ£¬ÕâºÜ¿ÉÄܶÔÎÒÃÇÉèÏëµÄ·þÎñÌṩÉÌÀ´ËµÊǺÏÊʵġ£

d) ÀíÏëµÄÇé¿öÊÇ£¬Admin API»á¸´ÖÆÎÒÃÇÄÜͨ¹ýÃüÁîÐнӿÚ×öµÄËùÓй¦ÄÜ¡£ÔÚ´øÓÐAdmin API workµÄDiablo ·¢²¼Öлá¸üºÃ¡£

e) ÔÆ¼à¿ØºÍ²Ù×÷½«ÊÇ·þÎñÌṩÉ̹Ø×¢µÄÖØµã¡£ºÃ²Ù×÷·½·¨µÄ¹Ø¼üÊǺõŤ¾ß¡£µ±Ç°£¬OpenStack Compute Ìṩ nova-instancemonitor£¬Ëü¸ú×Ù¼ÆËã½áµãʹÓÃÇé¿ö¡£Î´À´ÎÒÃÇ»¹ÐèÒªÈý·½¹¤¾ßÀ´¼à¿Ø¡£

f) PolicyÊǼ«ÆäÖØÒªµÄ·½Ã棬µ«ÊÇ»áÓ빩ӦÉ̺ÜÏà¹Ø¡£´Óquotasµ½QoS£¬µ½Òþ˽¿ØÖƶ¼ÔÚÆä¹ÜϽÄÚ¡£µ±Ç°Í¼ÉÏÓв¿·Ö¸²¸Ç£¬µ«ÊÇÕâÈ¡¾öÓÚ¹©Ó¦É̵ĸ´ÔÓÐèÇó¡£Îª×¼È·Æð¼û£¬OpenStack Compute ΪʵÀý£¬¸¡µãIPµØÖ·ÒÔ¼°ÔªÊý¾ÝÌṩÅä¶î¡£

g) µ±Ç°£¬OpenStack ComputeÄÚµÄScheduling¶ÔÓÚ´óµÄ°²×°À´ËµÊÇÏ൱³õ²½µÄ¡£µ÷¶ÈÆ÷ÊÇÒÔ²å¼þµÄ·½Ê½Éè¼ÆµÄ£¬Ä¿Ç°Ö§³Öchance(Ëæ»úÖ÷»ú·ÖÅä)£¬simple(×îÉÙ¸ºÔØ)ºÍzone(ÔÚÒ»¸ö¿ÉÓÃÇøÓòÀïµÄËæ»ú½áµã¡£)·Ö²¼Ê½µÄµ÷¶ÈÆ÷ºÍÀí½âÒì¹¹Ö÷»úµÄµ÷¶ÈÆ÷ÕýÔÚ¿ª·¢Ö®ÖС£

ÈçÄãËù¼û£¬OpenStack ComputeΪÎÒÃÇÏëÏóµÄ·þÎñÌṩÉÌ£¬ÌṩÁËÒ»¸ö²»´íµÄ»ù´¡£¬Ö»Òª·þÎñÌṩÉÌÔ¸Òâ×öһЩÕûºÏ¡£

3.3 OpenStack Computeϵͳ¼Ü¹¹

OpenStack ComputeÓÉһЩÖ÷Òª×é¼þ×é³É¡£¡°Cloud controller¡±°üº¬ºÜ¶à×é¼þ£¬Ëü±íʾȫ¾Ö״̬£¬ÒÔ¼°ÓëÆäËû×é¼þ½»»¥¡£Êµ¼ÊÉÏ£¬ËüÌṩµÄÊÇNova-api·þÎñ¡£ËüµÄ¹¦ÄÜÊÇ£ºÎªËùÓÐAPI²éѯÌṩһ¸ö¶Ëµã£¬³õʼ»¯¾ø´ó¶àÊýµÄ²¿Êð»î¶¯£¬ÒÔ¼°ÊµÊ©Ò»Ð©²ßÂÔ¡£API ·þÎñÆ÷Æðcloud controller web Serviceǰ¶ËµÄ×÷Óá£Compute controller Ìṩcompute·þÎñ×ÊÔ´£¬µäÐͰüº¬compute service£¬Object Store component¿ÉÑ¡µØÌṩ´æ´¢·þÎñ¡£Auth managerÌṩÈÏÖ¤ºÍÊÚȨ·þÎñ£¬Volume controllerΪcompute serversÌṩ¿ìËٺͳ־õĿ鼶±ð´æ´¢¡£Network controllerÌṩÐéÄâÍøÂçʹcompute servers±Ë´Ë½»»¥ÒÔ¼°Óë¹«Íø½øÐн»»¥¡£SchedulerÑ¡Ôñ×îºÏÊʵÄcompute controllerÀ´¹ÜÀí(host)Ò»¸öʵÀý¡£

OpenStack Compute½¨Á¢ÔÚÎÞ¹²Ïí¡¢»ùÓÚÏûÏ¢µÄ¼Ü¹¹ÉÏ¡£Cloud controllerͨ¹ýHTTPÓëinternal object store½»»¥£¬Í¨¹ýAMQPºÍscheduler¡¢network controller¡¢ ºÍvolume controller À´½øÐÐͨÐÅ¡£ÎªÁ˱ÜÃâÔڵȴý½ÓÊÕʱ×èÈûÿ¸ö×é¼þ£¬OpenStack ComputeÓÃÒì²½µ÷Óõķ½Ê½¡£

ΪÁË»ñµÃ´øÓÐÒ»¸ö×é¼þ¶à¸ö±¸·ÝµÄÎÞ¹²ÏíÊôÐÔ£¬OpenStack Compute½«ËùÓеÄÔÆÏµÍ³×´Ì¬±£³ÖÔÚ·Ö²¼Ê½µÄÊý¾Ý´æ´¢ÖС£¶Ôϵͳ״̬µÄ¸üлáдµ½Õâ¸ö´æ´¢ÖУ¬±ØÒªÊ±ÓÃÖÊ×ÓÊÂÎñ¡£

¶Ôϵͳ״̬µÄÇëÇó»á´ÓstoreÖжÁ³ö¡£ÔÚÉÙÊýÇé¿öÏ£¬¿ØÖÆÆ÷Ò²»á¶Ìʱ¼ä»º´æ¶ÁÈ¡½á¹û¡£

3.4 OpenStack ComputeÎïÀí¼Ü¹¹

OpenStack Compute²ÉÓÃÎÞ¹²Ïí¡¢»ùÓÚÏûÏ¢µÄ¼Ü¹¹£¬·Ç³£Áé»î£¬ÎÒÃÇÄܰ²×°Ã¿¸önova- serviceÔÚµ¥¶ÀµÄ·þÎñÆ÷ÉÏ£¬ÕâÒâζ×Ű²×°OpenStack ComputeÓжàÖÖ¿ÉÄܵķ½·¨¡£¿ÉÄܶà½áµã²¿ÊðΨһµÄÁªºÏÒÀÀµÐÔ£¬ÊÇDashboard±ØÐë±»°²×°ÔÚnova-api·þÎñÆ÷¡£¼¸ÖÖ²¿Êð¼Ü¹¹ÈçÏ£º

a) µ¥½áµã£ºÒ»Ì¨·þÎñÆ÷ÔËÐÐËùÓеÄnova- services£¬Í¬Ê±Ò²Çý¶¯ÐéÄâʵÀý¡£ÕâÖÖÅäÖÃֻΪ³¢ÊÔOpenStack Compute£¬»òÕßΪÁË¿ª·¢Ä¿µÄ;

b) Ë«½áµã£ºÒ»¸öcloud controller ½áµãÔËÐгýnova-computeÍâµÄËùÓÐnova-services£¬compute½áµãÔËÐÐnova-compute¡£Ò»Ì¨¿Í»§¼ÆËã»úºÜ¿ÉÄÜÐèÒª´ò°ü¾µÏñ£¬ÒÔ¼°ºÍ·þÎñÆ÷½øÐн»»¥£¬µ«ÊDz¢²»ÊDZØÒªµÄ¡£ÕâÖÖÅäÖÃÖ÷ÒªÓÃÓÚ¸ÅÄîºÍ¿ª·¢»·¾³µÄÖ¤Ã÷¡£

c) ¶à½áµã£ºÍ¨¹ý¼òµ¥²¿Êðnova-computeÔÚһ̨¶îÍâµÄ·þÎñÆ÷ÒÔ¼°¿½±´nova.confÎļþµ½Õâ¸öÐÂÔöµÄ½áµã£¬ÄãÄÜÔÚÁ½½áµãµÄ»ù´¡ÉÏ£¬Ìí¼Ó¸ü¶àµÄcompute½áµã£¬Ðγɶà½áµã²¿Êð¡£ÔÚ½ÏΪ¸´ÔӵĶà½áµã²¿ÊðÖУ¬»¹ÄÜÔö¼ÓÒ»¸övolume controller ºÍÒ»¸önetwork controller×÷Ϊ¶îÍâµÄ½áµã¡£¶ÔÓÚÔËÐжà¸öÐèÒª´óÁ¿´¦ÀíÄÜÁ¦µÄÐéÄâ»úʵÀý£¬ÖÁÉÙÊÇ4¸ö½áµãÊÇ×îºÃµÄ¡£

Ò»¸ö¿ÉÄܵÄOpenstack Compute¶à·þÎñÆ÷²¿Êð(¼¯ÈºÖÐÁªÍøµÄÐéÄâ·þÎñÆ÷¿ÉÄÜ»á¸Ä±ä)ÈçÏÂ3-3Ëùʾ£º

3-3 OpenStack ComputeÎïÀí¼Ü¹¹Ò»

Èç¹ûÄã×¢Òâµ½ÏûÏ¢¶ÓÁÐÖдóÁ¿µÄ¸´ÖÆÒý·¢ÁËÐÔÄÜÎÊÌ⣬һÖÖ¿ÉÑ¡µÄ¼Ü¹¹ÊÇÔö¼Ó¸ü¶àµÄMessaging·þÎñÆ÷¡£ÔÚÕâÖÖÇéÐÎÏ£¬³ýÁË¿ÉÒÔÀ©Õ¹Êý¾Ý¿â·þÎñÆ÷Í⣬»¹¿ÉÒÔÔö¼Óһ̨¶îÍâµÄRabbitMQ·þÎñÆ÷¡£²¿ÊðÖпÉÒÔÔÚÈÎÒâ·þÎñÆ÷ÉÏÔËÐÐÈÎÒânova-service£¬Ö»Òªnova.confÖÐÅäÖÃΪָÏòRabbitMQ·þÎñÆ÷£¬²¢ÇÒÕâЩ·þÎñÆ÷ÄÜ·¢ËÍÏûÏ¢µ½Ëü¡£

ÏÂͼ3-4ÊÇÁíÍâÒ»ÖÖ¶à½áµãµÄ²¿Êð¼Ü¹¹¡£

3-4 ¶à½áµãµÄ²¿Êð¼Ü¹¹¶þ

3.5 OpenStack Compute·þÎñ¼Ü¹¹

ÒòΪComputeÓжà¸ö·þÎñ£¬Ò²¿ÉÄÜÓжàÖÖÅäÖã¬ÏÂͼ3-5ÏÔʾÁË×ÜÌåµÄ·þÎñ¼Ü¹¹£¬ÒÔ¼°·þÎñÖ®¼äµÄͨÐÅϵͳ¡£

3-5 OpenStack Compute·þÎñ¼Ü¹¹

4. OpenStack Image Service

OpenStack Image Service°üÀ¨Á½¸öÖ÷ÒªµÄ²¿·Ö£¬·Ö±ðÊÇAPI serverºÍRegistry server(s)¡£

OpenStack Image ServiceµÄÉè¼Æ£¬¾¡¿ÉÄÜÊʺϸ÷ÖÖºó¶Ë²Ö´¢ºÍ×¢²áÊý¾Ý¿â·½°¸¡£API Server(ÔËÐС°glance api¡±³ÌÐò)ÆðͨÐÅhubµÄ×÷ÓᣱÈÈç¸÷ÖÖ¸÷ÑùµÄ¿Í»§³ÌÐò£¬¾µÏñÔªÊý¾ÝµÄ×¢²á£¬Êµ¼Ê°üº¬ÐéÄâ»ú¾µÏñÊý¾ÝµÄ´æ´¢ÏµÍ³£¬¶¼ÊÇͨ¹ýËüÀ´½øÐÐͨÐŵġ£API serverת·¢¿Í»§¶ËµÄÇëÇóµ½¾µÏñÔªÊý¾Ý×¢²á´¦ºÍËüµÄºó¶Ë²Ö´¢¡£OpenStack Image Service¾ÍÊÇͨ¹ýÕâЩ»úÖÆÀ´Êµ¼Ê±£´æ½øÀ´µÄÐéÄâ»ú¾µÏñµÄ¡£

OpenStack Image ServiceÖ§³ÖµÄºó¶Ë²Ö´¢ÓУº

a) OpenStack Object Storage¡£ËüÊÇOpenStackÖи߿ÉÓõĶÔÏó´æ´¢ÏîÄ¿¡£

b) FileSystem¡£OpenStack Image Service´æ´¢ÐéÄâ»ú¾µÏñµÄĬÈϺó¶ËÊǺó¶ËÎļþϵͳ¡£Õâ¸ö¼òµ¥µÄºó¶Ë»á°Ñ¾µÏñÎļþдµ½±¾µØÎļþϵͳ¡£

c) S3¡£¸Ãºó¶ËÔÊÐíOpenStack Image Service´æ´¢ÐéÄâ»ú¾µÏñÔÚAmazon S3·þÎñÖС£

d) HTTP¡£OpenStack Image ServiceÄÜͨ¹ýHTTPÔÚInternetÉ϶ÁÈ¡¿ÉÓõÄÐéÄâ»ú¾µÏñ¡£ÕâÖÖ´æ´¢·½Ê½ÊÇÖ»¶ÁµÄ¡£

OpenStack Image Service registry serversÊÇ×ñÊØOpenStack Image Service Registry APIµÄ·þÎñÆ÷¡£

¸ù¾Ý°²×°ÊֲᣬÕâÁ½¸ö·þÎñ°²×°ÔÚͬһ¸ö·þÎñÆ÷ÉÏ¡£¾µÏñ±¾ÉíÔò¿É´æ´¢ÔÚOpenStack Object Storage£¬ Amazon's S3 infrastructure£¬fileSystem¡£Èç¹ûÄãÖ»ÐèÒªÖ»¶Á·ÃÎÊ£¬¿ÉÒÔ´æ´¢ÔÚһ̨Web·þÎñÆ÷ÉÏ¡£

5. OpenStack Object Storage

5.1 ¹Ø¼ü¸ÅÄî

a) AccountsºÍ Account Servers

OpenStack Object Storageϵͳ±»Éè¼ÆÀ´¹©Ðí¶à²»Í¬µÄ´æ´¢Ïû·ÑÕß»ò¿Í»§Ê¹Óá£Ã¿¸öÓû§±ØÐëͨ¹ýÈÏ֤ϵͳÀ´Ê¶±ð×Ô¼º¡£Îª´Ë£¬OpenStack Object StorageÌṩÁËÒ»¸öÊÚȨϵͳ(swauth)¡£

ÔËÐÐAccount·þÎñµÄ½áµãÓë¸öÌåÕË»§ÊDz»Í¬µÄ¸ÅÄî¡£Account·þÎñÆ÷ÊǴ洢ϵͳµÄ²¿·Ö£¬±ØÐëºÍContainer·þÎñÆ÷ºÍObject·þÎñÆ÷ÅäÖÃÔÚÒ»Æð¡£

b) Authentication ºÍ Access Permissions

Äã±ØÐëͨ¹ýÈÏÖ¤·þÎñÀ´ÈÏÖ¤£¬ÒÔ½ÓÊÕOpenStack Object StorageÁ¬½Ó²ÎÊýºÍÈÏÖ¤ÁîÅÆ¡£ÁîÅÆ±ØÐëΪËùÓкóÃæµÄcontainer/object²Ù×÷¶ø´«µÝ¡£µäÐ͵ģ¬Ìض¨ÓïÑÔµÄAPI´¦ÀíÈÏÖ¤£¬ÁîÅÆ´«µÝºÍHTTPS request/response ͨÐÅ¡£

ͨ¹ýÔËÓÃX-Container-Read: accountnameºÍ X-Container-Write: accountname:username£¬ÄãÄÜΪÓû§»òÕßÕË»§¶Ô¶ÔÏóÖ´ÐзÃÎÊ¿ØÖÆ¡£±ÈÈ磬Õâ¸öÉèÖþÍÔÊÐíÀ´×ÔaccountnameÕË»§µÄµÄÈÎÒâÓû§À´¶Á£¬µ«ÊÇÖ»ÔÊÐíaccountnameÕË»§ÀïµÄÓû§usernameÀ´Ð´¡£ÄãÒ²ÄܸøOpenStack Object StorageÖд洢µÄ¶ÔÏóÊÚÓ蹫¹²·ÃÎʵÄȨÏÞ£¬¶øÇÒ¿ÉÒÔͨ¹ýRefererÍ·²¿×èÖ¹ÏñÈÈÁ´½ÓÕâÖÖ»ùÓÚÕ¾µãµÄÄÚÈݵÁÇÔ£¬À´ÏÞÖÆ¹«¹²·ÃÎÊ¡£¹«¹²µÄcontainerÉèÖñ»ÓÃ×÷·ÃÎÊ¿ØÖÆÁбíÖ®ÉϵÄĬÈÏÊÚȨ¡£±ÈÈ磬X-Container-Read: referer: any Õâ¸öÉèÖã¬ÔÊÐíÈκÎÈËÄÜ´ÓcontainerÖжÁ£¬¶ø²»¹ÜÆäËûµÄÊÚȨÉèÖá£

Ò»°ãÀ´Ëµ£¬Ã¿¸öÓû§ÄÜÍêÈ«·ÃÎÊ×Ô¼ºµÄ´æ´¢ÕË»§¡£Óû§±ØÐëÓÃËûÃǵÄÖ¤ÊéÀ´ÈÏÖ¤£¬Ò»µ©±»ÈÏÖ¤£¬ËûÃǾÍÄÜ´´½¨»òɾ³ýcontainer£¬ÒÔ¼°ÕË»§Ö®ÀàµÄ¶ÔÏó¡£Ò»¸öÓû§ÄÜ·ÃÎÊÁíÒ»¸öÕË»§µÄÄÚÈݵÄΨһ·½Ê½ÊÇ£¬ËûÃÇÏíÓÐÒ»¸öAPI·ÃÎÊkey»òÄãµÄÈÏ֤ϵͳÌṩµÄ»á»°ÁîÅÆ¡£

c) Containers and Objects

Ò»¸öContainerÊÇÒ»¸ö´æ´¢¸ô¼ä£¬ÎªÄãÌṩһÖÖ×éÖ¯ÊôÓÚÊôÓÚÄãµÄÊý¾ÝµÄ·½Ê½¡£Ëü±È½ÏÀàËÆÓÚÎļþ¼Ð»òĿ¼¡£ContainerºÍÆäËûÎļþϵͳ¸ÅÄîµÄÖ÷Òª²îÒìÊÇcontainers²»ÄÜǶÌס£È»¶ø£¬Äã¿ÉÒÔÔÚÄãµÄÕË»§ÄÚ´´½¨ÎÞÊýµÄcontainers¡£µ«ÊÇÄã±ØÐëÔÚÄãµÄÕË»§ÉÏÓÐÒ»¸öcontainer£¬ÒòΪÊý¾Ý±ØÐë´æÔÚContainerÖС£

ContainerÈ¡ÃûÉϵÄÏÞÖÆÊÇ£¬ËüÃDz»Äܰüº¬¡°/¡±£¬¶øÇÒ³¤¶ÈÉÏÉÙÓÚ256×Ö½Ú¡£³¤¶ÈµÄÏÞÖÆÒ²ÊÊÓÃÓÚ¾­¹ýURL±àÂëºóµÄÃû×Ö¡£±ÈÈ磬Course DocsµÄContainerÃû¾­¹ýURL±àÂëºóÊÇ¡°Course%20Docs¡±£¬Òò´Ë´ËʱµÄ³¤¶ÈÊÇ13×Ö½Ú¶ø·Ç11×Ö½Ú¡£

Ò»¸ö¶ÔÏóÊÇ»ù±¾µÄ´æ´¢ÊµÌ壬ºÍ±íʾÄã´æ´¢ÔÚOpenStack Object StorageϵͳÖÐÎļþµÄÈκοÉÑ¡µÄÔªÊý¾Ý¡£µ±ÄãÉÏ´«Êý¾Ýµ½OpenStack Object Storage£¬ËüÔ­Ñù´æ´¢£¬ÓÉÒ»¸öλÖÃ(container)£¬¶ÔÏóÃû£¬ÒÔ¼°key/value¶Ô×é³ÉµÄÈκÎÔªÊý¾Ý¡£±ÈÈ磬Äã¿ÉÑ¡Ôñ´æ´¢ÄãÊý×ÖÕÕÆ¬µÄ¸±±¾£¬°ÑËüÃÇ×é֯Ϊһ¸öÓ°¼¯¡£ÔÚÕâÖÖÇé¿öÏ£¬Ã¿¸ö¶ÔÏó¿ÉÒÔÓÃÔªÊý¾ÝAlbum :

Caribbean Cruise »òAlbum : Aspen Ski TripÀ´±ê¼Ç¡£

¶ÔÏóÃûÉÏΨһµÄÏÞÖÆÊÇ£¬ÔÚ¾­¹ýURL±àÂëºó£¬ËüÃǵij¤¶ÈÒªÉÙÓÚ1024¸ö×Ö½Ú¡£

ÉÏ´«µÄ´æ´¢¶ÔÏóµÄÔÊÐíµÄ×î´ó´óС5GB£¬×îСÊÇ0×Ö½Ú¡£ÄãÄÜÓÃÄÚǶµÄ´ó¶ÔÏóÖ§³ÖºÍSt¹¤¾ßÀ´¼ìË÷5GBÒÔÉϵĶÔÏó¡£¶ÔÓÚÔªÊý¾Ý£¬Ã¿¸ö¶ÔÏó²»Ó¦¸Ã³¬¹ý90¸ökey/value¶Ô£¬ËùÓÐkey/value¶ÔµÄ×Ü×Ö½Ú³¤¶È²»Ó¦¸Ã³¬¹ý4KB¡£

d) Operations

OperationsÊÇÄãÔÚOpenStack Object StorageϵͳÉÏÖ´ÐеÄÐÐΪ£¬±ÈÈç´´½¨»òɾ³ýcontainers£¬ÉÏ´«»òÏÂÔØobjectsµÈµÈ¡£OperationsµÄÍêÈ«Çåµ¥¿ÉÒÔÔÚ¿ª·¢ÎĵµÉÏÕÒµ½¡£OperationsÄÜͨ¹ýReST web service API»òÌØ¶¨ÓïÑÔµÄAPIÀ´Ö´ÐС£ÖµµÃÇ¿µ÷µÄÊÇ£¬ËùÓвÙ×÷±ØÐë°üÀ¨Ò»¸öÀ´×ÔÄãÊÚȨϵͳµÄÓÐЧµÄÊÚȨÁîÅÆ¡£

e) ÌØ¶¨ÓïÑÔµÄAPI°ó¶¨

һЩÁ÷ÐÐÓïÑÔÖ§³ÖµÄAPI °ó¶¨£¬ÔÚRackSpaceÔÆÎļþ²úÆ·ÖÐÊÇ¿ÉÓõġ£ÕâЩ°ó¶¨ÔÚ»ù´¡ReST APIÉÏÌṩÁËÒ»²ã³éÏó£¬ÔÊÐí±ä³ÉÈËÔ±Ö±½ÓÓëcontainerºÍobjectÄ£ÐÍ´ò½»µÀ£¬¶ø²»ÊÇHTTPÇëÇóºÍÏìÓ¦¡£ÕâЩ°ó¶¨¿ÉÃâ·ÑÏÂÔØ£¬Ê¹ÓúÍÐ޸ġ£ËüÃÇ×ñÑ­MITÐí¿ÉЭÒé¡£¶ÔÓÚOpenStack Object Storage£¬µ±Ç°Ö§³ÖµÄAPI°ó¶¨ÊÇ£ºPHP£¬Python£¬Java£¬C#/.NET ºÍRuby¡£

5.2 Object StorageÈçºÎ¹¤×÷

a) Ring

Ring ´ú±í´ÅÅÌÉÏ´æ´¢µÄʵÌåµÄÃû³ÆºÍËüÃǵÄÎïÀíλÖõÄÓ³Éä¡£accounts, containers, and objects¶¼Óе¥¶ÀµÄRing¡£ÆäËû×é¼þÒªÔÚÕâÈýÕßÖ®Ò»½øÐÐÈκβÙ×÷£¬ËûÃǶ¼ÐèÒªºÏÏàÓ¦µÄRing½øÐн»»¥ÒÔÈ·¶¨ËüÔÚ¼¯ÈºÖеÄλÖá£

RingÓÃzones£¬devices£¬partitions£¬ºÍreplicasÀ´Î¬»¤Ó³É䣬ÔÚRingÖеÄÿ¸ö·ÖÇø¶¼»áÔÚ¼¯ÈºÖÐĬÈÏÓÐÈý¸ö¸±±¾¡£·ÖÇøµÄλÖô洢ÔÚRingά»¤µÄÓ³ÉäÖС£RingÒ²¸ºÔðÈ·¶¨Ê§°Ü³¡¾°ÖнÓÌæµÄÉ豸¡£(ÕâµãÀàËÆHDFS¸±±¾µÄ¸´ÖÆ)¡£·ÖÇøµÄ¸±±¾Òª±£Ö¤´æ´¢ÔÚ²»Í¬µÄzone¡£RingµÄ·ÖÇø·Ö²¼ÔÚOpenStack Object Storage installationËùÓÐÉ豸ÖС£·ÖÇøÐèÒªÒÆ¶¯µÄʱºò£¬RingÈ·±£Ò»´ÎÒÆ¶¯×îÉٵķÖÇø£¬Ò»´Î½öÓÐÒ»¸ö·ÖÇøµÄ¸±±¾±»Òƶ¯¡£

È¨ÖØÄÜÓÃÀ´Æ½ºâ·ÖÇøÔÚ´ÅÅÌÇý¶¯Éϵķֲ¼¡£RingÔÚ´úÀí·þÎñÆ÷ºÍһЩ±³¾°½ø³ÌÖÐʹÓá£

b) Proxy Server

´úÀí·þÎñÆ÷¸ºÔð½«OpenStack Object Storage¼Ü¹¹ÖÐÆäËû²¿·Ö½áºÏÔÚÒ»Æð¡£¶ÔÓÚÿ´ÎÇëÇó£¬Ëü¶¼²éѯÔÚRingÖвéѯaccount, container, or objectµÄλÖ㬲¢ÒÔ´Ëת·¢ÇëÇó¡£¹«ÓÐAPIsÒ²ÊÇͨ¹ý´úÀí·þÎñÆ÷À´±©Â¶µÄ¡£

´óÁ¿µÄʧ°ÜÒ²ÊÇÓÉ´úÀí·þÎñÆ÷À´½øÐд¦Àí¡£±ÈÈçÒ»¸ö·þÎñÆ÷²»¿ÉÓã¬Ëü¾Í»áÒªÇóRingÀ´ÎªËüÕÒÏÂÒ»¸ö½ÓÌæµÄ·þÎñÆ÷£¬²¢°ÑÇëÇóת·¢µ½ÄÇÀï¡£

µ±¶ÔÏóÁ÷½ø»òÁ÷³öobject serverʱ£¬ËüÃǶ¼Í¨¹ý´úÀí·þÎñÆ÷À´Á÷¸øÓû§£¬»òÕßͨ¹ýËü´ÓÓû§»ñÈ¡¡£´úÀí·þÎñÆ÷²»»á»º³åËüÃÇ¡£

Proxy·þÎñÆ÷µÄ¹¦ÄÜ¿ÉÒÔ×ܽáΪ£º²éѯλÖ㬴¦Àíʧ°Ü£¬ÖÐת¶ÔÏó¡£

c) Object Server

Object Server£¬ÊǷdz£¼òµ¥µÄblob´æ´¢·þÎñÆ÷£¬ÄÜ´æ´¢¡¢¼ìË÷ºÍɾ³ý±¾µØ´ÅÅÌÉϵĶÔÏó£¬ËüÒÔ¶þ½øÖÆÎļþÐÎʽ´æ·ÅÔÚÎļþϵͳÖУ¬ÔªÊý¾ÝÒÔÎļþµÄÀ©Õ¹ÊôÐÔ´æ·Å¡£

¶ÔÏóÒÔÔ´ÓÚ¶ÔÏóÃûµÄhashºÍ²Ù×÷µÄʱ¼ä´ÁµÄ·¾¶À´´æ·Å¡£ÉÏÒ»´Îд×Ü»á³É¹¦£¬È·±£×îеİ汾½«±»Ê¹Óá£É¾³ýÒ²ÊÓ×÷ÎļþµÄÒ»¸ö°æ±¾£ºÕâÈ·±£É¾³ýµÄÎļþÒ²±»ÕýÈ·¸´ÖÆ£¬¸ü¾ÉµÄ°Ñ±¾²»»áÒòΪʧ°ÜÇéÐÎÀëÆæÏûʧ¡£

d) Container Server

ÆäÖ÷Òª¹¤×÷ÊÇ´¦Àí¶ÔÏóÁÐ±í£¬Ëü²»ÖªµÀ¶ÔÏóÔÚÄÄÀֻÊÇÖªµÀÄÄЩ¶ÔÏóÔÚÒ»¸öÌØ¶¨µÄcontainer¡£ÁÐ±í±»´æ´¢Îªsqlite Êý¾Ý¿âÎļþ£¬ÀàËÆ¶ÔÏóµÄ·½Ê½ÔÚ¼¯ÈºÖи´ÖÆ¡£Ò²½øÐÐÁ˸ú×Ùͳ¼Æ£¬°üÀ¨¶ÔÏóµÄ×ÜÊý£¬ÒÔ¼°containerÖÐʹÓõÄ×Ü´æ´¢Á¿¡£

e) Account Server

ËüÊÇÀàËÆÓÚContainer Server£¬³ýÁËËüÊǸºÔðcontainersµÄÁÐ±í¶ø·Ç¶ÔÏó¡£

f) Replication

Éè¼Æ¸±±¾µÄÄ¿µÄÊÇ£¬ÔÚÃæÁÙÍøÂçÖжϻòÇý¶¯Ê§°ÜµÈÁÙʱ´íÎóÌõ¼þʱ£¬±£³ÖϵͳÔÚÒ»ÖµÄ״̬¡£

¸±±¾½ø³Ì»á±È½Ï±¾µØµÄÊý¾ÝºÍÿ¸öÔ¶´¦µÄ¸±±¾£¬ÒÔÈ·±£ËûÃÇËùÓж¼°üº¬×îеİ汾¡£¶ÔÏ󸱱¾ÓÃÒ»¸öHashÁбíÀ´¿ìËٱȽÏÿ¸ö·ÖÇøµÄƬ¶Î£¬¶øcontaineºÍ account replication ÓõÄÊÇHashºÍ¹²ÏíµÄ¸ßˮӡ½áºÏµÄ·½·¨¡£

¸±±¾µÄ¸üУ¬ÊÇ»ùÓÚÍÆË͵ġ£¶ÔÓÚ¶ÔÏ󸱱¾£¬¸üÐÂÊÇÔ¶³Ìͬ²½Îļþµ½Peer¡£AccountºÍcontainer replicationͨ¹ýHTTP or rsync°ÑÕû¸öÊý¾Ý¿âÎļþÍÆËÍÒÅʧµÄ¼Ç¼¡£

¸±±¾Ò²Í¨¹ýtombstoneÉèÖÃ×îа汾µÄ·½Ê½£¬È·±£Êý¾Ý´ÓϵͳÖÐÇå³ý¡£

g) ¸üÐÂÆ÷(Updaters)

ÓÐʱ£¬container »ò accountÊý¾Ý²»Äܱ»Á¢¼´¸üУ¬Õâͨ³£ÊÇ·¢ÉúÔÚʧ°ÜµÄÇéÐλò¸ß¸ºÔØÊ±ÆÚ¡£Èç¹ûÒ»¸ö¸üÐÂʧ°Ü£¬¸Ã¸üлáÔÚÎļþϵͳÉϱ¾µØÅŶӣ¬¸üÐÂÆ÷½«´¦ÀíÕâЩʧ°ÜµÄ¸üС£Ê¼þÒ»ÖÂÐÔ´°¿Ú(eventual consistency window)×î¿ÉÄÜÀ´Æð×÷ÓᣱÈÈ磬¼ÙÉèÒ»¸öcontainer·þÎñÆ÷Õý´¦ÓÚÔØÈëÖ®ÖУ¬Ò»¸öжÔÏóÕý±»·Å½øÏµÍ³£¬´úÀí·þÎñÆ÷Ò»ÏìÓ¦¿Í»§¶Ë³É¹¦£¬¸Ã¶ÔÏó¾ÍÁ¢¼´¿É¶ÁÁË¡£È»¶ø£¬container·þÎñÆ÷ûÓиüÐÂObjectÁÐ±í£¬ËùÒÔ¸üоͽøÈë¶ÓÁУ¬ÒԵȴýÉÔºóµÄ¸üС£ContainerÁÐ±í£¬Òò´Ë¿ÉÄÜ»¹²»»áÁ¢¼´°üº¬Õâ¸ö¶ÔÏó¡£

ʵ¼ÊÉÏ£¬Ò»ÖÂÐÔ´°¿ÚÖ»ÊÇÓëupdaterÔËÐÐµÄÆµÂÊÒ»Ñù´ó£¬µ±´úÀí·þÎñÆ÷½«×ª·¢Çåµ¥ÇëÇóµ½ÏìÓ¦µÄµÚÒ»¸öcontainer·þÎñÆ÷ÖУ¬Ò²ÐíÉõÖÁ»¹²»»á±»×¢Òâ¡£ÔÚÔØÈë֮ϵķþÎñÆ÷¿ÉÄÜ»¹²»ÊÇ·þÎñºóÐøÇåµ¥ÇëÇóµÄÄǸö¡£ÁíÍâÁ½¸ö¸±±¾ÖеÄÒ»¸ö¿ÉÄÜ´¦ÀíÕâ¸öÇåµ¥¡£

h) Auditors

Auditors»á¼ì²éobjects, containers, ºÍ accountsµÄÍêÕûÐÔ¡£Èç¹û·¢ÏÈË𻵵ÄÎļþ£¬Ëü½«±»¸ôÀ룬ºÃµÄ¸±±¾½«»áÈ¡´úÕâ¸ö»µµÄÎļþ¡£Èç¹û·¢ÏÖÆäËûµÄ´íÎó£¬ËüÃÇ»á¼ÇÈëµ½ÈÕÖ¾ÖС£

5.3 OpenStack Object StorageÎïÀí¼Ü¹¹

Proxy Services Æ«ÏòÓÚCPUºÍnetwork I/O Ãܼ¯ÐÍ£¬¶ø Object Services£¬ Container Services£¬ Account Services Æ«ÏòÓÚdisk and networkI/O Ãܼ¯ÐÍ¡£

¿ÉÒÔÔÚÿһ·þÎñÆ÷Éϰ²×°ËùÓеķþÎñ£¬ÔÚRackspaceÄÚ²¿£¬ ËûÃǽ«Proxy Services·ÅÔÚËûÃÇ×Ô¼ºµÄ·þÎñÆ÷ÉÏ£¬¶øËùÓд洢·þÎñÔò·ÅÔÚͬһ·þÎñÆ÷ÉÏ¡£ÕâÔÊÐíÎÒÃÇ·¢ËÍ10GµÄÍøÂç¸ø´úÀí£¬1G¸ø´æ´¢·þÎñÆ÷£¬´Ó¶ø±£³Ö¶Ô´úÀí·þÎñÆ÷µÄ¸ºÔØÆ½ºâ¸üºÃ¹ÜÀí¡£ÎÒÃÇÄÜͨ¹ýÔö¼Ó¸ü¶à´úÀíÀ´À©Õ¹Õû¸öAPIÍÌÍÂÁ¿¡£Èç¹ûÐèÒª»ñµÃAccount»ò Container Services¸ü´óµÄÍÌÍÂÁ¿£¬ËüÃÇÒ²¿ÉÒÔ²¿Êðµ½×Ô¼ºµÄ·þÎñÆ÷ÉÏ¡£

ÔÚ²¿ÊðOpenStack Object Storageʱ£¬¿ÉÒÔµ¥½áµã°²×°£¬µ«ÊÇËüÖ»ÊÊÓÃÓÚ¿ª·¢ºÍ²âÊÔÄ¿µÄ¡£Ò²¿ÉÒÔ¶à·þÎñÆ÷µÄ°²×°£¬ËüÄÜ»ñµÃ·Ö²¼Ê½¶ÔÏó´æ´¢ÏµÍ³ÐèÒªµÄ¸ß¿ÉÓÃÐÔºÍÈßÓà¡£

ÓÐÕâÑùÒ»¸öÑù±¾²¿Êð¼Ü¹¹£¬Èçͼ5-1Ëùʾ¡£Ò»¸öProxy ½áµã£¬ÔËÐдúÀí·þÎñ£¬Ò»¸öAuth ½áµã£¬ÔËÐÐÈÏÖ¤·þÎñ£¬Îå¸öStorage½áµã£¬ÔËÐÐAccount£¬ContainerºÍObject·þÎñ¡£

5-1 Îå¸öStorage½áµãµÄOpenStack Object StorageÎïÀí¼Ü¹¹

ÒÔÉÏÏ£ÍûÈôó¼Ò¶ÔopenstackÓÐÒ»¶¨Á˽â

 

 

   
2061 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

ÔÆ¼ÆËãµÄ¼Ü¹¹
¶ÔÔÆ¼ÆËã·þÎñÄ£ÐÍ
ÔÆ¼ÆËãºËÐļ¼ÊõÆÊÎö
Á˽âÔÆ¼ÆËãµÄ©¶´
Ïà¹ØÎĵµ

ÔÆ¼ÆËã¼ò½é
ÔÆ¼ÆËã¼ò½éÓëÔÆ°²È«
ÏÂÒ»´úÍøÂç¼ÆËã--ÔÆ¼ÆËã
ÈídzÎöÔÆ¼ÆËã
Ïà¹Ø¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤