OpenStack 101 朱荣泽
2013.10.20
Contents
1. OpenStack简介 � 2. OpenStack架构 � 3. OpenStack部署 �
Contents
1. OpenStack简介 � 2. OpenStack架构 � 3. OpenStack部署 �
� 价值 � � 生态圈 � � 成功的原因 �
1. � OpenStack简介 � > � 价值 � 开源云平台 � • 用于创建私有云和公有云的开源软件 �
- 扩展性 � - 弹性 � - 多租户 �
• 资源管理 � – 计算资源 � – 网络资源 � – 存储资源 �
• 按需分配 �
1. � OpenStack简介 � > � 生态圈 �
云平台的Linux �
Top 3 网络设备厂商
Top 3 Linux厂商
Top 3 存储厂商
公有云厂商
Top 3 虚拟化厂商
Top 3 服务器厂商
私有云
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 �
OpenStack � � Identity � Service �
2. � OpenStack架构 � > � 组件分析 � > � Keystone �
OpenStack � Service �
Keystone � API �
Token � Backend �
Catalog � Backend �
Policy � Backend �
Identity � Backend �
DB,KVS, � memcache �
KVS,SQL, � templated �
ACLs,rules, � Custom �
KVS,PAM,SQL,LDAP �
REST
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 • Role: a first-‐class piece of metadata
associated with many user-‐tenant pairs • Token: identifying credential
associated with a user or user and tenant
• Rule: describes a set of requirements for performing an action
2. � OpenStack架构 � > � 组件分析 � > � Nova � nova-api �
Queue �
DB
nova-conductor �
nova-scheduler �
nova-computer �
nova-computer �
nova-computer � ….
KVM
VM
VM
XEN
VM
VM
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 �
OpenStack � Image � Service �
nova-compute �
Glance API
Registry � Server �
Store � Adapter �
Glance � Database �
Swift � S3 � Filesystem �
REST
RBD � Cinder �
REST
Contents
1. OpenStack简介 � 2. OpenStack架构 � 3. OpenStack部署 �
� 自动化部署 � � HA � � 集群扩展 �
3. � OpenStack部署 � > � 自动化部署 �
• Devstack � • Puppet � • Chef � • Packstack � • Fuel � • UnitedStack � OS �
3. � OpenStack部署 � > � HA �
• API � service � • Compute � service � • Scheduler � service � • Message � queue � service � • Database � service �
client
Vip: 10.0.0.10
haproxy1
mysql1
rabbitmq1
keystone1
nova-api1
scheduler1
haproxy1
mysql1
rabbitmq1
keystone1
nova-api1
scheduler1
Keepalived �
Controller1 Controller2
3. � OpenStack部署 � > � 集群扩展 �
• Keystone � • Glance � • Message � queue � • database �
n Region � n Cell � n Availability � zone � n Host � aggregates � �
THX
Top Related