±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚ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ÓÐÒ»¶¨Á˽â
|