OpenStackÊÇÒ»¸ö¿ªÔ´µÄIaaSʵÏÖ£¬Ä¿Ç°ÔÚÆóÒµµÃµ½Ô½À´Ô½¶àµÄÓ¦Ó㬱¾ÎÄ·ÖÏíÁËÍøÒ×¹«Ë¾ÀûÓà OpenStack¿ª·¢µÄÒ»Ì×ÔÆ¼ÆËã¹ÜÀíÆ½Ì¨µÄʵս¾Ñé£¬ÍøÒ×˽ÓÐÔÆÆ½Ì¨ÍŶÓÏ£Íûͨ¹ý±¾Îĺ͹ã´óµÄ OpenStackʹÓÃÕß½øÐÐÒ»¸ö½»Á÷¡£
OpenStack×Ô 2010 ÄêÏîÄ¿³ÉÁ¢ÒÔÀ´£¬ÒѾÓг¬¹ý 200 ¸ö¹«Ë¾¼ÓÈëÁË OpenStack ÏîÄ¿£¬Ä¿Ç°²ÎÓë OpenStack ÏîÄ¿µÄ¿ª·¢ÈËÔ±ÓÐ 17,000+£¬¶øÇÒÕâЩÊý×Ö»¹ÔÚÔö¼Ó£¬×÷Ϊһ¸ö¿ªÔ´µÄIaaSʵÏÖ£¬Ä¿Ç°ÔÚÆóÒµµÄÓ¦ÓÃÔ½À´Ô½ÆÕ±é£¬ÍøÒ×¹«Ë¾Ë½ÓÐÔÆÍŶӷÖÏíÁËËûÃÇÔÚ»ùÓÚOpenStack ¿ª·¢µÄÒ»Ì×ÔÆ¼ÆËã¹ÜÀíÆ½Ì¨µÄʵս¾Ñ飬ÆÚ´ýºÍ¹ã´óµÄOpenStack ʹÓÃÕß½øÐн»Á÷¡£
ÒÔÏÂΪÔÎÄ£º
±¾ÎÄΪÄú½éÉÜÁËÍøÒ×¹«Ë¾»ùÓÚ OpenStack ¿ª·¢µÄÒ»Ì×ÔÆ¼ÆËã¹ÜÀíÆ½Ì¨£¬ÒÔ¼°ÔÚ¿ª·¢¡¢ÔËÓª¡¢Î¬»¤¹ý³ÌÖÐÓöµ½µÄÎÊÌâºÍ¾Ñé·ÖÏí¡£ÍøÒ××÷Ϊ´óÐÍ»¥ÁªÍø¹«Ë¾£¬IT »ù´¡¼Ü¹¹ÐèÒªÖ§³Å°üÀ¨Éú²ú¡¢¿ª·¢¡¢²âÊÔ¡¢¹ÜÀíµÈ¶à·½ÃæµÄÐèÒª£¬¶øÇÒÐèÇóºÍÇëÇóµÄ±ä»¯¼¸ºõÿÌì¶¼´æÔÚ£¬Õâ¾ÍÐèÒªÄÚ²¿µÄ IT »ù´¡¼Ü¹¹Äܹ»×ã¹»Áé»îºÍ½¡×³À´Âú×ã¸÷²¿ÃźÍÍŶӵÄʵ¼ÊÐèÒª¡£ÍøÒ×˽ÓÐÔÆÆ½Ì¨ÍŶÓҲϣÍûͨ¹ý±¾Îĺ͹ã´óµÄ OpenStack ʹÓÃÕß½øÐÐÒ»¸ö½»Á÷£¬·ÖÏíËûÃÇÔÚʵ¼ÊÏîÄ¿ÖÐÊÕ»ñµÄ³É¹û¡£
OpenStack ¼ò½é
OpenStack ÊÇÒ»¸ö¿ªÔ´µÄ IaaS ʵÏÖ£¬ËüÓÉһЩÏ໥¹ØÁªµÄ×ÓÏîÄ¿×é³É£¬Ö÷Òª°üÀ¨¼ÆËã¡¢´æ´¢¡¢ÍøÂç¡£ÓÉÓÚÒÔ Apache ÐÒé·¢²¼£¬×Ô 2010 ÄêÏîÄ¿³ÉÁ¢ÒÔÀ´£¬³¬¹ý 200 ¸ö¹«Ë¾¼ÓÈëÁË OpenStack ÏîÄ¿£¬ÆäÖаüÀ¨ AT&T¡¢AMD¡¢Cisco¡¢Dell¡¢IBM¡¢Intel¡¢Red Hat µÈ¡£Ä¿Ç°²ÎÓë OpenStack ÏîÄ¿µÄ¿ª·¢ÈËÔ±ÓÐ 17,000+£¬À´×Ô 139 ¸ö¹ú¼Ò£¬ÕâÒ»Êý×Ö»¹ÔÚ²»¶ÏÔö³¤ÖС£
OpenStack ¼æÈÝÒ»²¿·Ö AWS ½Ó¿Ú£¬Í¬Ê±ÎªÁËÌṩ¸üÇ¿´óµÄ¹¦ÄÜ£¬Ò²Ìṩ OpenStack ·ç¸ñµÄ½Ó¿Ú£¨RESTFul API£©¡£ºÍÆäËû¿ªÔ´ IaaS Ïà±È£¬¼Ü¹¹ÉÏËÉñîºÏ¡¢¸ß¿ÉÀ©Õ¹¡¢·Ö²¼Ê½¡¢´¿ Python ʵÏÖ£¬ÒÔ¼°ÓѺûîÔ¾µÄÉçÇøÊ¹Æä´óÊÜ»¶Ó£¬Ã¿°ëÄêÒ»´ÎµÄ¿ª·¢·å»áÒ²ÎüÒýÁËÀ´×ÔÈ«ÊÀ½çµÄ¿ª·¢Õß¡¢¹©Ó¦É̺Ϳͻ§¡£
OpenStack µÄÖ÷Òª×ÓÏîÄ¿ÓУº
ÍøÒ×˽ÓÐÔÆÊ¹ÓÃÁË Nova¡¢Glance¡¢Keystone¡¢Neutron Õâ 4 ¸ö×é¼þ¡£
Compute£¨Nova£©Ìṩ¼ÆËãÐéÄ⻯·þÎñ£¬ÊÇ OpenStack µÄºËÐÄ£¬¸ºÔð¹ÜÀíºÍ´´½¨ÐéÄâ»ú¡£Ëü±»Éè¼Æ³É·½±ãÀ©Õ¹£¬Ö§³Ö¶àÖÖÐéÄ⻯¼¼Êõ£¬²¢ÇÒ¿ÉÒÔ²¿ÊðÔÚ±ê×¼Ó²¼þÉÏ¡£
Object Storage£¨Swift£©Ìṩ¶ÔÏó´æ´¢·þÎñ£¬ÊÇÒ»¸ö·Ö²¼Ê½£¬¿ÉÀ©Õ¹£¬¶à¸±±¾µÄ´æ´¢ÏµÍ³¡£
Block Storage£¨Cinder£©£¬Ìṩ¿é´æ´¢·þÎñ£¬Îª OpenStack µÄÐéÄâ»úÌṩ³Ö¾ÃµÄ¿é¼¶´æ´¢É豸¡£Ö§³Ö¶àÖÖ´æ´¢ºó¶Ë£¬°üÀ¨ Ceph£¬EMC µÈ¡£
Networking£¨Neutron£©Ìá¹©ÍøÂçÐéÄ⻯·þÎñ£¬ÊÇÒ»¸ö¿É°Î²å£¬¿ÉÀ©Õ¹£¬API Çý¶¯µÄ·þÎñ¡£
Dashboard ÌṩÁËÒ»¸öͼÐοØÖÆÌ¨·þÎñ£¬ÈÃÓû§·½±ãµØ·ÃÎÊ£¬Ê¹ÓúÍά»¤ OpenStack ÖеÄ×ÊÔ´¡£
Image£¨glance£©Ìṩ¾µÏñ·þÎñ£¬ËüÖ¼ÔÚ·¢ÏÖ£¬×¢²áºÍ½»¸¶ÐéÄâ»ú´ÅÅ̺;µÏñ¡£Ö§³Ö¶àÖÖºó¶Ë¡£
Telemetry£¨Ceilometer£©ÌṩÓÃÁ¿Í³¼Æ·þÎñ£¬Í¨¹ýËü¿ÉÒÔ·½±ãµØÊµÏÖ OpenStack ¼Æ·Ñ¹¦ÄÜ¡£
Orchestration£¨Heat£©ÕûºÏÁË OpenStack ÖеÄÖÚ¶à×é¼þ£¬ÀàËÆ AWS µÄ CloudFormation£¬ÈÃÓû§Äܹ»Í¨¹ýÄ£°åÀ´¹ÜÀí×ÊÔ´¡£
Database£¨Trove£©»ùÓÚ OpenStack ¹¹½¨µÄ database-as-a-service¡£
ÍøÒ×˽ÓÐÔÆÆ½Ì¨¸Å¿ö

ͼ 1.ÍøÒ×˽ÓÐÔÆ¼Ü¹¹
ÍøÒ×˽ÓÐÔÆÆ½Ì¨ÓÉÍøÒ׺¼ÖÝÑо¿Ôº¸ºÔðÑз¢£¬Ö÷ÒªÌṩ»ù´¡ÉèÊ©×ÊÔ´¡¢Êý¾Ý´æ´¢´¦Àí¡¢Ó¦Óÿª·¢²¿Êð¡¢ÔËά¹ÜÀíµÈ¹¦ÄÜÒÔÂú×㹫˾²úÆ·²âÊÔ/ÉÏÏßµÄÐèÇó¡£
ͼ 1 չʾÁËÍøÒ×˽ÓÐÔÆÆ½Ì¨µÄÕûÌå¼Ü¹¹¡£Õû¸ö˽ÓÐÔÆÆ½Ì¨¿É·ÖΪÈý´óÀà·þÎñ£ººËÐÄ»ù´¡ÉèÊ©·þÎñ£¨IaaS£©¡¢»ù´¡Æ½Ì¨·þÎñ£¨PaaS£©ÒÔ¼°ÔËά¹ÜÀíÖ§³Å·þÎñ£¬Ä¿Ç°Ò»¹²°üÀ¨ÁË£ºÔÆÖ÷»ú£¨ÐéÄâ»ú£©¡¢ÔÆÍøÂç¡¢ÔÆÓ²ÅÌ¡¢¶ÔÏó´æ´¢¡¢¶ÔÏ󻺴桢¹ØÏµÐÍÊý¾Ý¿â¡¢·Ö²¼Ê½Êý¾Ý¿â¡¢È«ÎļìË÷¡¢ÏûÏ¢¶ÓÁС¢ÊÓÆµ×ªÂë¡¢¸ºÔؾùºâ¡¢ÈÝÆ÷ÒýÇæ¡¢ÔƼƷѡ¢ÔÆ¼à¿Ø¡¢¹ÜÀíÆ½Ì¨µÈ 15 ¸ö·þÎñ¡£ÍøÒ×˽ÓÐÔÆÆ½Ì¨³ä·ÖÀûÓÃÔÆ¼ÆË㿪ԴµÄ×îгɹû£¬ÎÒÃÇ»ùÓÚ OpenStack ÉçÇøµÄ keystone¡¢glance¡¢nova¡¢neutron ×é¼þÑз¢²¿ÊðÁËÔÆÖ÷»úºÍÔÆÍøÂç·þÎñ¡£
ΪÁËÓëÍøÒ×˽ÓÐÔÆÆ½Ì¨ÆäËû·þÎñ£¨ÔÆÓ²ÅÌ¡¢ÔÆ¼à¿Ø¡¢ÔƼƷѵȣ©Éî¶ÈÕûºÏÒÔ¼°Âú×㹫˾²úƷʹÓúÍÔËά¹ÜÀíµÄÌØ¶¨ÐèÇó£¬ÎÒÃÇÍŶÓÔÚÉçÇø OpenStack °æ±¾µÄ»ù´¡É϶ÀÁ¢Ñз¢Á˰üÀ¨£ºÔÆÖ÷»ú×ÊÔ´ÖÊÁ¿±£ÕÏ£¨¼ÆËã¡¢´æ´¢¡¢ÍøÂç QoS£©¡¢¾µÏñ·Ö¿é´æ´¢¡¢ÔÆÖ÷»úÐÄÌøÉϱ¨¡¢flat-dhcp ģʽÏÂ×â»§ÄÚÍø¸ôÀëµÈ 20 ¶à¸öй¦ÄÜ¡£Í¬Ê±£¬ÎÒÃÇÍŶÓÔÚÈÕ³£ÔËά OpenStack ÒÔ¼°Éý¼¶ÉçÇøÐ°汾ÖУ¬Ò²×ܽáÁËһЩ²¿Êð¡¢ÔËά¹æ·¶ÒÔ¼°Éý¼¶¾Ñé¡£Á½Äê¶àÀ´£¬ÍøÒ×˽ÓÐÔÆÆ½Ì¨ OpenStack ÍŶӵÄÑз¢±ü³Ð¿ªÔ´¡¢¿ª·ÅµÄÀíÄʼÖÕ×ñÑ"À´Ô´ÉçÇø£¬»ØÀ¡ÉçÇø"µÄÔÔò¡£ÔÚÃâ·ÑÏíÊÜ OpenStack ÉçÇø²»¶ÏÑз¢Ð¹¦ÄÜÒÔ¼°ÐÞ¸´ bug µÄͬʱ£¬ÎÒÃÇÍŶÓÒ²»ý¼«ÏòÉçÇø×ö×Ô¼ºµÄ¹±Ï×£¬´Ó¶ø°ïÖú OpenStack ÉçÇøµÄ·¢Õ¹×³´ó¡£Á½ÄêÀ´£¬ÎÒÃÇÍŶÓÒ»¹²ÏòÉçÇøÌύй¦ÄÜ¿ª·¢/bug ÐÞ¸´µÄ commits ½ü 100 ¸ö£¬ÐÞ¸´ÉçÇø bug 50 ¶à¸ö£¬ÕâЩÉçÇø¹±Ï×Éæ¼° OpenStack µÄ Essex¡¢Folsom¡¢Havana¡¢Icehouse¡¢Juno µÈ°æ±¾¡£
µÃÒæÓÚ OpenStack µÄÈÕÒæÎȶ¨³ÉÊ죬˽ÓÐÔÆÆ½Ì¨Ä¿Ç°ÒѾÎȶ¨ÔËÐÐÁË 2 Äê¶àʱ¼ä£¬ÎªÍøÒ×¹«Ë¾¶à´ï 30 ¸ö»¥ÁªÍøºÍÓÎÏ·²úÆ·Ìṩ·þÎñ¡£´ÓÓ¦ÓõÄЧ¹ûÀ´¿´£¬»ùÓÚ OpenStack Ñз¢µÄÍøÒ×˽ÓÐÔÆÆ½Ì¨ÒѾ´ïµ½ÁËÒÔÏÂÄ¿±ê£º
- Ìá¸ßÁ˹«Ë¾»ù´¡ÉèÊ©×ÊÔ´ÀûÓÃÂÊ£¬´Ó¶ø½µµÍÁËÓ²¼þ³É±¾¡£ÒÔÎïÀí·þÎñÆ÷ CPU ÀûÓÃÂÊΪÀý£¬Ë½ÓÐÔÆÆ½Ì¨½« CPU ƽ¾ùÀûÓÃÂÊ´Ó²»µ½ 10% ÌáÉýµ½ 50%¡£
- Ìá¸ßÁË»ù´¡ÉèÊ©×ÊÔ´¹ÜÀíÓëÔËά×Ô¶¯»¯Ë®Æ½£¬´Ó¶ø½µµÍÁËÔËά³É±¾¡£½èÖúÓÚ Web ×ÔÖúʽµÄ×ÊÔ´ÉêÇëºÍ·ÖÅ䷽ʽÒÔ¼°ÔÆÆ½Ì¨×Ô¶¯²¿Êð·þÎñ£¬ÏµÍ³ÔËάÈËÔ±¼õÉÙÁË 50%¡£
- Ìá¸ßÁË»ù´¡ÉèÊ©×ÊԴʹÓõ¯ÐÔ£¬´Ó¶øÔöÇ¿Á˲úÆ·ÒµÎñ²¨¶¯µÄÊÊÓ¦ÄÜÁ¦¡£ÀûÓÃÐéÄ⻯¼¼Êõ½«ÎïÀí»ù´¡ÉèÊ©×ö³ÉÐéÄâ×ÊÔ´³Ø£¬Í¨¹ýÓÐЧµÄÈÝÁ¿¹æ»®ÒÔ¼°°´ÐèʹÓã¬Ë½ÓÐÔÆÆ½Ì¨¿ÉÒԺܺÃÊÊÓ¦²úÆ·Í»·¢ÒµÎñ¡£
ÍøÒ× OpenStack ²¿Êð²Î¿¼·½°¸½éÉÜ
ÔÚ¾ßÌåµÄÉú²ú»·¾³ÖУ¬ÎÒÃÇΪÁ˼æ¹ËÐÔÄܺͿɿ¿ÐÔ£¬keystone ºó¶ËʹÓà Mysql ´æ´¢Óû§ÐÅÏ¢£¬Ê¹Óà memcache ´æ·Å token¡£ÎªÁ˼õÉÙ¶Ô keystone µÄ·ÃÎÊѹÁ¦£¬ËùÓзþÎñ£¨nova£¬glance£¬neutron£©µÄ keystoneclient ¾ùÅäÖÃʹÓà memcache ×÷Ϊ token µÄ»º´æ¡£
ÓÉÓÚÍøÒ×˽ÓÐÔÆÐèÒª²¿ÊðÔÚ¶à¸ö»ú·¿Ö®ÖУ¬Ã¿¸ö»ú·¿Ö®¼äÔÚµØÀíλÖÃÉÏ×ÔÈ»¸ôÀ룬Õâ¶ÔÉϲãµÄÓ¦ÓÃÀ´ËµÊÇÌìÈ»µÄÈÝÔÖ·½·¨¡£ÁíÍ⣬ΪÁËÂú×ã˽ÓÐÔÆµÄ¹¦ÄܺÍÔËάÐèÇó£¬ÍøÒ×˽ÓÐÔÆÐèҪͬʱ֧³ÖÁ½ÖÖÍøÂçģʽ£ºnova-network ºÍ neutron¡£Õë¶ÔÕâЩÐèÇó£¬ÎÒÃÇÌá³öÁËÒ»¸öÃæÏòÆóÒµ¼¶µÄ¶àÇøÓò²¿Êð·½°¸£¬Èçͼ 2 Ëùʾ¡£´ÓÕûÌåÉÏ¿´£¬¶à¸öÇøÓòÖ®¼äµÄ²¿ÊðÏà¶Ô¶ÀÁ¢£¬µ«¿Éͨ¹ýÄÚÍøÊµÏÖ»¥Í¨£¬Ã¿¸öÇøÓòÖаüÀ¨ÁËÒ»¸öÍêÕûµÄ OpenStack ²¿Êð£¬ËùÒÔ¿ÉÒÔʹÓöÀÁ¢µÄ¾µÏñ·þÎñºÍ¶ÀÁ¢µÄÍøÂçģʽ£¬ÀýÈçÇøÓò A ʹÓà nova-network£¬ÇøÓò B ʹÓà neutron£¬»¥²»Ó°Ï죬ÁíÍâΪÁËʵÏÖÓû§µÄµ¥µãµÇ¼£¬ÇøÓòÖ®¼ä¹²ÏíÁË keystone£¬ÇøÓòµÄ»®·ÖÒÀ¾ÝÖ÷ÒªÊÇÍøÂçģʽºÍµØÀíλÖá£

ͼ 2.¶àÇøÓò²¿Êð·½·¨
ºÍµäÐÍ OpenStack ²¿Êð½«Ó²¼þ»®·ÖΪ¼ÆËã½ÚµãºÍ¿ØÖƽڵ㲻ͬµÄÊÇ£¬ÎªÁ˳ä·ÖÀûÓÃÓ²¼þ×ÊÔ´£¬ÎÒÃÇŬÁ¦°Ñ²¿ÊðÉè¼Æ³É¶Ô³ÆµÄ£¬¼´ÈÎÒâÒ»¸ö½ÚµãÏÂÏß¶ÔÕûÌå·þÎñ²»»áÕÕ³ÉÓ°Ïì¡£Òò´ËÎÒÃǽ«Ó²¼þ·ÖΪÁ½Àࣺ¼ÆËã½Úµã£¬¿ØÖƼÆËã½Úµã¡£¼ÆËã½Úµã²¿Êð nova-network£¬nova-compute£¬nova-api-metadata£¬nova-api-os-compute¡£¿ØÖƼÆËã½Úµã³ýÁ˼ÆËã½ÚµãµÄ·þÎñÍ⻹²¿ÊðÁË nova-scheduler£¬nova-novncproxy£¬nova-consoleauth£¬glance-api£¬glance-registry ºÍ keystone£¬Èçͼ 3 Ëùʾ¡£
¶ÔÍâÌṩ API µÄ·þÎñÓÐ nova-api-os-compute£¬nova-novncproxy ,glance-api£¬keystone¡£ÕâÀà·þÎñµÄÌØµãÊÇÎÞ״̬£¬¿ÉÒÔ·½±ãµØºáÏòÀ©Õ¹£¬¹Ê´ËÀà·þÎñ¾ù²¿ÊðÔÚ¸ºÔؾùºâ HAProxy Ö®ºó£¬²¢ÇÒʹÓà Keepalived ×ö¸ß¿ÉÓá£ÎªÁ˱£Ö¤·þÎñÖÊÁ¿ºÍ±ãÓÚά»¤£¬ÎÒÃÇûÓÐʹÓà nova-api£¬¶øÊÇ·ÖΪ nova-api-os-compute ºÍ nova-api-metadata ·Ö±ð¹ÜÀí¡£ÍⲿÒÀÀµ·½Ãæ£¬ÍøÒ×˽ÓÐÔÆ²¿ÊðÁ˸߿ÉÓà RabbitMQ ¼¯ÈººÍÖ÷±¸ MySQL£¬ÒÔ¼° memcache ¼¯Èº¡£

ͼ 3.¼ÆËã½Úµã£¬¿ØÖƼÆËã½Úµã
ÍøÂç¹æ»®·½Ãæ£¬ÍøÒ×˽ÓÐÔÆÖ÷ҪʹÓà nova-network µÄ FlatDHCPManager+multi-host ÍøÂçģʽ£¬²¢»®·ÖÁ˶à¸ö Vlan£¬·Ö±ðÓÃÓÚÐéÄâ»ú fixed-ip ÍøÂç¡¢ÄÚÍø¸¡¶¯ IP ÍøÂç¡¢ÍâÍøÍøÂç¡£
ÔËάÉÏʹÓÃÍøÒ××ÔÖ÷Ñз¢µÄÔËάƽ̨×ö¼à¿ØºÍ±¨¾¯£¬¹¦ÄÜÀàËÆ Nagios£¬µ«ÊǸü¼ÓÇ¿´ó¡£ÆäÖнÏÖØÒªµÄ¼à¿Ø±¨¾¯°üÀ¨ÈÕÖ¾¼à¿ØºÍ½ø³Ì¼à¿Ø¡£ÈÕÖ¾¼à¿Ø±£Ö¤·þÎñ·¢ÉúÒ쳣ʱµÚһʱ¼ä·¢ÏÖ£¬½ø³Ì¼à¿Ø±£Ö¤·þÎñÕý³£ÔËÐС£ÁíÍâÍøÒ×˽ÓÐÔÆÊ¹Óà Puppet ×ö×Ô¶¯²¿Êð£¬ÒÔ¼°Ê¹Óà StackTach °ïÖú¶¨Î» bug¡£
OpenStack ¸÷×é¼þÅäÖÃ
OpenStack Havana µÄÅäÖÃÏî³É°ÙÉÏǧ£¬´ó²¿·ÖÅäÖÃÏî¶¼ÊÇ¿ÉÒÔʹÓÃĬÈÏÖµµÄ£¬·ñÔò¹âÊÇÀí½âÕâô¶àµÄÅäÖÃÏîµÄº¬Òå¾Í×ãÒÔÈÃÔËάÈËÔ±±ÀÀ££¬ÓÈÆäÊǶÔÄÇЩ²¢²»ÊìϤԴÂëµÄÔËάÈËÔ±À´Ëµ¸üÊÇÈç´Ë¡£ÏÂÎĽ«ÁоÙÈô¸ÉÍøÒ×˽ÓÐÔÆÖнϹؼüµÄÅäÖÃÏ²¢½âÊÍËüÃÇÈçºÎÓ°Ïìµ½·þÎñµÄ¹¦ÄÜ£¬°²È«ÐÔ£¬ÒÔ¼°ÐÔÄܵÈÎÊÌâ¡£
Nova ¹Ø¼üÅäÖÃ
my_ip = ÄÚÍøµØÖ·
´ËÏîÊÇÓÃÀ´Éú³ÉËÞÖ÷»úÉ쵀 nova metadata api ÇëÇóת·¢ iptables ¹æÔò£¬Èç¹ûÅäÖò»µ±£¬»áµ¼ÖÂÐéÄâ»úÄÚ²¿ÎÞ·¨Í¨¹ý 169.254.169.254 Õâ¸ö IP »ñÈ¡ ec2/OpenStack metadata ÐÅÏ¢£»Éú³ÉµÄ iptable ¹æÔòÐÎÈ磺

ËüÁíÍâµÄÓÃ;ÊÇÐéÄâ»úÔÚ resize¡¢cold migrate µÈ²Ù×÷ʱ£¬ÓëÄ¿µÄ¶ËËÞÖ÷»ú½øÐÐÊý¾ÝͨÐÅ¡£¸ÃÏîµÄĬÈÏֵΪËÞÖ÷»úµÄÍâÍø IP µØÖ·£¬½¨Òé¸ÄΪÄÚÍøµØÖ·ÒÔ±ÜÃâDZÔڵݲȫ·çÏÕ¡£
metadata_listen = ÄÚÍøµØÖ·
´ËÏîÊÇ nova-api-metadata ·þÎñ¼àÌýµÄ IP µØÖ·£¬¿ÉÒÔ´ÓÉÏÃæµÄ iptables ¹æÔòÀïÃæ¿´³öËüÓë my_ip µÄÅäÖÃÏîÓÐÒ»¶¨µÄ¹ØÁª£¬±£³ÖÒ»ÖÂÊÇ×îÃ÷ÖǵÄÑ¡Ôñ¡£

ÎÒÃǽöÔÚ²¿·Ö½ÚµãÉϲ¿Êð novncproxy ½ø³Ì£¬²¢°ÑÕâЩ½ø³Ì¼ÓÈëµ½ HAProxy ·þÎñÖÐʵÏÖ novnc ´úÀí½ø³ÌµÄ¸ß¿ÉÓ㬶à¸ö HAProxy ½ø³ÌʹÓà Keepalived ʵʩ HAProxy µÄ¸ß¿ÉÓ㬶ÔÍâÖ»ÐèÒª±©Â¶ Keepalived ¹ÜÀíµÄÐéÄâ IP µØÖ·¼´¿É£º
ÕâÖÖ²¿Êð·½Ê½ºÃ´¦ÊÇ£º
1£©ÊµÏÖ novnc ´úÀí·þÎñµÄ¸ß¿ÉÓÃ
2£©²»»á±©Â¶ÔÆÆ½Ì¨Ïà¹Ø½ÚµãµÄÍâÍøµØÖ·
3£©Ò×ÓÚ novnc ´úÀí·þÎñµÄÀ©ÈÝ
µ«Ò²Óв»×㣺
1£©ÐéÄâ»ú¶¼¼àÌýÔÚÆäËùÔڵļÆËã½ÚµãµÄÄÚÍø IP µØÖ·£¬Ò»µ©ÐéÄâ»úÓëËÞÖ÷»úµÄÍøÂç¸ôÀë³öÏÖÎÊÌ⣬»áµ¼ÖÂËùÓÐÐéÄâ»úµÄ VNC µØÖ·½Ó¿Ú±©Â¶³öÈ¥
2£©ÔÚÏßÇ¨ÒÆÊ±»áÓöµ½ÎÊÌ⣬ÒòΪ VNC ¼àÌýµÄÄÚÍø IP ÔÚÄ¿µÄ¶Ë¼ÆËã½ÚµãÊDz»´æÔڵ쬲»¹ýÕâ¸öÎÊÌâ nova ÉçÇøÒѾÔÚ½â¾öÁË£¬ÏàÐźܿì¾Í»áºÏÈë J °æ±¾¡£
resume_guests_state_on_host_boot = true
ÔÚ nova-compute ½ø³ÌÆô¶¯Ê±£¬Æô¶¯Ó¦¸Ã´¦ÓÚÔËÐÐ״̬µÄÐéÄâ»ú£¬Ó¦¸Ã´¦ÓÚÔËÐÐ״̬µÄÒâ˼ÊÇ nova Êý¾Ý¿âÖеÄÐéÄâ»ú¼Ç¼ÊÇÔËÐÐ״̬£¬µ«ÔÚ Hypervisor ÉϸÃÐéÄâ»úûÓÐÔËÐУ¬ÔÚ¼ÆËã½ÚµãÖØÆôʱ£¬¸ÃÅäÖÃÏî¾ßÓкܴóµÄÓô¦£¬Ëü¿ÉÒÔÈýڵãÉÏËùÓÐÐéÄâ»ú¶¼×Ô¶¯ÔËÐÐÆðÀ´£¬½ÚÊ¡ÔËάÈËÔ±ÊÖ¹¤´¦ÀíµÄʱ¼ä¡£
api_rate_limit = false
²»ÏÞÖÆ API ·ÃÎÊÆµÂÊ£¬´ò¿ªÖ®ºó API µÄ²¢·¢·ÃÎÊÊýÁ¿»áÊܵ½ÏÞÖÆ£¬¿ÉÒÔ¸ù¾ÝÔÆÆ½Ì¨µÄ·ÃÎÊÁ¿¼° API ½ø³ÌµÄÊýÁ¿ºÍ³ÐÊÜÄÜÁ¦À´ÅжÏÊÇ·ñÐèÒª´ò¿ª£¬Èç¹û¹Ø±Õ¸ÃÑ¡ÏÔò´ó²¢·¢Çé¿öÏ API ÇëÇó´¦Àíʱ¼ä»á±È½Ï¾Ã¡£
osapi_max_limit = 5000
nova-api-os-compute api µÄ×î´ó·µ»ØÊý¾Ý³¤¶ÈÏÞÖÆ£¬Èç¹ûÉèÖùý¶Ì£¬»áµ¼Ö²¿·ÖÏìÓ¦Êý¾Ý±»½Ø¶Ï¡£
scheduler_default_filters = RetryFilter, AvailabilityZoneFilter, RamFilter, ComputeFilter, ImagePropertiesFilter, JsonFilter, EcuFilter, CoreFilter
nova-scheduler ¿ÉÓõĹýÂËÆ÷£¬Retry ÊÇÓÃÀ´Ìø¹ýÒѾ³¢ÊÔ´´½¨µ«ÊÇʧ°ÜµÄ¼ÆËã½Úµã£¬·ÀÖ¹ÖØµ÷¶ÈËÀÑ»·£»AvailabilityZone ÊǹýÂËÄÇЩÓû§Ö¸¶¨µÄ AZ µÄ£¬·ÀÖ¹Óû§µÄÐéÄâ»ú´´½¨µ½Î´Ö¸¶¨µÄ AZ ÀïÃæ£»Ram ÊǹýÂ˵ôÄÚ´æ²»×ãµÄ¼ÆËã½Úµã£»Core ÊǹýÂ˵ô VCPU ÊýÁ¿²»×ãµÄ¼ÆËã½Úµã£»Ecu ÊÇÎÒÃÇ×Ô¼º¿ª·¢µÄ¹ýÂËÆ÷£¬ÅäºÏÎÒÃÇµÄ CPU QoS ¹¦ÄÜ¿ª·¢µÄ£¬ÓÃÀ´¹ýÂ˵ô ecu ÊýÁ¿²»×ãµÄ¼ÆËã½Úµã£»ImageProperties ÊǹýÂ˵ô²»·ûºÏ¾µÏñÒªÇóµÄ¼ÆËã½Úµã£¬±ÈÈç QEMU ÐéÄâ»úËùÓõľµÏñ²»ÄÜÔÚ LXC ¼ÆËã½ÚµãÉÏʹÓã»Json ÊÇÆ¥Åä×Ô¶¨ÒåµÄ½ÚµãÑ¡Ôñ¹æÔò£¬±ÈÈç²»¿ÉÒÔ´´½¨µ½Ä³Ð© AZ£¬ÒªÓëÄÇЩÐéÄâ»ú´´½¨µ½Ïàͬ AZ µÈ¡£ÆäËû»¹ÓÐһЩ¹ýÂËÆ÷¿ÉÒÔ¸ù¾ÝÐèÇó½øÐÐÑ¡Ôñ¡£
running_deleted_instance_action = reap
nova-compute ¶¨Ê±ÈÎÎñ·¢ÏÖÔÚÊý¾Ý¿âÖÐÒѾɾ³ý£¬µ«¼ÆËã½ÚµãµÄ Hypervisor Öл¹´æÔÚµÄÐéÄâ»ú£¨Ò²¼´Ò°ÐéÄâ»úÉ󼯲Ù×÷·½Ê½£©ºóµÄ´¦Àí¶¯×÷£¬½¨ÒéÊÇÑ¡Ôñ log »òÕß reap¡£log ·½Ê½ÐèÒªÔËάÈËÔ±¸ù¾ÝÈÕÖ¾¼Ç¼ÕÒµ½ÄÇЩҰÐéÄâ»ú²¢ÊÖ¹¤Ö´ÐкóÐøµÄ¶¯×÷£¬ÕâÖÖ·½Ê½±È½Ï±£ÏÕ£¬·ÀÖ¹ÓÉÓÚ nova ·þÎñ³öÏÖδ֪Òì³£»òÕß bug ʱµ¼ÖÂÓû§ÐéÄâ»ú±»ÇåÀíµôµÈÎÊÌ⣬¶ø reap ·½Ê½Ôò¿ÉÒÔ½ÚÊ¡ÔËάÈËÔ±µÄÈ˹¤½éÈëʱ¼ä¡£
until_refresh = 5
Óû§Åä¶îÓë instances ±íÖÐʵ¼ÊʹÓÃÁ¿µÄͬ²½ãÐÖµ£¬Ò²¼´Óû§µÄÅä¶î±»Ð޸ĶàÉٴκóÇ¿ÖÆÍ¬²½Ò»´ÎʹÓÃÁ¿µ½Åä¶îÁ¿¼Ç¼
max_age = 86400
Óû§Åä¶îÓëʵ¼ÊʹÓÃÁ¿µÄͬ²½Ê±¼ä¼ä¸ô£¬Ò²¼´¾àÉÏ´ÎÅä¶î¼Ç¼¸üжàÉÙÃëºó£¬ÔٴθüÐÂʱ»á×Ô¶¯Óëʵ¼ÊʹÓÃÁ¿Í¬²½¡£
ÖÚËùÖÜÖª£¬¿ªÔ´µÄ nova ÏîĿĿǰÈÔÈ»ÓкܶàÅä¶î·½ÃæµÄ bug ûÓнâ¾ö£¬ÉÏÃæÁ½¸öÅäÖÃÏî¿ÉÒÔÔںܴó³Ì¶ÈÉϽâ¾öÓû§Åä¶îʹÓÃÇé¿öÓëʵ¼ÊʹÓÃÁ¿²»Æ¥ÅäµÄÎÊÌ⣬µ«Ò²»á´øÀ´Ò»¶¨µÄÊý¾Ý¿âÐÔÄÜ¿ªÏú£¬ÐèÒª¸ù¾Ýʵ¼Ê²¿ÊðÇé¿ö½øÐкÏÀíÉèÖá£
### ¼ÆËã½Úµã×ÊÔ´Ô¤Áô ###
vcpu_pin_set = 4-$
ÐéÄâ»ú vCPU µÄ°ó¶¨·¶Î§£¬¿ÉÒÔ·ÀÖ¹ÐéÄâ»úÕùÇÀËÞÖ÷»ú½ø³ÌµÄ CPU ×ÊÔ´£¬½¨ÒéÖµÊÇÔ¤Áôǰ¼¸¸öÎïÀí CPU£¬°ÑºóÃæµÄËùÓÐ CPU ·ÖÅ䏸ÐéÄâ»úʹÓ㬿ÉÒÔÅäºÏ cgroup »òÕßÄÚºËÆô¶¯²ÎÊýÀ´ÊµÏÖËÞÖ÷»ú½ø³Ì²»Õ¼ÓÃÐéÄâ»úʹÓõÄÄÇЩ CPU ×ÊÔ´¡£
cpu_allocation_ratio = 4.0
ÎïÀí CPU ³¬ÊÛ±ÈÀý£¬Ä¬ÈÏÊÇ 16 ±¶£¬³¬Ïß³ÌÒ²Ëã×÷Ò»¸öÎïÀí CPU£¬ÐèÒª¸ù¾Ý¾ßÌå¸ºÔØºÍÎïÀí CPU ÄÜÁ¦½øÐÐ×ÛºÏÅжϺóÈ·¶¨¾ßÌåµÄÅäÖá£
ram_allocation_ratio = 1.0
ÄÚ´æ·ÖÅ䳬ÊÛ±ÈÀý£¬Ä¬ÈÏÊÇ 1.5 ±¶£¬Éú²ú»·¾³²»½¨Ò鿪Æô³¬ÊÛ¡£
reserved_host_memory_mb = 4096
ÄÚ´æÔ¤ÁôÁ¿£¬Õⲿ·ÖÄÚ´æ²»Äܱ»ÐéÄâ»úʹÓÃ
reserved_host_disk_mb = 10240
´ÅÅÌÔ¤Áô¿Õ¼ä£¬Õⲿ·Ö¿Õ¼ä²»Äܱ»ÐéÄâ»úʹÓÃ
service_down_time = 120
·þÎñÏÂÏßʱ¼äãÐÖµ£¬Èç¹ûÒ»¸ö½ÚµãÉ쵀 nova ·þÎñ³¬¹ýÕâ¸öʱ¼äûÓÐÉϱ¨ÐÄÌøµ½Êý¾Ý¿â£¬api ·þÎñ»áÈÏΪ¸Ã·þÎñÒѾÏÂÏߣ¬Èç¹ûÅäÖùý¶Ì»ò¹ý³¤£¬¶¼»áµ¼ÖÂÎóÅС£
rpc_response_timeout = 300
RPC µ÷Óó¬Ê±Ê±¼ä£¬ÓÉÓÚ Python µÄµ¥½ø³Ì²»ÄÜÕæÕýµÄ²¢·¢£¬ËùÒÔ RPC ÇëÇó¿ÉÄܲ»Äܼ°Ê±ÏìÓ¦£¬ÓÈÆäÊÇÄ¿±ê½ÚµãÔÚÖ´ÐкÄʱ½Ï³¤µÄ¶¨Ê±ÈÎÎñʱ£¬ËùÒÔÐèÒª×ۺϿ¼Âdz¬Ê±Ê±¼äºÍµÈ´ýÈÝÈÌʱ¼ä¡£
multi_host = True
ÊÇ·ñ¿ªÆô nova-network µÄ¶à½Úµãģʽ£¬Èç¹ûÐèÒª¶à½Úµã²¿Êð£¬Ôò¸ÃÏîÐèÒªÉèÖÃΪ True¡£
Keystone
ÅäÖÃÏî½ÏÉÙ£¬Ö÷ÒªÊÇҪȨºâÅäÖÃʲôÑùµÄºó¶ËÇý¶¯£¬À´´æ´¢ token£¬Ò»°ãÊÇ SQL Êý¾Ý¿â£¬Ò²¿ÉÒÔÊÇ memcache¡£sql ¿ÉÒԳ־û¯´æ´¢£¬¶ø memcache ÔòËٶȸü¿ì£¬ÓÈÆäÊǵ±Óû§Òª¸üÐÂÃÜÂëµÄʱºò£¬ÐèҪɾ³ýËùÓйýÆÚµÄ token£¬ÕâÖÖÇé¿öÏ SQL µÄËÙ¶ÈÓë memcache Ïà²îºÜ´óºÜ´ó¡£
glance
°üÀ¨Á½¸ö²¿·Ö£¬glance-api ºÍ glance-registry£¬£º
workers = 2
glance-api ´¦ÀíÇëÇóµÄ×Ó½ø³ÌÊýÁ¿£¬Èç¹ûÅäÖÃ³É 0£¬ÔòÖ»ÓÐÒ»¸öÖ÷½ø³Ì£¬ÏàÓ¦µÄÅäÖÃ³É 2£¬ÔòÓÐÒ»¸öÖ÷½ø³Ì¼Ó 2 ¸ö×Ó½ø³ÌÀ´²¢·¢´¦ÀíÇëÇó¡£½¨Òé¸ù¾Ý½ø³ÌËùÔÚµÄÎïÀí½Úµã¼ÆËãÄÜÁ¦ºÍÔÆÆ½Ì¨ÇëÇóÁ¿À´×ÛºÏÈ·¶¨¡£
api_limit_max = 1000
Óë nova ÖеÄÅäÖà osapi_max_limit ÒâÒåÏàͬ
limit_param_default = 1000
Ò»¸öÏìÓ¦ÖÐ×î´ó·µ»ØÏîÊý£¬¿ÉÒÔÔÚÇëÇó²ÎÊýÖÐÖ¸¶¨£¬Ä¬ÈÏÊÇ 25£¬Èç¹ûÉèÖùý¶Ì£¬¿ÉÄܵ¼ÖÂÏìÓ¦Êý¾Ý±»½Ø¶Ï¡£
OpenStack µ×²ãÒÀÀµÈí¼þ°æ±¾¡¢ÅäÖÃÒÔ¼°ÐÔÄܵ÷ÓÅ
ÐéÄ⻯¼¼ÊõÑ¡ÐÍ
ÔÚ˽ÓÐÔÆÆ½Ì¨µÄÌåϵ¼Ü¹¹ÖУ¬ OpenStack ÒÀÀµÒ»Ð©µ×²ãÈí¼þ£¬ÈçÐéÄ⻯Èí¼þ£¬ÐéÄ⻯¹ÜÀíÈí¼þºÍ Linux Äںˡ£ÕâЩÈí¼þµÄÎȶ¨ÐÔÒÔ¼°ÐÔÄܹØÏµ×ÅÕû¸öÔÆÆ½Ì¨µÄÎȶ¨ÐÔºÍÐÔÄÜ¡£Òò´Ë£¬ÕâЩÈí¼þµÄ°æ±¾Ñ¡ÔñºÍÅäÖõ÷ÓÅÒ²ÊÇÍøÒ×˽ÓÐÔÆ¿ª·¢ÖеÄÒ»¸öÖØÒªÒòËØ¡£
ÔÚÍøÒ×˽ÓÐÔÆÆ½Ì¨ÖУ¬ÎÒÃÇÑ¡ÓõÄÊÇ Linux Äں˼æÈÝ×îºÃµÄ KVM ÐéÄ⻯¼¼Êõ¡£Ïà¶ÔÓÚ Xen ÐéÄ⻯¼¼Êõ£¬KVM ÐéÄ⻯¼¼ÊõÓë Linux ÄÚºËÁªÏµ¸üΪ½ôÃÜ£¬¸üÈÝÒ×ά»¤¡£Ñ¡Ôñ KVM ÐéÄ⻯¼¼Êõºó£¬ÐéÄ⻯¹ÜÀíÇý¶¯²ÉÓÃÁË OpenStack ÉçÇøÎª KVM ÅäÖõļÆËãÇý¶¯ libvirt£¬ÕâÒ²ÊÇÒ»Ì×ʹÓ÷dz£¹ã·º£¬ÉçÇø»îÔ¾¶ÈºÜ¸ßµÄÒ»Ì׿ªÔ´ÐéÄ⻯¹ÜÀíÈí¼þ£¬Ö§³Ö KVM ÔÚÄڵĸ÷ÖÖÐéÄ⻯¹ÜÀí¡£
ÁíÒ»·½Ãæ£¬ÍøÒײÉÓÿªÔ´µÄ Debian ×÷Ϊ×Ô¼ºµÄËÞÖ÷»úÄںˣ¬Ô´Ê¹ÓõÄÊÇ Debian µÄ wheezy Îȶ¨·ÖÖ§£¬KVM ºÍ libvirt ²ÉÓõÄÒ²ÊÇ Debian ÉçÇø wheezy Ô´ÀïÃæµÄ°ü°æ±¾£º

ÄÚºËÑ¡ÐÍ
ÔÚÄں˵ÄÑ¡ÐÍ·½Ã棬ÎÒÃÇÖ÷Òª¿¼ÂÇÈçÏÂÁ½·½ÃæµÄÒòËØ£º
- Îȶ¨ÐÔ£ºÔÚ¿ª·¢Ë½ÓÐÔÆÆ½Ì¨µÄÒ»¿ªÊ¼£¬Îȶ¨ÐÔ¾ÍÊÇÍøÒ×˽ÓÐÔÆ¿ª·¢µÄÒ»´ó»ù±¾ÔÔò¡£ÎÒÃDzÉÓà Debian Linux °æ±¾£¬Ïà¶ÔÀ´Ëµ£¬Debian µÄÔÉúÄÚºËÎÞÒɸüΪÎȶ¨¡£ÕâÒ²ÊÇÎÒÃÇ×ʼµÄÒ»¸öÑ¡Ôñ¡£
- ¹¦ÄÜÐèÇó£ºÔÚÍøÒ׵͍֯¿ª·¢ÖУ¬ÎªÁ˱£Ö¤ÐéÄâ»úµÄ·þÎñÐÔÄÜ£¬ÎÒÃÇ¿ª·¢ÁË CPU QoS ¼¼ÊõºÍ´ÅÅÌ QoS£¬ËüÒÀÀµµ×²ãµÄ CPU ºÍ blkio cgroup Ö§³Ö¡£Òò´Ë£¬ÎÒÃÇÐèÒª´ò¿ªÄÚºËÖÐµÄ cgroup ÅäÖÃÑ¡Ïî¡£ÁíÒ»·½Ãæ£¬ÍøÒ×˽ÓÐÔÆ×ۺϸ÷·½Ã濼ÂÇ£¬½«Ö§³Ö LXC ÕâÖÖÈÝÆ÷¼¶±ðµÄÐéÄ⻯£¬³ýÁË cgroup Í⣬LXC »¹ÒÀÀµ Linux ÄÚºËÖÐµÄ namespace ÌØÐÔ¡£
×ÛºÏÉÏÊöÒòËØµÄ¿¼ÂÇ£¬ÎÒÃÇÑ¡ÔñÁË Debian ÉçÇøµÄ Linux 3.10.40 ÄÚºËÔ´´úÂ룬²¢ÇÒ´ò¿ªÁË CPU/mem/blkio µÈ cgroup ÅäÖÃÑ¡ÏîÒÔ¼° user namespace µÈ namespace Ñ¡Ï×Ô¼º±àÒëÁËÒ»¸öÊÊÅäÍøÒ×˽ÓÐÔÆµÄ Linux Äںˡ£´ÓʹÓÃÇé¿öÀ´¿´£¬Ñ¡ÔñÉÏÊö°æ±¾µÄ OpenStack µ×²ãÒÀÀµÈí¼þºó£¬ÍøÒ×˽ÓÐÔÆÔËÐл¹±È½ÏÎȶ¨£¬ÎÒÃǺóÐø»¹»áÊÊʱµÄ¶ÔÕâЩÈí¼þ½øÐиüС£
ÅäÖÃÓÅ»¯
ÔÚÍøÒ×˽ÓÐÔÆµÄÎȶ¨ÐԵõ½Á˱£ÕÏÖ®ºó£¬ÎÒÃÇ¿ªÊ¼ÁËÐÔÄÜ·½ÃæµÄµ÷ÓŹ¤×÷¡£ÕâÒ»·½Ã棬ÎÒÃDzο¼ÁË IBM ¹«Ë¾µÄһЩ ÓÅÐãʵ¼ù£¬ÔÚ CPU¡¢ÄÚ´æ¡¢I/O µÈ·½Ãæ×öÁËһЩÅäÖ÷½ÃæµÄÓÅ»¯¡£ÕûÌå¶øÑÔ£¬ÍøÒ×˽ÓÐÔÆÔÚ×¢ÖØÎȶ¨ÐԵĻù´¡ÉÏ£¬Ò²»á»ý¼«½è¼øÒµ½çÓÅÐãʵ¼ùÀ´ÓÅ»¯Ë½ÓÐÔÆÆ½Ì¨µÄÕûÌåÐÔÄÜ¡£
CPU ÅäÖÃÓÅ»¯
ΪÁ˱£ÕÏÔÆÖ÷»úµÄ¼ÆËãÄÜÁ¦£¬ÍøÒ×˽ÓÐÔÆ¿ª·¢ÁË CPU QoS ¼¼Êõ£¬¾ßÌåÀ´Ëµ¾ÍÊDzÉÓà cfs µÄʱ¼äƬ¾ùÔȵ÷¶È£¬Íâ¼Ó process pinning µÄ°ó¶¨¼¼Êõ¡£
²Î¿¼ IBM µÄ·ÖÎö£¬ÎÒÃÇÁ˽⵽ÁË process pinning ¼¼ÊõµÄÓÅȱµã£¬²¢ÇÒ¾¹ý²âÊÔÒ²ÑéÖ¤Á˲»Í¬°ó¶¨·½Ê½µÄÔÆÖ÷»ú¼äµÄÐÔÄÜ´æÔڽϴóµÄ²îÒì¡£±ÈÈ磬2 ¸ö VCPU ·Ö±ð°ó¶¨µ½²»Í¬ numa ½ÚµãµÄ·Ç³¬Ï̺߳ËÉϺͷÖÅäµ½Ò»¶ÔÏàÁڵij¬Ï̺߳ËÉϵÄÐÔÄÜÏà²îÓÐ 30%~40%(ͨ¹ý SPEC CPU2006 ¹¤¾ß²âÊÔ)¡£ÁíÒ»·½Ã棬CPU0 ÓÉÓÚ´¦ÀíÖжÏÇëÇ󣬱¾Éí¸ººÉ¾Í½ÏÖØ£¬²»ÒËÔÙÓÃÓÚÔÆÖ÷»ú¡£Òò´Ë£¬×ÛºÏÉÏÃæµÄÒòËØ¿¼ÂÇÒÔ¼°¶àÂֵIJâÊÔÑéÖ¤£¬ÎÒÃÇ×îÖÕ¾ö¶¨½« 0-3 ºÅ CPU Ô¤Áô³öÀ´£¬È»ºóÈÃÔÆÖ÷»úÔÚÊ£ÓàµÄ CPU ×ÊÔ´ÖÐÓÉËÞÖ÷»úÄÚºËÈ¥µ÷¶È¡£×îÖÕµÄ CPU ÅäÖÃÈçÏÂËùʾ£¨libvirt xml ÅäÖã©£º

ÄÚ´æÅäÖÃÓÅ»¯
ÄÚ´æÅäÖ÷½Ãæ£¬ÍøÒ×˽ÓÐÔÆµÄʵ¼ùÊÇ¹Ø±Õ KVM ÄÚ´æ¹²Ïí£¬´ò¿ªÍ¸Ã÷´óÒ³£º

¾¹ý SPEC CPU2006 ²âÊÔ£¬ÕâЩÅäÖöÔÔÆÖ÷»ú CPU ÐÔÄÜ´ó¸ÅÓÐ 7%×óÓÒµÄÌáÉý¡£
I/O ÅäÖÃÓÅ»¯
1£©´ÅÅÌ I/O µÄÅäÖÃÓÅ»¯Ö÷Òª°üº¬ÈçÏ·½Ã棺
KVM µÄ disk cache ·½Ê½£º½è¼ø IBM µÄ·ÖÎö£¬ÍøÒ×˽ÓÐÔÆ²ÉÓà none ÕâÖÖ cache ·½Ê½¡£
disk io scheduler£ºÄ¿Ç°ÍøÒ×˽ÓÐÔÆµÄËÞÖ÷»ú´ÅÅ̵÷¶È²ßÂÔÑ¡ÓõÄÊÇ cfq¡£ÔÚʵ¼ÊʹÓùý³ÌÖУ¬ÎÒÃÇ·¢ÏÖ cfq µÄµ÷¶È²ßÂÔ£¬¶ÔÄÇЩµØµÍÅäÖôÅÅ̺ÜÈÝÒ׳öÏÖ I/O µ÷¶È¶ÓÁйý³¤£¬utils 100% µÄÎÊÌâ¡£ºóÐøÍøÒ×˽ÓÐÔÆÒ²»á½è¼ø IBM µÄʵ¼ù£¬¶Ô cfq ½øÐвÎÊýµ÷ÓÅ£¬ÒÔ¼°²âÊÔ deadline µ÷¶È²ßÂÔ¡£
´ÅÅÌ I/O QoS£ºÃæ¶ÔÈÕ½¥Í»³öµÄ´ÅÅÌ I/O ×ÊÔ´½ôȱÎÊÌâ£¬ÍøÒ×˽ÓÐÔÆ¿ª·¢ÁË´ÅÅÌ I/O QoS£¬Ö÷ÒªÊÇ»ùÓÚ blkio cgroup À´ÉèÖÃÆä throttle ²ÎÊýÀ´ÊµÏÖ¡£ÓÉÓÚ libvirt-0.9.12 °æ±¾ÊÇÔÚ QEMU ÖÐÏÞÖÆ´ÅÅÌ I/O£¬²¢ÇÒ´æÔÚ²¨¶¯ÎÊÌ⣬ËùÒÔÎÒÃǵÄʵÏÖÊÇͨ¹ý Nova Ö´ÐÐÃüÁʽдÈëµ½ cgroup ÖС£Í¬Ê±ÎÒÃÇÒ²¿ª·¢²¢Ïò libvirt ÉçÇøÌá½»ÁË blkiotune µÄ throttle ½Ó¿ÚÉèÖà patch£¨ÒÑÔÚ libvirt-1.2.2 °æ±¾ÖкÏÈ룩À´³¹µ×½â¾öÕâ¸öÎÊÌâ¡£
2£©ÍøÂç I/O µÄÅäÖÃÓÅ»¯
ÎÒÃÇÖ÷ÒªÊÇ¿ªÆôÁË vhost_net ģʽ£¬À´¼õÉÙÍøÂçÑÓʱºÍÔö¼ÓÍÌÍÂÁ¿¡£
ÔËά¾Ñé
ʹÓþÑé
¿ªÔ´Èí¼þ bug ÔÚËùÄÑÃ⣬µ«ÊÇа汾±È¾É°æ±¾»áºÃÓúܶ࣬ÓÈÆäÊǶÔÓÚ OpenStack ÕâÖÖÕýÔÚѸËٳɳ¤×³´óµÄ¿ªÔ´Èí¼þÀ´Ëµ¸üÊÇÈç´Ë£¬ÕâÒ»µãÔÚÎÒÃÇʹÓùý Essex¡¢Folsom ºÍ Havana °æ±¾ºóÉîÓÐÌå»á£¬ËùÒÔ½¨Òé¸÷ÖÖ OpenStack Óû§Äܼ°Ê±µÄ¸ú½øÉçÇø°æ±¾£¬ÓëÉçÇø±£³Öͬ²½¡£
²»ÒªÇáÒ׵ĶÔÉçÇø°æ±¾½øÐи÷ÀàËùνµÄ¹¦ÄÜÐÔÄÜ·½ÃæµÄ"ÓÅ»¯"£¬ÓÈÆäÊÇÔÚûÓÐÓëÉçÇø×¨¼Ò½»»»Òâ¼û֮ǰ£¬Ç§Íò²»ÒªÇáÒ×ÏÂÊÖ£¬·ñÔò´ËÀà"ÓÅ»¯"¼«ÓпÉÄÜÑݱä³É¹ÊÕϵã»òÕßÐÔÄÜÆ¿¾±µã£¬×îÖÕ¿ÉÄܵ¼ÖÂÎÞ·¨ÓëÉçÇøÍ¬²½£¬±Ï¾¹Ò»¸ö¹«Ë¾»òÍŶӣ¨ÓÈÆäÊÇС¹«Ë¾¡¢Ð¡ÍŶӣ©µÄÄÜÁ¦ºÍ֪ʶ´¢±¸£¬ÊǺÜÄÑÓëÉçÇø³É°ÙÉÏǧµÄ¸÷Ààר¼ÒÏàÌá²¢Â۵ġ£
¶à²Î¿¼¸÷Àà´óÐ͹«Ë¾·ÖÏíµÄ²¿Êð¼Ü¹¹·½°¸£¬¾¡Á¿²»Òª×Ô¼º±ÕÃÅÔì³µ£¬ÓÈÆäÊǶÔÓÚ¿ªÔ´Èí¼þÀ´Ëµ£¬¸÷À๫˾¡¢ÍŶӵÄʹÓ󡾰ǧ²îÍò±ð£¬¸÷ÖÖÖܱß×é¼þÒ²ÊÇÓ¦Óо¡ÓУ¬¶à²Î¿¼Òµ½çʵ¼ùÊÇ×îºÃµÄ·½Ê½¡£
һЩϸ½ÚʵÏÖ¿ÉÄÜÓкܶà;¾¶£¬µ«Ã¿ÖÖ·½Ê½¶¼ÓÐÓÅȱµã£¬ÐèÒª¾¹ý³ä·ÖµÄÂÛÖ¤¡¢·ÖÎö¡¢²âÊÔÑéÖ¤ºó£¬²ÅÄÜ¿¼ÂDz¿Êðµ½Éú²ú»·¾³Ê¹Óá£
ËùÓеIJ¿Êð·½°¸¡¢¹¦ÄÜÉè¼Æ¶¼Òª¿¼Âǵ½Æ½»¬Éý¼¶ÎÊÌ⣬¼´Ê¹ÄãµÃµ½µÄÐÅÏ¢ÊÇÉý¼¶Ê±¿ÉÒÔÍ£·þ£¬ÈÔȻҪ¾¡Á¿±ÜÃâÕâÖÖÇé¿ö£¬ÒòΪͣ·þµÄÓ°Ï췶ΧºÜÄѽ綨¡£
ÔËά׼Ôò
OpenStack Ò²ÊÇÒ»¸öºó¶Ëϵͳ·þÎñ£¬ËùÓÐϵͳÔËάÏà¹ØµÄ»ù±¾×¼Ôò¶¼ÊÊÓã¬ÕâÀï¼òµ¥µÄÌἸµãʵ¼ÊÔËά¹ý³ÌÖиù¾ÝÓöµ½µÄÎÊÌâ×ܽáµÄһЩ¾Ñé:
ÅäÖÃÏîĬÈÏÖµÓëʵ¼Ê»·¾³²»Æ¥Åä¿ÉÄܵ¼Ö¸÷ÖÖÎÊÌ⣬ÓÈÆäÊÇÍøÂçÏà¹ØÅäÖÃÓëÓ²¼þÓкÜÇ¿µÄ¹ØÁªÐÔ£¬Éú²ú»·¾³ºÍ¿ª·¢»·¾³Ó²¼þÒì¹¹£¬µ¼Ö²¿·ÖĬÈÏÖµÔÚÉú²ú»·¾³²»ÊÊÓá£Ó¦¶Ô×¼Ôò£ºÃ¿¸ö°æ±¾¶¼±ØÐëÔÚÓëÏßÉÏÓ²¼þÏàͬµÄ»·¾³²âÊÔ¹ý²ÅÄÜÉÏÏß¡£
×öºÃÈÝÁ¿¹æ»®£¬ÒÑ·ÖÅäµÄÅä¶îÁ¿ÒªÐ¡ÓÚÔÆÆ½Ì¨×ÜÈÝÁ¿£¬·ñÔò»á³öÏÖ¸÷ÖÖÎÊÌ⣬µ¼ÖÂÔËά¿ª·¢ºÄ·ÑºÜ¶à²»±ØÒªµÄ¾«Á¦È¥¶¨Î»·ÖÎöÎÊÌâ¡£
ÅäÖÃÏî¹ý¶àÈÝÒ׳ö´í£¬ÐèÒªÓ뿪·¢ÈËÔ±Ò»Æð×ÐϸºË¶Ô£¬ÉÏÏßʱÊ×ÏÈҪͨ¹ý puppet µÄ noop ¹¦ÄÜÑéÖ¤¸Ä¶¯ÊÇ·ñÕýÈ·ºó£¬²ÅÄÜÕæÕýÉÏÏß¡£
ÍøÂç¹æ»®ÒªÌáǰ×öºÃ£¬Èç¹Ì¶¨ IP¡¢¸¡¶¯ IP¡¢VLAN ÊýÁ¿µÈ£¬ÍøÂçÀ©ÈÝÄѶȺͷçÏÕ¶¼±È½Ï´ó£¬ËùÒÔÌáǰ¹æ»®ºÃÊÇ×î±£Ïյģ¬Ò»¸öÔÔòÊÇ´ó±ÈСºÃ£¬¶à±ÈÉٺá£
ÍøÂç¸ôÀëÒª×öºÃ£¬·ñÔòÓû§ÍøÂ簲ȫû°ì·¨±£Ö¤¡£
ÐÅÏ¢°²È«ÎÊÌâÒªÖØÊÓ£¬Õâ¸öÊÇÀÏÉú³£Ì¸µÄÎÊÌâÁË£¬Ã¿¸öƽ̨¶¼ÓÐÏàͬÎÊÌ⣬µ«»¹ÊÇÒªÖØÊÓÔÙÖØÊÓ£¬Ò»µ©³öÏÖ°²È«Â©¶´£¬ËùÓÐÐéÄâ»ú¶¼ÃæÁÙÑÏÖØÍþв¡£
|