狠狠撸

狠狠撸Share a Scribd company logo
OpenStack 101
朱荣泽
2013.10.20
Contents

1.? OpenStack介绍 ?
2.? OpenStack架构 ?
3.? OpenStack部署 ?
Contents

1.? OpenStack介绍 ?

??? 价值 ?

2.? OpenStack架构 ?

??? 生态圈 ?

3.? OpenStack部署 ?

??? 成功的原因 ?
1. ?OpenStack介绍 ?> ?价值 ?
开源云平台 ?
?? 用于创建私有云和公有云的开源软件 ?
-? 扩展性 ?
-? 弹性 ?
-? 多租户 ?

?? 资源管理 ?
–? 计算资源 ?
–? 网络资源 ?
–? 存储资源 ?

?? 按需分配 ?
1. ?OpenStack介绍 ?> ?生态圈 ?
Top 3 服务器厂商

云平台的Linux ?
Top 3 网络设备厂商

Top 3 存储厂商

Top 3 虚拟化厂商

Top 3 Linux厂商

公有云厂商

私有云
1. ?OpenStack介绍 ?> ?成功的原因 ?
1.? OpenStack ?Community ?and ? ?Foundation ? ?
2.? OpenStack ?Infrastructure ?Team ?
–?
–?
–?
–?

Massive ?Effort ?-> ?Improved ?Quality ?
Gated ?Commits ?
Code ?Reviews ?& ?Continuous ?
Integration ?

3.? Oslo ?project(openstack-common) ?
Contents

1.? OpenStack介绍 ?

??? 核心组件 ?

2.? OpenStack架构 ?

??? 逻辑架构 ?

3.? OpenStack部署 ?

??? 工作流 ?
??? RESTful/RPC/Plugin ?
??? 组件分析 ?
2. ?OpenStack架构 ?> ?核心组件 ?
OpenStack服务

对应的AWS服务

虚拟机

Nova

EC2

虚拟块存储

Cinder

EBS

虚拟网络

Neutron

VPC

对象存储

Swift

S3

权限认证

Keystone

镜像管理

Glance

VM Import/Export

控制面板

Horizon

Console
2. ?OpenStack架构 ?> ?逻辑架构 ?
2. ?OpenStack架构 ?> ?工作流 ?
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 ?
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 ?
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 ?
2. ?OpenStack架构 ?> ?组件分析 ?> ?Cinder ?
Ephemeral ?Storage ?

Block ?Storage ?

Object ?Storage ?

用于 ?

运行OS ?

给虚拟机增加额外的持久存储 ?

存储各种类型的文件 ?

访问方式 ?

文件系统(Qemu支持的接口) ?

块设备(比如 ?/dev/sdc) ?

REST ?API ?

如何访问 ?

VM ?

VM ?

anywhere ?

管理方式 ?

OpenStack ?Compute(Nova) ?

OpenStack ?Block ?Storage(Cinder) ?

OpenStack ?Object ?
Storage(Swift) ?

数据持久性 ?

VM被删除 ?

volume被用户删除 ?

对象被用户删除 ?

大小 ?

由管理员配置flavors ?

由用户指定 ?

由管理员设置 ?

用例 ?

10GB ?root ?disk, ?30GB ?second ?disk ?

1TB ?disk ?

10GB网盘 ?

??
??
??
??
??
??
??
??
 ?

iSCSI ?
Fibre ?Channel ?
SAN ?
EMC ?VNX/VMAX ?
NetAPP ?
IBM ?Storwize/XIV ?
HUAWEI ?
HP ?3PAR ?

??
??
??
??
??

NFS(volumes ?as ?sparse ?files)
GlusterFS ?
Ceph ?RBD ?
LVM ?
… ?
2. ?OpenStack架构 ?> ?组件分析 ?> ?Neutron ?
??
??
??
??

Network ?
Subnet ?
Port ?
Router ?
2. ?OpenStack架构 ?> ?组件分析 ?> ?Neutron ?
Plugins ?

Linux ?Bridge ?
OpenVSwitch ?
Nicira ?NVP ?
Cisco ?
Ryu ?OpenFlow ? ?
controller ?
?? NEC ?
ProgrammableFlow ?
Controller ?
??
??
??
??
??
2. ?OpenStack架构 ?> ?组件分析 ?> ?Glance ?
novacompute ?
REST

OpenStack ?
Image ?Service ?

REST

Glance
API

Registry ?
Server ?

Glance ?
Database ?

Store ?
Adapter ?

Swift ?

S3 ?

Filesystem ?

RBD ?

Cinder ?
Contents

1.? OpenStack介绍 ?

??? 自动化部署 ?

2.? OpenStack架构 ?

??? HA ?

3.? OpenStack部署 ?

??? 集群扩展 ?
3. ?OpenStack部署 ?> ?自动化部署 ?
??
??
??
??
??
??

Devstack ?
Puppet ?
Chef ?
Packstack ?
Fuel ?
UnitedStack ?OS ?
3. ?OpenStack部署 ?> ?HA ?
client

??
??
??
??
??

API ?service ?
Compute ?service ?
Scheduler ?service ?
Message ?queue ?service ?
Database ?service ?

Vip: 10.0.0.10

haproxy1

Keepalived ?

haproxy1

mysql1

mysql1

rabbitmq1

rabbitmq1

keystone1

keystone1

nova-api1

nova-api1

scheduler1

scheduler1

Controller1

Controller2
3. ?OpenStack部署 ?> ?集群扩展 ?
??
??
??
??

Keystone ?
Glance ?
Message ?queue ?
database ?

n??Region ?
n??Cell ?
n??Availability ?zone ?
n??Host ?aggregates ?
 ?
THX

More Related Content

OpenStack 101

  • 2. Contents 1.? OpenStack介绍 ? 2.? OpenStack架构 ? 3.? OpenStack部署 ?
  • 3. Contents 1.? OpenStack介绍 ? ??? 价值 ? 2.? OpenStack架构 ? ??? 生态圈 ? 3.? OpenStack部署 ? ??? 成功的原因 ?
  • 4. 1. ?OpenStack介绍 ?> ?价值 ? 开源云平台 ? ?? 用于创建私有云和公有云的开源软件 ? -? 扩展性 ? -? 弹性 ? -? 多租户 ? ?? 资源管理 ? –? 计算资源 ? –? 网络资源 ? –? 存储资源 ? ?? 按需分配 ?
  • 5. 1. ?OpenStack介绍 ?> ?生态圈 ? Top 3 服务器厂商 云平台的Linux ? Top 3 网络设备厂商 Top 3 存储厂商 Top 3 虚拟化厂商 Top 3 Linux厂商 公有云厂商 私有云
  • 6. 1. ?OpenStack介绍 ?> ?成功的原因 ? 1.? OpenStack ?Community ?and ? ?Foundation ? ? 2.? OpenStack ?Infrastructure ?Team ? –? –? –? –? Massive ?Effort ?-> ?Improved ?Quality ? Gated ?Commits ? Code ?Reviews ?& ?Continuous ? Integration ? 3.? Oslo ?project(openstack-common) ?
  • 7. Contents 1.? OpenStack介绍 ? ??? 核心组件 ? 2.? OpenStack架构 ? ??? 逻辑架构 ? 3.? OpenStack部署 ? ??? 工作流 ? ??? RESTful/RPC/Plugin ? ??? 组件分析 ?
  • 8. 2. ?OpenStack架构 ?> ?核心组件 ? OpenStack服务 对应的AWS服务 虚拟机 Nova EC2 虚拟块存储 Cinder EBS 虚拟网络 Neutron VPC 对象存储 Swift S3 权限认证 Keystone 镜像管理 Glance VM Import/Export 控制面板 Horizon Console
  • 9. 2. ?OpenStack架构 ?> ?逻辑架构 ?
  • 10. 2. ?OpenStack架构 ?> ?工作流 ?
  • 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 ?
  • 14. 2. ?OpenStack架构 ?> ?组件分析 ?> ?Cinder ? Ephemeral ?Storage ? Block ?Storage ? Object ?Storage ? 用于 ? 运行OS ? 给虚拟机增加额外的持久存储 ? 存储各种类型的文件 ? 访问方式 ? 文件系统(Qemu支持的接口) ? 块设备(比如 ?/dev/sdc) ? REST ?API ? 如何访问 ? VM ? VM ? anywhere ? 管理方式 ? OpenStack ?Compute(Nova) ? OpenStack ?Block ?Storage(Cinder) ? OpenStack ?Object ? Storage(Swift) ? 数据持久性 ? VM被删除 ? volume被用户删除 ? 对象被用户删除 ? 大小 ? 由管理员配置flavors ? 由用户指定 ? 由管理员设置 ? 用例 ? 10GB ?root ?disk, ?30GB ?second ?disk ? 1TB ?disk ? 10GB网盘 ? ?? ?? ?? ?? ?? ?? ?? ?? ? iSCSI ? Fibre ?Channel ? SAN ? EMC ?VNX/VMAX ? NetAPP ? IBM ?Storwize/XIV ? HUAWEI ? HP ?3PAR ? ?? ?? ?? ?? ?? NFS(volumes ?as ?sparse ?files) GlusterFS ? Ceph ?RBD ? LVM ? … ?
  • 15. 2. ?OpenStack架构 ?> ?组件分析 ?> ?Neutron ? ?? ?? ?? ?? Network ? Subnet ? Port ? Router ?
  • 16. 2. ?OpenStack架构 ?> ?组件分析 ?> ?Neutron ? Plugins ? Linux ?Bridge ? OpenVSwitch ? Nicira ?NVP ? Cisco ? Ryu ?OpenFlow ? ? controller ? ?? NEC ? ProgrammableFlow ? Controller ? ?? ?? ?? ?? ??
  • 17. 2. ?OpenStack架构 ?> ?组件分析 ?> ?Glance ? novacompute ? REST OpenStack ? Image ?Service ? REST Glance API Registry ? Server ? Glance ? Database ? Store ? Adapter ? Swift ? S3 ? Filesystem ? RBD ? Cinder ?
  • 18. Contents 1.? OpenStack介绍 ? ??? 自动化部署 ? 2.? OpenStack架构 ? ??? HA ? 3.? OpenStack部署 ? ??? 集群扩展 ?
  • 19. 3. ?OpenStack部署 ?> ?自动化部署 ? ?? ?? ?? ?? ?? ?? Devstack ? Puppet ? Chef ? Packstack ? Fuel ? UnitedStack ?OS ?
  • 20. 3. ?OpenStack部署 ?> ?HA ? client ?? ?? ?? ?? ?? API ?service ? Compute ?service ? Scheduler ?service ? Message ?queue ?service ? Database ?service ? Vip: 10.0.0.10 haproxy1 Keepalived ? haproxy1 mysql1 mysql1 rabbitmq1 rabbitmq1 keystone1 keystone1 nova-api1 nova-api1 scheduler1 scheduler1 Controller1 Controller2
  • 21. 3. ?OpenStack部署 ?> ?集群扩展 ? ?? ?? ?? ?? Keystone ? Glance ? Message ?queue ? database ? n??Region ? n??Cell ? n??Availability ?zone ? n??Host ?aggregates ? ?
  • 22. THX