Openstack ͨ¹ý 3 Äê¶àµÄ·¢Õ¹£¬±äµÃÔ½À´Ô½ÅÓ´ó¡£ÕâÒ²ÊÇΪÁËÂú×ã¸ü¶à²»Í¬µÄÐèÇó£¬ÌåÏÖ³ö¿ªÔ´ÏîÄ¿Áé»î¿ìËÙµÄÌØÐÔ¡£±¾ÎIJ»ÊǹØÓÚ
Openstack ´æ´¢Ïà¹Ø×é¼þµÄÅäÖ㬶øÊǽéÉÜ 0penstack ´æ´¢ÈëÃŵÄһЩ±ØÒªÀíÂÛ֪ʶ¡£
OpenStack ´æ´¢¼¼Êõ
OpenStack ÆäʵÓÐÈý¸öÓë´æ´¢Ïà¹ØµÄ×é¼þ£¬ÕâÈý¸ö×é¼þ±»ÈËÊìÖªµÄ³Ì¶ÈºÍ×é¼þ±¾Éí³öÏÖʱ¼äµÄÔçÍíÊÇÏà·ûµÄ£¬°´ÊìϤ³Ì¶ÈÅÅÁÐÈçÏ£º
Swift¡ªÌṩ¶ÔÏó´æ´¢£¨Object Storage£©£¬ÔÚ¸ÅÄîÉÏÀàËÆÓÚ
Amazon S3 ·þÎñ£¬²»¹ý swift ¾ßÓкÜÇ¿µÄÀ©Õ¹ÐÔ¡¢ÈßÓàºÍ³Ö¾ÃÐÔ£¬Ò²¼æÈÝ S3 API¡£¶ÔÏó´æ´¢Ö§³Ö¶àÖÖÓ¦Ó㬱ÈÈç¸´ÖÆºÍ´æµµÊý¾Ý¡¢Í¼Ïñ»òÊÓÆµ·þÎñ£¬´æ´¢´Î¼¶¾²Ì¬Êý¾Ý£¬¿ª·¢Êý¾Ý´æ´¢ÕûºÏµÄÐÂÓ¦Ó㬴洢ÈÝÁ¿ÄÑÒÔ¹À¼ÆµÄÊý¾Ý£¬Îª
Web Ó¦Óô´½¨»ùÓÚÔÆµÄµ¯ÐÔ´æ´¢¡£
Glance¡ªÌṩÐé»ú¾µÏñ£¨Image£©´æ´¢ºÍ¹ÜÀí£¬ËüÄܹ»ÒÔÈýÖÖÐÎʽ¼ÓÒÔÅäÖãºÀûÓÃ
OpenStack ¶ÔÏó´æ´¢»úÖÆÀ´´æ´¢¾µÏñ£»ÀûÓà Amazon µÄ¼òµ¥´æ´¢½â¾ö·½°¸£¨¼ò³Æ S3£©Ö±½Ó´æ´¢ÐÅÏ¢£»»òÕß½«
S3 ´æ´¢Óë¶ÔÏó´æ´¢½áºÏÆðÀ´£¬×÷Ϊ S3 ·ÃÎʵÄÁ¬½ÓÆ÷¡£OpenStack ¾µÏñ·þÎñÖ§³Ö¶àÖÖÐéÄâ»ú¾µÏñ¸ñʽ£¬°üÀ¨
VMware£¨VMDK£©¡¢Amazon ¾µÏñ£¨AKI¡¢ARI¡¢AMI£©ÒÔ¼° VirtualBox ËùÖ§³ÖµÄ¸÷ÖÖ´ÅÅ̸ñʽ¡£¾µÏñÔªÊý¾ÝµÄÈÝÆ÷¸ñʽ°üÀ¨
Amazon µÄ AKI¡¢ARI ÒÔ¼° AMI ÐÅÏ¢£¬±ê×¼ OVF ¸ñʽÒÔ¼°¶þ½øÖÆ´óÐÍÊý¾Ý¡£
Cinder--Ìṩ¿é´æ´¢£¨Block Storage£©£¬ÀàËÆÓÚ Amazon
µÄ EBS ¿é´æ´¢·þÎñ£¬OpenStack ÖеÄʵÀýÊDz»Äܳ־û¯µÄ£¬ÐèÒª¹ÒÔØ volume£¬ÔÚ volume
ÖÐʵÏֳ־û¯¡£Cinder ¾ÍÊÇÌṩ¶Ô volume ʵ¼ÊÐèÒªµÄ´æ´¢¿éµ¥ÔªµÄʵÏÖ¹ÜÀí¹¦ÄÜ¡£
Amazon Ò»Ö±ÊÇ OpenStack Éè¼ÆÖ®³õµÄ¼ÙÏë¶ÔÊÖºÍÌôÕ½¶ÔÏó£¬ËùÒÔ»ù±¾ÉϹؼüµÄ¹¦ÄÜÄ£¿é¶¼ÓжÔÓ¦ÏîÄ¿¡£³ýÁËÉÏÃæÌáµ½µÄÈý¸ö×é¼þ£¬¶ÔÓÚ
AWS ÖеÄÖØÒªµÄ EC2 ·þÎñ£¬OpenStack ÖÐÊÇ Nova À´¶ÔÓ¦£¬²¢ÇÒ±£³ÖºÍ EC2 API
µÄ¼æÈÝÐÔ£¬Óв»Í¬µÄ·½·¨¿ÉÒÔʵÏÖ¡£
Èý¸ö×é¼þÖУ¬Glance Ö÷ÒªÊÇÐé»ú¾µÏñµÄ¹ÜÀí£¬ËùÒÔÏà¶Ô¼òµ¥£»Swift
×÷Ϊ¶ÔÏó´æ´¢ÒѾºÜ³ÉÊ죬Á¬ CloudStack Ò²Ö§³ÖËü¡£Cinder ÊDZȽÏгöÏÖµÄ¿é´æ´¢£¬Éè¼ÆÀíÄî²»´í£¬²¢ÇÒºÍÉÌÒµ´æ´¢ÓнáºÏµÄ»ú»á£¬ËùÒÔ³§É̱Ƚϻý¼«¡£
´æ´¢ÏîÄ¿ºÍ×é¼þ¶ÔÓ¦¹ØÏµÈçÏÂÃæ±í¸ñ£º
±í 1.¶ÔÓ¦¹ØÏµ

OpenStack ¶ÔÏó´æ´¢¡ªSwift
OpenStack Object Storage£¨Swift£©ÊÇ OpenStack
¿ªÔ´ÔƼÆËãÏîÄ¿µÄ×ÓÏîĿ֮һ,±»³ÆÎª¶ÔÏó´æ´¢£¬ÌṩÁËÇ¿´óµÄÀ©Õ¹ÐÔ¡¢ÈßÓàºÍ³Ö¾ÃÐÔ¡£ Swift ²¢²»ÊÇÎļþϵͳ»òÕßʵʱµÄÊý¾Ý´æ´¢ÏµÍ³£¬Ëü³ÆÎª¶ÔÏó´æ´¢£¬ÓÃÓÚÓÀ¾ÃÀàÐ͵ľ²Ì¬Êý¾ÝµÄ³¤ÆÚ´æ´¢£¬ÕâЩÊý¾Ý¿ÉÒÔ¼ìË÷¡¢µ÷Õû£¬±ØÒªÊ±½øÐиüС£Swift
ǰÉíÊÇ Rackspace Cloud Files ÏîÄ¿£¬Ëæ×Å Rackspace ¼ÓÈëµ½ OpenStack
ÉçÇø£¬ÓÚ 2010 Äê 7 Ô¹±Ï׸ø OpenStack£¬×÷Ϊ¸Ã¿ªÔ´ÏîÄ¿µÄÒ»²¿·Ö¡£Swift ĿǰµÄ×îа汾ÊÇOpenStack
Havana¡£Havana °æ±¾ÖÐ Swift ÐÂÔöÌØÐÔÈçÏ£º
Multiple-Region-Replication£ºÖ§³Ö¶ÔÏóÒìµØ¸´ÖÆÈÝÔÖ¡£
Memcache£ºÔö¼Ó¶ÔÂÖѯ Memcache Á¬½ÓµÄÖ§³Ö¡£
More-Optimization£º²¢·¢ IO Ö§³Ö£¬¶àÍø¶Î·ÖÁ÷Ö§³Ö£¬ÔÚ¶àµØ¸´ÖÆÇé¿öϼÓÇ¿²»Í¬
Proxy-Server µÄÇ׺Ͷȡ£
Swift ÌØÐÔ
ÔÚ OpenStack ¹ÙÍøÖУ¬ÁоÙÁ˺ܶà Swift ÌØÐÔ£¬ÆäÖÐ×îÒýÈ˹Ø×¢µÄÊÇÒÔϼ¸µã¡£
¼«¸ßµÄÊý¾Ý³Ö¾ÃÐÔ
һЩÅóÓѾ³£½«Êý¾Ý³Ö¾ÃÐÔ£¨Durability£©Óëϵͳ¿ÉÓÃÐÔ£¨Availability£©Á½¸ö¸ÅÄî»ìÏý£¬Ç°ÕßÒ²Àí½âΪÊý¾ÝµÄ¿É¿¿ÐÔ£¬ÊÇÖ¸Êý¾Ý´æ´¢µ½ÏµÍ³Öк󣬵½Ä³Ò»ÌìÊý¾Ý¶ªÊ§µÄ¿ÉÄÜÐÔ¡£ÀýÈç
Amazon S3 µÄÊý¾Ý³Ö¾ÃÐÔÊÇ 11 ¸ö 9£¬¼´Èç¹û´æ´¢ 1 Íò£¨4 ¸ö 0£©¸öÎļþµ½ S3 ÖУ¬1
ǧÍò£¨7 ¸ö 0£©ÄêÖ®ºó£¬¿ÉÄܻᶪʧÆäÖÐ 1 ¸öÎļþ¡£ÄÇô Swift ÄÜÌṩ¶àÉÙ¸ö 9 µÄ SLA ÄØ£¿ÏÂÎÄ»á¸ø³ö´ð°¸¡£Õë¶Ô
Swift ÔÚÐÂÀ˲âÊÔ»·¾³ÖеIJ¿Êð£¬ËûÃÇ´ÓÀíÂÛÉϲâËã¹ý£¬Swift ÔÚ 5 ¸ö Zone¡¢5¡Á10 ¸ö´æ´¢½ÚµãµÄ»·¾³Ï£¬Êý¾Ý¸´ÖÆ·ÝÊÇΪ
3£¬Êý¾Ý³Ö¾ÃÐ﵀ SLA ÄÜ´ïµ½ 10 ¸ö 9¡£
ÍêÈ«¶Ô³ÆµÄϵͳ¼Ü¹¹
¡°¶Ô³Æ¡±Òâζ×Å Swift Öи÷½Úµã¿ÉÒÔÍêÈ«¶ÔµÈ£¬Äܼ«´óµØ½µµÍϵͳά»¤³É±¾¡£
ÎÞÏ޵ĿÉÀ©Õ¹ÐÔ
ÕâÀïµÄÀ©Õ¹ÐÔ·ÖÁ½·½Ã棬һÊÇÊý¾Ý´æ´¢ÈÝÁ¿ÎÞÏÞ¿ÉÀ©Õ¹£»¶þÊÇ Swift ÐÔÄÜ£¨Èç
QPS¡¢ÍÌÍÂÁ¿µÈ£©¿ÉÏßÐÔÌáÉý¡£ÒòΪ Swift ÊÇÍêÈ«¶Ô³ÆµÄ¼Ü¹¹£¬À©ÈÝÖ»Ðè¼òµ¥µØÐÂÔö»úÆ÷£¬ÏµÍ³»á×Ô¶¯Íê³ÉÊý¾ÝÇ¨ÒÆµÈ¹¤×÷£¬Ê¹¸÷´æ´¢½ÚµãÖØÐ´ﵽƽºâ״̬¡£
ÎÞµ¥µã¹ÊÕÏ
ÔÚ»¥ÁªÍøÒµÎñ´ó¹æÄ£Ó¦Óõij¡¾°ÖУ¬´æ´¢µÄµ¥µãÒ»Ö±ÊǸöÄÑÌâ¡£ÀýÈçÊý¾Ý¿â£¬Ò»°ãµÄ
HA ·½·¨Ö»ÄÜ×öÖ÷´Ó£¬²¢ÇÒ¡°Ö÷¡±Ò»°ãÖ»ÓÐÒ»¸ö£»»¹ÓÐһЩÆäËû¿ªÔ´´æ´¢ÏµÍ³µÄʵÏÖÖУ¬ÔªÊý¾ÝÐÅÏ¢µÄ´æ´¢Ò»Ö±ÒÔÀ´ÊǸöÍ·Í´µÄµØ·½£¬Ò»°ãÖ»Äܵ¥µã´æ´¢£¬¶øÕâ¸öµ¥µãºÜÈÝÒ׳ÉΪƿ¾±£¬²¢ÇÒÒ»µ©Õâ¸öµã³öÏÖ²îÒ죬ÍùÍùÄÜÓ°Ïìµ½Õû¸ö¼¯Èº£¬µäÐ͵ÄÈç
HDFS¡£¶ø Swift µÄÔªÊý¾Ý´æ´¢ÊÇÍêÈ«¾ùÔÈËæ»ú·Ö²¼µÄ£¬²¢ÇÒÓë¶ÔÏóÎļþ´æ´¢Ò»Ñù£¬ÔªÊý¾ÝÒ²»á´æ´¢¶à·Ý¡£Õû¸ö
Swift ¼¯ÈºÖУ¬Ò²Ã»ÓÐÒ»¸ö½ÇÉ«Êǵ¥µãµÄ£¬²¢ÇÒÔڼܹ¹ºÍÉè¼ÆÉϱ£Ö¤ÎÞµ¥µãÒµÎñÊÇÓÐЧµÄ¡£
¼òµ¥¡¢¿ÉÒÀÀµ
¼òµ¥ÌåÏÖÔڼܹ¹ÓÅÃÀ¡¢´úÂëÕû½à¡¢ÊµÏÖÒ×¶®£¬Ã»ÓÐÓõ½Ò»Ð©¸ßÉîµÄ·Ö²¼Ê½´æ´¢ÀíÂÛ£¬¶øÊǺܼòµ¥µÄÔÔò¡£¿ÉÒÀÀµÊÇÖ¸
Swift ¾²âÊÔ¡¢·ÖÎöÖ®ºó£¬¿ÉÒÔ·ÅÐĴ󵨵ؽ« Swift ÓÃÓÚ×îºËÐĵĴ洢ҵÎñÉÏ£¬¶ø²»Óõ£ÐÄ Swift
ͱ¨×Ó£¬ÒòΪ²»¹Ü³öÏÖÈκÎÎÊÌ⣬¶¼ÄÜͨ¹ýÈÕÖ¾¡¢ÔĶÁ´úÂëѸËÙ½â¾ö¡£
Swift ¼Ü¹¹¸ÅÊö
Swift ArchitecturalÖ÷ÒªÓÐÈý¸ö×é³É²¿·Ö£ºProxy Server¡¢Storage
Server ºÍ Consistency Server¡£Æä¼Ü¹¹Èçͼ 1 Ëùʾ£¬ÆäÖÐ Storage ºÍ
Consistency ·þÎñ¾ùÔÊÐíÔÚ Storage Node ÉÏ¡£Auth ÈÏÖ¤·þÎñĿǰÒÑ´Ó Swift
ÖаþÀë³öÀ´£¬Ê¹Óà OpenStack µÄÈÏÖ¤·þÎñ Keystone£¬Ä¿µÄÔÚÓÚʵÏÖͳһ OpenStack
¸÷¸öÏîÄ¿¼äµÄÈÏÖ¤¹ÜÀí¡£

ͼ 1. Swift ¼Ü¹¹
Ö÷Òª×é¼þ
Proxy Server
Proxy Server ÊÇÌṩ Swift API µÄ·þÎñÆ÷½ø³Ì£¬¸ºÔð
Swift ÆäÓà×é¼þ¼äµÄÏ໥ͨÐÅ¡£¶ÔÓÚÿ¸ö¿Í»§¶ËµÄÇëÇó£¬Ëü½«ÔÚ Ring Öвéѯ Account¡¢Container
»ò Object µÄλÖ㬲¢ÇÒÏàÓ¦µØ×ª·¢ÇëÇó¡£Proxy ÌṩÁË REST API£¬²¢ÇÒ·ûºÏ±ê×¼µÄ HTTP
ÐÒ鹿·¶£¬ÕâʹµÃ¿ª·¢Õß¿ÉÒÔ¿ì½Ý¹¹½¨¶¨ÖÆµÄ Client Óë Swift ½»»¥¡£
Storage Server
Storage Server ÌṩÁË´ÅÅÌÉ豸ÉϵĴ洢·þÎñ¡£ÔÚ Swift
ÖÐÓÐÈýÀà´æ´¢·þÎñÆ÷£ºAccount¡¢Container ºÍ Object¡£ÆäÖÐ Container ·þÎñÆ÷¸ºÔð´¦Àí
Object µÄÁÐ±í£¬Container ·þÎñÆ÷²¢²»ÖªµÀ¶ÔÏó´æ·ÅλÖã¬Ö»ÖªµÀÖ¸¶¨ Container Àï´æµÄÄÄЩ
Object¡£ÕâЩ Object ÐÅÏ¢ÒÔ sqlite Êý¾Ý¿âÎļþµÄÐÎʽ´æ´¢¡£Container ·þÎñÆ÷Ò²×öһЩ¸ú×Ùͳ¼Æ£¬ÀýÈç
Object µÄ×ÜÊý¡¢Container µÄʹÓÃÇé¿ö¡£
Consistency Server
ÔÚ´ÅÅÌÉÏ´æ´¢Êý¾Ý²¢ÏòÍâÌṩ REST API ²¢²»ÊÇÄÑÒÔ½â¾öµÄÎÊÌ⣬×îÖ÷ÒªµÄÎÊÌâÔÚÓÚ¹ÊÕÏ´¦Àí¡£Swift
µÄ Consistency Servers µÄÄ¿µÄÊDzéÕÒ²¢½â¾öÓÉÊý¾ÝË𻵺ÍÓ²¼þ¹ÊÕÏÒýÆðµÄ´íÎó¡£Ö÷Òª´æÔÚÈý¸ö
Server£ºAuditor¡¢Updater ºÍ Replicator¡£ Auditor ÔÚÿ¸ö Swift
·þÎñÆ÷µÄºǫ́³ÖÐøµØÉ¨Ãè´ÅÅÌÀ´¼ì²â¶ÔÏó¡¢Container ºÍÕ˺ŵÄÍêÕûÐÔ¡£Èç¹û·¢ÏÖÊý¾ÝË𻵣¬Auditor
¾Í»á½«¸ÃÎļþÒÆ¶¯µ½¸ôÀëÇøÓò£¬È»ºóÓÉ Replicator ¸ºÔðÓÃÒ»¸öÍêºÃµÄ¿½±´À´Ìæ´ú¸ÃÊý¾Ý¡£Í¼ 2 ¸ø³öÁ˸ôÀë¶ÔÏóµÄ´¦ÀíÁ÷ͼ¡£
ÔÚϵͳ¸ß¸ººÉ»òÕß·¢Éú¹ÊÕϵÄÇé¿öÏ£¬Container »òÕ˺ÅÖеÄÊý¾Ý²»»á±»Á¢¼´¸üС£Èç¹û¸üÐÂʧ°Ü£¬¸Ã´Î¸üÐÂÔÚ±¾µØÎļþϵͳÉϻᱻ¼ÓÈë¶ÓÁУ¬È»ºó
Updaters »á¼ÌÐø´¦ÀíÕâЩʧ°ÜÁ˵ĸüй¤×÷£¬ÆäÖÐÓÉ Account Updater ºÍ Container
Updater ·Ö±ð¸ºÔð Account ºÍ Object ÁбíµÄ¸üС£ Replicator µÄ¹¦ÄÜÊÇ´¦ÀíÊý¾ÝµÄ´æ·ÅλÖÃÊÇ·ñÕýÈ·²¢ÇÒ±£³ÖÊý¾ÝµÄºÏÀí¿½±´Êý£¬ËüµÄÉè¼ÆÄ¿µÄÊÇ
Swift ·þÎñÆ÷ÔÚÃæÁÙÈçÍøÂçÖжϻòÕßÇý¶¯Æ÷¹ÊÕϵÈÁÙʱÐÔ¹ÊÕÏÇé¿öʱ¿ÉÒÔ±£³ÖϵͳµÄÒ»ÖÂÐÔ¡£

ͼ 2. ¸ôÀë¶ÔÏóµÄ´¦ÀíÁ÷
Ring
Ring ÊÇ Swift ×îÖØÒªµÄ×é¼þ£¬ÓÃÓڼǼ´æ´¢¶ÔÏóÓëÎïÀíλÖüäµÄÓ³Éä¹ØÏµ¡£ÔÚÉæ¼°²éѯ
Account¡¢Container¡¢Object ÐÅϢʱ£¬¾ÍÐèÒª²éѯ¼¯ÈºµÄ Ring ÐÅÏ¢¡£ Ring
ʹÓà Zone¡¢Device¡¢Partition ºÍ Replica À´Î¬»¤ÕâЩӳÉäÐÅÏ¢¡£Ring ÖÐÿ¸ö
Partition ÔÚ¼¯ÈºÖж¼£¨Ä¬ÈÏ£©ÓÐ 3 ¸ö Replica¡£Ã¿¸ö Partition µÄλÖÃÓÉ Ring
À´Î¬»¤£¬²¢´æ´¢ÔÚÓ³ÉäÖС£Ring ÎļþÔÚϵͳ³õʼ»¯Ê±´´½¨£¬Ö®ºóÿ´ÎÔö¼õ´æ´¢½Úµãʱ£¬ÐèÒªÖØÐÂÆ½ºâһϠRing
ÎļþÖеÄÏîÄ¿£¬ÒÔ±£Ö¤Ôö¼õ½Úµãʱ£¬ÏµÍ³Òò´Ë¶ø·¢ÉúÇ¨ÒÆµÄÎļþÊýÁ¿×îÉÙ¡£
Ó¦Óó¡¾°
Swift ÌṩµÄ·þÎñÓëAmazon S3Ïàͬ£¬ÊÊÓÃÓÚÐí¶àÓ¦Óó¡¾°¡£
1.ÍøÅÌ
Swift µÄ¶Ô³Æ·Ö²¼Ê½¼Ü¹¹ºÍ¶à proxy ¶à½ÚµãµÄÉè¼Æµ¼ÖÂËü´Ó»ùÒòÀï¾ÍÊʺÏÓÚ¶àÓû§´ó²¢·¢µÄÓ¦ÓÃģʽ£¬×îµäÐ͵ÄÓ¦ÓÃιýÓÚÀàËÆ
Dropbox µÄÍøÅÌÓ¦Óã¬Dropbox È¥Äêµ×ÒÑ¾Í»ÆÆÒ»ÒÚÓû§Êý£¬¶ÔÓÚÕâÖÖ¹æÄ£µÄ·ÃÎÊ£¬Á¼ºÃµÄ¼Ü¹¹Éè¼ÆÊÇÄܹ»Ö§³ÅµÄ¸ù±¾ÔÒò¡£
Swift µÄ¶Ô³Æ¼Ü¹¹Ê¹µÃÊý¾Ý½Úµã´ÓÂß¼ÉÏ¿´´¦ÓÚͬ¼¶±ð£¬Ã¿Ì¨½ÚµãÉÏͬʱ¶¼¾ßÓÐÊý¾ÝºÍÏà¹ØµÄÔªÊý¾Ý¡£²¢ÇÒÔªÊý¾ÝµÄºËÐÄÊý¾Ý½á¹¹Ê¹ÓõÄÊǹþÏ£»·£¬Ò»ÖÂÐÔ¹þÏ£Ëã·¨¶ÔÓÚ½ÚµãµÄÔö¼õ¶¼Ö»ÐèÖØ¶¨Î»»·¿Õ¼äÖеÄһС²¿·ÖÊý¾Ý,¾ßÓнϺõÄÈÝ´íÐԺͿÉÀ©Õ¹ÐÔ¡£ÁíÍâÊý¾ÝÊÇÎÞ״̬µÄ£¬Ã¿¸öÊý¾ÝÔÚ´ÅÅÌÉ϶¼ÊÇÍêÕûµÄ´æ´¢¡£Õ⼸µã×ÛºÏÆðÀ´±£Ö¤ÁË´æ´¢µÄ±¾ÉíµÄÁ¼ºÃµÄÀ©Õ¹ÐÔ¡£
ÁíÍâºÍÓ¦ÓõĽáºÏÉÏ£¬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 µÄ½áºÏ£¬ÇÔÒÔΪÊÇÖµµÃ¹Ø×¢µÄ·½Ïò¡£
OpenStack ¾µÏñ´æ´¢¡ªGlance
Glance ÏîÄ¿ÌṩÐéÄâ»ú¾µÏñµÄ·¢ÏÖ¡¢×¢²á¡¢È¡µÃ·þÎñ¡£Glance Ìṩ
REST API ¿ÉÒÔ²éѯÐéÄâ»ú¾µÏñµÄ metadata£¬²¢ÇÒ¿ÉÒÔ»ñµÃ¾µÏñ¡£
ͨ¹ý Glance£¬ÐéÄâ»ú¾µÏñ¿ÉÒÔ±»´æ´¢µ½¶àÖÖ´æ´¢ÉÏ£¬±ÈÈç¼òµ¥µÄÎļþ´æ´¢»òÕß¶ÔÏó´æ´¢(±ÈÈç
OpenStack ÖÐ swift ÏîÄ¿)£¬Havana °æ±¾ÖÐ Glance ÐÂÔöÌØÐÔÈçÏ£º
Multiple-Image-Location£ºÖ§³Ö¾µÏñ´æ´¢µ½¶àÖÖ²»Í¬ÀàÐ͵Ĵ洢³Ø¡£
More-Drivers£º¼ÓÈëÁË Sheepdog Ö§³Ö£¬²¢ÇÒ Cinder
Ò²¿ÉÒÔ×÷Ϊºó¶Ë´æ´¢Çý¶¯Ö®Ò»¡£
Glance µÄ¼¸¸öÖØÒª¸ÅÄ
1.Image identifiers£ºImage ʹÓà URI ×÷ΪΨһ±êʶ£¬URL
·ûºÏÒÔϸñʽ£º
<Glance Server Location>/images/<ID> |
Glance Server Location ÊǾµÏñµÄËùÔÚλÖã¬ID ÊǾµÏñÔÚ
Glance µÄΨһ±êʶ¡£
2.Image Statuses ¹²ËÄÖÖ״̬¡£
queued ±êʶ¸Ã¾µÏñ ID ÒѾ±»±£Áô£¬µ«ÊǾµÏñ»¹Î´ÉÏ´«¡£ saving ±êʶ¾µÏñÕýÔÚ±»ÉÏ´«¡£ active ±êʶ¾µÏñÔÚ Glance ÖÐÍêÈ«¿ÉÓᣠkilled ±êʶ¾µÏñÉÏ´«¹ý³ÌÖгö´í£¬¾µÏñÍêÈ«²»¿ÉÓᣠ|
3.Disk and Container format
Disk Format£ºraw vhd vmdk vdi iso qcow2
aki ari ami
Container Format: ovf bare aki ari ami
µ± disk format Ϊ aki ari ami ʱ£¬disk format
ºÍ container format Ò»Ö¡£
4.Image Registries
ʹÓà Glance£¬¾µÏñ metadata ¿ÉÒÔ×¢²áÖÁ image registries¡£
ֻҪΪ image metadata ÌṩÁË rest like API£¬ÈκÎ
web ³ÌÐò¿ÉÒÔ×÷Ϊ image registries Óë Glance ¶Ô½Ó¡£
µ±È»£¬Glance Ò²ÌṩÁ˲ο¼ÊµÏÖ¡£
¸ü¶àÐÅÏ¢¿ÉÒԲο¼on Controlling Servers£¬À´×ÔÓÚ Glance
ÌṩµÄ Glance registry server¡£
Glance µÄ¼Ü¹¹£º

ͼ 3. GlanceµÄ¼Ü¹¹
Glance ±»Éè¼ÆÎª¿ÉÒÔʹÓöàÖÖºó¶Ë´æ´¢¡£Ç°¶Ëͨ¹ý API Server
Ïò¶à¸ö Client Ìṩ·þÎñ¡£
Glance ĿǰÌṩµÄ²Î¿¼ÊµÏÖÖÐ Registry Server ½öÊÇʹÓÃ
Sql Êý¾Ý¿â´æ´¢ metadata£¬Glance Ö§³Ö S3¡¢Swift£¬¼òµ¥µÄÎļþ´æ´¢¼°Ö»¶ÁµÄ HTTPS
´æ´¢¡£Ò²Ö§³ÖÆäËûºó¶Ë£¬Èç·Ö²¼Ê½´æ´¢ÏµÍ³£¨SheepDog »ò Ceph£©¡£
OpenStack ¿é´æ´¢¡ªCinder
OpenStack µ½ Folsom °æ±¾ÓбȽϴóµÄ¸Ä±ä£¬ÆäÖÐÖ®Ò»¾ÍÊǽ«Ö®Ç°ÔÚ
Nova ÖеIJ¿·Ö³Ö¾ÃÐÔ¿é´æ´¢¹¦ÄÜ£¨Nova-Volume£©·ÖÀëÁ˳öÀ´£¬¶ÀÁ¢ÎªÐµÄ×é¼þ Cinder¡£Ö÷ÒªºËÐÄÊǶԾíµÄ¹ÜÀí£¬ÔÊÐí¶Ô¾í¡¢¾íµÄÀàÐÍ¡¢¾íµÄ¿ìÕÕ½øÐд¦Àí¡£Ëü²¢Ã»ÓÐʵÏÖ¶Ô¿éÉ豸µÄ¹ÜÀíºÍʵ¼Ê·þÎñ£¬¶øÊÇΪºó¶Ë²»Í¬µÄ´æ´¢½á¹¹ÌṩÁËͳһµÄ½Ó¿Ú£¬²»Í¬µÄ¿éÉ豸·þÎñ³§ÉÌÔÚ
Cinder ÖÐʵÏÖÆäÇý¶¯Ö§³ÖÒÔÓë OpenStack ½øÐÐÕûºÏ¡£ÔÚCinderSupportMatrixÖпÉÒÔ¿´µ½ÖÚ¶à´æ´¢³§ÉÌÈç
NetAPP¡¢IBM¡¢SolidFire¡¢EMC ºÍÖڶ࿪Դ¿é´æ´¢ÏµÍ³¶Ô Cinder µÄÖ§³Ö¡£Havana
°æ±¾ÖÐ Cinder ÐÂÔöÌØÐÔÈçÏ£º
Volume-Resize£ºÔÚ¿ÉÓÃÇé¿öϵ÷Õû¾í´óС¡£
Volume-Backup-To-Ceph£ºÏÖÔÚ¾í¿ÉÒÔ±¸·Ýµ½ Ceph
¼¯ÈºÖС£
Volume-Migration£ºÏÖÔÚ²»Í¬Óû§¼ä¿ÉÒÔ͸Ã÷µØ×ªÒƺͽ»»»¾í¡£
QoS£ºÔö¼ÓÏÞËÙÏà¹ØµÄÔªÐÅÏ¢¹© Nova ºÍÆä Hypervisor ʹÓá£
More-Drivers£º¸ü¶àµÄ´æ´¢³§É̼ÓÈëºÍÍêÉÆÁË×Ô¼ºµÄ Cinder
Çý¶¯£¬Èç Huawei¡¢Vmware¡¢Zadara¡£
Cinder ¼Ü¹¹Í¼

ͼ 4. CinderµÄ¼Ü¹¹
Cinder ·þÎñ
API service£º¸ºÔð½ÓÊܺʹ¦Àí Rest ÇëÇ󣬲¢½«ÇëÇó·ÅÈë RabbitMQ¶ÓÁС£
Scheduler service: ´¦ÀíÈÎÎñ¶ÓÁеÄÈÎÎñ£¬²¢¸ù¾ÝÔ¤¶¨²ßÂÔÑ¡ÔñºÏÊʵÄ
Volume Service ½ÚµãÀ´Ö´ÐÐÈÎÎñ¡£Ä¿Ç°°æ±¾µÄ cinder ½ö½öÌṩÁËÒ»¸ö Simple Scheduler,
¸Ãµ÷¶ÈÆ÷Ñ¡Ôñ¾íÊýÁ¿×îÉÙµÄÒ»¸ö»îÔ¾½ÚµãÀ´´´½¨¾í¡£
Volume service: ¸Ã·þÎñÔËÐÐÔÚ´æ´¢½ÚµãÉÏ£¬¹ÜÀí´æ´¢¿Õ¼ä¡£Ã¿¸ö´æ´¢½Úµã¶¼ÓÐÒ»¸ö
Volume Service£¬Èô¸É¸öÕâÑùµÄ´æ´¢½ÚµãÁªºÏÆðÀ´¿ÉÒÔ¹¹³ÉÒ»¸ö´æ´¢×ÊÔ´³Ø¡£ÎªÁËÖ§³Ö²»Í¬ÀàÐͺÍÐͺŵĴ洢£¬µ±Ç°°æ±¾µÄ
Cinder Ϊ Volume Service Ìí¼ÓÈçÏ drivers¡£µ±È»ÔÚ Cinder µÄ blueprints
µ±Öл¹ÓÐһЩÆäËüµÄ drivers£¬ÒÔºóµÄ°æ±¾¿ÉÄÜ»áÌí¼Ó½øÀ´¡£
±¾µØ´æ´¢£ºLVM(iSCSI), Sheepdog(sheepdog)
ÍøÂç´æ´¢£º NFS, RBD(Ceph)
IBM: Storwize family/SVC (iSCSI/FC)£¬XIV
(iSCSI)£¬GPFS£¬zVM
Netapp: NetApp(iSCSI/NFS)
EMC: VMAX/VNX (iSCSI)£¬Isilon(iSCSI)
Solidfire: Solidfire cluster(iSCSI)
HP:3PAR (iSCSI/FC),LeftHand (iSCSI)
Cinder ÈçºÎÖ§³ÖµäÐÍ´æ´¢
´ÓĿǰµÄʵÏÖÀ´¿´£¬Cinder ¶Ô±¾µØ´æ´¢ºÍ NAS µÄÖ§³Ö±È½Ï²»´í£¬¿ÉÒÔÌṩÍêÕûµÄ
Cinder API V2 Ö§³Ö£¬¶ø¶ÔÓÚÆäËüÀàÐ͵Ĵ洢É豸£¬Cinder µÄÖ§³Ö»á»ò¶à»òÉÙµÄÊܵ½ÏÞÖÆ£¬ÏÂÃæÊÇ
Rackspace ¶ÔÓÚ Private Cloud ´æ´¢¸ø³öµÄµäÐÍÅäÖãº
1.±¾µØ´æ´¢
¶ÔÓÚ±¾µØ´æ´¢£¬cinder-volume ¿ÉÒÔʹÓà LVM Çý¶¯£¬¸ÃÇý¶¯µ±Ç°µÄʵÏÖÐèÒªÔÚÖ÷»úÉÏÊÂÏÈÓÃ
LVM ÃüÁî´´½¨Ò»¸ö cinder-volumes µÄ¾í×é , µ±¸ÃÖ÷»ú½ÓÊܵ½´´½¨¾íÇëÇóµÄʱºò£¬cinder-volume
Ôڸþí×é ÉÏ´´½¨Ò»¸öÂß¼¾í, ²¢ÇÒÓà openiscsi ½«Õâ¸ö¾íµ±×÷Ò»¸ö iscsi tgt ¸øÊä³ö.µ±È»»¹¿ÉÒÔ½«Èô¸ÉÖ÷»úµÄ±¾µØ´æ´¢ÓÃ
sheepdog ÐéÄâ³ÉÒ»¸ö¹²Ïí´æ´¢£¬È»ºóʹÓà sheepdog Çý¶¯¡£
2.EMC

ͼ 5. EMC ¿é´æ´¢¼Ü¹¹
3.Netapp

ͼ 6. Netapp ¿é´æ´¢¼Ü¹¹
HuaWei

ͼ 7. HuaWei ¿é´æ´¢¼Ü¹¹
HuaWei ¿é´æ´¢¼Ü¹¹
´«Í³´æ´¢Óë OpenStack ÔÆ´æ´¢¶Ô±È
±í 2.¶Ô±È

½áÊøÓï
OpenStack ÊÇÉè¼ÆÓÃÀ´¹ÜÀí¹²ÓÐÔÆºÍ˽ÓÐÔÆµÄ¡£ºÜ¶à¹«Ë¾ÈÏΪ OpenStack
ÓÐÏ£ÍûÈÃËûÃÇÄÜÓµÓÐһЩµ¥Ò»×¨ÓÐÔÆµÄ¹¦ÄÜ£¬Ò»Ð©Èç¹È¸è¡¢ÑÇÂíÑ·¼°Î¢Èí¾ÓªµÄÔÆÄÇÑùµÄ¹¦ÄÜ¡£Í¬Ê± OpenStack
ÊÇ»ùÓÚÓÑºÃµÄ Apache 2 ¿ªÔ´ÐÒ飬ÈκÎÈ˶¼ÄܲÎÓëÉè¼ÆºÍ¿ª·¢£¬ÉõÖÁÌá³ö´´Á¢×Ô¼ºµÄÏîÄ¿¡£Ö»Òª¾¹ýÉçÇøÌÖÂÛ£¬²¢´ï³ÉÒ»Ö£¬¾Í¿ÉÒÔ°´ÕÕÄúµÄ±ê×¼¡£¿ªÔ´µÄÁ¦Á¿ÊÇÇ¿´óµÄ£¬Ëæ×ÅÉçÇø°ëÄêÒ»´ÎµÄ·¢²¼£¬Swift©p
Glance ºÍ Cinder ½«»áÔ½À´Ô½ºÃ¡£±¾ÎÄÖ»ÊÇ OpenStack ´æ´¢³õ¼¶ÐÔµÄÒ»´Îµ÷²é±¨¸æ£¬½øÒ»²½ÉîÈë̽Ë÷¿ÉÒԲ鿴²Î¿¼×ÊÁÏÁ˽âÓйØ
OpenStack ´æ´¢µÄ¸ü¶àÏà¹ØÐÅÏ¢¡£
|