11. 2. OpenStack架构 > RESTful/RPC/Plugin
• OpenStack public API is a RESTful API
– REST
stands
for
Representatinal
State
Transfer
– REST
is
a
stateless
client/server
protocol
with
a
uniform
interface
for
accessing
the
object
model
– OpenStack
RESTful
API
is
implemented
using
HTTP
GET/PUT/POST/DELETE
in
combination
with
JSON
for
data
• RPC(message queue)
• Plugin
12. 2. OpenStack架构 > 组件分析 > Keystone
Data Model
• User:
has
account
credentials,
is
associated
with
one
or
more
tenants
• Tenant(Projects):
unit
of
ownership
in
OpenStack,
contains
one
or
more
users
OpenStack
• Role:
a
first-‐class
piece
of
metadata
Identity
associated
with
many
user-‐tenant
pairs
Service
• Token:
identifying
credential
Token
associated
with
a
user
or
user
and
Backend
tenant
• Rule:
describes
a
set
of
requirements
for
performing
an
action
DB,KVS,
memcache
OpenStack
Service
REST
Keystone
API
Catalog
Backend
Policy
Backend
Identity
Backend
KVS,SQL,
templated
ACLs,rules,
Custom
KVS,PAM,
SQL,LDAP
13. 2. OpenStack架构 > 组件分析 > Nova
nova-api
DB
novascheduler
Queue
novacomputer
novacomputer
KVM
XEN
VM
VM
VM
VM
novaconductor
….
novacomputer
VMWare
….
VM
VM
算法
描述
行为
Chance
选择一台正常节点
随机
Simple
选择一台虚拟机数量最少的几点
负载均衡
Filter
在所有满足过滤条件的节点中选择一台最适合 自定义的过
的节点。
滤条件
Affinity/availability zone/core/ram/json/
io/computer capabilities/image properties