@zhangyy
2019-12-16T02:02:36.000000Z
字数 4172
阅读 358
openstack系列
- 一: openstack的介绍以及组件
- 二: openstack的架构
- 三: openstack的环境初始化
OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它的社区拥有超过130家企业及1350位开发者,这些机构与个人都将OpenStack作为基础设施即服务(IaaS)资源的通用前端。OpenStack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。本文希望通过提供必要的指导信息,帮助大家利用OpenStack前端来设置及管理自己的公共云或私有云。
OpenStack包含了许多组件。有些组件会首先出现在孵化项目中,待成熟以后进入下一个OpenStack发行版的核心服务中。同时也有部分项目是为了更好地支持OpenStack社区和项目开发管理,不包含在发行版代码中,主要组件如下:Compute (Nova) 计算服务Identity Service (Keystone) 认证服务Image Service (Glance) 镜像服务Networking (Neutron) 网络服务Dashboard (Horizon) 仪表板Object Storage (Swift) 对象存储Block Storage (Cinder) 块存储Orchestration (Heat) 编排Telemetry (Ceilometer) 监控Database Service (Trove) 数据库服务Data Processing (Sahara) 数据处理
OpenStack是由一系列具有RESTful接口的Web服务所实现的,是一系列组件服务集合。如下图为OpenStack的概念架构,我们看到的是一个标准的OpenStack项目组合的架构。这是比较典型的架构,但不代表这是OpenStack的唯一架构,我们可以选取自己需要的组件项目,来搭建适合自己的云计算平台。

OpenStack项目并不是单一的服务,其含有子组件,子组件内由模块来实现各自的功能,如下图为OpenStack的逻辑架构。通过消息队列和数据库,各个组件可以相互调用,互相通信。这样的消息传递方式解耦了组件、项目间的依赖关系,所以才能灵活地满足我们实际环境的需要,组合出适合我们的架构。每个项目都有各自的特性,大而全的架构并非适合每一个用户,譬如Glance在最早的A、B版本中并没有实际出现应用,Nova可以脱离镜像服务独立运行。当用户的云计算规模大到需要管理多种镜像时,才需要像Glance这样的组件。OpenStack的成长是在生产环境中不断被检验,然后再将需求反馈给社区,由社区来实现的一个过程,可以说OpenStack并非脱离实际的理想化开源社区项目,而是与生产实际紧密结合的,可以复制应用的云计算方案。OpenStack 本身是一个分布式系统,不但各个服务可以分布部署,服务中的组件也可以分布部署。这种分布式特性让 OpenStack 具备极大的灵活性、伸缩性和高可用性。

概念架构图:



逻辑架构图:


以上参考:http://ken.pepple.info/openstack/2012/09/25/openstack-folsom-architecture/https://ilearnstack.com/2013/04/23/introduction-to-openstack-2/


主机名配置10.0.0.11 controller10.0.0.31 computer110.0.0.41 block110.0.0.51 object110.0.0.52 object2
controller 节点两张网卡:ens33: 10.0.0.11 用作内部通讯ens37: 172.17.100.6 用作上网网卡computer1 节点 (上网下包用 10.0.0.11)两张网卡:ens33: 10.0.0.31 网关指向 10.0.0.11.ens37: dhcp 自动获得block1节点一张网卡:ens33: 10.0.0.41 网关指向 10.0.0.11object1一张网卡:ens33:10.0.0.51 网关指向 10.0.0.11object2一张网卡:ens33:10.0.0.52 网关指向 10.0.0.11
配置好时间同步服务器chronydcontroller 节点: 同步 ntp1.aliyun.com其它节点同步 controller所用节点执行命令:timedatectl set-timezone Asia/Shanghai使用 上海时间----vim /etc/chronyd.conf

service chronyd stopservice chronyd startchronyc sources -v

computer1 节点:vim /etc/chronyd.conf--server controller iburst--service chronyd stopservice chronyd startchronyc sources -v


在 controller 配置好ip路由地址转发iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j SNAT --to-source 172.17.100.6service iptables savevim /etc/sysctl.confnet.ipv4.ip_forward = 1sysctl -p



所有节点配置openstack rocky 的 yum 源yum install epel*yum install centos-release-openstack-rockyyum install https://rdoproject.org/repos/rdo-release.rpmyum upgradeyum install python-openstackclient openstack-selinux -y



controller 节点准备mariadb 数据库yum install mariadb mariadb-server MySQL-python python2-PyMySQL -yvim /etc/my.cnf.d/openstack.cnf----[mysqld]bind-address = 0.0.0.0default-storage-engine = innodbinnodb_file_per_table = onmax_connections = 4096collation-server = utf8_general_cicharacter-set-server = utf8init-connect = 'SET NAMES utf8'----service mariadb startchkconfig mariadb onmysql_secure_installation----(设置mariadb 的 root密码为 flyfish225)




yum install rabbitmq-serversystemctl enable rabbitmq-server.servicesystemctl start rabbitmq-server.servicerabbitmqctl add_user openstack openstackrabbitmqctl set_permissions openstack ".*" ".*" ".*"

yum install memcached python-memcachedvim /etc/sysconfig/memcached---OPTIONS="-l 127.0.0.1,::1,controller"---systemctl enable memcached.servicesystemctl start memcached.service



yum install etcd---#[Member]ETCD_DATA_DIR="/var/lib/etcd/default.etcd"ETCD_LISTEN_PEER_URLS="http://10.0.0.11:2380"ETCD_LISTEN_CLIENT_URLS="http://10.0.0.11:2379"ETCD_NAME="controller"#[Clustering]ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.0.0.11:2380"ETCD_ADVERTISE_CLIENT_URLS="http://10.0.0.11:2379"ETCD_INITIAL_CLUSTER="controller=http://10.0.0.11:2380"ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"ETCD_INITIAL_CLUSTER_STATE="new"---systemctl enable etcdsystemctl start etcd至此 openstack rocky 控制节点 环境初始化完成 !!!!!!!


