什么是OpenStack? 全面认识openstack,它到底是什么?包含什么

openstack\u662f\u4ec0\u4e48

OpenStack\u662f\u4e00\u4e2a\u7f8e\u56fd\u56fd\u5bb6\u822a\u7a7a\u822a\u5929\u5c40\u548cRackspace\u5408\u4f5c\u7814\u53d1\u7684\uff0c\u4ee5Apache\u8bb8\u53ef\u8bc1\u6388\u6743\uff0c\u5e76\u4e14\u662f\u4e00\u4e2a\u81ea\u7531\u8f6f\u4ef6\u548c\u5f00\u653e\u6e90\u4ee3\u7801\u9879\u76ee\u3002
OpenStack\u662f\u4e00\u4e2a\u4e91\u5e73\u53f0\u7ba1\u7406\u7684\u9879\u76ee\uff0c\u5b83\u4e0d\u662f\u4e00\u4e2a\u8f6f\u4ef6\u3002\u8fd9\u4e2a\u9879\u76ee\u7531\u51e0\u4e2a\u4e3b\u8981\u7684\u7ec4\u4ef6\u7ec4\u5408\u8d77\u6765\u5b8c\u6210\u4e00\u4e9b\u5177\u4f53\u7684\u5de5\u4f5c\u3002
OpenStack\u662f\u4e00\u4e2a\u65e8\u5728\u4e3a\u516c\u5171\u53ca\u79c1\u6709\u4e91\u7684\u5efa\u8bbe\u4e0e\u7ba1\u7406\u63d0\u4f9b\u8f6f\u4ef6\u7684\u5f00\u6e90\u9879\u76ee\u3002\u5b83\u7684\u793e\u533a\u62e5\u6709\u8d85\u8fc7130\u5bb6\u4f01\u4e1a\u53ca
1350\u4f4d\u5f00\u53d1\u8005\uff0c\u8fd9\u4e9b\u673a\u6784\u4e0e\u4e2a\u4eba\u90fd\u5c06OpenStack\u4f5c\u4e3a\u57fa\u7840\u8bbe\u65bd\u5373\u670d\u52a1(\u7b80\u79f0IaaS)\u8d44\u6e90\u7684\u901a\u7528\u524d\u7aef\u3002OpenStack\u9879\u76ee\u7684\u9996\u8981\u4efb\u52a1\u662f\u7b80\u5316\u4e91
\u7684\u90e8\u7f72\u8fc7\u7a0b\u5e76\u4e3a\u5176\u5e26\u6765\u826f\u597d\u7684\u53ef\u6269\u5c55\u6027\u3002\u672c\u6587\u5e0c\u671b\u901a\u8fc7\u63d0\u4f9b\u5fc5\u8981\u7684\u6307\u5bfc\u4fe1\u606f\uff0c\u5e2e\u52a9\u5927\u5bb6\u5229\u7528OpenStack\u524d\u7aef\u6765\u8bbe\u7f6e\u53ca\u7ba1\u7406\u81ea\u5df1\u7684\u516c\u5171\u4e91\u6216\u79c1\u6709\u4e91\u3002
OpenStack
\u662f\u7531
Rackspace
\u548c
NASA
\u5171\u540c\u5f00\u53d1\u7684\u4e91\u8ba1\u7b97\u5e73\u53f0\uff0c\u5e2e\u52a9\u670d\u52a1\u5546\u548c\u4f01\u4e1a\u5185\u90e8\u5b9e\u73b0\u7c7b\u4f3c\u4e8e
Amazon
EC2
\u548c
S3
\u7684\u4e91\u57fa\u7840\u67b6\u6784\u670d\u52a1(Infrastructure
as
a
Service,
IaaS)\u3002OpenStack
\u5305\u542b\u4e24\u4e2a\u4e3b\u8981\u6a21\u5757:Nova
\u548c
Swift\uff0c\u524d\u8005\u662f
NASA
\u5f00\u53d1\u7684\u865a\u62df\u670d\u52a1\u5668\u90e8\u7f72\u548c\u4e1a\u52a1\u8ba1\u7b97\u6a21\u5757;\u540e\u8005\u662f
Rackspace\u5f00\u53d1\u7684\u5206\u5e03\u5f0f\u4e91\u5b58\u50a8\u6a21\u5757\uff0c\u4e24\u8005\u53ef\u4ee5\u4e00\u8d77\u7528\uff0c\u4e5f\u53ef\u4ee5\u5206\u5f00\u5355\u72ec\u7528\u3002OpenStack
\u662f\u5f00\u6e90\u9879\u76ee\uff0c\u9664\u4e86\u6709
Rackspace
\u548c
NASA
\u7684\u5927\u529b\u652f\u6301\u5916\uff0c\u540e\u9762\u8fd8\u6709\u5305\u62ec
Dell\u3001Citrix\u3001
Cisco\u3001
Canonical
\u8fd9\u4e9b\u91cd\u91cf\u7ea7\u516c\u53f8\u7684\u8d21\u732e\u548c\u652f\u6301\uff0c\u53d1\u5c55\u901f\u5ea6\u975e\u5e38\u5feb\uff0c\u6709\u53d6\u4ee3\u53e6\u4e00\u4e2a\u4e1a\u754c\u9886\u5148\u5f00\u6e90\u4e91\u5e73\u53f0
Eucalyptus
\u7684\u6001\u52bf\u3002
\u4e86\u89e3\u66f4\u591a\u5f00\u6e90\u76f8\u5173\uff0c\u53bbLUPA\u793e\u533a\u770b\u770b\u5427\u3002

\uff081\uff09\u5b98\u65b9\u7684\u89e3\u91ca\u76f8\u4fe1\u5927\u5bb6\u90fd\u5df2\u7ecf\u4e86\u89e3\u4e86\uff0c\u4e0d\u4e86\u89e3\u4e5f\u6ca1\u6709\u5173\u7cfb\u3002\u73b0\u5728\u4ece\u5e38\u8bc6\u7684\u89d2\u5ea6\u6765\u7ed9\u5927\u5bb6\u89e3\u91ca\u548c\u8bf4\u660e\u3002
OpenStack\u662f\u4e00\u4e2a\u4e91\u5e73\u53f0\u7ba1\u7406\u7684\u9879\u76ee\uff0c\u5b83\u4e0d\u662f\u4e00\u4e2a\u8f6f\u4ef6\u3002\u8fd9\u4e2a\u9879\u76ee\u7531\u51e0\u4e2a\u4e3b\u8981\u7684\u7ec4\u4ef6\u7ec4\u5408\u8d77\u6765\u5b8c\u6210\u4e00\u4e9b\u5177\u4f53\u7684\u5de5\u4f5c\u3002
OpenStack\u662f\u4e00\u4e2a\u65e8\u5728\u4e3a\u516c\u5171\u53ca\u79c1\u6709\u4e91\u7684\u5efa\u8bbe\u4e0e\u7ba1\u7406\u63d0\u4f9b\u8f6f\u4ef6\u7684\u5f00\u6e90\u9879\u76ee\uff0cOpenStack\u88ab\u516c\u8ba4\u4f5c\u4e3a\u57fa\u7840\u8bbe\u65bd\u5373\u670d\u52a1\uff08\u7b80\u79f0IaaS\uff09\u8d44\u6e90\u7684\u901a\u7528\u524d\u7aef\u3002
\u5982\u679c\u8fd9\u4e9b\u8fd8\u4e0d\u660e\u767d\uff0c\u90a3\u4e48\u4ece\u53e6\u5916\u7684\u89d2\u5ea6\u7ed9\u5927\u5bb6\u4ecb\u7ecd\uff1a
\u9996\u5148\u8ba9\u5927\u5bb6\u770b\u4e0b\u9762\u4e24\u4e2a\u56fe\u5c31\u5f88\u7b80\u5355\u660e\u4e86\u4e86\uff1a
\u6b64\u56fe\u4e3aopenstack\u7684\u767b\u5f55\u754c\u9762

\u4e0b\u9762\u662fopenstack\u7684\u4e00\u4e2a\u7ba1\u7406\u754c\u9762

\u4ece\u8fd9\u4e24\u4e2a\u56fe\uff0c\u76f8\u4fe1\u6709\u4e00\u5b9a\u5f00\u53d1\u7ecf\u9a8c\uff0c\u5c31\u80fd\u770b\u51faopenstack\u662f\u4ec0\u4e48\u4e86\u3002\u53ef\u4ee5\u8bf4\u4ed6\u662f\u4e00\u4e2a\u6846\u67b6\uff0c\u751a\u81f3\u53ef\u4ee5\u4ece\u8f6f\u4ef6\u7684\u89d2\u5ea6\u6765\u7406\u89e3\u5b83\u3002\u5982\u679c\u4e0d\u660e\u767d\uff0c\u5c31\u4ece\u4f20\u7edf\u5f00\u53d1\u6765\u8bb2\u89e3\u3002\u4e0d\u77e5\u9053\u4f60\u662f\u5426\u4e86\u89e3oa\uff0cerp\u7b49\u7cfb\u7edf\uff0c\u5982\u679c\u4e0d\u4e86\u89e3\u53ef\u4ee5\u5230\u7f51\u4e0a\u53bb\u627e\uff0c\u8d44\u6599\u4e00\u5927\u628a\u3002\u4ed6\u548coa\uff0cerp\u6709\u4ec0\u4e48\u4e0d\u540c\u3002\u5f88\u7b80\u5355\u5c31\u662fopenstack\u662f\u7528\u505a\u4e91\u8ba1\u7b97\u7684\u4e00\u4e2a\u5e73\u53f0\uff0c\u6216\u5219\u4e00\u4e2a\u89e3\u51b3\u65b9\u6848\u3002\u5b83\u662f\u4e91\u8ba1\u7b97\u4e00\u4e2a\u91cd\u8981\u7ec4\u6210\u90e8\u5206\u3002
\u4e0a\u9762\u5bf9openstack\u6709\u4e86\u4e00\u4e2a\u611f\u6027\u7684\u8ba4\u8bc6\u3002
\uff082\uff09openstack\u80fd\u5e72\u4ec0\u4e48\u3002
\u5927\u5bb6\u90fd\u77e5\u9053\u963f\u91cc\u4e91\u5e73\u53f0\uff0c\u767e\u5ea6\u4e91\u5e73\u53f0\uff0c\u800c\u963f\u91cc\u4e91\u5e73\u53f0\u636e\u4f20\u8bf4\u5c31\u662f\u5bf9openstack\u7684\u4e8c\u6b21\u5f00\u53d1\u3002\u5bf9\u4e8e\u4e8c\u6b21\u5f00\u53d1\u76f8\u4fe1\u53ea\u8981\u63a5\u89e6\u8fc7\u8f6f\u4ef6\u7684\u90fd\u4f1a\u660e\u767d\u8fd9\u4e2a\u6982\u5ff5\u3002\u4e0d\u660e\u767d\u7684\u81ea\u5df1\u7f51\u4e0a\u53bb\u67e5\u4e00\u4e0b\u3002\u4e5f\u5c31\u662f\u8bf4openstack\uff0c\u53ef\u4ee5\u642d\u5efa\u4e91\u5e73\u53f0\uff0c\u4ec0\u4e48\u4e91\u5e73\u53f0\uff0c\u516c\u6709\u4e91\uff0c\u79c1\u6709\u4e91\u3002\u73b0\u5728\u767e\u5ea6\u5728\u62db\u8058\u7684\u79c1\u6709\u4e91\u5de5\u7a0b\u5e08\uff0c\u5e94\u8be5\u5c31\u662f\u8fd9\u65b9\u9762\u7684\u4eba\u624d\u3002
\uff083\uff09openstack\u81ea\u8eab\u90fd\u5305\u542b\u4ec0\u4e48
\u4ee5\u4e0b\u662f5\u4e2aOpenStack\u7684\u91cd\u8981\u6784\u6210\u90e8\u5206\uff1a
l Nova \u2013 \u8ba1\u7b97\u670d\u52a1
l Swift \u2013 \u5b58\u50a8\u670d\u52a1
l Glance \u2013 \u955c\u50cf\u670d\u52a1
l Keystone \u2013 \u8ba4\u8bc1\u670d\u52a1
l Horizon \u2013 UI\u670d\u52a1

\u56fe1 OpenStack\u57fa\u672c\u6784\u67b6

\u4e0b\u56fe\u5c55\u793a\u4e86Keystone\u3001Dashboard\u4e8c\u8005\u4e0e\u5176\u5b83OpenStack\u90e8\u5206\u7684\u4ea4\u4e92\u3002

\u4e0b\u9762\u8be6\u7ec6\u4ecb\u7ecd\u6bcf\u4e00\u4e2a\u670d\u52a1\uff1a
\uff08\u4e00\uff09OpenStack\u8ba1\u7b97\u8bbe\u65bd\u2014-Nova Nova\u662fOpenStack\u8ba1\u7b97\u7684\u5f39\u6027\u63a7\u5236\u5668\u3002OpenStack\u4e91\u5b9e\u4f8b\u751f\u547d\u671f\u6240\u9700\u7684\u5404\u79cd\u52a8\u4f5c\u90fd\u5c06\u7531Nova\u8fdb\u884c\u5904\u7406\u548c\u652f\u6491\uff0c\u8fd9\u5c31\u610f\u5473\u7740Nova\u4ee5\u7ba1\u7406\u5e73\u53f0\u7684\u8eab\u4efd\u767b\u573a\uff0c\u8d1f\u8d23\u7ba1\u7406\u6574\u4e2a\u4e91\u7684\u8ba1\u7b97\u8d44\u6e90\u3001\u7f51\u7edc\u3001\u6388\u6743\u53ca\u6d4b\u5ea6\u3002\u867d\u7136Nova\u672c\u8eab\u5e76\u4e0d\u63d0\u4f9b\u4efb\u4f55\u865a\u62df\u80fd\u529b\uff0c\u4f46\u662f\u5b83\u5c06\u4f7f\u7528libvirt API\u4e0e\u865a\u62df\u673a\u7684\u5bbf\u4e3b\u673a\u8fdb\u884c\u4ea4\u4e92\u3002Nova\u901a\u8fc7Web\u670d\u52a1API\u6765\u5bf9\u5916\u63d0\u4f9b\u5904\u7406\u63a5\u53e3\uff0c\u800c\u4e14\u8fd9\u4e9b\u63a5\u53e3\u4e0eAmazon\u7684Web\u670d\u52a1\u63a5\u53e3\u662f\u517c\u5bb9\u7684\u3002

\u529f\u80fd\u53ca\u7279\u70b9
l \u5b9e\u4f8b\u751f\u547d\u5468\u671f\u7ba1\u7406
l \u8ba1\u7b97\u8d44\u6e90\u7ba1\u7406
l \u7f51\u7edc\u4e0e\u6388\u6743\u7ba1\u7406
l \u57fa\u4e8eREST\u7684API
l \u5f02\u6b65\u8fde\u7eed\u901a\u4fe1
l \u652f\u6301\u5404\u79cd\u5bbf\u4e3b\uff1aXen\u3001XenServer/XCP\u3001KVM\u3001UML\u3001VMware vSphere\u53caHyper-V

OpenStack\u8ba1\u7b97\u90e8\u4ef6
l Nova\u5f39\u6027\u4e91\u5305\u542b\u4ee5\u4e0b\u4e3b\u8981\u90e8\u5206\uff1a
l API Server\uff08nova-api\uff09
l \u6d88\u606f\u961f\u5217\uff08rabbit-mq server\uff09
l \u8fd0\u7b97\u5de5\u4f5c\u7ad9\uff08nova-compute\uff09
l \u7f51\u7edc\u63a7\u5236\u5668\uff08nova-network\uff09
l \u5377\u7ba1\u7406\uff08nova-volume\uff09
l \u8c03\u5ea6\u5668\uff08nova-scheduler\uff09

API\u670d\u52a1\u5668\uff08nova-api\uff09
API\u670d\u52a1\u5668\u63d0\u4f9b\u4e86\u4e91\u8bbe\u65bd\u4e0e\u5916\u754c\u4ea4\u4e92\u7684\u63a5\u53e3\uff0c\u5b83\u662f\u5916\u754c\u7528\u6237\u5bf9\u4e91\u5b9e\u65bd\u7ba1\u7406\u7684\u552f\u4e00\u901a\u9053\u3002\u901a\u8fc7\u4f7f\u7528web\u670d\u52a1\u6765\u8c03\u7528\u5404\u79cdEC2\u7684API\uff0c\u63a5\u7740API\u670d\u52a1\u5668\u4fbf\u901a\u8fc7\u6d88\u606f\u961f\u5217\u628a\u8bf7\u6c42\u9001\u8fbe\u81f3\u4e91\u5185\u76ee\u6807\u8bbe\u65bd\u8fdb\u884c\u5904\u7406\u3002\u4f5c\u4e3a\u5bf9EC2-api\u7684\u66ff\u4ee3\uff0c\u7528\u6237\u4e5f\u53ef\u4ee5\u4f7f\u7528OpenStack\u7684\u539f\u751fAPI\uff0c\u6211\u4eec\u628a\u5b83\u53eb\u505a\u201cOpenStack API\u201d\u3002

\u6d88\u606f\u961f\u5217\uff08Rabbit MQ Server\uff09
OpenStack\u5185\u90e8\u5728\u9075\u5faaAMQP\uff08\u9ad8\u7ea7\u6d88\u606f\u961f\u5217\u534f\u8bae\uff09\u7684\u57fa\u7840\u4e0a\u91c7\u7528\u6d88\u606f\u961f\u5217\u8fdb\u884c\u901a\u4fe1\u3002Nova\u5bf9\u8bf7\u6c42\u5e94\u7b54\u8fdb\u884c\u5f02\u6b65\u8c03\u7528\uff0c\u5f53\u8bf7\u6c42\u63a5\u6536\u540e\u4fbf\u5219\u7acb\u5373\u89e6\u53d1\u4e00\u4e2a\u56de\u8c03\u3002\u7531\u4e8e\u4f7f\u7528\u4e86\u5f02\u6b65\u901a\u4fe1\uff0c\u4e0d\u4f1a\u6709\u7528\u6237\u7684\u52a8\u4f5c\u88ab\u957f\u7f6e\u4e8e\u7b49\u5f85\u72b6\u6001\u3002\u4f8b\u5982\uff0c\u542f\u52a8\u4e00\u4e2a\u5b9e\u4f8b\u6216\u4e0a\u4f20\u4e00\u4efd\u955c\u50cf\u7684\u8fc7\u7a0b\u8f83\u4e3a\u8017\u65f6\uff0cAPI\u8c03\u7528\u5c31\u5c06\u7b49\u5f85\u8fd4\u56de\u7ed3\u679c\u800c\u4e0d\u5f71\u54cd\u5176\u5b83\u64cd\u4f5c\uff0c\u5728\u6b64\u5f02\u6b65\u901a\u4fe1\u8d77\u5230\u4e86\u5f88\u5927\u4f5c\u7528\uff0c\u4f7f\u6574\u4e2a\u7cfb\u7edf\u53d8\u5f97\u66f4\u52a0\u9ad8\u6548\u3002

\u8fd0\u7b97\u5de5\u4f5c\u7ad9\uff08nova-compute\uff09
\u8fd0\u7b97\u5de5\u4f5c\u7ad9\u7684\u4e3b\u8981\u4efb\u52a1\u662f\u7ba1\u7406\u5b9e\u4f8b\u7684\u6574\u4e2a\u751f\u547d\u5468\u671f\u3002\u4ed6\u4eec\u901a\u8fc7\u6d88\u606f\u961f\u5217\u63a5\u6536\u8bf7\u6c42\u5e76\u6267\u884c\uff0c\u4ece\u800c\u5bf9\u5b9e\u4f8b\u8fdb\u884c\u5404\u79cd\u64cd\u4f5c\u3002\u5728\u5178\u578b\u5b9e\u9645\u751f\u4ea7\u73af\u5883\u4e0b\uff0c\u4f1a\u67b6\u8bbe\u8bb8\u591a\u8fd0\u7b97\u5de5\u4f5c\u7ad9\uff0c\u6839\u636e\u8c03\u5ea6\u7b97\u6cd5\uff0c\u4e00\u4e2a\u5b9e\u4f8b\u53ef\u4ee5\u5728\u53ef\u7528\u7684\u4efb\u610f\u4e00\u53f0\u8fd0\u7b97\u5de5\u4f5c\u7ad9\u4e0a\u90e8\u7f72\u3002

\u7f51\u7edc\u63a7\u5236\u5668\uff08nova-network\uff09
\u7f51\u7edc\u63a7\u5236\u5668\u5904\u7406\u4e3b\u673a\u7684\u7f51\u7edc\u914d\u7f6e\uff0c\u4f8b\u5982IP\u5730\u5740\u5206\u914d\uff0c\u914d\u7f6e\u9879\u76eeVLAN\uff0c\u8bbe\u5b9a\u5b89\u5168\u7fa4\u7ec4\u4ee5\u53ca\u4e3a\u8ba1\u7b97\u8282\u70b9\u914d\u7f6e\u7f51\u7edc\u3002

\u5377\u5de5\u4f5c\u7ad9\uff08nova-volume\uff09
\u5377\u5de5\u4f5c\u7ad9\u7ba1\u7406\u57fa\u4e8eLVM\u7684\u5b9e\u4f8b\u5377\uff0c\u5b83\u80fd\u591f\u4e3a\u4e00\u4e2a\u5b9e\u4f8b\u521b\u5efa\u3001\u5220\u9664\u3001\u9644\u52a0\u5377\uff0c\u4e5f\u53ef\u4ee5\u4ece\u4e00\u4e2a\u5b9e\u4f8b\u4e2d\u5206\u79bb\u5377\u3002\u5377\u7ba1\u7406\u4e3a\u4f55\u5982\u6b64\u91cd\u8981\uff1f\u56e0\u4e3a\u5b83\u63d0\u4f9b\u4e86\u4e00\u79cd\u4fdd\u6301\u5b9e\u4f8b\u6301\u7eed\u5b58\u50a8\u7684\u624b\u6bb5\uff0c\u6bd4\u5982\u5f53\u7ed3\u675f\u4e00\u4e2a\u5b9e\u4f8b\u540e\uff0c\u6839\u5206\u533a\u5982\u679c\u662f\u975e\u6301\u7eed\u5316\u7684\uff0c\u90a3\u4e48\u5bf9\u5176\u7684\u4efb\u4f55\u6539\u53d8\u90fd\u5c06\u4e22\u5931\u3002\u53ef\u662f\uff0c\u5982\u679c\u4ece\u4e00\u4e2a\u5b9e\u4f8b\u4e2d\u5c06\u5377\u5206\u79bb\u51fa\u6765\uff0c\u6216\u8005\u4e3a\u8fd9\u4e2a\u5b9e\u4f8b\u9644\u52a0\u4e0a\u5377\u7684\u8bdd\uff0c\u5373\u4f7f\u5b9e\u4f8b\u88ab\u5173\u95ed\uff0c\u6570\u636e\u4ecd\u7136\u4fdd\u5b58\u5176\u4e2d\u3002\u8fd9\u4e9b\u6570\u636e\u53ef\u4ee5\u901a\u8fc7\u5c06\u5377\u9644\u52a0\u5230\u539f\u5b9e\u4f8b\u6216\u5176\u4ed6\u5b9e\u4f8b\u7684\u65b9\u5f0f\u800c\u91cd\u65b0\u8bbf\u95ee\u3002
\u56e0\u6b64\uff0c\u4e3a\u4e86\u65e5\u540e\u8bbf\u95ee\uff0c\u91cd\u8981\u6570\u636e\u52a1\u5fc5\u8981\u5199\u5165\u5377\u4e2d\u3002\u8fd9\u79cd\u5e94\u7528\u5bf9\u4e8e\u6570\u636e\u670d\u52a1\u5668\u5b9e\u4f8b\u7684\u5b58\u50a8\u800c\u8a00\uff0c\u5c24\u4e3a\u91cd\u8981\u3002

\u8c03\u5ea6\u5668\uff08nova-scheduler\uff09
\u8c03\u5ea6\u5668\u8d1f\u8d23\u628anova-API\u8c03\u7528\u9001\u8fbe\u7ed9\u76ee\u6807\u3002\u8c03\u5ea6\u5668\u4ee5\u540d\u4e3a\u201cnova-schedule\u201d\u7684\u5b88\u62a4\u8fdb\u7a0b\u65b9\u5f0f\u8fd0\u884c\uff0c\u5e76\u6839\u636e\u8c03\u5ea6\u7b97\u6cd5\u4ece\u53ef\u7528\u8d44\u6e90\u6c60\u4e2d\u6070\u5f53\u5730\u9009\u62e9\u8fd0\u7b97\u670d\u52a1\u5668\u3002\u6709\u5f88\u591a\u56e0\u7d20\u90fd\u53ef\u4ee5\u5f71\u54cd\u8c03\u5ea6\u7ed3\u679c\uff0c\u6bd4\u5982\u8d1f\u8f7d\u3001\u5185\u5b58\u3001\u5b50\u8282\u70b9\u7684\u8fdc\u8fd1\u3001CPU\u67b6\u6784\u7b49\u7b49\u3002\u5f3a\u5927\u7684\u662fnova\u8c03\u5ea6\u5668\u91c7\u7528\u7684\u662f\u53ef\u63d2\u5165\u5f0f\u67b6\u6784\u3002
\u76ee\u524dnova\u8c03\u5ea6\u5668\u4f7f\u7528\u4e86\u51e0\u79cd\u57fa\u672c\u7684\u8c03\u5ea6\u7b97\u6cd5\uff1a
\u968f\u673a\u5316\uff1a\u4e3b\u673a\u968f\u673a\u9009\u62e9\u53ef\u7528\u8282\u70b9\uff1b
\u53ef\u7528\u5316\uff1a\u4e0e\u968f\u673a\u76f8\u4f3c\uff0c\u53ea\u662f\u968f\u673a\u9009\u62e9\u7684\u8303\u56f4\u88ab\u6307\u5b9a\uff1b
\u7b80\u5355\u5316\uff1a\u5e94\u7528\u8fd9\u79cd\u65b9\u5f0f\uff0c\u4e3b\u673a\u9009\u62e9\u8d1f\u8f7d\u6700\u5c0f\u8005\u6765\u8fd0\u884c\u5b9e\u4f8b\u3002\u8d1f\u8f7d\u6570\u636e\u53ef\u4ee5\u4ece\u522b\u5904\u83b7\u5f97\uff0c\u5982\u8d1f\u8f7d\u5747\u8861\u670d\u52a1\u5668\u3002

\uff08\u4e8c\uff09OpenStack\u955c\u50cf\u670d\u52a1\u5668\u2014-GlanceOpenStack\u955c\u50cf\u670d\u52a1\u5668\u662f\u4e00\u5957\u865a\u62df\u673a\u955c\u50cf\u53d1\u73b0\u3001\u6ce8\u518c\u3001\u68c0\u7d22\u7cfb\u7edf\uff0c\u6211\u4eec\u53ef\u4ee5\u5c06\u955c\u50cf\u5b58\u50a8\u5230\u4ee5\u4e0b\u4efb\u610f\u4e00\u79cd\u5b58\u50a8\u4e2d\uff1a
\u672c\u5730\u6587\u4ef6\u7cfb\u7edf\uff08\u9ed8\u8ba4\uff09
l OpenStack\u5bf9\u8c61\u5b58\u50a8
l S3\u76f4\u63a5\u5b58\u50a8
l S3\u5bf9\u8c61\u5b58\u50a8\uff08\u4f5c\u4e3aS3\u8bbf\u95ee\u7684\u4e2d\u95f4\u6e20\u9053\uff09
l HTTP\uff08\u53ea\u8bfb\uff09

\u529f\u80fd\u53ca\u7279\u70b9
\u63d0\u4f9b\u955c\u50cf\u76f8\u5173\u670d\u52a1

Glance\u6784\u4ef6
l Glance\u63a7\u5236\u5668
l Glance\u6ce8\u518c\u5668

\uff08\u4e09\uff09OpenStack\u5b58\u50a8\u8bbe\u65bd\u2014-Swift
Swift\u4e3aOpenStack\u63d0\u4f9b\u4e00\u79cd\u5206\u5e03\u5f0f\u3001\u6301\u7eed\u865a\u62df\u5bf9\u8c61\u5b58\u50a8\uff0c\u5b83\u7c7b\u4f3c\u4e8eAmazon Web Service\u7684S3\u7b80\u5355\u5b58\u50a8\u670d\u52a1\u3002Swift\u5177\u6709\u8de8\u8282\u70b9\u767e\u7ea7\u5bf9\u8c61\u7684\u5b58\u50a8\u80fd\u529b\u3002Swift\u5185\u5efa\u5197\u4f59\u548c\u5931\u6548\u5907\u63f4\u7ba1\u7406\uff0c\u4e5f\u80fd\u591f\u5904\u7406\u5f52\u6863\u548c\u5a92\u4f53\u6d41\uff0c\u7279\u522b\u662f\u5bf9\u5927\u6570\u636e\uff08\u5343\u5146\u5b57\u8282\uff09\u548c\u5927\u5bb9\u91cf\uff08\u591a\u5bf9\u8c61\u6570\u91cf\uff09\u7684\u6d4b\u5ea6\u975e\u5e38\u9ad8\u6548\u3002

\u529f\u80fd\u53ca\u7279\u70b9
l \u6d77\u91cf\u5bf9\u8c61\u5b58\u50a8
l \u5927\u6587\u4ef6\uff08\u5bf9\u8c61\uff09\u5b58\u50a8
l \u6570\u636e\u5197\u4f59\u7ba1\u7406
l \u5f52\u6863\u80fd\u529b\u2014\u2013\u5904\u7406\u5927\u6570\u636e\u96c6
l \u4e3a\u865a\u62df\u673a\u548c\u4e91\u5e94\u7528\u63d0\u4f9b\u6570\u636e\u5bb9\u5668
l \u5904\u7406\u6d41\u5a92\u4f53
l \u5bf9\u8c61\u5b89\u5168\u5b58\u50a8
l \u5907\u4efd\u4e0e\u5f52\u6863
l \u826f\u597d\u7684\u53ef\u4f38\u7f29\u6027

Swift\u7ec4\u4ef6
l Swift\u8d26\u6237
l Swift\u5bb9\u5668
l Swift\u5bf9\u8c61
l Swift\u4ee3\u7406
l Swift RING

Swift\u4ee3\u7406\u670d\u52a1\u5668
\u7528\u6237\u90fd\u662f\u901a\u8fc7Swift-API\u4e0e\u4ee3\u7406\u670d\u52a1\u5668\u8fdb\u884c\u4ea4\u4e92\uff0c\u4ee3\u7406\u670d\u52a1\u5668\u6b63\u662f\u63a5\u6536\u5916\u754c\u8bf7\u6c42\u7684\u95e8\u536b\uff0c\u5b83\u68c0\u6d4b\u5408\u6cd5\u7684\u5b9e\u4f53\u4f4d\u7f6e\u5e76\u8def\u7531\u5b83\u4eec\u7684\u8bf7\u6c42\u3002
\u6b64\u5916\uff0c\u4ee3\u7406\u670d\u52a1\u5668\u4e5f\u540c\u65f6\u5904\u7406\u5b9e\u4f53\u5931\u6548\u800c\u8f6c\u79fb\u65f6\uff0c\u6545\u969c\u5207\u6362\u7684\u5b9e\u4f53\u91cd\u590d\u8def\u7531\u8bf7\u6c42\u3002

Swift\u5bf9\u8c61\u670d\u52a1\u5668
\u5bf9\u8c61\u670d\u52a1\u5668\u662f\u4e00\u79cd\u4e8c\u8fdb\u5236\u5b58\u50a8\uff0c\u5b83\u8d1f\u8d23\u5904\u7406\u672c\u5730\u5b58\u50a8\u4e2d\u7684\u5bf9\u8c61\u6570\u636e\u7684\u5b58\u50a8\u3001\u68c0\u7d22\u548c\u5220\u9664\u3002\u5bf9\u8c61\u90fd\u662f\u6587\u4ef6\u7cfb\u7edf\u4e2d\u5b58\u653e\u7684\u5178\u578b\u7684\u4e8c\u8fdb\u5236\u6587\u4ef6\uff0c\u5177\u6709\u6269\u5c55\u6587\u4ef6\u5c5e\u6027\u7684\u5143\u6570\u636e\uff08xattr\uff09\u3002
\u6ce8\u610f\uff1axattr\u683c\u5f0f\u88abLinux\u4e2d\u7684ext3/4\uff0cXFS\uff0cBtrfs\uff0cJFS\u548cReiserFS\u6240\u652f\u6301\uff0c\u4f46\u662f\u5e76\u6ca1\u6709\u6709\u6548\u6d4b\u8bd5\u8bc1\u660e\u5728XFS\uff0cJFS\uff0cReiserFS\uff0cReiser4\u548cZFS\u4e0b\u4e5f\u540c\u6837\u80fd\u8fd0\u884c\u826f\u597d\u3002\u4e0d\u8fc7\uff0cXFS\u88ab\u8ba4\u4e3a\u662f\u5f53\u524d\u6700\u597d\u7684\u9009\u62e9\u3002

Swift\u5bb9\u5668\u670d\u52a1\u5668
\u5bb9\u5668\u670d\u52a1\u5668\u5c06\u5217\u51fa\u4e00\u4e2a\u5bb9\u5668\u4e2d\u7684\u6240\u6709\u5bf9\u8c61\uff0c\u9ed8\u8ba4\u5bf9\u8c61\u5217\u8868\u5c06\u5b58\u50a8\u4e3aSQLite\u6587\u4ef6\uff08\u8bd1\u8005\u6ce8\uff1a\u4e5f\u53ef\u4ee5\u4fee\u6539\u4e3aMySQL\uff0c\u5b89\u88c5\u4e2d\u5c31\u662f\u4ee5MySQL\u4e3a\u4f8b\uff09\u3002\u5bb9\u5668\u670d\u52a1\u5668\u4e5f\u4f1a\u7edf\u8ba1\u5bb9\u5668\u4e2d\u5305\u542b\u7684\u5bf9\u8c61\u6570\u91cf\u53ca\u5bb9\u5668\u7684\u5b58\u50a8\u7a7a\u95f4\u8017\u8d39\u3002

Swift\u8d26\u6237\u670d\u52a1\u5668
\u8d26\u6237\u670d\u52a1\u5668\u4e0e\u5bb9\u5668\u670d\u52a1\u5668\u7c7b\u4f3c\uff0c\u5c06\u5217\u51fa\u5bb9\u5668\u4e2d\u7684\u5bf9\u8c61\u3002

Ring\uff08\u7d22\u5f15\u73af\uff09
Ring\u5bb9\u5668\u8bb0\u5f55\u7740Swift\u4e2d\u7269\u7406\u5b58\u50a8\u5bf9\u8c61\u7684\u4f4d\u7f6e\u4fe1\u606f\uff0c\u5b83\u662f\u771f\u5b9e\u7269\u7406\u5b58\u50a8\u4f4d\u7f6e\u7684\u5b9e\u4f53\u540d\u7684\u865a\u62df\u6620\u5c04\uff0c\u7c7b\u4f3c\u4e8e\u67e5\u627e\u53ca\u5b9a\u4f4d\u4e0d\u540c\u96c6\u7fa4\u7684\u5b9e\u4f53\u771f\u5b9e\u7269\u7406\u4f4d\u7f6e\u7684\u7d22\u5f15\u670d\u52a1\u3002\u8fd9\u91cc\u6240\u8c13\u7684\u5b9e\u4f53\u6307\u8d26\u6237\u3001\u5bb9\u5668\u3001\u5bf9\u8c61\uff0c\u5b83\u4eec\u90fd\u62e5\u6709\u5c5e\u4e8e\u81ea\u5df1\u7684\u4e0d\u540c\u7684Rings\u3002

\uff08\u56db\uff09OpenStack\u8ba4\u8bc1\u670d\u52a1\uff08Keystone\uff09
Keystone\u4e3a\u6240\u6709\u7684OpenStack\u7ec4\u4ef6\u63d0\u4f9b\u8ba4\u8bc1\u548c\u8bbf\u95ee\u7b56\u7565\u670d\u52a1\uff0c\u5b83\u4f9d\u8d56\u81ea\u8eabREST\uff08\u57fa\u4e8eIdentity API\uff09\u7cfb\u7edf\u8fdb\u884c\u5de5\u4f5c\uff0c\u4e3b\u8981\u5bf9\uff08\u4f46\u4e0d\u9650\u4e8e\uff09Swift\u3001Glance\u3001Nova\u7b49\u8fdb\u884c\u8ba4\u8bc1\u4e0e\u6388\u6743\u3002\u4e8b\u5b9e\u4e0a\uff0c\u6388\u6743\u901a\u8fc7\u5bf9\u52a8\u4f5c\u6d88\u606f\u6765\u6e90\u8005\u8bf7\u6c42\u7684\u5408\u6cd5\u6027\u8fdb\u884c\u9274\u5b9a\u3002\u5982\u4e0b\u56fe\u6240\u793a\uff1a

Keystone\u91c7\u7528\u4e24\u79cd\u6388\u6743\u65b9\u5f0f\uff0c\u4e00\u79cd\u57fa\u4e8e\u7528\u6237\u540d/\u5bc6\u7801\uff0c\u53e6\u4e00\u79cd\u57fa\u4e8e\u4ee4\u724c\uff08Token\uff09\u3002\u9664\u6b64\u4e4b\u5916\uff0cKeystone\u63d0\u4f9b\u4ee5\u4e0b\u4e09\u79cd\u670d\u52a1\uff1a
l \u4ee4\u724c\u670d\u52a1\uff1a\u542b\u6709\u6388\u6743\u7528\u6237\u7684\u6388\u6743\u4fe1\u606f
l \u76ee\u5f55\u670d\u52a1\uff1a\u542b\u6709\u7528\u6237\u5408\u6cd5\u64cd\u4f5c\u7684\u53ef\u7528\u670d\u52a1\u5217\u8868
l \u7b56\u7565\u670d\u52a1\uff1a\u5229\u7528Keystone\u5177\u4f53\u6307\u5b9a\u7528\u6237\u6216\u7fa4\u7ec4\u67d0\u4e9b\u8bbf\u95ee\u6743\u9650

\u8ba4\u8bc1\u670d\u52a1\u7ec4\u4ef6
\u670d\u52a1\u5165\u53e3\uff1a\u5982Nova\u3001Swift\u548cGlance\u4e00\u6837\u6bcf\u4e2aOpenStack\u670d\u52a1\u90fd\u62e5\u6709\u4e00\u4e2a\u6307\u5b9a\u7684\u7aef\u53e3\u548c\u4e13\u5c5e\u7684URL\uff0c\u6211\u4eec\u79f0\u5176\u4e3a\u5165\u53e3\uff08endpoints\uff09\u3002

l \u533a\u4f4d\uff1a\u5728\u67d0\u4e2a\u6570\u636e\u4e2d\u5fc3\uff0c\u4e00\u4e2a\u533a\u4f4d\u5177\u4f53\u6307\u5b9a\u4e86\u4e00\u5904\u7269\u7406\u4f4d\u7f6e\u3002\u5728\u5178\u578b\u7684\u4e91\u67b6\u6784\u4e2d\uff0c\u5982\u679c\u4e0d\u662f\u6240\u6709\u7684\u670d\u52a1\u90fd\u8bbf\u95ee\u5206\u5e03\u5f0f\u6570\u636e\u4e2d\u5fc3\u6216\u670d\u52a1\u5668\u7684\u8bdd\uff0c\u5219\u4e5f\u79f0\u5176\u4e3a\u533a\u4f4d\u3002

l \u7528\u6237\uff1aKeystone\u6388\u6743\u4f7f\u7528\u8005
\u8bd1\u8005\u6ce8\uff1a\u4ee3\u8868\u4e00\u4e2a\u4e2a\u4f53\uff0cOpenStack\u4ee5\u7528\u6237\u7684\u5f62\u5f0f\u6765\u6388\u6743\u670d\u52a1\u7ed9\u5b83\u4eec\u3002\u7528\u6237\u62e5\u6709\u8bc1\u4e66\uff08credentials\uff09\uff0c\u4e14\u53ef\u80fd\u5206\u914d\u7ed9\u4e00\u4e2a\u6216\u591a\u4e2a\u79df\u6237\u3002\u7ecf\u8fc7\u9a8c\u8bc1\u540e\uff0c\u4f1a\u4e3a\u6bcf\u4e2a\u5355\u72ec\u7684\u79df\u6237\u63d0\u4f9b\u4e00\u4e2a\u7279\u5b9a\u7684\u4ee4\u724c\u3002[\u6765\u6e90\uff1ahttp://blog.sina.com.cn/s/blog_70064f190100undy.html]

l \u670d\u52a1\uff1a\u603b\u4f53\u800c\u8a00\uff0c\u4efb\u4f55\u901a\u8fc7Keystone\u8fdb\u884c\u8fde\u63a5\u6216\u7ba1\u7406\u7684\u7ec4\u4ef6\u90fd\u88ab\u79f0\u4e3a\u670d\u52a1\u3002\u4e3e\u4e2a\u4f8b\u5b50\uff0c\u6211\u4eec\u53ef\u4ee5\u79f0Glance\u4e3aKeystone\u7684\u670d\u52a1\u3002

l \u89d2\u8272\uff1a\u4e3a\u4e86\u7ef4\u62a4\u5b89\u5168\u9650\u5b9a\uff0c\u5c31\u4e91\u5185\u7279\u5b9a\u7528\u6237\u53ef\u6267\u884c\u7684\u64cd\u4f5c\u800c\u8a00\uff0c\u8be5\u7528\u6237\u5173\u8054\u7684\u89d2\u8272\u662f\u975e\u5e38\u91cd\u8981\u7684\u3002
\u8bd1\u8005\u6ce8\uff1a\u4e00\u4e2a\u89d2\u8272\u662f\u5e94\u7528\u4e8e\u67d0\u4e2a\u79df\u6237\u7684\u4f7f\u7528\u6743\u9650\u96c6\u5408\uff0c\u4ee5\u5141\u8bb8\u67d0\u4e2a\u6307\u5b9a\u7528\u6237\u8bbf\u95ee\u6216\u4f7f\u7528\u7279\u5b9a\u64cd\u4f5c\u3002\u89d2\u8272\u662f\u4f7f\u7528\u6743\u9650\u7684\u903b\u8f91\u5206\u7ec4\uff0c\u5b83\u4f7f\u5f97\u901a\u7528\u7684\u6743\u9650\u53ef\u4ee5\u7b80\u5355\u5730\u5206\u7ec4\u5e76\u7ed1\u5b9a\u5230\u4e0e\u67d0\u4e2a\u6307\u5b9a\u79df\u6237\u76f8\u5173\u7684\u7528\u6237\u3002

l \u79df\u95f4\uff1a\u79df\u95f4\u6307\u7684\u662f\u5177\u6709\u5168\u90e8\u670d\u52a1\u5165\u53e3\u5e76\u914d\u6709\u7279\u5b9a\u6210\u5458\u89d2\u8272\u7684\u4e00\u4e2a\u9879\u76ee\u3002
\u8bd1\u8005\u6ce8\uff1a\u4e00\u4e2a\u79df\u95f4\u6620\u5c04\u5230\u4e00\u4e2aNova\u7684\u201cproject-id\u201d\uff0c\u5728\u5bf9\u8c61\u5b58\u50a8\u4e2d\uff0c\u4e00\u4e2a\u79df\u95f4\u53ef\u4ee5\u6709\u591a\u4e2a\u5bb9\u5668\u3002\u6839\u636e\u4e0d\u540c\u7684\u5b89\u88c5\u65b9\u5f0f\uff0c\u4e00\u4e2a\u79df\u95f4\u53ef\u4ee5\u4ee3\u8868\u4e00\u4e2a\u5ba2\u6237\u3001\u5e10\u53f7\u3001\u7ec4\u7ec7\u6216\u9879\u76ee\u3002

\uff08\u4e94\uff09OpenStack\u7ba1\u7406\u7684Web\u63a5\u53e3\u2014-Horizon
Horizon\u662f\u4e00\u4e2a\u7528\u4ee5\u7ba1\u7406\u3001\u63a7\u5236OpenStack\u670d\u52a1\u7684Web\u63a7\u5236\u9762\u677f\uff0c\u5b83\u53ef\u4ee5\u7ba1\u7406\u5b9e\u4f8b\u3001\u955c\u50cf\u3001\u521b\u5efa\u5bc6\u5319\u5bf9\uff0c\u5bf9\u5b9e\u4f8b\u6dfb\u52a0\u5377\u3001\u64cd\u4f5cSwift\u5bb9\u5668\u7b49\u3002\u9664\u6b64\u4e4b\u5916\uff0c\u7528\u6237\u8fd8\u53ef\u4ee5\u5728\u63a7\u5236\u9762\u677f\u4e2d\u4f7f\u7528\u7ec8\u7aef\uff08console\uff09\u6216VNC\u76f4\u63a5\u8bbf\u95ee\u5b9e\u4f8b\u3002\u603b\u4e4b\uff0cHorizon\u5177\u6709\u5982\u4e0b\u4e00\u4e9b\u7279\u70b9\uff1a
l \u5b9e\u4f8b\u7ba1\u7406\uff1a\u521b\u5efa\u3001\u7ec8\u6b62\u5b9e\u4f8b\uff0c\u67e5\u770b\u7ec8\u7aef\u65e5\u5fd7\uff0cVNC\u8fde\u63a5\uff0c\u6dfb\u52a0\u5377\u7b49
l \u8bbf\u95ee\u4e0e\u5b89\u5168\u7ba1\u7406\uff1a\u521b\u5efa\u5b89\u5168\u7fa4\u7ec4\uff0c\u7ba1\u7406\u5bc6\u5319\u5bf9\uff0c\u8bbe\u7f6e\u6d6e\u52a8IP\u7b49
l \u504f\u597d\u8bbe\u5b9a\uff1a\u5bf9\u865a\u62df\u786c\u4ef6\u6a21\u677f\u53ef\u4ee5\u8fdb\u884c\u4e0d\u540c\u504f\u597d\u8bbe\u5b9a
l \u955c\u50cf\u7ba1\u7406\uff1a\u7f16\u8f91\u6216\u5220\u9664\u955c\u50cf
l \u67e5\u770b\u670d\u52a1\u76ee\u5f55
l \u7ba1\u7406\u7528\u6237\u3001\u914d\u989d\u53ca\u9879\u76ee\u7528\u9014
l \u7528\u6237\u7ba1\u7406\uff1a\u521b\u5efa\u7528\u6237\u7b49
l \u5377\u7ba1\u7406\uff1a\u521b\u5efa\u5377\u548c\u5feb\u7167
l \u5bf9\u8c61\u5b58\u50a8\u5904\u7406\uff1a\u521b\u5efa\u3001\u5220\u9664\u5bb9\u5668\u548c\u5bf9\u8c61
l \u4e3a\u9879\u76ee\u4e0b\u8f7d\u73af\u5883\u53d8\u91cf



本文详细介绍了Openstack的网络原理和实现,主要内容包括:Neutron的网络架构及网络模型还有neutron虚拟化的实现和对二三层网桥的理解。

一、Neutron概述

Neutron是一个用Python写的分布式软件项目,用来实现OpenStack中的虚拟网络服务,实现软件定义网络。Neutron北向有自己的REST API,中间有自己的业务逻辑层,有自己的DB和进程之间通讯的消息机制。同时Neutron常见的进程包括Neutron-server和Neutron-agent,分布式部署在不同的操作系统。

OpenStack发展至今,已经经历了20个版本。虽然版本一直在更替,发展的项目也越来越多,但是Neutron作为OpenStack三大核心之一,它的地位是不会动摇的。只不过当初的Neutron也只是Nova项目的一个模块而已,到F版本正式从中剥离,成为一个正式的项目。

从Nova-Network起步,经过Quantum,多年的积累Neutron在网络各个方面都取得了长足的发展。其主要的功能为:

(1)支持多租户隔离

(2)支持多种网络类型同时使用

(3)支持隧道技术(VXLAN、GRE)

(4)支持路由转发、SNAT、DNAT技术

(5)支持Floating IP和安全组

多平面租户私有网络

图中同时有VXLAN和VLAN两种网络,两种网络之间互相隔离。租户A和B各自独占一个网络,并且通过自己的路由器连接到了外部网络。路由器为租户的每个虚拟机提供了Float IP,完成vm和外网之间的互相访问。

二、Neutron架构及网络模型

1、Neutron架构

Neutron-sever可以理解为类似于nova-api那样的一个专门用来接收API调用的组件,负责将不同的api发送到不同Neutron plugin。

Neutron-plugin可以理解为不同网络功能实现的入口,接收server发来的API,向database完成一些注册信息。然后将具体要执行的业务操作和参数通知给对应的agent来执行。

Agent就是plugin在设备上的代理,接受相应的plugin通知的业务操作和参数,并转换为具体的命令行操作。

总得来说,server负责交互接收请求,plugin操作数据库,agent负责具体的网络创建。

2、Neutron架构之Neutron-Server

(1)Neutron-server的本质是一个Python Web Server Gateway Interface(WSGI),是一个Web框架。

(2)Neutron-server接收两种请求:

REST API请求:接收REST API请求,并将REST API分发到对应的Plugin(L3RouterPlugin)。

RPC请求:接收Plugin agent请求,分发到对应的Plugin(NeutronL3agent)。

3、Neutron架构之Neutron-Plugin

Neutron-plugin分为Core-plugin和Service-plugin。

Core-plugin:ML2负责管理二层网络,ML2主要包括Network、Subnet、Port三类核心资源,对三类资源进行操作的REST API是原生支持的。

Service-plugin:实现L3-L7网络,包括Router、Firewall、VPN。

4、Neutron架构之Neutron-Agent

(1)Neutron-agent配置的业务对象是部署在每一个网络节点或者计算节点的网元。

(2)网元区分为PNF和VNF:

PNF:物理网络功能,指传统的路由器、交换机等硬件设备

VNF:虚拟网络功能,通过软件实现的网络功能(二层交换、三层路由等)

(3)Neutron-agent三层架构如下图:

Neutron-agent架构分为三层,北向为Neutron-server提供RPC接口,供Neutron server调用,南向通过CLI协议栈对Neutron VNF进行配置。在中间会进行两种模型的转换,从RPC模型转换为CLI模型。

5、Neutron架构之通信原理

(1)Neutron是OpenStack的核心组件,官网给出Neutron的定义是NaaS。

(2)Naas有两层含义:

对外接口:Neutron为Network等网络资源提供了RESTful API、CLI、GUI等模型。

内部实现:利用Linux原生或者开源的虚拟网络功能,加上硬件网络,构建网络。

Neutron接收到API请求后,交由模块WSGI进行初步的处理,然后这个模块通过Python API调用neutron的Plugin。Plugin做了相应的处理后,通过RPC调用Neutron的Agent组件,agent再通过某种协议对虚拟网络功能进行配置。其中承载RPC通信的是AMQP server,在部署中常用的开源软件就是RabbitMQ

6、Neutron架构之控制节点网络模型

控制节点没有实现具体的网络功能,它对各种虚拟设备做管理配合的工作。

(1)Neutron:Neutron-server核心组件。

(2)API/CLI:Neutron进程通过API/CLI接口接收请求。

(3)OVS Agent:Neutron通过RPC协议与agent通信。

控制节点部署着各种服务和Neutron-server,Neutron-server通过api/cli接口接收请求信息,通过RPC和Agent进行交互。Agent再调用ovs/linuxbridge等网络设备创建网络。

7、Neutron架构之计算节点网络模型

(1)qbr:Linux Bridge网桥

(2)br-int:OVS网桥

(3)br-tun:OVS隧道网桥

(4)VXLAN封装:网络类型的转变

8、Neutron架构之网络节点网络模型

网络节点部署了Router、DHCP Server服务,网桥连接物理网卡。

(1)Router:路由转发

(2)DHCP: 提供DNS、DHCP等服务。

(3)br-ex: 连接物理网口,连接外网

三、Neutron虚拟化实现功能及设备介绍

1、Neutron虚拟化实现功能

Neutron提供的网络虚拟化能力包括:

(1)二层到七层网络的虚拟化:L2(virtual Switch)、L3(virtual Router 和 LB)、L47(virtual Firewall )等

(2)网络连通性:二层网络和三层网络

(3)租户隔离性

(4)网络安全性

(5)网络拓展性

(6)REST API

(7)更高级的服务,包括 LBaaS,FWaaS,VPNaaS 等

2、Neutron虚拟化功能之二层网络

(1)按照用户权限创建网络:

Provider network:管理员创建,映射租户网络到物理网络

Tenant network:租户创建的普通网络

External network:物理网络

(2)按照网络类型:

Flat network:所有租户网络在一个网络中

Local network:只允许在服务器内通信,不通外网

VLAN network:基于物理VLAN实现的虚拟网络

VXLAN network:基于VXLAN实现的虚拟网络

3、Neutron虚拟化实现功能之租户隔离

Neutron是一个支持多租户的系统,所以租户隔离是Neutron必须要支持的特性。

(1)租户隔离三种含义:管理面隔离、数据面的隔离、故障面的隔离。

(2)不同层次租户网络的隔离性

租户与租户之间三层隔离

同一租户不同网络之间二层隔离

同一租户同一网络不同子网二层隔离

(3)计算节点的 br-int 上,Neutron 为每个虚机连接 OVS 的 access port 分配了内部的 VLAN Tag。这种 Tag 限制了网络流量只能在 Tenant Network 之内。

(4)计算节点的 br-tun 上,Neutron 将内部的 VLAN Tag 转化为 VXLAN Tunnel ID,然后转发到网络节点。

(5)网络节点的 br-tun 上,Neutron 将 VXLAN Tunnel ID 转发了一一对应的 内部 VLAN Tag,使得 网络流被不同的服务处理。

(6)网络节点的 br-int 上连接的 DHCP 和 L3 agent 使用 Linux Network Namespace 进行隔离。

4、Neutron虚拟化实现功能之租户网络安全

除了租户隔离以外 Neutron还提供数据网络与外部网络的隔离性。

(1)默认情况下,所有虚拟机通过外网的流量全部走网络节点的L3 agent。在这里,内部的固定IP被转化为外部的浮动IP地址

(1)Neutron还利用Linux iptables特性,实现其Security Group特性,从而保证访问虚机的安全性

(3)Neutron利用网络控制节点上的Network Namespace中的iptables,实现了进出租户网络的网络防火墙,从而保证了进出租户网络的安全性。

5、Neutron虚拟化设备

(1)端口:Port代表虚拟网络交换机上的一个虚拟交换机端口

虚拟机的网卡连接到Port上就会拥有MAC地址和IP地址

(2)虚拟交换机:Neutron默认采用开源的Openvswitch,

同时还支持Linux Bridge

(3)虚拟路由器VR:

四、Neutron网桥及二三层网络理解

1、Neutron-Local-Bridge

仅用于测试;网桥没有与物理网卡相连VM不通外网。

图中创建了两个local network,分别有其对应的qbr网桥。Vm123的虚拟网卡通过tap连接到qbr网桥上。其中2和3属于同一个network可以通信,1属于另一个网络不能和23进行通信。并且qbr网桥不连物理网卡,所以说local网络虚拟机只能同网络通信,不能连通外网。

2、Neutron-Flat-Bridge

Flat网络是在local网络的基础上实现不同宿主机之间的二层互联,但是每个flat network都会占用一个宿主机的物理接口。其中qbr1对应的flatnetwork 连接 eth1 qbr2,两个网络的虚机在物理二层可以互联。其它跟local network类似。

3、Neutron-VLAN-Bridge

在基于linux bridge的vlan网络中,eht1物理网卡上创建了两个vlan接口,1.1连接到qbr1网桥,1.2连接到了qbr2网桥。在这种情况下vm通过eth1.1或者eth1.2发送到eth1的包会被打上各自的vlan id。此时vm2和vm3属于同一个network所以是互通的,vm与vm2和vm3不通。

4、Neutron-VXLAN-Bridge

这个是以Linux bridge作agent的Vxlan网络:

Vxlan网络比Vxlan网络多了个VXLAN隧道,在Openstack中创建好内部网络和实例后,agent就会在计算节点和网络节点创建一对vxlan vtep.组成隧道的两个端点。

Vxlan连接在eth0网口。在网络节点多了两个组件dhcp 和router,他们分别通过一对veth与qbr网桥连接在一起,多个dhcp和路由之间使用namesapce隔离,当vm产生ping包时,发往linux 网桥qbr1,通过网桥在vxlan12上封装数据包,数据通过eth0网卡出计算节点到网络节点的eth0,在vxlan12解包。到达路由器之后经过nat地址转换,从eth1出去访问外网,由租户网络到运营商网络再到外部网络。

5、Neutron-VLAN-OVS

与Linux bridge不同,openvswitch 不是通过eth1.1 eth1.2这样的vlan接口来隔离不同的vlan,而是通过openvswitch的流表规则来指定如何对进出br-int的数据进行转发,实现不同vlan的隔离。

图中计算节点的所有虚拟机都连接在int网桥上,虚拟机分为两个网络。Int网桥会对到来的数据包根据network的不同打上vlan id号,然后转发到eth网桥,eth网桥直连物理网络。这时候流量就从计算节点到了网络节点。

网络节点的ehx int网桥的功能相似,多了一个ex网桥,这个网桥是管理提前创建好的,和物理网卡相连,ex网桥和int网桥之间通过一对patch-port相连,虚拟机的流量到达int网桥后经过路由到ex网桥。

6、Neutron-VXLAN-OVS

Vxlan的模型和vlan的模型十分相似,从表面上来看,他俩相比只有一个不同,vlan对应的是ethx网桥,而vxlan对应的是tun网桥。

在这里ethx和tun都是ovs网桥,所以说两者的差别不是实现组件的差别而是组件所执行功能的差别,ethx执行的是普通二层交换机的功能,tun执行的是vxlan中的vtep的功能,图中俩tun对应的接口ip就是vxlan的隧道终结点ip。所以说虚机的数据包在到达tun网桥之前是打的是vlan tag,而到达tun之后会发生网络类型的转换,从vlan封装为vxlan然后到达网络节点。而之前的vlan类型的网络,虚机数据包的类型一直都是vlan。

7、物理的二层与虚拟的二层(VLAN模式)

(1)物理的二层指的是:物理网络是二层网络,基于以太网协议的广播方式进行通信。

(2)虚拟的二层指的是:Neutron实现的虚拟网络也是二层网络(openstack的vm机所用的网络必须是大二层),也是基于以太网协议的广播方式进行通信,但毫无疑问的是该虚拟网络是依赖于物理的二层网络。

(3)物理二层+虚拟二层的典型代表:VLAN网络模式。

8、物理的三层与虚拟的二层(GRE模式与VXLAN模式)

(1)物理三层指的是:物理网络是三层网络,基于IP路由的方式进行通信。

(2)虚拟的二层指的是:Neutron实现的虚拟网络仍然是二层网络(openstack的vm机所用的网络必须是大二层),仍然是基于以太网的广播方式进行通信,但毫无疑问的是该虚拟机网络是依赖于物理的三层网络,这点有点类似于VPN的概念,根本原理就是将私网的包封装起来,最终打上隧道的ip地址传输。

(3)物理三层+虚拟二层的典型代表:GRE模式与VXLAN模式。



所谓OpenStack其实就是一个开源计算机管理平台,可控制整个数据中心的大型计算、储存以及网络资源,它支持所有类型的云环境,包括关键组件、可以覆盖网络。虚拟化等系统操作,OpenStack-powered分布技术来实现灵活地配置资源,方便用户在任何时间增加服务器的CPU和内存等资源,并且不需重启服务器。

所谓OpenStack,其实是一种云操作系统,可控制整个数据中心的大型计算、存储和网络资源池,所有这些都通过一个仪表盘进行管理,该仪表盘可让管理员进行控制,同时使用户能够通过Web界面调配资源。
OpenStack逻辑架构介绍了OpenStack原生架构的组件(全局组件、核心组件和外部组件),组件之间通过API(前提是将请求交于keystone进行身份验证,是否有权限进行通讯)进行点到点的通讯。单个项目内部有很多子功能模块,他们通过AMQP消息代理(RabbitMQ)进行交互,服务的状态存储在数据库中。
OpenStack包括若干个称为OpenStack服务的独立组件。所有服务均可通过一个公共身份服务进行身份验证。除了那些需要管理权限的命令,每个服务之间均可通过公共API进行交互。

OpenStack 是一个开源云平台,主要由私有云供应商和提供公共云服务的商业公司使用,这些公共云服务将 OpenStack 作为其基础架构的一部分进行部署。埃科锐的私有云搭建允许企业和应用程序所有者将基础设施作为服务使用,而无需考虑安装服务器、存储和网络的复杂性∞

OpenStack 起源于Rackspace Hosting 和 NASA 的联合项目,它是一个流行的云平台,有超过 740 个组织与开源平台相关联。 它广泛用于提供私有云服务的数据中心。 此外,OpenStack 安装支持基础架构即服务 (IaaS) 模型,例如我们在 Accrets.com 上的 OpenStack IaaS 解决方案提供了一种新的模型∞

  • openstack鍧楀瓨鍌ㄦ湇鍔¢氳繃浠涔缁勪欢瀹炵幇
    绛旓細Cinder銆OpenStack鏄竴涓紑婧愮殑浜戣绠楀钩鍙帮紝瀹冩彁渚涗簡涓绯诲垪鐨勭粍浠舵潵鏋勫缓鍜岀鐞嗕簯璁$畻鐜銆傚叾涓紝鍧楀瓨鍌ㄦ湇鍔℃槸閫氳繃Cinder缁勪欢鏉ュ疄鐜扮殑銆侰inder涓篛penStack浜戞彁渚涗簡鎸佷箙鍖栫殑鍧楀瓨鍌ㄦ湇鍔★紝绫讳技浜嶢mazon鐨凟BS锛圗lastic Block Store锛夈侰inder鐨勪富瑕佸姛鑳芥槸鍒涘缓銆侀檮鍔犲拰绠$悊鍧楀瓨鍌ㄨ澶囷紝杩欎簺璁惧鍙互琚檮鍔犲埌OpenStack...
  • ...openstack銆 manageone esight 杩欏嚑涓湁浠涔鍖哄埆?
    绛旓細涓銆乫usionsphere:鏈3绉嶅満鏅細1.鏈嶅姟鍣ㄨ櫄鎷熷寲鍦烘櫙:浣跨敤鐨勬槸fusioncompute锛堝熀浜巟en锛2.浜戞暟鎹腑蹇冨満鏅細浣跨敤鐨勬槸鍗庝负鍟嗕笟鐗堢殑openstack+fusioncompute铏氭嫙鍖(鍩轰簬xen)3.NFVI鍦烘櫙锛氫娇鐢ㄧ殑鏄崕涓哄晢涓氱増鐨刼penstack+kvm铏氭嫙鍖 浜屻乫usioncloud锛宖usionsphere鏀瑰悕瀛椾箣鍚庡氨鍙玣usioncloud浜 涓夈乷penstack銆乷penstack鏄...
  • OpenStack鐢ㄦ潵鍋浠涔
    绛旓細浣犲ソ銆OpenStack鏈鍒濇槸Rackspace鍜孨ASA鍏卞悓鎶曞叆鐨勶紝鐜板湪鏄敱寮婧愮ぞ鍖虹淮鎶ゃ傚湪9鏈18鏃ュ嵆灏嗗湪San Diego涓捐鐨Openstack Summit涓婁篃灏嗘湁鍏充簬鏈鏂扮増鏈現olsom鐨勬秷鎭傚煎緱鍏虫敞銆傚畠灏辨槸涓涓狪aaS鐨勪簯骞冲彴杞欢銆傚疄闄呭簲鐢ㄥ満鏅潪甯稿锛屽嚒鏄疘aaS鍙互搴旂敤鐨勫湴鏂筄penstack閮藉彲浠ュ仛鍒般傛瘮濡傝櫄鎷熶富鏈猴紝鍑哄敭璁$畻璧勬簮锛屽叕鍙稿唴閮↖T...
  • openstack鍜宬8s鍖哄埆鏄浠涔?
    绛旓細openstack鏄1鍖朜锛岄氳繃铏氭嫙鍖栫殑鏂瑰紡鎻愪緵寮规х伒娲婚珮鍒╃敤鐜囩殑璁$畻鑳藉姏銆俬adoop鏄疦鍖1锛岄氳繃鍒嗗竷寮忔枃浠剁郴缁熸彁渚涘己澶х殑鏁版嵁澶勭悊鑳藉姏銆
  • openstack涓嶬VM鐨勫叧绯绘槸浠涔?
    绛旓細openstack涓嶬VM鐨勫叧绯伙細KVM鏄渶搴曞眰鐨刪ypervisor锛屾槸鐢ㄦ潵妯℃嫙CPU鐨勮繍琛岋紝涓涓敤鎴疯兘鍦↘VM涓婂畬鎴愯櫄鎷熸満鐨勬搷浣滆繕闇瑕乶etwork鍙婂懆杈圭殑I/O鏀寔锛屽熼壌浜唓emu杩涜涓瀹氱殑淇敼褰㈡垚qemu-kvm銆俹penstack涓嶄細鐩存帴鎺у埗qemu-kvm銆俹penstack鏄簯绠$悊骞冲彴锛屽叾鏈韩骞朵笉鎻愪緵铏氭嫙鍖栧姛鑳斤紝鐪熸鐨勮櫄鎷熷寲鑳藉姏鏄敱搴曞眰鐨刪ypervisor锛...
  • ZStack涓openstack鏈浠涔宸埆鍚?
    绛旓細ZStack涓openstack鏈浠涔宸埆鍚?  鎴戞潵绛 1涓洖绛 #鐑# 鍏徃閭d簺璁炬柦鍙互鎻愰珮鍛樺伐骞哥鎰?鐧惧害缃戝弸02a20f090 2018-07-13 鐭ラ亾绛斾富 鍥炵瓟閲:4 閲囩撼鐜:0% 甯姪鐨勪汉:2.1涓 鎴戜篃鍘荤瓟棰樿闂釜浜洪〉 灞曞紑鍏ㄩ儴 ZStack鏄负IaaS灞傛彁渚涗竴濂楀紑婧愮殑绠$悊浜у搧,鍖哄埆浜Openstack鍜孋loudStack,绫讳技浜庝釜浜烘搷浣滅郴缁...
  • openstack鐢ㄧ殑python浠涔妗嗘灦
    绛旓細openstack鏄渶杩3骞村涔爌ython鐨勪汉鏈鍊煎緱瀛︿範鐨勪竴涓簯璁$畻妗嗘灦銆OpenStack 鍖呭惈涓や釜涓昏妯″潡锛歂ova 鍜 Swift锛屽墠鑰呮槸 NASA 寮鍙戠殑铏氭嫙鏈嶅姟鍣ㄩ儴缃插拰涓氬姟璁$畻妯″潡锛涘悗鑰呮槸 Rackspace寮鍙戠殑鍒嗗竷寮忎簯瀛樺偍妯″潡锛屼袱鑰呭彲浠ヤ竴璧风敤锛屼篃鍙互鍒嗗紑鍗曠嫭鐢ㄣ傚湪ubuntu鎿嶄綔绯荤粺涓婏紝鍙互寰堣交鏉惧畨瑁卭penstack杩欎釜绉佹湁浜戞鏋躲傝...
  • 浣跨敤OpenStack 鏈浠涔濂藉?
    绛旓細鏄撲簬璁块棶鍜岀鐞嗭紝浼佷笟鍙互閫氳繃涓夌涓昏鏂瑰紡璁块棶鍜岀鐞 OpenStack 閮ㄧ讲銆1.鍛戒护琛屽伐鍏凤細瀹夎鍜岄厤缃 OpenStack 鍛戒护琛岀晫闈 (CLI) 鍚庯紝鐢ㄦ埛鍙互浣跨敤瀹冩潵閮ㄧ讲銆佷紭鍖栧拰绠$悊鏁翠釜鏁版嵁涓績鎵闇鐨勮绠椼佸瓨鍌ㄥ拰缃戠粶璧勬簮銆2.鍩轰簬 Web 鐨 GUI 浠〃鏉匡細绯荤粺绠$悊鍛樺彲浠ラ氳繃鍩轰簬Web鐨勪华琛ㄦ澘绠$悊 OpenStack 閮ㄧ讲銆3.闈㈠悜...
  • neutron涓openstack鎻愪緵浠涔鍔熻兘
    绛旓細Neutron涓篛penStack鎻愪緵缃戠粶铏氭嫙鍖栧姛鑳斤紝浣垮緱浜戣绠楃幆澧冧腑鐨勭綉缁滄灦鏋勫彲浠ユ洿鍔犵伒娲诲拰鍙畾鍒躲備竴銆丯eutron鐨勪富瑕佸姛鑳 Neutron鏄疧penStack鐨勪竴涓粍浠讹紝涓昏璐熻矗缃戠粶铏氭嫙鍖栥傝繖鎰忓懗鐫Neutron鍏佽浜戠鐞嗗憳鍦ㄤ簯鐜涓垱寤恒侀厤缃拰绠$悊铏氭嫙缃戠粶銆傚畠鍙互涓鸿櫄鎷熸満鍜屽叾浠栦簯璧勬簮鎻愪緵缃戠粶杩炴帴锛屼娇寰楄繖浜涜祫婧愬彲浠ョ浉浜掗氫俊锛屾垨鑰...
  • 鍦openstack铏氭嫙鏈哄拰swift浠涔鍏崇郴
    绛旓細OpenStack鍏跺疄鏈変笁涓笌瀛樺偍鐩稿叧鐨勭粍浠讹紝杩欎笁涓粍浠惰浜虹啛鐭ョ殑绋嬪害鍜岀粍浠舵湰韬嚭鐜版椂闂寸殑鏃╂櫄鏄浉绗︾殑锛屾寜鐔熸倝绋嬪害鎺掑垪濡備笅锛歋wift鈥斺旀彁渚涘璞″瓨鍌紙ObjectStorage锛夛紝鍦ㄦ蹇典笂绫讳技浜嶢mazonS3鏈嶅姟锛屼笉杩噑wift鍏锋湁寰堝己鐨勬墿灞曟с佸啑浣欏拰鎸佷箙鎬э紝
  • 扩展阅读:openstack搭建过程 ... open textbook library ... 服务器安装openstack ... openstack云服务器 ... openstack官方网站 ... openstack入门教程 ... 手动搭建openstack ... opencv-python安装教程 ... openstax cnx官网 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网