{ "version": "https://jsonfeed.org/version/1", "title": "OpenStack", "description": "\u5efa\u7acb\u4e91\u8ba1\u7b97\u5e73\u53f0\u7684\u5f00\u6e90\u8f6f\u4ef6\u3002", "home_page_url": "go/openstack", "feed_url": "feed/openstack.json", "icon": "https://cdn.v2ex.com/navatar/f899/139d/100_large.png?m=1409288015", "favicon": "https://cdn.v2ex.com/navatar/f899/139d/100_normal.png?m=1409288015", "items": [ { "author": { "url": "member/alfredcai", "name": "alfredcai", "avatar": "https://cdn.v2ex.com/gravatar/27c4a4d848b9ec27df9ba16a5fb956d4?s=73&d=retro" }, "url": "t/1017278", "title": "\u73b0\u5728\u8fd8\u6709\u4eba\u5728\u7528 openstack \u5417", "id": "t/1017278", "date_published": "2024-02-21T09:00:10+00:00", "content_html": "

\u5728\u4e00\u4e2a\u5c0f\u578b\u4f01\u4e1a\u91cc\u7528 kolla \u90e8\u7f72\u4e86\u4e00\u5957 openstack zed \u7248\u672c\u7684\uff0c\u4e00\u5171\u5341\u53f0\u7269\u7406\u673a\uff0c\u4e00\u4e2a\u4eba\u8fd0\u7ef4\u3002\u9047\u5230\u4e86\u4e00\u4e9b\u8981\u6c42\u611f\u89c9 openstack \u4e0d\u592a\u597d\u7528\uff0c\u611f\u89c9\u771f\u7684\u5fc3\u7d2f\u3002\u4f8b\u5982\u52a0\u5bc6 U \u76d8\u7684\u6620\u5c04\uff1b\u4e00\u4e2a\u7f51\u53e3\u4e0a\u9762\u6539 trunk \uff0c\u652f\u6301\u4e0d\u540c\u7f51\u6bb5\uff1b\u611f\u89c9\u7279\u522b\u9ebb\u70e6\uff0c\u6bcf\u6b21\u90fd\u662f\u6539\u914d\u7f6e\u6587\u4ef6\u91cd\u542f\u7a0b\u5e8f\uff0c\u592a\u5e95\u5c42\u4e86\uff0c\u4e3a\u4ec0\u4e48 web \u4e0a\u4e0d\u80fd\u6539\uff0c\u9760\u4e00\u4e2a\u4eba\u6839\u672c\u987e\u4e0d\u4e0a\u3002

\n

\u95ee\u95ee\u5927\u5bb6\u73b0\u5728\u90fd\u5728\u7528\u4ec0\u4e48\u8f6f\u4ef6\u505a\u865a\u62df\u5316\u5440\uff1f PVE \uff0coVirt \uff0cOpenNebula \uff0cHarvest \u5728\u4f01\u4e1a\u91cc\u7528\u9760\u8c31\u5417\uff1f

\n" }, { "author": { "url": "member/lingsan12", "name": "lingsan12", "avatar": "https://cdn.v2ex.com/avatar/c6f7/6957/617357_large.png?m=1698748822" }, "url": "t/987048", "title": "\u8bf7\u6559\uff01 openstack Train \u7248\u672c \u5076\u5c14\u542f\u52a8 windows server 2019 \u7cfb\u5217\uff0c\u4f1a\u5361\u5728\u542f\u52a8\u754c\u9762\uff0c\u786c\u91cd\u542f\u51e0\u6b21\u5076\u5c14\u4f1a\u542f\u52a8\u6210\u529f\uff0c\u4f46\u5931\u8d25\u6b21\u6570\u8f83\u591a\u3002", "id": "t/987048", "date_published": "2023-10-31T03:59:37+00:00", "content_html": "

BdsDxe: loading Boot0001 \"UEFI Misc Deuice\u201d from PciRoot (0x0)/Pci(0x4,0x0)\nBdsDxe: starting Boot0001 \"UEFI Misc Device\u201d from PciRoot(0x0)/Pci(0x4,0x0)

\n

[23101:01H[=3h[2][81:01HBdsDxe: lading Boot0001 \"UEFI Misc Device\" from PciRoot(0x0)/Pci(0x4,0x0BdsDxe: starting Boot8001 \"UEFI Misc Device\" from PciRoot(0x0)/Pci(0x4,0x0)(2I[01;01H-320L;B1HBdsxe: ding Bt03 ndows Bot anager\"from 2,GPT,8B0E56B-28(-489C-83F-6AF437393(,0xFA0,0x3180)/EFIVKCr0S0Ft BotibotmgfwiefiBdsxe: starting Bot8003 \"Windows Bot Manage\" from MD2,PT,6B0E5B-62B(-4BC-883F-4F4B337393C,0xF400,0x31800)/EFIVMicro0ft Bootibootmgfw.fi

\n" }, { "author": { "url": "member/YaakovZiv", "name": "YaakovZiv", "avatar": "https://cdn.v2ex.com/avatar/8f62/fb61/402022_large.png?m=1643079652" }, "url": "t/838492", "title": "\u5173\u4e8e openstack \u7ec4\u4ef6\u7684\u6d41\u91cf\u8d70\u5411\u56fe\u67e5\u8be2\u7684\u95ee\u9898", "id": "t/838492", "date_published": "2022-03-07T01:35:04+00:00", "content_html": "

\u6211\u5728\u5b66\u4e60 openstack \u7684\u8fc7\u7a0b\u4e2d\uff0c\u770b\u5230\u5f88\u591a\u4e2d\u6587\u8d44\u6599\u91cc\u7ed9\u9664\u4e86\u5404\u7ec4\u4ef6\u7684\u6d41\u91cf\u56fe\uff0c\u6bd4\u5982 nova \u670d\u52a1\uff0c\u5f53\u7528\u6237\u53d1\u8d77\u8bf7\u6c42\uff0cnova \u7ec4\u4ef6\u4f1a\u4ea7\u751f\u600e\u6837\u7684\u6d41\u91cf\u8d70\u5411\uff0c\u7ecf\u8fc7 nova \u670d\u52a1\u5185\u7684\u54ea\u4e9b\u7ec4\u4ef6\u3002
\n\u6211\u7684\u7591\u95ee\uff1a \u5728\u5b98\u65b9\u6587\u6863\u6216\u8005\u5176\u4ed6\u6e20\u9053\u662f\u600e\u6837\u7684\u67e5\u8be2\u601d\u8def\u67e5\u5230\u6807\u51c6\u7248\u7684\u6d41\u91cf\u56fe\uff0c\u6211\u4e0d\u77e5\u9053\u8be5\u600e\u4e48\u641c\u7d22\u3002\u80fd\u5426\u52b3\u70e6 v \u53cb\u6307\u70b9\u4e00\u4e0b\u6211\u3002

\n" }, { "author": { "url": "member/k8ser", "name": "k8ser", "avatar": "https://cdn.v2ex.com/avatar/2b8f/45e3/365710_large.png?m=1714964209" }, "url": "t/681041", "title": "OpenStack Neutron \u7684\u5f00\u53d1\u8005\u4eec\uff0c\u4ed6\u4eec\u5199\u8fd9\u4e48\u7ed5\u7684\u903b\u8f91\u81ea\u5df1\u4e0d\u6655\u4e48\uff1f", "id": "t/681041", "date_published": "2020-06-12T09:49:16+00:00", "content_html": "" }, { "author": { "url": "member/lewin5", "name": "lewin5", "avatar": "https://cdn.v2ex.com/avatar/0a01/8319/409687_large.png?m=1559804485" }, "url": "t/628138", "title": "\u60f3\u7528 openstack \u505a\u865a\u62df\u5316\uff0c\u54ea\u4e2a\u7248\u672c\u76f8\u5bf9\u6bd4\u8f83\u7a33\u5b9a\u70b9\uff1f", "id": "t/628138", "date_published": "2019-12-11T12:58:12+00:00", "content_html": "" }, { "author": { "url": "member/uyun", "name": "uyun", "avatar": "https://cdn.v2ex.com/avatar/1419/7a5b/230932_large.png?m=1552533610" }, "url": "t/590797", "title": "\u4e00\u6587\u8bfb\u61c2 StarlingX", "id": "t/590797", "date_published": "2019-08-10T12:46:59+00:00", "content_html": "

StarlingX \u662f\u4ec0\u4e48\uff1f

\n

\u8bf4\u5230 StarlingX\uff0c\u8981\u5148\u8bf4\u4e24\u4e2a\u516c\u53f8\uff0c\uff08 Intel \uff09\u82f1\u7279\u5c14\u548c WindRiver \uff08\u98ce\u6cb3\uff09\u3002\u82f1\u7279\u5c14\u6211\u4eec\u90fd\u77e5\u9053\u662f\u7f8e\u56fd\u4e00\u5bb6\u4e3b\u8981\u4ee5\u7814\u5236 CPU \u5904\u7406\u5668\u7684\u516c\u53f8\uff0c\u662f\u5168\u7403\u6700\u5927\u7684\u4e2a\u4eba\u8ba1\u7b97\u673a\u96f6\u4ef6\u548c CPU \u5236\u9020\u5546\uff0c\u5b83\u6210\u7acb\u4e8e 1968 \u5e74\uff0c\u5177\u6709 50 \u5e74\u4ea7\u54c1\u521b\u65b0\u548c\u5e02\u573a\u9886\u5bfc\u7684\u5386\u53f2\u3002\u90a3\u4e48\u98ce\u6cb3\u662f\u5bb6\u4ec0\u4e48\u6837\u7684\u516c\u53f8\u5462\uff1f

\n

\u98ce\u6cb3\n\u98ce\u6cb3\u662f\u667a\u80fd\u4e92\u8054\u7cfb\u7edf\u8f6f\u4ef6\u7684\u5168\u7403\u9886\u5bfc\u8005\uff0c\u63d0\u4f9b\u5168\u9762\u7684\u8fb9\u7f18\u5230\u4e91\u8f6f\u4ef6\u4ea7\u54c1\u5957\u4ef6\uff0c\u65e8\u5728\u5e2e\u52a9\u5404\u5173\u952e\u57fa\u7840\u8bbe\u65bd\u516c\u53f8\u5e94\u5bf9\u7cfb\u7edf\u53d1\u5c55\u548c\u73b0\u4ee3\u5316\u8fc7\u7a0b\u4e2d\u9762\u4e34\u7684\u6311\u6218\u548c\u673a\u9047\uff0c\u6700\u5927\u9650\u5ea6\u5730\u5b9e\u73b0\u7269\u8054\u7f51\u7684\u4ef7\u503c\u3002\u548c\u82f9\u679c\u3001\u8c37\u6b4c\u4e00\u6837\uff0c\u98ce\u6cb3\u4e5f\u662f\u5728\u8f66\u5e93\u8d77\u5bb6\u3002

\n

1981 \u5e74\u52b3\u4f26\u65af\u4f2f\u514b\u5229\u56fd\u5bb6\u5b9e\u9a8c\u5ba4\u524d\u7814\u7a76\u5458 JerryFiddler \u5728\u52a0\u5229\u798f\u5c3c\u4e9a\u5dde\u4f2f\u514b\u5229\u5e02\u7684\u4e00\u4e2a\u8f66\u5e93\u91cc\u521b\u5efa\u4e86\u98ce\u6cb3\u516c\u53f8\u30021987 \u5e74\u98ce\u6cb3\u63a8\u51fa\u4e86 VxWorks\uff0c\u662f\u9996\u4e2a\u5177\u6709\u8de8\u8ba1\u7b97\u673a\u7f51\u7edc\u901a\u4fe1\u80fd\u529b\u7684\u5b9e\u65f6\u64cd\u4f5c\u7cfb\u7edf\uff08 RTOS \uff09\uff0cVxWorks \u4e5f\u662f\u76ee\u524d\u5e94\u7528\u6700\u5e7f\u6cdb\u7684 RTOS \uff08\u5b9e\u65f6\u64cd\u4f5c\u7cfb\u7edf\uff09\uff0cVxWorks \u5e73\u53f0\u7528\u9014\u5e7f\u6cdb\uff0c\u652f\u6301\u7f8e\u56fd\u56fd\u5bb6\u822a\u7a7a\u822a\u5929\u5c40\uff08 NASA \uff09\u7684\u597d\u5947\u53f7\u6f2b\u6e38\u8f66\u3001\u7f51\u7edc\u8bbe\u5907\u3001\u5de5\u5382\u673a\u5668\u4eba\u53ca\u5176\u4ed6\u8bb8\u591a\u7c7b\u578b\u7684\u5de5\u4e1a\u8bbe\u5907\u3002VxWorks \u8fd8\u7528\u5728\u4e0e\u6d88\u8d39\u8005\u63a5\u89e6\u7684\u786c\u4ef6\uff08\u6bd4\u5982\u533b\u7597\u8bbe\u5907\uff09\u4e2d\u30022009 \u5e74\uff0c\u98ce\u6cb3\u88ab\u82f1\u7279\u5c14\u6536\u8d2d\uff0c2018 \u5e74 4 \u6708\u82f1\u7279\u5c14\u53c8\u628a\u98ce\u6cb3\u5356\u7ed9\u4e86 TPGCapitalLP\u3002

\n

Titanium Cloud\n2014 \u5e74 6 \u6708\uff0c\u98ce\u6cb3\u516c\u53f8\u9488\u5bf9 WindRiver Carrier Grade Communications Server \u6210\u7acb\u4e86 TitaniumCloud \u751f\u6001\u7cfb\u7edf\u9879\u76ee\u3002\u8bbe\u8ba1\u76ee\u6807\u5c31\u662f\u8981\u6210\u4e3a\u7535\u4fe1\u7f51\u7edc\u5e94\u7528\u8f6f\u4ef6\u7406\u60f3\u7684\u4e91\u64cd\u4f5c\u7cfb\u7edf\u5e73\u53f0\uff0c\u4ee5\u6700\u9ad8\u7684\u53ef\u9760\u6027\u5730\u8fd0\u884c\u7f51\u7edc\u865a\u62df\u5316\u529f\u80fd\u3002\u901a\u8fc7\u672c\u9879\u76ee\uff0c\u98ce\u6cb3\u5c06\u4e0e\u5176\u5408\u4f5c\u4f19\u4f34\u9488\u5bf9 NFV (Network Functions Virtualization\uff0c\u7f51\u7edc\u529f\u80fd\u865a\u62df\u5316)\u57fa\u7840\u8bbe\u65bd\u90e8\u7f72\u63d0\u4f9b\u7ecf\u8fc7\u4f18\u5316\u4e14\u53ef\u4e92\u64cd\u4f5c\u7684\u786c\u4ef6\u548c\u8f6f\u4ef6\u89e3\u51b3\u65b9\u6848\uff0c\u4ee5\u52a0\u5feb\u670d\u52a1\u63d0\u4f9b\u5546\u4ee5\u53ca TEM (Telecom Equipment Manufacturers\uff0c\u7535\u4fe1\u8bbe\u5907\u5236\u9020\u5546) \u4ea7\u54c1\u4e0a\u5e02\u6b65\u4f10\u3002

\n

\u6b63\u5982\u9879\u76ee\u540d\u79f0 Titanium \u6240\u793a\uff0c\u98ce\u6cb3\u5408\u4f5c\u4f19\u4f34\u751f\u6001\u7cfb\u7edf\u5c06\u56f4\u7ed5\u7535\u4fe1\u7ea7\u901a\u4fe1\u670d\u52a1\u5668(Carrier Grade Communications Server)\u5e73\u53f0\u5efa\u7acb\u529f\u80fd\u5f3a\u5927\u7684\u89e3\u51b3\u65b9\u6848\u9635\u5bb9\u3002\u901a\u8fc7\u4e0e\u98ce\u6cb3\u516c\u53f8\u7684\u7535\u4fe1\u884c\u4e1a\u4e13\u5bb6\u5bc6\u5207\u5408\u4f5c\uff0cTitanium Cloud \u9879\u76ee\u5408\u4f5c\u4f19\u4f34\u5c06\u5bf9\u5176\u73b0\u6709\u6807\u51c6\u4ea7\u54c1\u8fdb\u884c\u4f18\u5316\uff0c\u4ee5\u4fbf\u66f4\u52a0\u5145\u5206\u5229\u7528 Wind River \u5e73\u53f0\u7684\u5168\u90e8\u529f\u80fd\u3002

\n

\u7535\u4fe1\u7ea7\u901a\u4fe1\u670d\u52a1\u5668\u662f\u4e00\u7ec4\u96c6\u6210\u5316\u3001\u652f\u6301 NFV \u57fa\u7840\u8bbe\u65bd\u8fbe\u5230\u7535\u4fe1\u7f51\u7edc\u6240\u8981\u6c42\u7684\u8fd0\u8425\u5546\u7ea7\u9ad8\u53ef\u9760\u6027\u8f6f\u4ef6\u3002\u4f20\u7edf\u7535\u4fe1\u7f51\u7edc\u7684\u53ef\u9760\u6027\u90fd\u5df2\u8fbe\u5230 6 \u4e2a 9 \u7684\u7ea7\u522b(99.9999%)\u6216\u6362\u7b97\u4e3a\u4e00\u5e74 30 \u79d2\u505c\u673a\u65f6\u95f4\uff0c\u800c\u57fa\u4e8e IT \u5e94\u7528\u7684\u4f01\u4e1a\u7ea7\u8f6f\u4ef6\u5e73\u53f0\u7684\u53ef\u9760\u6027\u5219\u901a\u5e38\u4ec5\u4e3a 3 \u4e2a 9(99.9%)\uff0c\u4e5f\u5c31\u662f\u6bcf\u5e74\u7ea6\u6709 9 \u4e2a\u5c0f\u65f6\u7684\u505c\u673a\u65f6\u95f4\uff0c\u8fd9\u4f1a\u9020\u6210\u4e25\u91cd\u7684\u6210\u672c\u548c\u6536\u5165\u635f\u5931\u3002\u7535\u4fe1\u7ea7\u901a\u4fe1\u670d\u52a1\u5668\u662f\u552f\u4e00\u80fd\u591f\u8ba9\u670d\u52a1\u63d0\u4f9b\u5546\u5411\u865a\u62df\u5316\u57fa\u7840\u8bbe\u65bd\u8fc7\u6e21\u540e\u4ecd\u80fd\u8fbe\u5230\u4fdd\u6301 6 \u4e2a 9 \u7ea7\u522b\u7684\u9ad8\u53ef\u9760\u6027\u5546\u7528\u7ea7\u7f51\u7edc\u529f\u80fd\u865a\u62df\u5316\u670d\u52a1\u5668\u89e3\u51b3\u65b9\u6848\uff0c\u5e76\u4fdd\u6301\u80fd\u591f\u6ee1\u8db3\u201c\u6c38\u4e0d\u505c\u673a\u201d\u7684\u8981\u6c42\u3002

\n

\u9664\u6b64\u4e4b\u5916\uff0c\u901a\u8fc7\u52a0\u901f\u865a\u62df\u7f51\u7edc\u529f\u80fd(VNF\uff0cVirtual Network Functions)\u7684\u6027\u80fd\uff0c\u63d0\u4f9b\u7b80\u5316\u7684\u865a\u62df\u7f51\u7edc\u529f\u80fd\u5b89\u88c5\u3001\u7ba1\u7406\u548c\u7ef4\u62a4\u6b65\u9aa4\u7684\u529f\u80fd\uff0c\u7535\u4fe1\u7ea7\u901a\u4fe1\u670d\u52a1\u5668\u652f\u6301\u5ba2\u6237\u5728\u7f51\u7edc\u4e2d\u9010\u6b65\u90e8\u7f72\u865a\u62df\u7f51\u7edc\u529f\u80fd\u65f6\uff0c\u6700\u5927\u7a0b\u5ea6\u5730\u964d\u4f4e\u8d44\u672c\u652f\u51fa (CAPEX)\u548c\u8fd0\u8425\u652f\u51fa (OPEX) \u3002

\n

\u98ce\u6cb3 Titanium Cloud \u6700\u521d\u6784\u5efa\u5728 OpenStack \u7b49\u5f00\u6e90\u7ec4\u4ef6\u4e0a, \u7136\u540e\u5bf9\u5176\u8fdb\u884c\u6269\u5c55\u548c\u52a0\u56fa, \u4ee5\u6ee1\u8db3\u5173\u952e\u7684\u57fa\u7840\u8bbe\u65bd\u9700\u6c42, \u5305\u62ec: \u9ad8\u53ef\u7528\u6027\u3001\u6545\u969c\u7ba1\u7406\u548c\u6027\u80fd\u7ba1\u7406\uff0c\u53ef\u7528\u4e8e NFV \u7535\u4fe1\u4e91\u3001\u8fb9\u7f18\u4e91\u3001\u5de5\u4e1a\u7269\u8054\u7f51\u7b49\u573a\u666f\u3002

\n

StarlingX\n\u4eca\u5929\u8bf4\u7684 StarlingX \u9879\u76ee\u5c31\u662f\u57fa\u4e8e WindRiver \u7684\u4ea7\u54c1 Titanimu Cloud R5 \u7248\u672c\u57fa\u7840\u4e0a\u4fee\u6539\u800c\u6765\u30022018 \u5e74 5 \u6708, Intel \u548c\u98ce\u6cb3\u5ba3\u5e03\u5c06\u5176\u7535\u4fe1\u4e91 /\u8fb9\u7f18\u4e91\u7684\u5546\u4e1a\u4ea7\u54c1 TitaniumCloud \u4e2d\u7684\u90e8\u5206\u7ec4\u4ef6\u5f00\u6e90, \u547d\u540d\u4e3a StarlingX, \u5e76\u63d0\u4ea4\u7ed9 OpenStack Foundation \u7ba1\u7406\u3002

\n

2018 \u5e74 10 \u6708\uff0cOpenStack \u793e\u533a\u53d1\u5e03\u4e86 StarlingX \u9996\u4e2a\u7248\u672c\uff0c\u6700\u521d\u7684 starlingX \u4e3b\u8981\u662f\u901a\u8fc7 6 \u5927\u7ec4\u4ef6\uff0c\u6765\u5b8c\u6210\u5bf9 Openstack \u7684\u5b89\u88c5\u90e8\u7f72\uff0c\u76d1\u63a7\u7ba1\u7406\u7b49\u3002

\n

\u670d\u52a1\u7ba1\u7406\uff08 Service Management \uff09\u2014\u2014 stx-ha

\n

\u4ece\u540d\u5b57\u53ef\u4ee5\u770b\u51fa\uff0c\u5c31\u662f\u7528\u6765\u505a\u7cfb\u7edf\u53ef\u9760\u6027\u6027\u7684\u7b80\u79f0\uff08 SM \uff09\u3002

\n

1.SM \u5bf9 kenrel \u4e2d\u7684\u8fdb\u7a0b\u8c03\u5ea6\u8fdb\u884c\u6269\u5c55\uff0c\u589e\u52a0\u4e86\u4fe1\u53f7\u91cf\uff0c\u4ece\u800c\u53ef\u4ee5\u7b2c\u4e00\u65f6\u95f4\u83b7\u53d6\u5230\u76d1\u63a7\u7684\u8fdb\u7a0b\u6b7b\u4ea1\u7684\u4fe1\u53f7\uff0c\u4ece\u800c\u89e6\u53d1\u8fdb\u7a0b\u91cd\u65b0\u62c9\u8d77\u7684\u5de5\u4f5c\u3002

\n

2.SM \u590d\u7528\u4e86 pacemaker \u4e2d ocf \u811a\u672c\uff0c\u53ef\u4ee5\u7528\u5b83\u6765\u505a\u670d\u52a1\u7684\u62c9\u8d77\u3002\u8fd9\u91cc\u4e3b\u8981\u662f\u5bf9 floating IP\uff0cnfs \u7b49\u8d44\u6e90\u7684\u76d1\u63a7

\n

3.SM \u4e5f\u4f7f\u7528\u4e86 init.d \u7684\u811a\u672c\uff0c\u6765\u5bf9 openstack \u4ee5\u53ca\u5176\u4ed6\u7ec4\u4ef6\u7684\u670d\u52a1\u8fdb\u884c\u62c9\u8d77\u52a8\u4f5c\u3002

\n

\u56e0\u6b64\uff0c\u5728 StarlingX \u5e73\u53f0\u4e0a\u542f\u52a8 /\u505c\u6b62\u76f8\u5173\u670d\u52a1\uff0c\u8981\u4f7f\u7528 sm-restart/sm-unmanager \u7b49\u547d\u4ee4\u6765\u8fdb\u884c\u3002

\n

\u6545\u969c\u7ba1\u7406\uff08 Fault Managerment \uff09\u2014\u2014 stx-fault

\n

\u8be5\u6a21\u5757\u5c31\u662f\u7528\u6765\u505a\u4e8b\u4ef6\u544a\u8b66\u6536\u96c6\u7684\u6a21\u5757\uff0c\u7b80\u79f0\uff08 FM \uff09

\n

\u5176\u4ed6\u6a21\u5757\u901a\u8fc7 fm-api \u6765\u76f4\u63a5\u53d1\u9001\u544a\u8b66\u6216\u8005\u4e8b\u4ef6\u4fe1\u606f\u7ed9 fm-manager

\n

\u8f6f\u4ef6\u7ba1\u7406\uff08 Software Managerment \uff09\u2014\u2014 stx-update

\n

\u8be5\u6a21\u5757\u4e3b\u8981\u63d0\u4f9b\u4e86\u5728 StarlingX\uff0c\u5982\u4f55\u5236\u4f5c patch \u7684\u5de5\u5177\uff0c\u540c\u65f6\u4e5f\u6709 patch \u7684\u670d\u52a1\uff0c\u7528\u6765\u7ba1\u7406\u5347\u7ea7 /\u964d\u7ea7\u7b49\u529f\u80fd\u3002

\n

\u57fa\u7840\u7ba1\u7406\uff08 Bare Metal Managerment \uff09\u2014\u2014 stx-metal

\n

\u8be5\u6a21\u5757\u662f StarlingX \u4e2d\u6bd4\u8f83\u91cd\u8981\u7684\u4e00\u90e8\u5206\u3002\u6574\u4e2a\u5e73\u53f0\u7684\u6709\u673a\u7ed3\u5408\u90fd\u662f\u9760\u5b83\u3002

\n

\u8be5\u5de5\u7a0b\u662f\u4ece WindRiver \u81ea\u5df1\u7684 MTCE \u5e73\u53f0\u5f00\u6e90\u800c\u6765\u3002

\n
    \n
  1. \n

    \u63d0\u4f9b\u4e86 rmon \u5bf9\u8d44\u6e90\u8fdb\u884c\u76d1\u63a7\uff0c\u6bd4\u5982 cpu/memory \u7b49\u3002

    \n
  2. \n
  3. \n

    \u63d0\u4f9b\u4e86 pmon \u5bf9\u8fdb\u7a0b\u8fdb\u6027\u76d1\u63a7\u3002\u8fd9\u4e2a\u6a21\u5757\u7684\u76d1\u63a7\u548c sm \u662f\u6709\u533a\u522b\u7684\u3002SM \u4e3b\u8981\u7ba1\u7406 Openstack \u6574\u4e2a\u670d\u52a1\u53ca\u76f8\u5173\u8d44\u6e90\u3002pmon \u53ea\u7ba1\u7406\u57fa\u7840\u8fdb\u7a0b\uff0c\u6bd4\u5982 ssh \u7b49\u7b49\u3002

    \n
  4. \n
\n

\u503c\u5f97\u4e00\u63d0\u7684\u662f\uff0c\u5728 StarlingX \u4e2d\u7684\u8ba1\u7b97\u8282\u70b9\u662f\u4e0d\u5b89\u88c5 SM \u670d\u52a1\u7684\uff0c\u6240\u4ee5 nova-compute \u7b49\u670d\u52a1\uff0c\u4e5f\u662f\u7531 pmon \u6765\u76d1\u63a7\u3002

\n
    \n
  1. \n

    hbs \u670d\u52a1\uff0c\u5bf9\u6574\u4e2a\u5e73\u53f0\u63d0\u4f9b\u4e86\u5fc3\u8df3\u68c0\u6d4b\u670d\u52a1\u3002

    \n
  2. \n
  3. \n

    hwmond \u670d\u52a1\uff0c\u63d0\u4f9b\u4e86\u5bf9\u670d\u52a1\u5668 BMC \u7684\u670d\u52a1\u3002

    \n
  4. \n
  5. \n

    Mtc \u670d\u52a1\uff0c\u603b\u7ba1 MTCE \u5e73\u53f0\u5176\u4ed6\u670d\u52a1\u6a21\u5757\uff0c\u5bf9\u5916\u63d0\u4f9b\u63a5\u53e3\u3002

    \n
  6. \n
\n

\u5e73\u53f0\u8c03\u5ea6\uff08 Platform Orchestration \uff09\u2014\u2014 stx-nfv

\n

\u4ece\u540d\u5b57\u6765\u770b\u5c31\u53ef\u4ee5\u770b\u5230\uff0c\u8fd9\u4e2a\u6a21\u5757\u662f\u5728 NFV \u573a\u666f\u4e0b\u6765\u4e30\u5bcc openstack \u529f\u80fd\u7684\u7ec4\u4ef6\u3002

\n
    \n
  1. \n

    \u63d0\u4f9b\u4e86 nova-api-proxy \u7684\u6a21\u5757\uff0c\u76f4\u63a5\u76d1\u542c\u4e86 nova \u7684 8774 \u7aef\u53e3\u6765\u62e6\u622a nova \u7684\u8bf7\u6c42\uff0c\u7136\u540e\u5c06\u4e00\u4e9b\u9700\u8981\u5904\u7406\u7684\u8bf7\u6c42\u53d1\u9001\u7ed9 VIM \u6a21\u5757\u3002\u5176\u4ed6\u900f\u4f20\u7ed9 nova\u3002

    \n
  2. \n
  3. \n

    Nfv-vim \u6a21\u5757\uff0c\u7528\u6765\u505a\u4e00\u4e9b NFV \u573a\u666f\u4e0b\u903b\u8f91\u5904\u7406\u529f\u80fd\uff0c\u4f8b\u5982 VM \u7684 HA \u529f\u80fd\u3002

    \n
  4. \n
  5. \n

    Guest-server \u6a21\u5757\u3002\u8fd9\u4e2a\u6a21\u5757\u7528\u6765\u63d0\u4f9b\u4e86\u4e00\u5957 api \u53ca\u673a\u5236\uff0c\u901a\u8fc7\u5728\u865a\u62df\u673a\u4e2d\u5b89\u88c5 agent\uff0c\u8fbe\u5230\u4ece\u5e73\u53f0\u4fa7\u83b7\u53d6\u865a\u62df\u673a\u5fc3\u8df3\u7b49\u529f\u80fd\u3002

    \n
  6. \n
\n

\u914d\u7f6e\u7ba1\u7406\uff08 Configuration Managerment \uff09\u2014\u2014 stx-config

\n

\u8be5\u6a21\u5757\u7528\u6765\u5bf9 StarlingX \u4e2d\u7684\u7ec4\u4ef6\u4ee5\u53ca openstack \u670d\u52a1\u8fdb\u884c\u5b89\u88c5\u914d\u7f6e\u7684\u3002

\n
    \n
  1. sysinv \u670d\u52a1\u63d0\u4f9b\u6574\u4e2a\u8f6f\u4ef6\u7684\u72b6\u6001\u7ba1\u7406\uff0c\u914d\u7f6e\u7684\u4fee\u6539\u7b49\u3002
  2. \n
\n

2.Controllerconfig/computeconfig \u7b49\u63d0\u4f9b\u4e86\u6839\u636e\u89d2\u8272\u6765\u8fdb\u884c\u914d\u7f6e\u7684\u8bbe\u7f6e\u3002

\n

\u6bcf\u4e00\u6b21\u542f\u52a8\u65f6\u5019\u8fd9\u7c7b\u670d\u52a1\u90fd\u4f1a\u91cd\u65b0\u6267\u884c\u3002\u6765\u4fdd\u8bc1\u7cfb\u7edf\u5728\u91cd\u542f\u540e\u80fd\u6062\u590d\u5230\u6b63\u5e38\u914d\u7f6e\u3002

\n

StarlingX \u5b89\u88c5\u65b9\u6cd5\n\u4ee5 Ubuntu 16.04 LTS 64-bit \u4e3a\u4f8b:

\n

\uff08 1 \uff09 \u66f4\u65b0\u64cd\u4f5c\u7cfb\u7edf 1. #sudo apt-get update

\n

\uff08 2 \uff09\u5b89\u88c5 stx-tools \u5de5\u5177\u9879\u76ee 1. #cd $home2. #git clone git://git.openstack.org/openstack/stx-tools

\n

\uff08 3 \uff09\u5b89\u88c5\u4f9d\u8d56\u5305 1. #cd $HOME/stx-tools/deployment/libvirt/2. #bash install_packages.sh

\n

\uff08 4 \uff09\u5236\u4f5c StarlingX \u7684 ISO \u955c\u50cf\u53ef\u53c2\u8003 https://wiki.openstack.org/wiki/StarlingX/Developer_Guide \u8fdb\u884c\u955c\u50cf\u5236\u4f5c\u3002\u6ce8\u610f:\u00b7 \u4e0b\u8f7d\u4f9d\u8d56\u5305\u65f6, \u7531\u4e8e\u4f17\u6240\u5468\u77e5\u7684\u539f\u56e0, \u56fd\u5185\u8bbf\u95ee\u6709\u95ee\u9898, \u6240\u4ee5\u6700\u597d\u8bbe\u7f6e http \u4ee3\u7406\u4e0b\u8f7d, \u6216\u8005\u4f7f\u7528\u56fd\u5916\u865a\u62df\u673a\u4e0a\u8fdb\u884c\u955c\u50cf\u5236\u4f5c\u3002\u00b7 \u901a\u8fc7\u6e90\u7801\u7f16\u8bd1\u3001\u6253\u5305\u6210 RPM \u5305, \u8fd9\u4e2a\u8fc7\u7a0b\u5f88\u957f, \u7b14\u8005\u7684\u865a\u62df\u673a\u4e0a\u8dd1\u4e86\u7ea6 12 \u4e2a\u5c0f\u65f6, \u8bf7\u8010\u5fc3\u7b49\u5f85\u00b7 \u7f16\u8bd1\u5404 RPM \u6e90\u4ee3\u7801\u65f6\u4f7f\u7528\u4e86 linux \u7684 mock \u9694\u79bb\u73af\u5883, \u5176 log \u4f4d\u7f6e\u5728 /localdisk/loadbuild/user/starlingx/std/results/user-starlingx-tis-r5-pike-std/XXX \u5305\u540d /build.log\u00b7 \u5982\u679c\u78b0\u5230\u62a5\u9519:ERROR:Command failed: 09:08:15 # mount -n -t tmpfs -o mode=0755 -onr_inodes=0 -o size=5g mock_chroot_tmpfs/localdisk/loadbuild/user/starlingx/std/mock/b1/root \u53ef\u4ee5\u5c1d\u8bd5\u4fee\u6539\uff1a/usr/lib/python2.7/site-packages/mockbuild/plugins/tmpfs.pyself.optArgs +=['-o', 'nr_inodes=500000]

\n

\uff08 5 \uff09\u590d\u5236\u955c\u50cf\u5230 bootimage.iso1. #cp $HOME/stx-tools/deployment/libvirt/bootimage.iso

\n

\uff08 6 \uff09\u5173\u95ed\u9632\u706b\u5899 1. #sudo ufw disable2. Firewall stopped and disabled on system startup3. #sudo ufw status4. Status: inactive

\n

\uff08 7 \uff09\u901a\u8fc7 ISO \u955c\u50cf\u542f\u52a8, \u5e76\u6309\u7167\u63d0\u793a\u8fdb\u884c\u5b89\u88c5 StarlingX, \u8be6\u60c5\u8bf7\u53c2\u8003:https://wiki.openstack.org/wiki/StarlingX/Installation_Guide_Virtual_Environment/Simplex

\n

StarlingX \u5e73\u53f0\u662f\u4e00\u4e2a\u5b8c\u6574\u3001\u9ad8\u53ef\u9760\u3001\u53ef\u6269\u5c55\u7684\u8fb9\u7f18\u4e91\u8f6f\u4ef6\u5806\u6808\uff0c\u5b83\u5c06\u65b0\u670d\u52a1\u4e0e\u8bb8\u591a\u5176\u4ed6\u5f00\u6e90\u9879\u76ee\u7ed3\u5408\u5230\u4e00\u4e2a\u6574\u4f53\u8fb9\u7f18\u4e91\u8f6f\u4ef6\u5806\u6808\u4e2d\uff0c\u4e3a\u8fb9\u7f18\u8ba1\u7b97\u3001\u5de5\u4e1a\u7269\u8054\u7f51\u548c\u7535\u4fe1\u5e94\u7528\u6784\u5efa\u4e00\u4e2a\u6709\u5f39\u6027\u7684\u8fb9\u7f18\u4e91\u57fa\u7840\u8bbe\u65bd\u3002StarlingX \u4e0d\u662f OpenStack \u5b50\u9879\u76ee\u3002\u5b83\u672c\u8eab\u5c31\u662f\u4e00\u4e2a\u5b8c\u6574\u7684\u9879\u76ee\u3002\u540c\u65f6\uff0c\u5b83\u4f7f\u7528\u4e86\u8bb8\u591a OpenStack \u670d\u52a1\u6765\u63d0\u4f9b\u6838\u5fc3\u7684\u8ba1\u7b97\u3001\u5b58\u50a8\u548c\u7f51\u7edc\u529f\u80fd\u3002StarlingX \u7684\u5f00\u6e90\u4e5f\u662f\u54cd\u5e94\u4e86 Akraino \u9879\u76ee\u3002

\n

Akraino Edge Stack \u662f Linux \u57fa\u91d1\u4f1a\u65d7\u4e0b\u7684\u4e00\u4e2a\u9879\u76ee\uff0c\u5b83\u5f00\u53d1\u4e86\u4e00\u5957\u5f00\u6e90\u8f6f\u4ef6\u5806\u6808\uff0c\u652f\u6301\u9488\u5bf9\u8fb9\u7f18\u8ba1\u7b97\u7cfb\u7edf\u548c\u5e94\u7528\u8f6f\u4ef6\u4f18\u5316\u7684\u9ad8\u53ef\u7528\u6027\u4e91\u670d\u52a1\uff0c18 \u5e74 8 \u6708\u5ba3\u5e03\u4ece\u6210\u7acb\u9636\u6bb5\u8fdb\u5165\u5230\u6267\u884c\u9636\u6bb5\u3002Akraino Edge Stack \u65e8\u5728\u4e3a\u4f01\u4e1a\u8fb9\u7f18\u3001OTT \uff08 Over the Top \uff09\u8fb9\u7f18\u548c\u8fd0\u8425\u5546\u8fb9\u7f18\u7f51\u7edc\u6539\u5584\u8fb9\u7f18\u4e91\u57fa\u7840\u8bbe\u65bd\u7684\u72b6\u51b5\u3002\u5b83\u5c06\u4e3a\u7528\u6237\u63d0\u4f9b\u65b0\u7684\u7075\u6d3b\u6027\uff0c\u4ee5\u4fbf\u5feb\u901f\u6269\u5c55\u8fb9\u7f18\u4e91\u670d\u52a1\uff0c\u6700\u5927\u9650\u5ea6\u5730\u5229\u7528\u8fb9\u7f18\u5904\u652f\u6301\u7684\u5e94\u7528\u7a0b\u5e8f\u548c\u529f\u80fd\uff0c\u5e76\u6709\u52a9\u4e8e\u4e3a\u5fc5\u987b\u59cb\u7ec8\u8fd0\u884c\u7684\u7cfb\u7edf\u786e\u4fdd\u53ef\u9760\u6027\u3002

\n

StarlingX \u672a\u6765\u5c06\u4f1a\u671d\u7740\u5bb9\u5668\u5316\u65b9\u5411\u53d1\u5c55, \u5c06\u4f1a\u628a openstack \u7b49\u7ec4\u4ef6\u505a\u5728\u5bb9\u5668\u4e2d, \u5e76\u53ef\u4f7f\u7528 K8S \u6765\u7ba1\u7406\u3002\u4ece\u529f\u80fd\u4e0a\u6765\u770b, StarlingX \u5728\u7cfb\u7edf HA\u3001\u6027\u80fd\u8c03\u4f18\u3001\u8f6f\u4ef6\u7ba1\u7406\u3001\u6545\u969c\u76d1\u63a7\u65b9\u9762\u6709\u5f88\u597d\u7684\u53c2\u8003\u4ef7\u503c, \u5f88\u9002\u5408 OpenStack \u5f00\u53d1\u4eba\u5458\u7814\u7a76\u3002

\n

\u5c0f\u5f69\u86cb: StarlingX \u7684\u7b2c\u4e8c\u4e2a\u7248\u672c\u5c06\u5728\u4eca\u5e74\u7b2c\u4e09\u5b63\u5ea6\u63a8\u51fa\uff01

\n

\u53c2\u8003\u6587\u732e

\n

1.OpenStack StarlingX \u7ec4\u4ef6\u8be6\u89e3\uff0c

\n

\u4f5c\u8005\uff1a\u5f00\u6e90\u4e91\u4e2d\u6587\u793e\u533a

\n

2.\u6d45\u8c08\u9ad8\u6027\u80fd\u8fb9\u7f18\u4e91\u8f6f\u4ef6\u5806\u6808 StarlingX\uff0c

\n

\u4f5c\u8005\uff1asteve

\n

3.\u7535\u4fe1\u4e91 /\u8fb9\u7f18\u4e91\u865a\u62df\u5c42\u8f6f\u4ef6 StarlingX \u4ecb\u7ecd\uff0c

\n

\u4f5c\u8005\uff1a\u8d75\u6021

\n

4.\u5f00\u6e90\u8fb9\u7f18\u8ba1\u7b97\u9879\u76ee\uff1a\u8ba9\u4f60\u771f\u6b63\u660e\u767d\u4ec0\u4e48\u662f StarlingX\uff0c

\n

\u4f5c\u8005\uff1a\u8096\u4e01

\n" }, { "author": { "url": "member/hellowang", "name": "hellowang", "avatar": "https://cdn.v2ex.com/gravatar/4e34ebbe7fd2f1b5eaf783e4e8e39b25?s=73&d=retro" }, "url": "t/566199", "title": "\u627e\u4e00\u4e2a\u719f\u6089 openstack \u7684\u505a\u6709\u507f\u6280\u672f\u987e\u95ee", "id": "t/566199", "date_published": "2019-05-21T06:15:59+00:00", "content_html": "

\u9700\u8981\u4e00\u4e2a\u6280\u672f\u987e\u95ee\uff0c\u6709\u5174\u8da3\u7684\u53ef\u4ee5\u8be6\u804a\u3002

\n" }, { "author": { "url": "member/leorealman", "name": "leorealman", "avatar": "https://cdn.v2ex.com/gravatar/27a4aa557858a0edd49823791a521288?s=73&d=retro" }, "url": "t/556452", "title": "OpenStack Swift \u590d\u5236\u95ee\u9898", "id": "t/556452", "date_published": "2019-04-18T08:05:27+00:00", "content_html": "

\u73b0\u6709\u96c6\u7fa4\u5982\u4e0b\uff0c\u5927\u91cf\u51e0\u767e TB \u7684\u603b\u5bb9\u91cf\nproxy\nstorageNode1\nstorageNode2\nstorageNode3

\n

\u6211\u60f3\u5b9e\u73b0\u4e1a\u52a1\u7f51\u7edc\u548c\u590d\u5236\u7f51\u7edc\u7684\u9694\u79bb\uff0c\u6c42\u914d\u7f6e\u601d\u8def\uff1f\u770b\u4e86\u597d\u591a\u6587\u7ae0\u6709\u70b9\u61f5\u4e86\u3002

\n" }, { "author": { "url": "member/firejoke", "name": "firejoke", "avatar": "https://cdn.v2ex.com/avatar/a098/a71b/77871_large.png?m=1636019138" }, "url": "t/520514", "date_modified": "2018-12-24T08:24:45+00:00", "content_html": "

\u5b98\u65b9\u6587\u6863Multi Store Support

\n

\u5b98\u65b9\u8bf4\u5728 rocky \u7248\u672c\u662f\u4f5c\u4e3a\u5b9e\u9a8c\u529f\u80fd\u5f15\u5165,

\n

\u53c2\u8003\u540e\u7684\u914d\u7f6e(/etc/glance/glance-api.conf)

\n
[DEFAULT]\n...\nenabled_backends = reliable:file, fast:rbd\n...\n\n[glance_store]\ndefault_backend = reliable\n\n[reliable]\nfilesystem_store_datadir = /opt/stack/data/glance/images/\nstore_description = \"Reliable filesystem backend\"\n\n[fast]\nstore_description = \"Fast rbd backend\"\nrbd_store_pool = images\nrbd_store_user = glance\nrbd_store_ceph_cOnf= /etc/ceph/ceph.conf\nrbd_store_chunk_size = 8\nrados_connect_timeout = 0\n\n[os_staging]\nfilesystem_store_datadir = /opt/stack/data/glance/os_staging/\nstore_description = \"Filesystem store for staging purpose\"\n
\n

\u6e90\u7801\u5185\u5224\u65ad\u540e\u7aef\u5b58\u50a8\u4f4d\u7f6e\u7684\u4ee3\u7801(glance/glance/api/v2/image_data.py class ImageDataController)

\n
...\n...\n @utils.mutating\n def upload(self, req, image_id, data, size):\n backend = None\n if CONF.enabled_backends:\n backend = req.headers.get('x-image-meta-store',\n CONF.glance_store.default_backend)\n\n try:\n LOG.debug(\" = = = = = = backend: %s = = = = = = \" % backend)\n glance_store.get_store_from_store_identifier(backend)\n LOG.debug(\"glance_store.backend %s\" % glance_store.backend)\n except glance_store.UnknownScheme as exc:\n raise webob.exc.HTTPBadRequest(explanation=exc.msg,\n request=req,\n content_type='text/plain')\n\n image_repo = self.gateway.get_repo(req.context)\n image = None\n refresher = None\n cxt = req.context\n try:\n self.policy.enforce(cxt, 'upload_image', {})\n image = image_repo.get(image_id)\n image.status = 'saving'\n try:\n if CONF.data_api == 'glance.db.registry.api':\n # create a trust if backend is registry\n try:\n # request user plugin for current token\n user_plugin = req.environ.get('keystone.token_auth')\n roles = []\n # use roles from request environment because they\n # are not transformed to lower-case unlike cxt.roles\n for role_info in req.environ.get(\n 'keystone.token_info')['token']['roles']:\n roles.append(role_info['name'])\n refresher = trust_auth.TokenRefresher(user_plugin,\n cxt.tenant,\n roles)\n except Exception as e:\n LOG.info(_LI(\"Unable to create trust: %s \"\n \"Use the existing user token.\"),\n encodeutils.exception_to_unicode(e))\n\n image_repo.save(image, from_state='queued')\n image.set_data(data, size, backend=backend)\n\n try:\n image_repo.save(image, from_state='saving')\n except exception.NotAuthenticated:\n if refresher is not None:\n # request a new token to update an image in database\n cxt.auth_token = refresher.refresh_token()\n image_repo = self.gateway.get_repo(req.context)\n image_repo.save(image, from_state='saving')\n else:\n raise\n\n try:\n # release resources required for re-auth\n if refresher is not None:\n refresher.release_resources()\n except Exception as e:\n LOG.info(_LI(\"Unable to delete trust %(trust)s: %(msg)s\"),\n {\"trust\": refresher.trust_id,\n \"msg\": encodeutils.exception_to_unicode(e)})\n...\n...\n
\n

\u76ee\u524d\u8bf7\u6c42\u5934\u5e76\u6ca1\u6709 x-image-meta-store \u5c5e\u6027,\u76f4\u63a5\u6309\u9ed8\u8ba4\u7684 reliable \u540e\u7aef\u914d\u7f6e\u6765

\n

\u76f8\u5173\u65e5\u5fd7:

\n
12 \u6708 24 15:59:25 controller devstack@g-api.service[6524]: DEBUG glance.api.v2.image_data [None req-081110c4-8d29-4567-a4fb-bbbc7313efbf alt_demo admin] = = = = = = backend: reliable = = = = = = {{(pid=6527) upload /opt/stack/glance/glance/api/v2/image_data.py:127}}\n12 \u6708 24 15:59:25 controller devstack@g-api.service[6524]: DEBUG glance.api.v2.image_data [None req-081110c4-8d29-4567-a4fb-bbbc7313efbf alt_demo admin] glance_store.backend <module 'glance_store.backend' from '/usr/lib/python2.7/site-packages/glance_store/backend.pyc'> {{(pid=6527) upload /opt/stack/glance/glance/api/v2/image_data.py:129}}\n......\n12 \u6708 24 15:59:26 controller devstack@g-api.service[6524]: DEBUG glance_store._drivers.filesystem [None req-081110c4-8d29-4567-a4fb-bbbc7313efbf alt_demo admin] Wrote 0 bytes to /opt/stack/data/glance/images/9da337be-bb04-43af-ac1d-b9e5a15a0c70 with checksum d41d8cd98f00b204e9800998ecf8427e and multihash cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e {{(pid=6527) add /usr/lib/python2.7/site-packages/glance_store/_drivers/filesystem.py:728}}\n12 \u6708 24 15:59:27 controller devstack@g-api.service[6524]: DEBUG glance_store.multi_backend [None req-081110c4-8d29-4567-a4fb-bbbc7313efbf alt_demo admin] Skipping store.set_acls... not implemented {{(pid=6527) set_acls_for_multi_store /usr/lib/python2.7/site-packages/glance_store/multi_backend.py:439}}\n......\n
\n

\u5728 http \u4e0a\u4f20\u7f13\u5b58\u76ee\u5f55\u80fd\u627e\u5230\u4e0a\u4f20\u6210\u529f\u7684\u6587\u4ef6,\u4f46\u5728\u4ece\u7f13\u5b58\u76ee\u5f55\u5199\u5165\u5230 image \u76ee\u5f55\u65f6,\u4f46\u5199\u5165\u6570\u636e\u5c31\u53d8\u6210\u4e86 Wrote 0 bytes

\n

\u53ef\u80fd\u662f\u6700\u8fd1\u6bd4\u8f83\u6d6e\u8e81

\n

\u4e00\u76f4\u8dd1\u6d41\u7a0b\u4e5f\u8fd8\u662f\u627e\u4e0d\u5230\u4e3a\u4ec0\u4e48

\n

\u8bf7\u6c42\u80fd\u6709\u5927\u5927\u6307\u70b9\u4e00\u4e8c

\n", "date_published": "2018-12-24T08:23:29+00:00", "title": "openstack rocky \u7248\u672c \u591a\u540e\u7aef\u5b58\u50a8\u652f\u6301 \u4fdd\u5b58\u955c\u50cf\u5931\u8d25", "id": "t/520514" }, { "author": { "url": "member/firejoke", "name": "firejoke", "avatar": "https://cdn.v2ex.com/avatar/a098/a71b/77871_large.png?m=1636019138" }, "url": "t/506252", "title": "centos7 \u4e24\u884c\u547d\u4ee4\u5feb\u901f\u90e8\u7f72 ceph \u591a\u8282\u70b9 (devstack \u6302\u670d\u52a1)", "id": "t/506252", "date_published": "2018-11-09T11:25:25+00:00", "content_html": "

install

\n

yum install ceph-deploy

\n

ceph-deploy install --release jewel --repo-url http://mirrors.aliyun.com/ceph/rpm-jewel/el7/ --gpg-url http://mirrors.aliyun.com/ceph/keys/release.asc ceph01 ceph02 ceph03...

\n

--release \u5bf9\u5e94\u7248\u672c
\n--repo-url \u5bf9\u5e94\u7248\u672c\u7684\u955c\u50cf\u6e90
\n--gpg-url \u5bf9\u5e94\u7684 keys
\n\u4f1a\u5728\u8282\u70b9\u751f\u6210\u5bf9\u5e94\u7684\u7248\u672c\u955c\u50cf yum \u6e90
\n\u4f46\u4e2d\u9014\u5931\u8d25\u7684\u91cd\u88c5\u7684\u65f6\u5019\u6700\u597d\u628a\u8fd9\u4e2a\u6e90\u5220\u6389

\n

devstack \u6302\u670d\u52a1

\n

\u4e0d\u77e5\u4e3a\u4f55\u5728 devstack \u73af\u5883\u521b\u5efa\u4e86 mon \u540e,\u4e00\u4e0b\u6302\u4e86\u597d\u51e0\u4e2a devstack \u670d\u52a1
\n\u60f3\u6c42\u4e2a\u4e00\u77e5\u534a\u89e3

\n" }, { "author": { "url": "member/icanfly", "name": "icanfly", "avatar": "https://cdn.v2ex.com/gravatar/e70a16dedbe59f5942c5b3e62390f971?s=73&d=retro" }, "url": "t/395835", "title": "Centos Openstack Liberty \u5355\u7f51\u5361\u914d\u7f6e", "id": "t/395835", "date_published": "2017-10-07T13:12:27+00:00", "content_html": "

\u5404\u4f4d\u5927\u4f6c\uff0c\u6700\u8fd1\u6709\u4e2a\u9879\u76ee\uff0c\u5ba2\u6237\u90a3\u8fb9\u7684\u73af\u5883\u867d\u7136\u662f\u4e24\u5f20\u7f51\u5361\uff0c\u4f46\u662f\u4e24\u5f20\u7f51\u5361\u90fd\u662f\u914d\u597d ip \u7684\uff08\u4e00\u4e2a\u4f5c\u4e3a\u6b63\u5e38\u7684\u7ba1\u7406\u7f51\u7edc\uff0c\u4e00\u4e2a\u9700\u8981\u8fde\u63a5 IPSAN \uff09\uff0c\u56e0\u6b64\u53ef\u80fd\u53ea\u6709\u4e00\u5f20\u7f51\u5361\u6765\u642d\u5efa openstack\u3002\n\u5c0f\u59b9\u56e0\u4e3a\u521a\u63a5\u624b\u8fd9\u4e2a\u9879\u76ee\uff0c\u4e0d\u592a\u61c2\uff0c\u770b\u5230\u57fa\u672c\u662f\u63a8\u8350\u53cc\u7f51\u5361\u6765\u642d\u5efa openstack \u7684\uff0c\u5355\u7f51\u5361\u6709\u4e00\u4e9b\u6559\u7a0b\uff0c\u4f46\u662f\u6bd5\u7adf\u96be\u627e\u5230\u4e0e\u6211\u4eec\u73af\u5883\u6bd4\u8f83\u76f8\u4f3c\u7684\uff0c\u800c\u4e14\u975e\u5e38\u77ed\u7684\u65f6\u95f4\u5185\u4e5f\u5f88\u96be\u7406\u89e3\u539f\u7406\u3002\u6240\u4ee5\u60f3\u8bf7\u95ee\u4e0b\u5404\u4f4d\u5927\u4fa0\u5bf9\u8fd9\u4e2a\u95ee\u9898\u6709\u4ec0\u4e48\u9ad8\u89c1\uff0c\u4e0d\u80dc\u611f\u6fc0~~

\n" }, { "author": { "url": "member/liwl", "name": "liwl", "avatar": "https://cdn.v2ex.com/gravatar/113b90ef57818573293f2eb3216b5951?s=73&d=retro" }, "url": "t/357976", "title": "OpenStack packstack \u5b89\u88c5\u7684\u65f6\u5019\u62a5\u9519", "id": "t/357976", "date_published": "2017-04-28T08:02:56+00:00", "content_html": "

\u62a5\u9519\u5185\u5bb9

\n

packstack --install-hosts=192.168.255.210

\n

Welcome to Installer setup utility\nParameter CONFIG_MYSQL_HOST failed validation: Given host does not listen on port 22: 192.168.255.210

\n

ERROR : Failed handling answer file: Given host does not listen on port 22: 192.168.255.210

\n

sshd \u7aef\u53e3\u662f 14573\nssh \u9ed8\u8ba4\n\u770b\u4e86\u4e0b\u56fd\u5185\u7f51\u4e00\u4e9b\u4ecb\u7ecd\u3002\u8fd8\u662f\u65e0\u6cd5\u89e3\u51b3...\u6c42...

\n" }, { "author": { "url": "member/lxm", "name": "lxm", "avatar": "https://cdn.v2ex.com/gravatar/bd4b39e02f430b04759b0af8796de43b?s=73&d=retro" }, "url": "t/297084", "title": "\u6709\u4eba\u4e86\u89e3 openstack \u7684 taas \u670d\u52a1\u4e48", "id": "t/297084", "date_published": "2016-08-04T05:41:38+00:00", "content_html": "

\u6700\u8fd1\u60f3\u5728 openstack \u4e0a\u8fb9\u505a\u6d41\u91cf\u955c\u50cf\uff0c\u627e\u5230 taas \u8fd9\u4e2a\u670d\u52a1\uff0c\u6709\u4eba\u4e86\u89e3\u5417\uff0c https://github.com/openstack/tap-as-a-service\n\u6709\u4eba\u6210\u529f\u5b89\u88c5\u7684\u8bdd\u8bf7\u4ecb\u7ecd\u4e0b\u6b65\u9aa4

\n" }, { "author": { "url": "member/caicloud2015", "name": "caicloud2015", "avatar": "https://cdn.v2ex.com/avatar/ad00/6b40/184351_large.png?m=1489660992" }, "url": "t/297045", "title": "\u57fa\u4e8e Kubernetes \u548c OpenStack \u7684\u5f00\u6e90\u9879\u76ee\u5728\u7269\u8054\u7f51\u7684\u5e94\u7528", "id": "t/297045", "date_published": "2016-08-04T03:35:48+00:00", "content_html": "

\u65e5\u524d\u5728 Austin \u4e3e\u529e\u7684 OpenStack \u5927\u4f1a\u4e0a\u4ecb\u7ecd\u8fc7\u57fa\u4e8e Kubernetes \u548c Openstack \u7684\u5f00\u6e90\u7269\u8054\u7f51\u5e73\u53f0\u3002\u6211\u4eec\u6765\u770b\u770b\u8fd9\u4e24\u8005\u7684\u7ed3\u5408\u5728\u7269\u8054\u7f51\u5e73\u53f0\u5982\u4f55\u73a9\uff0c\u5148\u8bf4\u8bf4\u6211\u4eec\u5bf9\u7269\u8054\u7f51\u7684\u89e3\u51b3\u65b9\u6cd5\u548c\u770b\u6cd5\uff0c\u518d\u7ed9\u5927\u5bb6\u5c55\u793a\u4e24\u4e2a\u6848\u4f8b\u3002

\n

\u89c6\u9891\uff1a https://v.qq.com/iframe/player.html?vid=a0300sz5wvb&width=670&height=502.5&auto=0

\n

\u7269\u8054\u7f51\uff08 IoT \uff09\u662f\u4e91\u8ba1\u7b97\u9886\u57df\u7684\u201c\u4e0b\u4e00\u4e2a\u5927\u4e8b\u4ef6\u201d\u3002\u7269\u8054\u7f51\u610f\u5473\u7740\u6240\u6709\u7684\u4e8b\u60c5\uff0c\u5b83\u751a\u81f3\u6bd4\u4e91\u8ba1\u7b97\u670d\u52a1\u66f4\u52a0\u5177\u4f53\u3002\u7269\u8054\u7f51\u4ee5\u589e\u52a0\u673a\u5668\u95f4\u901a\u4fe1\u4e3a\u4e2d\u5fc3\uff0c\u5b83\u5efa\u7acb\u5728\u6570\u636e\u91c7\u96c6\u4f20\u611f\u5668\u7f51\u7edc\u548c\u8fde\u63a5\u5230\u4e91\u8ba1\u7b97\u670d\u52a1\u6267\u884c\u5668\u7684\u57fa\u7840\u4e0a\u3002

\n

\u6211\u4eec\u6765\u770b\u770b\u5982\u4f55\u4f7f\u7528\u5f00\u6e90\u9879\u76ee\uff0c\u6765\u6269\u5c55\u4e91\u670d\u52a1\u65b9\u6cd5\u8fdb\u800c\u521b\u5efa\u901a\u7528\u7684\u7269\u8054\u7f51\u5e73\u53f0\uff0c\u53ef\u4ee5\u5904\u7406\u591a\u4e2a\u7528\u6237\u6848\u4f8b\u3002\u6211\u4eec\u5b9a\u4e49\u4e86\u4ee5\u4e0b\u8981\u6c42\uff1a

\n

\u5f00\u6e90\u8f6f\u4ef6\n\u6574\u4e2a\u5e73\u53f0\u57fa\u4e8e\u5df2\u5b58\u5728\u7684\u5f00\u6e90\u89e3\u51b3\u65b9\u6848\uff0c\u6211\u4eec\u60f3\u8981\u4f7f\u7528\u7684\u5e73\u53f0\u5305\u62ec\uff1a OpenStack \uff0c Kubernetes \uff0c Docker \uff0c OpenContrail \u7b49\u3002

\n

HW \u548c\u72ec\u7acb\u4f9b\u5e94\u5546\n\u6ca1\u6709\u4e00\u5bb6\u4f9b\u5e94\u5546\u7684\u5b9a\u4f4d\u662f\u65e2\u5305\u62ec\u8f6f\u4ef6\u53c8\u5305\u62ec\u786c\u4ef6\u7684\u3002\u7269\u8054\u7f51\u7f51\u5173 CPU \u4e0d\u662f x86/64 \u67b6\u6784\u5c31\u662f ARM \u67b6\u6784\u3002\u6211\u4eec\u4e0d\u60f3\u88ab\u9501\u5b9a\u5230\u7528\u6602\u8d35\u4e13\u7528\u8bbe\u5907\u7684\u4f9b\u5e94\u5546\u3002

\n

\u53ef\u4e92\u76f8\u64cd\u4f5c\n\u7269\u8054\u7f51\u5e73\u53f0\u5bf9\u591a\u79cd\u4f7f\u7528\u60c5\u51b5\u6765\u8bf4\u90fd\u662f\u666e\u904d\u53ef\u7528\u7684\u3002\u6bd4\u5982\uff0c\u7269\u8054\u7f51\u7f51\u5173\u4e5f\u53ef\u7528\u5728\u8ba1\u7b97\u5bf9\u8c61\u7684\u8def\u706f\uff0c\u5c31\u5982\u540c\u7528\u5728\u667a\u80fd\u5de5\u5382\u6216\u8005\u5de5\u4e1a 4.0 \u5e94\u7528\u7a0b\u5e8f\u3002\u56e0\u6b64\uff0c\u6211\u4eec\u8bbe\u8ba1\u4e86\u4ee5\u4e0b\u9ad8\u5c42\u6b21\u7684\u67b6\u6784\uff0c\u8fd9\u4e2a\u67b6\u6784\u4f7f\u7528\u7684\u662f\u5f00\u6e90\u9879\u76ee\uff0c OpenStack \uff0c Kubernetes \uff0c OpenContrail \u548c Docker \u3002

\n

\"\"

\n

\u4f20\u611f\u5668\n\u4efb\u610f\u7528\u6765\u9605\u8bfb\u73af\u5883\u6570\u636e\uff08\u6e29\u5ea6\uff0c\u6e7f\u5ea6\uff0c\u4e8c\u6c27\u5316\u78b3\u6c34\u5e73\uff09\uff0c\u5bf9\u8c61\uff0c\u8ba1\u6570\u7b49\u7b49\u7684\u4f20\u611f\u5668\u3002

\n

IQRF \u7f51\u7edc\nIQRF \u662f\u4e00\u4e2a\u64cd\u4f5c sub \uff0d gigahertz ISM bands \u7684\u5f3a\u5927\u65e0\u7ebf\u7f51\u683c\u6280\u672f\u3002\u80fd\u591f\u5f88\u5bb9\u6613\u5730\u8ddf\u4f20\u611f\u5668\u6574\u5408\u3002

\n

\u7f51\u5173\n\u5728\u7269\u8054\u7f51\u7f51\u5173\uff0c\u7531 IQRF \u534f\u8c03\u5458\u6765\u5904\u7406\u4ece\u4f20\u611f\u5668\u4f20\u6765\u7684\u6570\u636e\u3002\u8fd9\u4e9b\u53ef\u4ee5\u662f\u4efb\u610f\u7684 x86/64 \u6216\u8005 ARM \u67b6\u6784\uff0c\u8fd9\u4e9b\u57fa\u4e8e Docker \uff0c Kubernetes \uff0c OpenContrail vRouter \u548c Debian \uff0c\u4ece\u9884\u6784\u5efa\u955c\u50cf\u65b9\u9762\u6765\u8fd0\u884c\u7cfb\u7edf\u3002

\n

\u7f51\u7edc\n\u7f51\u5173\u53ef\u901a\u8fc7\u4efb\u610f\u7f51\u7edc\u8fde\u63a5\uff08 GSM \uff0f LTE \uff0f WiFi \uff09\uff0c\u56e0\u4e3a SDN \u5728 Docker service \u548c\u6570\u636e\u4e2d\u5fc3\u4e4b\u95f4\u521b\u5efa\u4e86\u52a8\u6001 L3VPN \u3002

\n

\u6570\u636e\u4e2d\u5fc3\n\u6570\u636e\u4e2d\u5fc3\u5305\u62ec\u4e86 OpenStack \u548c Kubernetes \u63a7\u5236\u9762\u677f\u3002\u8fd9\u4e24\u4e2a\u7f16\u6392\u89e3\u51b3\u65b9\u6cd5\u90fd\u4f7f\u7528 OpenContrail \u4f5c\u4e3a\u5355\u4e2a SDN \uff08\u8f6f\u4ef6\u5b9a\u4e49\u7f51\u7edc\uff09\u3002\u8fd9\u5c31\u53ef\u4ee5\u4ece\u4e2d\u5fc3\u70b9\u7ba1\u7406\u6574\u4e2a\u5e73\u53f0\u3002\u6211\u4eec\u53ef\u4ee5\u5728\u672c\u5730\u8fdc\u7a0b\u5f00\u542f\u4efb\u610f Docker \u5bb9\u5668\uff0c\u7136\u540e\u521b\u5efa\u52a8\u6001\u8fde\u63a5\u5230 OpenStack \u4e0a\u7684 service \u3002 OpenStack \u4e91\u5bb9\u5668\u6570\u636e\u5b58\u50a8\u548c\u5927\u6570\u636e\u8fdb\u7a0b services \u3002

\n

\u865a\u62df\u5316\uff0f API \u8bbf\u95ee\n\u6240\u6709\u6570\u636e\u5728\u7f51\u7edc\u7aef\u53e3\u5df2\u7ecf\u88ab\u865a\u62df\u5316\uff0c\u800c\u4e14\u53ef\u4ee5\u901a\u8fc7 REST API service \u8bbf\u95ee\u3002

\n

\u4e0b\u9762\uff0c\u8ba9\u6211\u4eec\u6765\u770b\u4e24\u4e2a\u6848\u4f8b\u3002

\n

\u6848\u4f8b 1: \u667a\u80fd\u57ce\u5e02 Smart City

\n

\u7b2c\u4e00\u4e2a\u6848\u4f8b\u662f\u6377\u514b\u5171\u548c\u56fd Pisek \u57ce\u5e02\u7684 SmartCity \u9879\u76ee\u3002 SmartCity \u6982\u5ff5\u548c\u67b6\u6784\u5c06\u4f1a\u90e8\u7f72\u8d85\u8fc7 3000 \u4e2a\u7aef\u70b9\uff0c\u5927\u7ea6 300 \u4e2a\u7269\u8054\u7f51\u7f51\u5173\uff0c\u8fd9\u4e9b\u7f51\u5173\u4ee5\u9ad8\u53ef\u7528\u6a21\u5f0f\u8fd0\u884c\u5728\u7531 Kubernetes \u9a71\u52a8\u7684\u5bb9\u5668\u4e2d\u3002\u89e3\u51b3\u65b9\u6848\u7684\u4e00\u90e8\u5206\u662f\u5f00\u653e\u6570\u636e\u95e8\u6237\uff0c\u6570\u636e API \u5bf9\u63d0\u4f9b\u4fe1\u606f\u7684\u7b2c\u4e09\u65b9\u516c\u53f8\u6765\u8bf4\u53ef\u7528\uff1a

\n

-\u4ea4\u901a\uff0c\u8def\u5f84\uff0c\u505c\u8f66

\n

-\u76d1\u6d4b\uff0c\u7ba1\u7406\uff0c\u8282\u80fd

\n

-\u7535\u5b50\u5546\u52a1\uff0c\u5e02\u573a\uff0c\u65c5\u6e38\u4fe1\u606f

\n

-\u73af\u5883\u5206\u6790

\n

-\u751f\u6d3b\u65b9\u5f0f\uff0c\u793e\u4f1a\u670d\u52a1\uff0c\u793e\u4ea4\u7f51\u7edc

\n

\"\"

\n

\u76ee\u6807\u89e3\u51b3\u65b9\u6848\u4f7f\u7528\u57fa\u4e8e\u6811\u8393\u6d3e 2 \u7684\u7269\u8054\u7f51\u7f51\u5173\u4f5c\u4e3a\u7269\u8054\u7f51\u7f51\u5173\u670d\u52a1\u3002\u7f51\u5173\u7684\u6570\u636e\u88ab\u5b58\u50a8\u5728 Graphite \uff0c\u7531\u81ea\u5b9a\u4e49\u7684\u6570\u636e\u6316\u6398\u5e94\u7528\u7a0b\u5e8f\u8fdb\u884c\u5904\u7406\uff0c\u7ed3\u679c\u5df2\u7ecf\u88ab\u5c55\u793a\u5230\u57fa\u4e8e LeonardoCMS \u7684\u57ce\u5e02\u516c\u6c11\u95e8\u6237\uff0c\u8fd9\u662f\u4e00\u79cd\u5141\u8bb8\u6df7\u5408\u590d\u6742\u7684\u53ef\u89c6\u5316\u4e0e\u4efb\u610f\u5185\u5bb9\u7684\u7f51\u9875\u670d\u52a1\u3002\u8fd9\u4e2a\u5f00\u653e\u6570\u636e\u95e8\u6237\u4f7f\u5f97\u6570\u636e\u80fd\u591f\u901a\u8fc7\u53ef\u89c6\u5316\u4eea\u8868\u6216\u8005 API \u8bbf\u95ee\u3002

\n

\u4ee5\u4e0b\u5c4f\u5e55\u7528\u7279\u5b9a\u65f6\u671f\u5185\u7684\u8f66\u8f86\u548c\u884c\u4eba\u5c55\u793a\u4e86\u7b80\u5355\u7684\u4ece\u5341\u5b57\u8def\u53e3 Kollarova X Zizkova \u8f93\u51fa\u3002

\n

\"\"

\n

\u6848\u4f8b 2: \u5728 Austin OpenStack \u5cf0\u4f1a\u4e0a\u7684\u667a\u80fd\u4f1a\u8bae

\n

\u4e3a\u4e86\u8bc1\u660e\u6211\u4eec\u7684\u7269\u8054\u7f51\u5e73\u53f0\u5728\u5e94\u7528\u7a0b\u5e8f\u73af\u5883\u72ec\u7acb\uff0c\u6211\u4eec\u4ece\u667a\u80fd\u57ce\u5e02\u9879\u76ee\u91c7\u53d6\u4e86\u4e00\u4e2a\u7269\u8054\u7f51\u7f51\u5173\uff0c\u7136\u540e\u548c\u57fa\u4e8e IQRF \u7f51\u72b6\u7f51\u7edc\u8fde\u63a5\u4f20\u611f\u5668\uff08\u6d4b\u91cf\u6e7f\u5ea6\uff0c\u6e29\u5ea6\u548c\u4e8c\u6c27\u5316\u78b3\u6c34\u5e73\uff09\u4e00\u8d77\u5728 OpenStack \u5cf0\u4f1a\u4e0a\u653e\u5165 Austin \u4f1a\u5c55\u4e2d\u5fc3\u3002\u8fd9\u8bf4\u660e\u4e86\u7269\u8054\u7f51\u7f51\u5173\u7ba1\u7406\u548c\u6536\u96c6\u4fe1\u606f\u7684\u80fd\u529b\uff0c\u5b83\u53ef\u4ee5\u4ece\u4efb\u610f\u50cf IQRF \uff0c Bluetooth \uff0c GPIO \u4e4b\u7c7b\u7684\u57fa\u4e8e Linux \u5e73\u53f0\u901a\u4fe1\u6280\u672f\u83b7\u5f97\u4fe1\u606f\u3002

\n

\u6211\u4eec\u7528\u5355\u4e2a\u3001\u4e3b\u52a8\u7684\u7269\u8054\u7f51\u7f51\u5173\u5728 3 \u697c\u4f1a\u8bae\u90e8\u7f72\u4e86 20 \u4e2a\u4f20\u611f\u5668\u548c 20 \u4e2a\u8def\u7531\u5668\uff0c\u4ece\u6574\u4e2a IQRF \u7f51\u72b6\u7f51\u7edc\u63a5\u6536\u6570\u636e\u5e76\u4f20\u9001\u5230\u4e13\u95e8\u7684\u65f6\u95f4\u5e8f\u5217\u6570\u636e\u5e93\uff0c\u5728\u8fd9\u4e2a\u4f8b\u5b50\u91cc\u662f Graphite \u3002\u6536\u96c6\u5668\u662f\u8fd0\u884c\u5728\u7531 Kubernetes \u7ba1\u7406\u7684 Docker \u5bb9\u5668 MQQT \uff0d Java \u6865\u3002\u6700\u6709\u8da3\u7684\u5c31\u662f\u8fd0\u884c\u5728\u6811\u8393\u6d3e\u4e0a\u7684 Docker \u5bb9\u5668\uff0c\u548c\u8fd0\u884c\u5728 Europe \u6570\u636e\u4e2d\u5fc3\u7684\u865a\u62df\u673a\u3002 OpenContrail SDN \u63d0\u4f9b\u52a8\u6001\u7f51\u7edc\u8986\u76d6 tunnels \u3002

\n

\"\"

\n

\u4ee5\u4e0b\u56fe\u7247\u5c55\u793a\u4e86\u5355\u4e2a\u65e0\u7ebf IQRF \u7f51\u72b6\u7f51\u7edc\u4f20\u611f\u5668\u548c\u8def\u7531\u5668\u53d1\u73b0\u3002

\n

\"\"

\n

IQRF \u662f\u4e00\u4e2a\u5728 sub \uff0d gigahertz \u9891\u5e26\u4e0a\u64cd\u4f5c\u7684\u65e0\u7ebf\u7f51\u72b6\u7f51\u7edc\u6280\u672f\u3002\u5b83\u63d0\u4f9b\u975e\u5e38\u7b80\u5355\u7684\u6574\u5408\uff0c\u4ea7\u54c1\u4e92\u64cd\u4f5c\u6027\uff0c\u6700\u5927\u503c 240 hops \u7684\u5065\u58ee\u7f51\u72b6\u7f51\u7edc\uff0c\u8303\u56f4\u591a\u8fbe\u6570\u767e\u7c73\uff0c\u4ee5\u53ca\u8d85\u4f4e\u529f\u7387\u64cd\u4f5c\u3002

\n

\u4ee5\u4e0b\u622a\u5c4f\u4ece 2 \u697c\u4e0d\u540c\u7684\u623f\u95f4\u5c55\u793a\u4e86\u5404\u4e2a\u65f6\u95f4\u4e0b\u7684 CO2 \u503c\u3002\u5386\u53f2\u56fe\u8868\u5c55\u793a\u7684\u662f\u5468\u4e00\u7684\u60c5\u51b5\u3002

\n

\"\"

\n

\u4ece\u6536\u96c6\u7684 Austin \u6570\u636e\u6765\u770b\uff0c\u4ee5\u4e0b\u56fe\u8986\u76d6\u4e86 services \u3002

\n

\"\"

\n

\u6280\u672f\u603b\u89c8

\n

\u6240\u8c13\u201c\u7269\u8054\u7f51\u5e73\u53f0\u201d\uff0c\u662f\u7528\u4e00\u822c\u89c6\u89d2\u521b\u5efa\u7684\uff0c\u8fd9\u4e2a\u89c6\u89d2\u57fa\u4e8e\u6536\u96c6\uff0c\u7ba1\u7406\u548c\u5b89\u5168\u3001\u52a8\u6001\u5904\u7406\u6210\u5343\u4e0a\u4e07\u7684\u7aef\u70b9\u6765\u96c6\u4e2d\u7ba1\u7406\u3002\u56e0\u6b64\uff0c\u67b6\u6784\u4f1a\u5206\u6210\u4e24\u4e2a\u4e3b\u8981\u7684\u90e8\u5206\uff1a

\n

1 \u6570\u636e\u4e2d\u5fc3

\n

\u6570\u636e\u4e2d\u5fc3\u662f\u6574\u4e2a\u7269\u8054\u7f51\u5e73\u53f0\u7ba1\u7406\u7684\u91cd\u70b9\u3002 OpenStack IaaS \u4e91\u548c\u865a\u62df\u673a\u4e00\u8d77\u8fd0\u884c\u5728 SDN \u63a7\u5236\u9762\u677f\u4e0a\u3002\u8fd9\u4e9b\u673a\u5668\u5305\u62ec\u65f6\u95f4\u5e8f\u5217\u5b58\u50a8\uff0c\u5904\u7406\u6570\u636e\u96c6\u7fa4\uff0c\u6570\u636e API \u4ee3\u7406\u670d\u52a1\uff0c\u865a\u62df\u5316\u7f51\u9875\u670d\u52a1\u7b49\u3002

\n

2 \u7f51\u5173

\n

\u7269\u8054\u7f51\u7f51\u5173\u4f4d\u4e8e\u50cf\u8def\u706f\uff0c\u5de5\u4e1a\u8bbe\u5907\uff0c\u5bb6\u7528\u7535\u5668\u4e4b\u7c7b\u7684\u76ee\u6807\u5730\u65b9\u3002 SDN \u63d0\u4f9b\u4f20\u8f93\u5c42\u7528\u4e91\u670d\u52a1\u6765\u8fde\u63a5\u8fdc\u7a0b\u7269\u8054\u7f51\u7f51\u5173\u3002\u7f51\u5173\u53ef\u4ee5\u662f\u591a\u5e73\u53f0\u7684\uff0c\u6709\u53ef\u80fd\u7684\u8bdd\uff0c\u53ef\u4ee5\u5c06 x86/64 \u548c ARM \u8bbe\u5907\u6df7\u5408\u5230\u4e00\u8d77\u3002\u5728\u5355\u4e2a\u7f51\u5173\u4e3a\u591a\u4e2a\u5ba2\u6237\u5904\u7406\u591a\u4e2a\u4f20\u611f\u5668\u5e73\u53f0\uff0c\u7531\u4e8e\u5fae\u670d\u52a1\u5206\u5272\uff08 Docker \u5bb9\u5668\uff09\u548c Kubernetes \u591a\u79df\u6237\u652f\u6301\u3002\u8fd9\u4e2a\u5e73\u53f0\u53ef\u4ee5\u63d0\u4f9b\u53ef\u4f38\u7f29\u7684\u591a\u79df\u6237\u7a7a\u95f4\u3002\n\u4ee5\u4e0b\u56fe\u8868\u5c55\u793a\u4e86\u5728\u7f51\u5173\u65b9\u9762\u7684\u6570\u636e\u4e2d\u5fc3\u5c42\u548c\u7ec4\u4ef6\u3002\u8fd9\u4e2a\u7ae0\u8282\u7684\u7ec6\u8282\u5c55\u793a\u4e86\u66f4\u591a\u4fe1\u606f\u3002

\n

\"\"

\n

\u7ec6\u8282\u56fe\u8868

\n

\u7ec6\u8282\u56fe\u8868\u63d0\u4f9b\u4e86\u6574\u4e2a\u7269\u8054\u7f51\u5e73\u53f0\u5728\u672c\u5730\u7684\u67b6\u6784\u89c6\u56fe\u3002\u5de6\u8fb9\u5c55\u793a\u7684\u662f\u6570\u636e\u4e2d\u5fc3\uff0c\u53f3\u8fb9\u5c55\u793a\u7684\u662f\u4e4b\u524d\u63d0\u5230\u7684\u7f51\u5173\u3002

\n

\u5c31\u5982\u540c\u4f60\u5728\u4e0b\u9762\u770b\u5230\u7684\u90a3\u6837\uff0c OpenStack \u88ab\u7528\u4f5c\u4e91\u6765\u5904\u7406\u6240\u6709\u7684 control service \uff0c\u4ee5\u53ca\u5927\u6570\u636e\u5904\u7406\uff0c\u548c\u4e4b\u524d\u63d0\u5230\u7684\u865a\u62df\u5355\u5143\u3002\u5728\u7f51\u5173\u7684 Kubernetes \u88ab\u7528\u4e8e services \u7684\u5fae\u5206\u6bb5\uff0c\u8fd9\u5bf9\u591a\u79df\u6237\u548c\u4e0d\u540c\u4f20\u611f\u5668\u95f4\u7684\u5b89\u5168\u6765\u8bf4\u5341\u5206\u6709\u5fc5\u8981\u3002

\n

OpenContrail \u88ab\u7528\u6765\u8fde\u63a5\u8fd9\u4e24\u8fb9\uff0c\u5e76\u4e14\u63d0\u4f9b Kubernetes PODs \u548c OpenStack \u9879\u76ee\u865a\u62df\u673a\u95f4\u7684\u7f51\u7edc\u5206\u6bb5\u3002

\n

\"\"

\n

\u50cf\u4e0a\u6587\u63d0\u5230\u7684\uff0c SDN \u8986\u76d6\u5df2\u7ecf\u5b8c\u6210\u4e86\u5206\u5272\u3002\u91cd\u8981\u7684\u662f\u53ea\u6709\u6570\u636e\u4e2d\u5fc3\u8fb9\u754c\u8def\u7531\u5668\u548c\u7269\u8054\u7f51\u7f51\u5173\u4e4b\u95f4\u7684 IP \u8fde\u63a5\u3002\u6700\u5e95\u5c42\u662f\u7f51\u5173 OS \u548c\u6570\u636e\u4e2d\u5fc3\u8fb9\u754c\u8def\u7531\u5668\u4e4b\u95f4\u7684 VPN \uff0c\u5728\u8fd9\u91cc OpenContrail \u53ef\u4ee5\u76f4\u63a5\u5728\u865a\u62df\u673a\uff08 OpenStack \u4e91\uff09\u548c\u5bb9\u5668\uff08\u7f51\u5173\uff09\u95f4\u4ea4\u6d41\u3002\u8fd9\u4e2a\u65b9\u6cd5\u5141\u8bb8\u4ece\u4e0d\u540c\u7684\u4f20\u611f\u5668\u548c\u6267\u884c\u5668\u9009\u62e9\uff0c\u7ed9\u4e88\u4ed6\u4eec\u7279\u6743\uff0c\u5e76\u4e14\u5b89\u5168\u5730\u8fde\u63a5\u5904\u7406\u5e94\u7528\u7a0b\u5e8f\u5185\u90e8\u7684\u4e91\u3002

\n

\u6570\u636e\u4e2d\u5fc3\u5305\u62ec\u4ee5\u4e0b services \uff1a

\n

\u7ba1\u7406 services\nHW \u96c6\u7fa4\u7528\u6240\u6709\u7684 control service \u6765\u8fd0\u884c\u865a\u62df\u673a\uff1a OpenStack controller \uff0c OpenContrail controller \uff08 SDN \uff09\uff0c Kubernetes master \uff0c SaltMaster \u3002

\n

OpenStack \u4e91\nOpenStack \u9879\u76ee\u4e3a\u4e0d\u540c\u7684\u865a\u62df\u673a\u63d0\u4f9b\u5206\u6bb5\uff0c\u865a\u62df\u673a\u5305\u62ec\u6570\u636e\u5e93\uff08 graphite \uff0c influxdb \uff0c openTSDB \uff09\uff0c\u5927\u6570\u636e\u5904\u7406\uff08 Hadoop \uff09\uff0c\u6570\u636e\u865a\u62df\u5316\uff08 Grafana \uff0c LeonardoCMS \uff09\u3002\u5b83\u8fd0\u884c\u5728 KVM \u8d85\u7ba1\u7406\u5668\u4e0a\uff0c\u5e76\u4e14\u4e3a\u7f51\u7edc\u4f7f\u7528 OpenContrail neutron \u63d2\u4ef6\u3002

\n

\u8fb9\u754c\u8def\u7531\u5668\nOpenContrail \u521b\u5efa iBGP \uff0c iBGP \u4e0e\u6570\u636e\u4e2d\u5fc3\u8fb9\u754c\u8def\u7531\u5668\u5bf9\u7b49\uff0c\u5728\u8fb9\u754c\u8def\u7531\u5668\u4e0a\uff0c\u4ece OpenStack \u865a\u62df\u673a\u548c\u7269\u8054\u7f51\u7f51\u5173\u4e0a\u7684 Kubernetes pods \u53ef\u4ee5\u4f20\u64ad\u52a8\u6001\u7f51\u7edc\u8def\u7531\u3002\u5b83\u521b\u5efa\u4e86\u6807\u51c6\u7684 L3VPN \uff0c MPLSoverGRE \u6216\u8005 MPLSoverUDP \u3002

\n

\u8fdc\u7a0b\u7f51\u5173\u5305\u62ec\u7684\u7ec4\u4ef6\uff1a

\n

Kubernetes Minion\nKubernetes minion \u4e0e Kubernetes master \u5728\u6570\u636e\u4e2d\u5fc3\u8fdb\u884c\u4ea4\u6d41\uff0c\u5e76\u4e14\u901a\u8fc7 kubelet \u7ba1\u7406 PODs \u3002 Kubelet \u4f7f\u7528 opencontrail \u63d2\u4ef6\uff0c\u8fd9\u4e2a\u63d2\u4ef6\u53ef\u4ee5\u7528 vRouter \u4ee3\u7406\u8fde\u63a5 Docker \u5bb9\u5668\u3002

\n

Kubernetes PODs\nKubernetes PODs \u8fde\u63a5\u5230 vRouter \u7684\u5355\u4e2a\u6216\u8005\u591a\u4e2a\u5bb9\u5668\u7ec4\u3002 PODs \u7531\u6807\u7b7e\u8fdb\u884c\u5206\u7c7b\u3002\u8fd9\u5c31\u53ef\u4ee5\u5f00\u542f\u4e0d\u540c\u7684\u5e94\u7528\u7a0b\u5e8f\uff0c\u5c31\u53ef\u4ee5\u4ece\u50cf IQRF \uff0c Bluetooth \u6216\u8005 GPIO \u8fd9\u6837\u7684\u6d88\u606f\u603b\u7ebf\u8bfb\u53d6\u3002

\n

Docker \u5bb9\u5668\nKubernetes PODs \u4e2d\u7684 Docker \u5bb9\u5668\u5e26\u6765\u65e0\u987b\u4efb\u4f55\u7279\u6b8a\u88c5\u7f6e\u5c31\u53ef\u4ee5\u8f7b\u677e\u64cd\u4f5c\u7cfb\u7edf\u7684\u5de8\u5927\u597d\u5904\u3002\u6bd4\u5982 IQRF \u7528\u7279\u5b9a\u7248\u672c\u6765\u4f7f\u7528\u7b80\u5355\u7684 Java \u5e94\u7528\u7a0b\u5e8f\uff0c\u8fd9\u4e2a\u7248\u672c\u7528\u5bb9\u5668\u53ef\u4ee5\u5728\u51e0\u5206\u949f\u5185\u8fdb\u884c\u4ea4\u4ed8\uff0c\u800c\u4e14\u4e0d\u4f1a\u5bfc\u81f4\u8ddf\u64cd\u4f5c\u7cfb\u7edf\u7f51\u5173\u4e0d\u5339\u914d\u7684\u72b6\u51b5\u3002

\n

\u5e94\u7528\u89c6\u56fe

\n

\u4e0b\u56fe\u63d0\u4f9b\u4e86\u5e94\u7528\u89c6\u56fe\u7684\u6a21\u5f0f\u3002\u5c55\u793a\u4e86\u865a\u62df\u673a\u5185\u90e8 OpenStack \u4e91\u80fd\u591f\u5728\u4efb\u610f\u5730\u7406\u4f4d\u7f6e L2 \u6216\u8005 L3 \u4e0a\u8054\u7cfb\u5230 Docker \u5bb9\u5668\u7684\u72b6\u51b5\uff0c\u8fd9\u5f97\u76ca\u4e8e OpenContrail \u7684\u8986\u76d6\u3002\u56e0\u6b64\uff0c\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u8005\u80fd\u591f\u4f7f\u7528\u76f8\u540c\u7684\u5de5\u5177\uff0c\u5c31\u5982\u540c\u4ed6\u4eec\u5728\u6807\u51c6\u4e91\u4e2d\u4f7f\u7528\u7684\u90a3\u6837\u3002

\n

\"\"

\n

\u6bd4\u5982\uff0c\u6211\u4eec\u4ece\u73af\u5883\u4f20\u611f\u5668\u6536\u96c6\u6570\u636e\u3002\u4f20\u611f\u5668\u76f4\u63a5\u8fde\u63a5\u5230\u5bb9\u5668\uff0c\u6570\u636e\u5728\u5bb9\u5668\u4e2d\u5904\u7406\uff0c\u4e4b\u540e\u53d1\u9001\u5230 Graphite \u65f6\u95f4\u5e8f\u5217\u6570\u636e\u5e93\u3002\u56e0\u4e3a\u6211\u4eec\u60f3\u8981\u751f\u52a8\u5730\u5b9e\u65f6\u663e\u793a\u6570\u636e\uff0c\u6211\u4eec\u7528\u8bfb\u53d6 GraphiyeAPI \u63a5\u53e3\u7684 Leonardo CMS \u6765\u4f7f\u7528\u53e6\u4e00\u4e2a\u865a\u62df\u673a\uff0c\u5e76\u5728\u7f51\u9875\u4e0a\u5c55\u73b0\u6570\u636e\u3002\u6839\u636e\u8fd9\u4e2a\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u5728\u540c\u4e00\u4e2a\u7531\u591a\u4e2a\u8f93\u5165\u548c\u8f93\u51fa\u7684\u4e91\u4e2d\uff0c\u4f9d\u636e\u76f8\u540c\u7684\u51c6\u5219\u6765\u521b\u5efa\u4e0d\u540c\u7684\u9879\u76ee\u3002

\n

\u7ed3\u8bba

\n

\u4ee5\u4e0a\u7b80\u8ff0\u4e86\u5982\u4f55\u57fa\u4e8e Kubernetes \u548c OpenStack \u6765\u505a\u7269\u8054\u7f51\u5e73\u53f0\u7684\u539f\u578b\u90e8\u7f72\uff0c\u76ee\u524d\u6211\u4eec\u6b63\u5728\u4e3a\u6574\u4e2a Smart City \u5904\u7406\u7ec6\u8282\u4e0a\u7684\u8bbe\u8ba1\u3002\n\u4eca\u5e74\uff0c\u5728 Austin \u7684 OpenStack \u5cf0\u4f1a\uff0c\u4ee5\u53ca London \u7684 KubeCon \u4e0a\uff0c\u6211\u4eec\u5f97\u5230\u4e86\u5f88\u591a\u53cd\u9988\u3002\u5bf9\u4e8e\u5904\u7406\u5b89\u5168\u95ee\u9898\uff0c\u5927\u5bb6\u89c9\u5f97\u6211\u4eec\u63d0\u4f9b\u7684\u65b9\u6cd5\u601d\u8def\u662f\u53ef\u884c\u7684\uff0c\u62b5\u6297\u5c5e\u6027\u548c\u6027\u80fd\u5173\u7cfb\u5230\u7269\u8054\u7f51\u5e73\u53f0\uff0c\u4ee5\u53ca\u5f88\u591a\u6280\u672f\u5408\u4f5c\u4f19\u4f34\u90fd\u60f3\u8981\u52a0\u5165\u6211\u4eec\uff0c\u8ddf\u6211\u4eec\u4e00\u8d77\u52aa\u529b\uff0c\u7136\u540e\u62d3\u5c55\u6211\u4eec\u7684\u7269\u8054\u7f51\u5e73\u53f0\u5230\u4ed6\u4eec\u7684\u89e3\u51b3\u65b9\u6848\u3002

\n

\u539f\u6587\u94fe\u63a5\uff1a http://www.tcpcloud.eu/en/blog/2016/05/12/open-source-iot-platform-based-openstack-and-kubernetes/#rd?sukey=3903d1d3b699c208ac603dd2f535c040389099d07242e0c7a36550f7ec7411d1ea291bb4b5bc71f08193e25b1aae095e

\n

\uff08\u5982\u679c\u9700\u8981\u8f6c\u8f7d\uff0c\u8bf7\u8054\u7cfb\u6211\u4eec\uff0c\u5c0a\u91cd\u77e5\u8bc6\u4ea7\u6743\u4eba\u4eba\u6709\u8d23:\uff09

\n" }, { "author": { "url": "member/yuedingwangji", "name": "yuedingwangji", "avatar": "https://cdn.v2ex.com/gravatar/09e92b80190546bb9be09b6b9511cc46?s=73&d=retro" }, "url": "t/293775", "date_modified": "2016-07-20T12:19:33+00:00", "content_html": "

RT \uff0c\u6700\u8fd1\u642d\u5efa devstack \u7684\u73af\u5883\uff0c \u66f4\u6362 source.list \u4e3a\u963f\u72f8\u6e90\uff0c \u66f4\u6362 PIP \u4e3a\u8c46\u74e3\uff0c\u7cfb\u7edf\u4e3a ubuntu 14.04.4 server x64 \uff0c\u53ea\u5b89\u88c5\u4e86 openssh-server \uff0c mirror \u4e3a http://git.trystack.cn \uff0c \u53c2\u8003\u5b89\u88c5\u6587\u6863\u4e3a http://www.chenshake.com/openstack-project-series-3-devstack/ \uff08\u76ee\u524d\u8fd9\u57df\u540d\u597d\u50cf\u8fc7\u671f\u4e86\uff09\n\u95ee\u9898\u6765\u4e86\uff0c \u5b89\u88c5\u5b8c\u8bbf\u95ee UI \u7684\u65f6\u5019 \uff0c\u63d0\u793a\u5982\u4e0b

\n
 python compress.py compress\nTraceback (most recent call last):\n File \"compress.py\", line 5, in <module>\n from compressor.cache import (cache_get, cache_set, get_offline_hexdigest,\n File \"/usr/local/lib/python2.7/dist-packages/compressor/cache.py\", line 8, in <module>\n from django.core.cache import caches\n File \"/usr/local/lib/python2.7/dist-packages/django/core/cache/__init__.py\", line 34, in <module>\n if DEFAULT_CACHE_ALIAS not in settings.CACHES:\n File \"/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py\", line 48, in __getattr__\n self._setup(name)\n File \"/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py\", line 42, in _setup\n % (desc, ENVIRONMENT_VARIABLE))\ndjango.core.exceptions.ImproperlyConfigured: Requested setting CACHES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.\n
\n

\u63d0\u793a\u5f88\u957f\uff0c\u8fd9\u91cc\u53ea \u63d0\u53d6\u4e86\u90e8\u5206\u8ba4\u4e3a\u6709\u7528\u7684

\n

\u5230\u73b0\u5728\u6211\u90fd\u8fd8\u4e0d\u6210\u529f\u662f\u5426\u5b89\u88c5\u6210\u529f\uff0c \u5404\u7ec4\u4ef6\u8fd8\u4e0d\u719f\u6089\uff0c\u4e5f\u4e0d\u77e5\u9053\u67e5\u770b\uff0c google \u5230\u7684\u5927\u90fd\u662f\u82f1\u6587\uff0c\u628a\u6211\u90fd\u770b\u8499\u853d\u4e86\uff0c \u5e0c\u671b\u5404\u4f4d\u6307\u70b9\u4e0b\u8ff7\u6d25\uff0c\u544a\u8bc9\u6211\u600e\u4e48\u624d\u7b97\u5b89\u88c5\u6210\u529f \uff0c\u8c22\u8c22\uff01

\n", "date_published": "2016-07-20T12:17:48+00:00", "title": "devstack \u5b89\u88c5 \u7591\u60d1", "id": "t/293775" }, { "author": { "url": "member/littlewey", "name": "littlewey", "avatar": "https://cdn.v2ex.com/avatar/6ecb/dd6e/426_large.png?m=1750824239" }, "url": "t/291735", "title": "\u6c42\u52a9\u5173\u4e8e openstack \u5f00\u53d1\u4e00\u4e2a\u8d44\u6e90\u81ea\u52a9\u7cfb\u7edf\u7684\u601d\u8def", "id": "t/291735", "date_published": "2016-07-11T07:49:45+00:00", "content_html": "

\u80cc\u666f\uff1a Team \u5185\u6709 openstack \uff0c\u540c\u4e8b\u4eec\u6709\u9700\u6c42\u4f7f\u7528\u51e0\u79cd\u89c4\u683c\u51e0\u79cd\u76ee\u7684\u7684\u865a\u62df\u673a\u3002\n\u9700\u6c42\uff1a \u6b63\u5e38\u6211\u4eec\u540c\u4e8b\u9700\u6c42\u4e0d\u4e00\u6837\u7684 vm \u9700\u8981\u4eba\u5de5\u53bb\u63d0\u4ea4 ticket \u7b49\u4eba\u6765\u5904\u7406\uff0c\u6211\u60f3\u505a\u4e00\u4e2a web service \uff08\u57fa\u4e8e flask \u6700\u597d\uff09\uff0c\u5b9e\u73b0\u540c\u4e8b\u4eec\u81ea\u52a9\u53bb\u9009\u62e9\u4e00\u4e2a\u9700\u6c42\uff0c\u7136\u540e web \u540e\u7aef\u53bb\u8ddf openstack \u7684 ochestration API \u505a\u76f8\u5e94\u7684\u64cd\u4f5c\u8fd4\u56de\u7ed9\u524d\u7aef\u72b6\u6001\u548c\u4fe1\u606f\u3002

\n

\u6211\u9700\u8981\u5b66\u54ea\u4e9b\u4e1c\u897f\u54c8\uff1f\u6280\u80fd\u6811\uff1f\u6709\u73b0\u6210\u7684\u8f6e\u5b50\u4e48\uff1f

\n

\u6211\u53ea\u7528 flask \u5199\u8fc7\u7b80\u5355\u7684 web tool \uff0c openstack \u5f00\u53d1\u6ca1\u6709\u505a\u8fc7\uff0c\u60f3\u54a8\u8be2\u4e0b\u5927\u5bb6\u7684\u4e00\u4e9b\u5efa\u8bae\u3002 Google \u4e86\u4e00\u4e9b\u6ca1\u6709\u627e\u5230\u9002\u5408\u7684\u8f6e\u5b50\u6216\u8005\u5b66\u4e60 dev \u7684 demo \u8d44\u6599\u3002

\n

\u591a\u8c22:-D \u3002

\n" }, { "author": { "url": "member/myyou", "name": "myyou", "avatar": "https://cdn.v2ex.com/avatar/bbaf/e3f1/135646_large.png?m=1440754497" }, "url": "t/270936", "title": "\u56fd\u5185\u7684\u65b0\u5174\u4e91\u670d\u52a1\u662f\u4e0d\u662f\u90fd\u662f\u4ee5 openstack \u4e3a\u57fa\u7840\u7684\u4e91\u5e73\u53f0\uff1f", "id": "t/270936", "date_published": "2016-04-14T01:48:40+00:00", "content_html": "" }, { "author": { "url": "member/wsgzao", "name": "wsgzao", "avatar": "https://cdn.v2ex.com/avatar/10c8/844e/57018_large.png?m=1731505795" }, "url": "t/261159", "date_modified": "2016-03-04T09:38:38+00:00", "content_html": "\r
\r
## \u524d\u8a00\r
\r
\u4e3a\u671f 6 \u5929\u7684 Red Hat OpenStack \u57f9\u8bad\u53d7\u76ca\u826f\u591a\uff0c\u5b9e\u9a8c\u8fc7\u7a0b\u4e5f\u975e\u5e38\u4e30\u6ee1\uff0c\u6709\u5f88\u591a\u77e5\u8bc6\u9700\u8981\u5438\u6536\u548c\u6d88\u5316\uff0c\u6587\u7ae0\u4e2d\u628a\u8be6\u7ec6\u7684\u5b9e\u9a8c\u8fc7\u7a0b\u5168\u90e8\u5206\u4eab\u51fa\u6765\u3002\u5b9e\u9a8c\u73af\u5883\u662f\u901a\u8fc7 Vagrant \u90e8\u7f72 rhel7.1 \u5feb\u901f\u751f\u6210\uff0c\u4f7f\u7528 4G \u4ee5\u4e0a\u7b14\u8bb0\u672c\u7535\u8111\u5c31\u53ef\u4ee5\u5b8c\u6210\u642d\u5efa\u3002\u6240\u6709\u7684\u914d\u7f6e\u53c2\u6570\u90fd\u6709\u5907\u6ce8\u8bf4\u660e\uff0c\u5e0c\u671b\u53ef\u4ee5\u5e2e\u52a9\u5927\u5bb6\u5feb\u901f\u5b66\u4e60\u548c\u719f\u6089 OpenStack \u3002\u8fd9\u6216\u8bb8\u4e5f\u662f\u6211 Blog \u4e2d\u6700\u957f\u7684\u4e00\u7bc7\u51d1\u5b57\u6570\u6587\u7ae0\u3002\r
\r
OpenStack \u662f\u4ee3\u66ff VMware \u79c1\u6709\u4e91\u7684\u6700\u4f73\u65b9\u6848\u4e4b\u4e00\r
\r
\r
## \u66f4\u65b0\u8bb0\u5f55\r
\r
2016 \u5e74 03 \u6708 04 \u65e5 - \u521d\u7a3f\r
\r
\u9605\u8bfb\u539f\u6587 - http://wsgzao.github.io/post/openstack/\r
\r
**\u6269\u5c55\u9605\u8bfb**\r
\r
- OpenStack | \u7ea2\u5e3d - https://www.redhat.com/zh/insights/openstack", "date_published": "2016-03-04T09:38:23+00:00", "title": "Red Hat OpenStack \u5b98\u65b9\u57f9\u8bad\u7b14\u8bb0", "id": "t/261159" }, { "author": { "url": "member/vonnyfly", "name": "vonnyfly", "avatar": "https://cdn.v2ex.com/avatar/7a06/e8b4/71154_large.png?m=1454911609" }, "url": "t/247135", "date_modified": "2015-12-30T03:08:14+00:00", "content_html": "", "date_published": "2015-12-30T03:06:51+00:00", "title": "\u63a8\u8350\u7b80\u5355\u70b9\u7684\u865a\u62df\u673a\u7f51\u9875\u7ba1\u7406\u7684\u5f00\u6e90\u7a0b\u5e8f", "id": "t/247135" }, { "author": { "url": "member/smartdie", "name": "smartdie", "avatar": "https://cdn.v2ex.com/avatar/a4a5/4916/104838_large.png?m=1428849887" }, "url": "t/233903", "title": "\u505a openstack \u4e8c\u6b21\u5f00\u53d1\u6709\u76f8\u5173\u7684\u6280\u672f\u6587\u7ae0\u90ae\u4ef6\u8ba2\u9605\u5417\uff1f", "id": "t/233903", "date_published": "2015-11-05T09:02:34+00:00", "content_html": "

\u7c7b\u4f3c\u597d\u4e1c\u897f\u4f20\u9001\u95e8\u90a3\u79cd\uff0c\u6700\u597d\u662f\u4e2d\u6587\u7684\u3002\u6c42\u63a8\u8350

\n" }, { "author": { "url": "member/njustyw", "name": "njustyw", "avatar": "https://cdn.v2ex.com/avatar/dfed/b135/17493_large.png?m=1433004506" }, "url": "t/195595", "title": "OpenStack \u91cc\u9762 Windows \u865a\u62df\u673a\u65e0\u6cd5\u4e0a\u7f51", "id": "t/195595", "date_published": "2015-06-02T10:22:58+00:00", "content_html": "Linux\u662f\u53ef\u4ee5\u7684
Windows\u865a\u62df\u673a\u5b89\u88c5\u4e86virtio\u9a71\u52a8 \u5916\u90e8\u7f51\u7edc\u662f\u53ef\u4ee5ping\u901a\u7684 \u4f46\u662f\u7f51\u9875\u65e0\u6cd5\u8bbf\u95ee \u6293\u5305\u770b\u4e86\u4e0btcp\u8fde\u63a5\u662f\u5efa\u7acb\u4e86 \u4f46\u662f\u4e4b\u540e\u6ca1\u6709\u4efb\u4f55\u8fdb\u51fa\u6570\u636e\u6d41
\u7eb3\u95f7 \u6709\u78b0\u5230\u7c7b\u4f3c\u7684\u60c5\u51b5\u5417" }, { "author": { "url": "member/turingbook", "name": "turingbook", "avatar": "https://cdn.v2ex.com/gravatar/ebf1e186ee6f68892427d92a786e5fca?s=73&d=retro" }, "url": "t/183448", "title": "ZStack\uff1a CloudStack \u6838\u5fc3\u4eba\u5458\u63a8\u51fa\u7684\u65b0\u5f00\u6e90 IaaS \u9879\u76ee", "id": "t/183448", "date_published": "2015-04-13T09:27:13+00:00", "content_html": "

http://www.csdn.net/article/2015-04-10/2824443
\nCloudStack\u524d\u6838\u5fc3\u5f00\u53d1\u4eba\u5458\u5f20\u946b\u56e2\u961f\u7684\u4f5c\u54c1\uff0c\u5e0c\u671b\u4ece\u67b6\u6784\u4e0a\u89e3\u51b3\u56db\u4e2a\u95ee\u9898\uff1a\u6613\u7528\u6027\uff0c\u7a33\u5b9a\u6027\uff0c\u9ad8\u6027\u80fd\uff0c\u4ee5\u53ca\u6269\u5c55\u6027\u3002\u63d2\u4ef6\u67b6\u6784\u3002

\n" }, { "author": { "url": "member/aarwwefdds", "name": "aarwwefdds", "avatar": "https://cdn.v2ex.com/avatar/07e3/b175/42014_large.png?m=1414744979" }, "url": "t/180931", "title": "OpenStack \u548c SaaS \u6709\u4ec0\u4e48\u5173\u7cfb\u4e48\uff1f", "id": "t/180931", "date_published": "2015-04-01T10:44:42+00:00", "content_html": "

\u6211\u5370\u8c61\u91ccOpenStack\u662fIaaS\u6765\u7740 \u8c37\u6b4c\u4e86\u4e5f\u6ca1\u4ec0\u4e48\u5934\u7eea\u3002\u3002\u90a3\u4e48\u95ee\u9898\u6765\u4e86\u3002\u3002OpenStack\u6709\u6ca1\u6709\u529e\u6cd5\u63d0\u4f9bSaaS\u6216\u8005\u662f\u6574\u5408\u4ec0\u4e48\u7684\uff1f
\n\u8bf7\u4e0d\u8981\u89c9\u5f97\u697c\u4e3b\u5f88\u86cb\u75bc\uff0c\u56e0\u4e3a\u4e0a\u9762\u7ed9\u7684\u8bf4\u660e\u5c31\u8fd9\u4e48\u7684\u86cb\u75bc\uff0c\u6211\u662f\u6478\u4e0d\u5230\u5934\u7eea
\np.s.\u548c\u53d1\u5e16\u65e5\u65e0\u5173

\n" }, { "author": { "url": "member/biwangshen", "name": "biwangshen", "avatar": "https://cdn.v2ex.com/avatar/3a66/cb77/102931_large.png?m=1500185910" }, "url": "t/177776", "title": "opensatcke \u4e0b selinux \u7684\u6587\u4ef6\u914d\u7f6e\u95ee\u9898", "id": "t/177776", "date_published": "2015-03-18T07:43:47+00:00", "content_html": "

\u6574\u4e2aopenstack\u7684\u6574\u4e2a\u8fd0\u7ef4\u5b9e\u5728ubuntu\u4e0b\u8fdb\u884c\u7684\uff0cubuntu12.04\u548c14.04\u4e2d\u7684selinux\u5305\u662f\u4e0d\u662f\u5168\u7684\u989d\uff0c\u8fd8\u6709\u8981\u5bf9openstack\u7684\u5404\u4e2a\u670d\u52a1\u8fdb\u884cselinux\u7684\u914d\u7f6e\uff0c\u8be5\u4ece\u54ea\u4e2a\u65b9\u9762\u5165\u624b\u989d\uff1f

\n" }, { "author": { "url": "member/pfitseng", "name": "pfitseng", "avatar": "https://cdn.v2ex.com/avatar/a727/afed/47191_large.png?m=1405478278" }, "url": "t/164192", "title": "\u8bd5\u4e86\u4e00\u4e0b RDO\uff0c\u8bf7\u6559\u4e0b\u5f53\u5b9e\u4f8b\u8d77\u6765\u540e\uff0c\u5206\u914d\u5230\u79c1\u6709 ip\uff0c\u9ed8\u8ba4\u662f 10.0.0.x\uff0c\u8fd9\u4e2a\u65f6\u5019\u5bbf\u4e3b\u673a\u80fd ping \u901a\u8fd9\u4e2a\u5730\u5740\u5417\uff1f", "id": "t/164192", "date_published": "2015-01-21T08:34:08+00:00", "content_html": "\u6211\u641e\u4e86\u534a\u5929\uff0c\u4e0d\u7ba1\u662f\u79c1\u6709ip10.0.0.x\uff0c\u8fd8\u662f\u6d6e\u52a8ip172.24.4x\u90fdping\u4e0d\u901a\u3002\u662f\u54ea\u91cc\u9700\u8981\u8bbe\u7f6e\u5417\uff1f\u521a\u5f00\u59cb\u63a5\u89e6\uff0c\u4e0d\u662f\u5f88\u4e86\u89e3\u3002" }, { "author": { "url": "member/xnhp0320", "name": "xnhp0320", "avatar": "https://cdn.v2ex.com/gravatar/09f119d5c3f61f37bd34e227af77a9f0?s=73&d=retro" }, "url": "t/159204", "title": "\u5927\u5bb6\u6709\u8c01\u6210\u529f\u90e8\u7f72\u8fc7 OpenContrail \u4e48\uff1f", "id": "t/159204", "date_published": "2015-01-04T14:09:56+00:00", "content_html": "

\u6700\u8fd1\u9879\u76ee\u7ec4\u8c03\u7814OpenContrail\uff0c\u5c0f\u5f1f\u8d1f\u8d23\u8c03\u7814OpenStack\u548cOpenContrail\u4e24\u4e2a\u8d85\u5927\u578b\u9879\u76ee\uff0c\u76ee\u524d\u5c1a\u5904\u5728\u5b89\u88c5\u9636\u6bb5\u3002OpenStack\u8fd8\u6bd4\u8f83\u597d\u89e3\u51b3\uff0cOpenContrail\u5b9e\u5728\u662f\u592a\u5927\uff0c\u7ec4\u4ef6\u4e5f\u592a\u591a\u4e86\uff0c\u6587\u6863\u4e5f\u5f88\u4e0d\u5b8c\u5584\uff0c\u4e0d\u77e5\u9053\u6709\u6ca1\u6709\u4eba\u7528\u8fc7OpenContrail?

\n" }, { "author": { "url": "member/codeninja", "name": "codeninja", "avatar": "https://cdn.v2ex.com/gravatar/57ff84322306fb2dcf0e1053a7798ca5?s=73&d=retro" }, "url": "t/144646", "date_modified": "2014-11-07T05:05:44+00:00", "content_html": "Installing Ubuntu OpenStack requires at least six machines with two disks, one of which with two network interfaces (NICs).

\u540e\u534a\u53e5\u4e3b\u8981\u662f\uff0c\u5230\u5e95\u662f\u6bcf\u53f0\u4e24\u5757\u7f51\u5361\u5462\uff0c\u8fd8\u662f\u5176\u4e2d\u4e00\u53f0\u6709\u4e24\u5757\u7f51\u5361\uff1f", "date_published": "2014-11-07T04:28:59+00:00", "title": "\u8fd9\u53e5\u82f1\u6587\u5e94\u8be5\u600e\u4e48\u7406\u89e3\uff1f", "id": "t/144646" }, { "author": { "url": "member/hepin1989", "name": "hepin1989", "avatar": "https://cdn.v2ex.com/avatar/df1d/d8b2/39820_large.png?m=1775552138" }, "url": "t/118784", "date_modified": "2014-06-21T09:22:57+00:00", "content_html": "\u95ee\u9898\uff1a
\u6211\u516c\u53f8\u7684\u5b9e\u65bd\u544a\u8bc9\u6211\uff0copenstack\u53ef\u4ee5\u628a\u5f88\u591a\u53f0\u673a\u5668\u53d8\u6210\u4e00\u4e2a\u673a\u5668\uff0c\u6bd4\u598210\u4e2a4g\u7684\u673a\u5668\uff0c\u4f60\u53ef\u4ee5\u5b89\u88c5\u4e2a\u865a\u62df\u673a\uff0c\u670932g\u7684\u5185\u5b58\u7b49\u7b49\u3002

\u8fd9\u662f\u4e0d\u53ef\u80fd\u7684\u5427\u3002
\u4ed6\u7ed9\u6211\u7684\u56de\u7b54\u5f88\u660e\u786e\u7684\u5c31\u662f\u4f60\u5b89\u88c5\u4e2aubuntu\u7684instance\uff0c\u8fd9\u4e2ainstance\u53ef\u4ee5\u5229\u7528\u5230openstack\u7684\u8282\u70b9\u7684\u6240\u6709\u7684\u8fd0\u7b97\u529b\u3002\u60f3\u591a\u5927\u5c31\u591a\u5927", "date_published": "2014-06-21T07:17:29+00:00", "title": "openstack \u53ef\u4ee5\u628a\u591a\u4e2a\u7269\u7406\u673a\u53d8\u6210\u4e00\u4e2a\u865a\u62df\u673a\uff1f", "id": "t/118784" }, { "author": { "url": "member/Ryans", "name": "Ryans", "avatar": "https://cdn.v2ex.com/avatar/4271/8466/9071_large.png?m=1537320407" }, "url": "t/114458", "title": "OpenStack \u5b89\u88c5 keystone\uff0c\u542f\u52a8\u670d\u52a1\u5931\u8d25", "id": "t/114458", "date_published": "2014-05-27T05:00:16+00:00", "content_html": "\u6309\u7167\u5b98\u65b9\u6587\u6863\u64cd\u4f5c\u7684\uff0c\u4f46\u662fkeystone\u670d\u52a1\u65e0\u6cd5\u542f\u52a8\u3002
\u600e\u4e48\u67e5\u770b\u9519\u8bef\u4fe1\u606f\u6216\u8005\u65e5\u5fd7\u5206\u6790\uff1f" }, { "author": { "url": "member/pyKun", "name": "pyKun", "avatar": "https://cdn.v2ex.com/avatar/5580/d031/23741_large.png?m=1356574533" }, "url": "t/112694", "date_modified": "2014-09-02T11:38:30+00:00", "content_html": "OpenStack \u7684\u613f\u666f

\u524d\u8a00\uff1a
\u672c\u4eba\u662f\u5728 OpenStack \u5708\u5b50\u7684\u65b0\u4eba\uff0c\u4e0d\u5230\u4e24\u5e74\u7684 contributing \u65f6\u95f4\uff0c\u662f\u4e2a\u5de5\u7a0b\u5e08\uff0cdeveloper\u3002\u6240\u4ee5\u5f88\u591a\u601d\u8003\u95ee\u9898\u7684\u89d2\u5ea6\u90fd\u5e76\u975e\u5904\u5728\u4e00\u4e2a\u591a\u9ad8\u5927\u7684\u4f4d\u7f6e\u3002\u5c31\u5de5\u7a0b\u5e08\u800c\u5df2\uff0c\u6211\u601d\u8003\u8fd9\u4e9b\u7684\u5f15\u5b50\uff0c\u65e0\u975e\u5c31\u662f\u6211\u4eec\u521b\u9020\u7684\uff0c\u53d1\u5c55\u7684\u8fd9\u4e2a\u5de5\u5177\uff08OpenStack\uff09\u4f1a\u6709\u600e\u4e48\u6837\u7684\u672a\u6765\u3002

\u201cOpenStack \u592a\u5f3a\u4e86\uff0c\u4ed6\u5c31\u662f\u672a\u6765\u201d vs \u201cOpenStack \u592a\u5f31\u4e86\uff0c\u67b6\u6784\u548c\u6027\u80fd\u90fd\u592a\u5dee\u4e86\uff01\u201d

\u770b\u5f85\u4efb\u4f55\u4e00\u4e2a\u4e8b\u7269\uff0c\u90fd\u8981\u53bb\u5c55\u671b\u5b83\u7684\u4e0a\u9650\u548c\u4f30\u91cf\u5176\u4e0b\u9650\uff0c\u5bf9 OpenStack \u4ea6\u5982\u6b64\u3002\u9119\u89c6 OpenStack \u7684\u4eba\u65e0\u975e\u4e24\u79cd\uff0c\u4e00\u79cd\u5728\u5927\u578b\u4e92\u8054\u7f51\u516c\u53f8\u6709\u7740\u5f88\u5f3a\u7684\u5206\u5e03\u5f0f\u7ecf\u9a8c\u7684\u4e2a\u4eba\u6216\u8005\u56e2\u961f\uff0c\u8bf8\u5982\u767e\u5ea6\uff0c\u6dd8\u5b9d\uff0c\u817e\u8baf\u3002\u4ed6\u4eec\u62e5\u6709\u7684\u7ecf\u9a8c\u5df2\u7ecf\u8fdc\u8fdc\u8d85\u8fc7 OpenStack \u5f88\u8fdc\uff0c\u5bf9\u4e8e\u4ed6\u4eec\u6765\u8bf4\uff0c\u90a3\u6837\u7684\u8bc4\u4ef7\u662f\u7b26\u5408\u7684\u3002\u800c\u53e6\u4e00\u7fa4\u9119\u89c6 OpenStack \u7684\u4eba\u7fa4\u5927\u90e8\u5206\u53ea\u662f\u542c\u4e0a\u9762\u90a3\u4e00\u7fa4\u4eba\u7684\u8a00\u8bba\u540e\u7684\u8ddf\u98ce\u7684\u7ed3\u679c\u3002\u56e0\u4e3a\u4ed6\u4eec\u6ca1\u6709\u601d\u8003\u8fc7 OpenStack \u7684\u4e0a\u9650\u5728\u54ea\u3002\u5c31\u4ee5 VPS \u4e3a\u57fa\u7840\u7684\u4e91\u8ba1\u7b97\u800c\u5df2\uff0cOpenStack \u8981\u89e3\u51b3\u7684\u95ee\u9898\uff0c\u9664\u4e86\u5b58\u50a8\uff0c\u7f51\u7edc\uff0c\u865a\u62df\u5316\u4e4b\u5916\uff0c\u8fd8\u8981\u90e8\u7f72\uff0c\u901a\u4fe1\uff0c\u76d1\u63a7\u7b49\u7b49\u57fa\u672c\u7684\u5206\u5e03\u5f0f\u95ee\u9898\u8981\u89e3\u51b3\u3002\u5982\u679c\u8bf4\u8fd9\u4e9b\u6280\u672f\u5728 OpenStack \u91cc\u505a\u7684\u7edf\u7edf\u90fd\u5f88\u5dee\uff0cOpenStack\u4f1a\u7acb\u523b\u6b7b\u6389\u4e48\uff1f\u4e0d\u4f1a\u7684\u3002\u56e0\u4e3aOpenStack \u505a\u4e86\u53e6\u4e00\u4e2a\u4e8b\uff0c\u5c31\u662f\u901a\u8fc7\u5f88\u5f00\u653e\uff08open\uff09\u7684\u65b9\u5f0f\u628a\u4e91\u8ba1\u7b97\u91cc\u7684\u5404\u79cd\u6982\u5ff5\u548c\u6280\u672f\u62bd\u8c61\u6210\u4e86\u5404\u79cd\u5bcc\u6709\u542b\u4e49\u7684\u64cd\u4f5c\uff0c\u6216\u8005\u76f4\u63a5\u8bf4\u662fAPI\u3002\u5728\u505a\u4e86\u8fd9\u4e2a\u5f88\u57fa\u7840\u7684\u4e8b\u60c5\u540e\uff0cOpenStack \u7684\u601d\u60f3\u548c\u80cc\u4e66\u5c31\u5f00\u59cb\u88ab\u4f20\u64ad\u4e86\u3002\u4e3e\u4e2a\u5f88\u7b80\u5355\u7684\u4f8b\u5b50\uff0c\u4e00\u4e2a\u505a\u4e8620\u5e74\u7684\u6280\u672f\u4eba\u521b\u4e1a\uff0c\u505a\u51fa\u4e86\u4e00\u4e2a\u51fa\u7c7b\u62d4\u8403\u7684\u4e00\u4e2a\u4e91\uff0c\u5176\u5b9e\u4ed6\u7684\u4ee3\u7801\u662f\u81ea\u5df1\u5199\u7684\uff0c\u53c2\u7167 OpenStack \u90fd\u7b97\u4e0d\u4e0a\uff0c\u4f46\u662f\u4ece\u4ed6\u7684\u9762\u677f\u4e0a\u6765\u770b\uff0c\u6ee1\u6ee1\u662f OpenStack \u7684\u5f71\u5b50\u3002\u8bf4\u4e2a\u66f4\u9760\u8c31\u7684\u4f8b\u5b50\uff0c\u5728 OpenStack \u5230\u6765\u4e4b\u540e\uff0cIBM\u6709\u673a\u4f1a\u505a\u4e91\u4e86\uff0c\u534e\u4e3a\u6709\u673a\u4f1a\u505a\u4e91\u4e86\uff0cvmware \u6709\u673a\u4f1a\u628a\u6838\u5fc3\u4ef7\u503c\u6269\u5c55\u5230\u865a\u62df\u5316\u4e4b\u5916\u7684\u5730\u65b9\u3002\u56e0\u4e3a\u6709\u4eba\u4e00\u65b9\u9762\u501f\u7740\u4e00\u4e2a\u516c\u5f00\u7684\u540d\u8bcd\u6211\u4eec\u53ef\u4ee5\u628a\u81ea\u5df1\u7684\u4e91\u4ea7\u54c1\u653e\u5230\u4e00\u8d77\u53bb\u6bd4\u4e00\u6bd4\u4e86\uff0c\u53e6\u4e00\u65b9\u9762 OpenStack \u5bf9\u4e91\u8ba1\u7b97\u8fd9\u4e2a\u4e8b\u60c5\u62bd\u8c61\u51fa\u6765\u7684\u79cd\u79cd\uff0c\u514d\u53bb\u4e86\u5404\u65b9\u6f2b\u957f\u7684\u63a2\u7d22\u7684\u9053\u8def\uff08\u535a\u58eb\u4eec\u53ef\u80fd\u66f4\u591a\u7684\u4f1a\u53bb\u7545\u60f3\u4e91\u4f1a\u5982\u4f55\uff0c\u5e76\u975e\u5982\u4f55\u5b9e\u73b0\uff09\u3002\u6700\u540e\u5c31\u662f\u7ed9\u4e86\u5f88\u591a\u5bcc\u6709\u7406\u60f3\u7684\u82f1\u96c4\u5c11\u5e74\u4e00\u4e2a\u53bb pk \u4f20\u7edf IT \u7684\u673a\u4f1a\u3002

\u201cOpenStack \u7684\u7ade\u4e89\u5bf9\u624b\u662f vmware\u201d

\u55ef...\u8fd9\u53e5\u8bdd\u5bf9\u4e8e\u6211\u4eec\u89c2\u4f17\u800c\u8a00\u5728\u5927\u591a\u6570\u65f6\u5019\u662f\u5bf9\u7684\uff0c\u4f46\u8fd9\u771f\u7684\u4e0d\u51c6\u786e\u3002\u51c6\u786e\u7684\u8bf4\u7ade\u4e89\u5173\u7cfb\u662f vmware \u548c kvm\u6216xen\uff0cvmware\u7684\u4e91\u4ea7\u54c1\u548c\u4ee5\u5f00\u6e90\u6280\u672f\u4e3a\u6838\u5fc3\u7684 OpenStack\u3002vmware \u662f\u4e2a\u865a\u62df\u5316\u6280\u672f\uff0c\u5e76\u4e14\u6709\u7740\u81ea\u5df1\u7684\u4e91\u89e3\u51b3\u65b9\u6848\u3002OpenStack \u4e0d\u662f*\u4e00\u4e2a*\u6280\u672f\uff0c\u662f\u4e00\u4e2a\u5f00\u653e\u7684\u6808\uff0ckvm\uff0cxen\uff0c\u751a\u81f3vmware\u81ea\u5df1\u7684\u6280\u672f\u4e5f\u53ef\u4ee5\u653e\u5230\u8fd9\u4e2a\u6808\u4e86\u3002\u5176\u5b9e OpenStack \u4e0e vmware\u4e4b\u95f4\u4e0d\u9700\u8981\u7ade\u4e89\uff01vmware \u8981\u505a\u7684\u5c31\u662f\u8ba9 OpenStack \u5f7b\u5e95\u652f\u6301\u81ea\u5bb6\u7684\u865a\u62df\u5316\u6280\u672f\uff0c\u7136\u540e\u548c RDO \u6bd4\uff0c\u548c\u534e\u4e3a\u7684\u4e91\u53bb\u6bd4\uff0c\u548c IBM \u7684\uff0c\u751a\u81f3\u548c\u5176\u4ed6\u521b\u4e1a\u56e2\u961f\u7684\u4e91\u53bb\u6bd4\u3002\u7136\u540e\u544a\u8bc9\u6d88\u8d39\u8005\uff0cvmware \u7684\u8d27\u624d\u662f\u6700\u725b\u7684\u3002\u4e5f\u6b63\u662f\u5982\u6b64\uff0cvmware\u4ee3\u8868\u7684\u662f\u4e00\u7cfb\u5217\u6280\u672f\uff0cOpenStack \u4fe8\u7136\u5df2\u7ecf\u6210\u4e3a\u4e86\u4e00\u79cd\u6807\u51c6\u4e86\u3002

\u201cOpenStack \u7684\u5de5\u4f5c\u524d\u666f\u5982\u4f55\uff1f\u201d

\u8fd9\u4e2a\u4e8b\u60c5\u53ea\u6709\u8eab\u5728\u5176\u4e2d\u7684\u5de5\u7a0b\u5e08\u624d\u66f4\u6709\u53d1\u8a00\u6743\u3002\u7531\u4e8e OpenStack \u672c\u8eab\u662f\u4e2a\u7528\u6765\u653e\u5404\u79cd\u6280\u672f\u7684\u6808\uff0c\u5e76\u975e\u6280\u672f\u672c\u8eab\uff0c\u5bf9\u4e8e\u5f88\u591a\u5de5\u7a0b\u5e08\u6765\u8bf4\uff0c\u81ea\u5df1\u5584\u4e8e OpenStack \u4e00\u65b9\u9762\u662f\u5584\u4e8e\u54ea\u5957\u6280\u672f\uff0c\u4e00\u65b9\u9762\u5584\u4e8e\u4e91\u8ba1\u7b97\u4e2d\u7684\u90a3\u4e9b\u6982\u5ff5\u548c\u62bd\u8c61\u3002\u5584\u4e8e\u524d\u8005\u7684\u4eba\u4e0d\u5fc5\u591a\u8bf4\u6709\u81ea\u8eab\u7684\u771f\u529f\u592b\u4e0d\u7528\u62c5\u5fc3\u5de5\u4f5c\u524d\u666f\u95ee\u9898\uff0c\u800c\u4ec5\u5584\u4e8e\u540e\u8005\u7684\u4eba\u6765\u8bf4\u6709\u81f3\u5c11\u4e24\u7c7b\u51fa\u8def\uff0c\u4e00\u4e2a\u662f\u505a operator\uff0c\u53e6\u4e00\u4e2a\u662f\u505a developer\u3002\u5373\u505a\u4f7f\u7528 OpenStack \u7684\u4e13\u5bb6\u6216\u8005\u505a\u5f00\u53d1 OpenStack \u7684\u4eba\uff08\u6709\u4eba\u8bf4\u4e8c\u8005\u53ef\u4ee5\u4e3a\u4e00\uff0c\u4f46\u5b9e\u9645\u60c5\u51b5\u5e76\u975e\u5982\u6b64\uff0c\u820d\u5f97\u82b1\u94b1\u8ba9\u4f60\u505a\u5f00\u6e90\u4ef7\u503c\u7684\u516c\u53f8\u6ca1\u51e0\u5bb6\uff0c\u800c\u4e14\u4e0d\u5e78\u7684\u662f redhat \u5728\u56fd\u5185\u4e0d\u62db OpenStack \u5f00\u53d1\u8005\uff09\u3002\u4f7f\u7528 OpenStack \u7684\u4e13\u5bb6\u5728\u5e02\u573a\u4e0a\u662f\u5341\u5206\u5341\u5206\u5341\u5206\u62a2\u624b\u7684\uff0c\u5728\u8bba\u575b\u4e0a\uff0c\u964c\u964c\uff0c\u9ad8\u5fb7\uff0c\u7f8e\u56e2\uff0c\u643a\u7a0b\uff0c360\uff0c\u751a\u81f3\u5f88\u591a\u4f20\u7edf\u4f01\u4e1a\u90fd\u9700\u8981\u62db\u8fd9\u6837\u7684\u4eba\uff08\u5f53\u7136\uff0c\u6709\u8fd9\u4e9b\u771f\u5b9e\u7684\u9700\u6c42\u5728\uff0cOpenStack\u4e5f\u4e0d\u4f1a\u6b7b\u7684\uff09\u3002\u800c\u5bf9\u4e8e\u90a3\u4e9b\u6709\u5fc3\u7ee7\u7eed\u521b\u9020\u548c\u53d1\u5c55 OpenStack \u8fd9\u4e2a\u5de5\u5177\u7684\u5de5\u7a0b\u5e08\u4eec\u80af\u5b9a\u4f1a\u5e0c\u671b\u6709\u90a3\u4e48\u4e00\u4efd\u5de5\u4f5c\u80fd\u8ba9\u4f60\u4e13\u6ce8\u5728\u8bbe\u8ba1\u548c\u7814\u53d1\u725b\u903c\u7684\u6846\u67b6\u4e0a\u5e76\u4e14\u6709\u80fd\u7ed9\u4f60\u5145\u5206\u65f6\u95f4\u548c\u73af\u5883\u7684\u5de5\u4f5c\u673a\u4f1a\u3002\u5f88\u4e0d\u5e78\u7684\u662f\uff0c\u8fd9\u6837\u7684\u5de5\u4f5c\u673a\u4f1a\u8d8a\u6765\u8d8a\u5c11\u4e86\uff0c\u67d0\u4eba\u5fc3\u5b58\u7406\u60f3\u7684\u56e2\u961f\u9047\u5230\u4e86\u7b2c\u4e00\u6b21\u7ecf\u6d4e\u5371\u673a\uff0cIBM \u80fd\u63d0\u4f9b\u81ea\u7531\u98ce\u6c14\u7684\u56e2\u961f\u4e5f\u4e0d\u518d\u62db\u4eba\uff08\u6709\u65b0\u7684\u56e2\u961f\u51fa\u73b0\u4e86\uff09\uff0credhat \u548c mirantis \u5728\u56fd\u5185\u5c1a\u672a\u5b9e\u65bd\u8ba1\u5212\uff0c\u6211\u8ba4\u8bc6\u7684\u4e00\u4e2a\u4eba\uff0c\u5728\u8fd1\u671f\u79bb\u804c\u7684\u8fd9\u6bb5\u65f6\u95f4\u5c31\u4e0d\u5f97\u4e0d\u9762\u5bf9\u7740\u8981\u53bb\u627e\u4e00\u4e2a\u5f88\u4e0d\u5f00\u5fc3\u7684\u5de5\u4f5c\u3002\u4e5f\u6b63\u56e0\u4e3a\u5982\u6b64\uff0c\u5f88\u591a\u56fd\u5916\u7684 offer \u4f1a\u771f\u6b63\u7684\u5411\u4f60\u62db\u624b\uff0c\u56e0\u4e3a\u5728\u5168\u7403\u5e02\u573a\u4e0a\uff0c\u9700\u8981\u7740\u5927\u91cf\u7684 operator \u548c developer\u3002\u5728\u8fd1\u51e0\u5e74\u80fd\u8d70\u5728\u524d\u5217\u7684\u4eba\uff0c\u80fd\u5728\u5f88\u77ed\u7684\u65f6\u95f4\uff0c\u61c2\u7cfb\u7edf\u61c2\u5206\u5e03\u5f0f\u8fdb\u800c\u6210\u4e3a\u66f4\u88ab\u9700\u8981\u7684\u4eba\u624d\u3002

\u8fd1\u671f\uff0credhat china \u5df2\u7ecf\u5728\u62db\u552e\u524d\uff0c\u8fd9\u4f1a\u662f\u4e00\u4e2a\u9884\u5146\u4e48\uff1fmirantis \u5728\u5185\u90e8\u6d88\u606f\u91cc\u5df2\u7ecf\u6709\u4eba\u8981\u8bf4\u4ed6\u4eec\u8981\u8fdb\u519b\u4e2d\u56fd\uff0c\u518d\u6709\u5c31\u662f vmware \u5df2\u7ecf\u653e\u51fa\u4e86\u5927\u91cf\u62db\u6536 \u9ad8\u7ea7 OpenStack \u5f00\u53d1\u5de5\u7a0b\u5e08\u7684 JD\uff08\u8fd9\u4e2a\u5df2\u7ecf\u4e0d\u662f\u9884\u5146\u4e86 : )\uff09\u3002

\u613f\u666f\uff1a\u672a\u6765\u4f1a\u6709\u4ec0\u4e48\u4e8b\u60c5\u53d1\u751f\uff1f

\u4efb\u4f55\u4ea7\u4e1a\u90fd\u662f\u5728\u4e00\u6ce2\u6ce2\u6d6a\u6f6e\u4e2d\u4e0d\u65ad\u63a8\u8fdb\uff0c\u5982\u679c\u6682\u4e0d\u8003\u8651\u53ef\u80fd\u51fa\u73b0\u7684\u6d6a\u6f6e\uff0c\u6211\u731c\u6d4b\u672a\u6765\u7684 OpenStack \u5e02\u573a\u4f1a\u53d8\u6210\u5f88\u591a\u62e5\u6709\u5b58\u50a8\u7f51\u7edc\u865a\u62df\u5316\u5b9e\u9645\u6280\u672f\u7684\u516c\u53f8\u901a\u8fc7 OpenStack \u7684\u5f62\u5f0f\u8fdb\u884c pk\uff0c\u6bd4\u5982\u534e\u4e3a\u7684\u4e91\uff0cvmware \u7684\u4e91\u7b49\u7b49\u3002\u7eaf\u4e2a\u4eba\u731c\u6d4b\u800c\u5df2\u3002\u53e6\u5916\uff0c\u672a\u6765\u51fa\u73b0\u7684\u6d6a\u6f6e\u5df2\u7ecf\u51fa\u73b0\u7684\u96cf\u5f62\u662f\u9752\u4e91\uff0c\u800c\u4e14\u57fa\u4e8e vps \u7684\u4e91\u53ea\u662f\u4ed6\u4eec\u521b\u4e1a\u521d\u59cb\u7684\u7b2c\u4e00\u6b65\uff0c\u63a5\u4e0b\u6765\uff0c\u4f1a\u6709\u66f4\u591a\u6765\u81ea\u4e8e\u4ed6\u4eec\u7684\u613f\u666f\u4f1a\u6d6e\u73b0\u5728\u4eba\u4eec\u773c\u524d\u3002\u8fd8\u6ca1\u6709\u51fa\u73b0\u7684\uff0c\u6211\u4eec\u53ef\u4ee5\u5c3d\u53ef\u80fd\u7684\u60f3\u60f3\u8fd8\u4f1a\u51fa\u73b0\u4ec0\u4e48\uff1fOpenStack \u7684API\u8d8a\u6765\u8d8a\u81c3\u80bf\uff0c\u8d8a\u6765\u8d8a\u5931\u53bb\u62bd\u8c61\u7684\u610f\u4e49\uff0c\u90a3\u4e00\u4e2a API \u7b80\u6d01\uff0c\u5065\u58ee\uff0c\u517c\u5bb9\u6027\u5f3a\u7684\u53d1\u884c\u7248\u4f1a\u51fa\u73b0\u4e48\uff1fOpenStack \u914d\u7f6e\u8d8a\u6765\u8d8a\u591a\uff0c\u4f55\u65f6\u80fd\u51fa\u73b0\u4e00\u4e2a\u7b80\u5316\u914d\u7f6e\u7684\u6539\u8fdb\uff1f\u652f\u6301\u4e86 docker \u7684 OpenStack \u4f55\u65f6\u80fd\u66f4\u8fdb\u4e00\u6b65\u8ddf\u4e0a\u6dd8\u6c70 vps \u7684\u6b65\u4f10\uff1f\u57fa\u4e8e\u64e6\u9664\u7801\u7684\u5b58\u50a8\u65b9\u6848\uff0c\u600e\u4e48\u53bb\u5212\u5206 region \u548c cells\uff1f\u7b49\u7b49\u7b49\u7b49\uff0c\u4efb\u4f55\u80fd\u6539\u8fdb\u80fd\u9769\u65b0\u7684\u5730\u65b9\u9047\u5230\u4e86\u4efb\u4f55\u6709\u6267\u884c\u529b push \u7684\u4eba\uff0c\u5c31\u4f1a\u51fa\u73b0 OpenStack \u7684\u613f\u666f\u3002\u8fd9\u4e2a\u4e16\u754c\u91cc\uff0c\u8fd8\u9700\u8981\u66f4\u591a\u66f4\u597d\u7684\u7f16\u5267 : )

\u8865\u6700\u540e\u4e00\u53e5\uff1a

\u521b\u9020\u793e\u4f1a\u7684\u4ef7\u503c\uff0c\u9700\u8981\u4e91\u8ba1\u7b97\u7684\u5b8c\u7f8e\u7f16\u5267\uff1b\u4e91\u8ba1\u7b97\u7684\u5b8c\u7f8e\u7f16\u5267\uff0c\u9700\u8981\u5168\u4e16\u754c\u5404\u79cd\u6280\u672f\uff0c\u6846\u67b6\uff0c\u6807\u51c6\u7b49\u7b49\u7684\u63a8\u52a8\uff1b\u5728\u8fd9\u4e2a\u5de8\u5927\u7684\u6d6a\u6f6e\u4e4b\u4e2d\uff0c\u9700\u8981\u4e0d\u61c8\u7684\u5f00\u53d1\u8005\uff0c\u79ef\u6781\u7684\u601d\u8003\u8005\uff0c\u5927\u80c6\u7684\u5984\u60f3\u8005\u5728\u4e00\u8d77\u76f8\u4e92\u6392\u65a5\u548c\u5408\u4f5c\u5171\u540c\u5b8c\u6210\u8fd9\u4e00\u80a1\u6d6a\u6f6e \uff08\u4e00\u4e2a\u63a8\u8350\u8bfb\u7269\uff1a http://www.csdn.net/article/2013-07-08/2815539 \uff09", "date_published": "2014-05-15T08:35:24+00:00", "title": "[\u8f7b\u55b7] OpenStack \u7684\u613f\u666f", "id": "t/112694" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/106898", "date_modified": "2014-04-01T22:02:11+00:00", "content_html": "http://openstack.redhat.com/Image_resources

https://github.com/rackerjoe/oz-image-build

OpenStack \u5b9e\u5728\u662f\u592a\u9700\u8981\u4e00\u4e2a\u50cf http://vagrantbox.es \u90a3\u6837\u7684\u7f51\u7ad9\u4e86\uff0c\u6216\u8005\u5176\u5b9e\u5df2\u7ecf\u6709\u4e86\u4f46\u662f\u6211\u4e0d\u77e5\u9053\uff1f", "date_published": "2014-04-01T21:34:17+00:00", "title": "Pre-Built OpenStack Images", "id": "t/106898" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/96387", "title": "openstack-debian-images", "id": "t/96387", "date_published": "2014-01-09T18:36:32+00:00", "content_html": "http://packages.debian.org/search?keywords=openstack-debian-images

\u53ef\u4ee5\u7528\u6765\u521b\u5efa OpenStack image \u7684 Debian \u5de5\u5177\u5305\u3002" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/96386", "title": "\u73b0\u5728\u7f51\u4e0a\u6709\u6ca1\u6709\u90a3\u79cd\u6bd4\u8f83\u9760\u8c31\u53ef\u4ee5\u76f4\u63a5\u7ed9 glance \u5bfc\u5165\u7684 OpenStack Linux \u7cfb\u7edf\u6a21\u677f\u5e93\uff1f", "id": "t/96386", "date_published": "2014-01-09T18:32:39+00:00", "content_html": "\u6216\u8005\uff0c\u5176\u5b9e\u5927\u5bb6\u4e3b\u8981\u9700\u8981\u7684\u5c31\u662f\u4e0b\u9762 6 \u4e2a\u6a21\u677f\uff1a

- Ubuntu 12.04 LTS
- Ubuntu \u6700\u65b0\u7248
- CentOS 5
- CentOS 6
- Debian 6
- Debian 7" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/95353", "title": "\u5173\u4e8e\u516c\u53f8\u5185\u90e8\u4e91\u7684\u5c0f\u8c03\u67e5", "id": "t/95353", "date_published": "2014-01-02T04:21:09+00:00", "content_html": "\u5411\u5927\u5bb6\u505a\u4e00\u4e2a\u8c03\u67e5\uff0c\u4f60\u4eec\u5728\u7684\u516c\u53f8\uff0c\u662f\u5426\u6709\u63d0\u4f9b\u53ef\u4ee5\u81ea\u7531\u7533\u8bf7\u7684\u7528\u4e8e\u5f00\u53d1\u548c\u6d4b\u8bd5\u7684\u5185\u90e8\u4e91\u670d\u52a1\uff1f

\u5982\u679c\u6709\uff0c\u662f\u7528 OpenStack \u8fd8\u662f\u5176\u4ed6\u7684\u4ec0\u4e48\u4ea7\u54c1\u642d\u5efa\u7684\u5462\uff1f

\u89c4\u6a21\u5927\u6982\u5982\u4f55\uff1f\u6bd4\u5982\u603b\u5185\u5b58\u6570\uff1f" }, { "author": { "url": "member/ihacku", "name": "ihacku", "avatar": "https://cdn.v2ex.com/avatar/c8cd/63e1/3073_large.png?m=1675398764" }, "url": "t/92453", "title": "Rally - a Benchmark-as-a-Service project for OpenStack", "id": "t/92453", "date_published": "2013-12-09T13:01:08+00:00", "content_html": "https://wiki.openstack.org/wiki/Rally" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/82781", "title": "Ironic", "id": "t/82781", "date_published": "2013-09-17T05:16:37+00:00", "content_html": "http://www.ustack.com/blog/ironic/" }, { "author": { "url": "member/pscl", "name": "pscl", "avatar": "https://cdn.v2ex.com/avatar/89e3/b2c8/23420_large.png?m=1386922321" }, "url": "t/81867", "title": "OpenStack\u4e2d\uff0cwindows\u865a\u62df\u673a\u5982\u4f55\u901a\u8fc7\u4e32\u53e3\u8f93\u51fa\u542f\u52a8\u4fe1\u606f\u7b49\u5230console.log\uff1f", "id": "t/81867", "date_published": "2013-09-09T11:57:41+00:00", "content_html": "\u5927\u5bb6\u597d\uff0c\u6bcf\u4e2a\u865a\u62df\u673a\u76ee\u5f55\u4e0b\u90fd\u6709\u4e2aconsole.log\uff0clinux\u901a\u8fc7\u914d\u7f6ecOnsole=ttyS0\u53ef\u4ee5\u5c06\u63a7\u5236\u53f0\u4fe1\u606f\u8f93\u51fa\u5230console.log\uff0c\u4f46\u662fwindows\u7cfb\u7edf\u5982\u4f55\u5b9e\u73b0\u8fd9\u4e2a\u529f\u80fd\uff1f\u6216\u8005\u6709\u5176\u4ed6\u5b9e\u73b0\u65b9\u6cd5\uff1f
\u8c22\u8c22\uff01" }, { "author": { "url": "member/ihacku", "name": "ihacku", "avatar": "https://cdn.v2ex.com/avatar/c8cd/63e1/3073_large.png?m=1675398764" }, "url": "t/81269", "title": "OpenStack\u96c6\u7fa4\u914d\u7f6e\u8ba1\u7b97\u5668", "id": "t/81269", "date_published": "2013-09-04T05:30:47+00:00", "content_html": "http://www.mirantis.com/openstack-services/bom-calculator/" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/80097", "date_modified": "2013-08-24T12:49:38+00:00", "content_html": "http://youtu.be/owpi1WF9dws

https://forge.puppetlabs.com/puppetlabs/openstack", "date_published": "2013-08-24T12:44:34+00:00", "title": "\u901a\u8fc7 Puppet \u5b89\u88c5 OpenStack", "id": "t/80097" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/78773", "title": "DevStack in 1 Minute", "id": "t/78773", "date_published": "2013-08-11T16:54:09+00:00", "content_html": "http://www.sebastien-han.fr/blog/2013/08/08/devstack-in-1-minute/" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/76773", "title": "C2 Pandora", "id": "t/76773", "date_published": "2013-07-23T22:16:28+00:00", "content_html": "https://code.google.com/p/c2-pandora/" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/76535", "date_modified": "2013-07-22T00:52:22+00:00", "content_html": "https://wiki.openstack.org/wiki/Trove

DB as a service.", "date_published": "2013-07-22T00:51:27+00:00", "title": "Trove", "id": "t/76535" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/71668", "title": "OpenStack 2013.1.2 Released", "id": "t/71668", "date_published": "2013-06-07T23:17:10+00:00", "content_html": "http://lists.openstack.org/pipermail/openstack-announce/2013-June/000109.html" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/71553", "title": "Moniker", "id": "t/71553", "date_published": "2013-06-07T01:33:11+00:00", "content_html": "https://wiki.openstack.org/wiki/Moniker

DNS-as-a-service for OpenStack." }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/67298", "title": "UnitedStack is hiring", "id": "t/67298", "date_published": "2013-04-29T02:35:53+00:00", "content_html": "http://www.ustack.com/unitedstack-first-recruiment/

\u539f\u65b0\u6d6a\u4e91\u7684\u8d44\u6df1\u6280\u672f\u540c\u5b66 @freedomhui \u51fa\u6765\u521b\u4e1a\uff0c\u5f97\u5230\u7845\u8c37\u9876\u7ea7 VC \u652f\u6301\uff0c\u5728\u7845\u8c37\u6ce8\u518c\u4e86\u516c\u53f8\uff0c\u5317\u4eac\u7845\u8c37\u4e24\u5730\u529e\u516c\u3002

\u4e00\u4e2a\u5f88\u52b1\u5fd7\u7684\u6545\u4e8b\uff0c\u521a\u521a\u5f00\u59cb\u3002" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/66071", "title": "Red Hat \u63a8\u51fa\u7684 OpenStack \u53d1\u884c\u7248", "id": "t/66071", "date_published": "2013-04-16T18:04:26+00:00", "content_html": "http://openstack.redhat.com/" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/66066", "title": "OpenStack Summit 2013 \u7684\u89c6\u9891\u76f4\u64ad", "id": "t/66066", "date_published": "2013-04-16T15:57:01+00:00", "content_html": "http://www.openstack.org/" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/62760", "title": "OpenStack Operations Guide", "id": "t/62760", "date_published": "2013-03-12T18:03:54+00:00", "content_html": "http://docs.openstack.org/ops/

\u4e00\u672c\u5173\u4e8e\u8bbe\u8ba1\u548c\u90e8\u7f72 OpenStack \u7684\u6700\u65b0\u6587\u6863\u3002" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/59440", "title": "OpenStack 2012.2.3 Released", "id": "t/59440", "date_published": "2013-02-01T00:28:42+00:00", "content_html": "http://wiki.openstack.org/ReleaseNotes/2012.2.3" }, { "author": { "url": "member/Livid", "name": "Livid", "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1776858751" }, "url": "t/58227", "title": "Heat", "id": "t/58227", "date_published": "2013-01-20T16:23:45+00:00", "content_html": "http://wiki.openstack.org/Heat

OpenStack \u65b0\u7ec4\u4ef6\u3002" } ] } ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86