- A+
1.OpenStack基本概述
OpenStack是一个开源的云计算管理平台项目,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。
OpenStack支持几乎所有类型的云环境,OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。
OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。
OpenStack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。
本文希望通过提供必要的指导信息,帮助大家利用OpenStack前端来设置及管理自己的公共云或私有云。
Openstack基础架构
2.OpenStack项目组件
服务名称 | 项目名称 | 描述 |
---|---|---|
Dashboard | Horizon | 基于OpenStack接口使用django开发的WEB管理 |
Compute | Nova | 通过虚拟化技术提供计算资源池 |
存储Storage | ||
Object Storage | Swift | 对象存储,适合一次写入多次读取 |
Block Storage | Cinder | 块存储,提供存储资源池 |
共享服务Shared services | ||
IdentityService | Keystone | 认证管理 |
ImageService | Glance | 提供虚拟镜像的注册和存储管理 |
Telemetry | Ceilometer | 提供监控和数据采集、计量服务 |
高级服务Higher-level services | ||
Orchestration | Heat | 自动化部署的组件 |
DatabaseService | Trove | 提供数据库应用服务 |
3.OpenStack实践环境
- 笔者这里讲部件包括数据库和大部分控制节点组件除了网络外都安装在宿主机上,参考的朋友请参照角色进行配置
- 使用了宿主机一台、CentOS-7.x-x86_64kvm虚拟机一台。
生产部署OpenStack,参考使用如下SOA方式部署
以下重要服务做好相关备份以及集群
主机名(FQDN) | IP地址(NAT) | 描述 | 部署服务 |
---|---|---|---|
openstack-controller-node1 | eth0:10.10.10.10 | 控制节点 | Nova、Neutron、cinder |
openstack-compute-node1 | eth0:10.10.10.20 | 计算节点 | Nova、Neutron、cinder |
openstack-keystone-node1 | eth0:10.10.10.30 | 认证服务 | Keystone |
openstack-glance-node1 | eth0:10.10.10.40 | 镜像服务 | Glance |
openstack-memcached-node1 | eth0:10.10.10.50 | 缓存服务 | Memcached |
openstack-rabbitmq-node1 | eth0:10.10.10.60 | 消息队列服务 | RabbitMQ |
openstack-mysql-node1 | eth0:10.10.10.70 | 数据库服务 | MySQL |
openstack-dashboard-node1 | eth0:10.10.10.100 | 可视化UI | Dashboard |
注意: 本指南实践环境如下
主机名(FQDN) | IP地址(NAT) | 描述 | 设备 |
---|---|---|---|
linux-node1.xuliangwei.com | eth0:192.168.56.11 | 控制节点 | 1VCPU、2G内存、50G硬盘(动态) |
linux-node2.xuliangwei.com | eth0:192.168.56.12 | 计算节点 | 1VCPU、2G内存、50G硬盘(动态) |
作为OpenStack的服务和虚拟机的数量增加,所以做了最佳性能的硬件要求。如果性能使更多的服务或虚拟机后下降,考虑增加硬件资源环境。(实验环境控制节点内存一般4G最佳),然而时间长了任然发生交换,因此放宿主机上
为了统一环境,保证实验的通用性,建议将网卡名称设置为 eth*,不使用 CentOS7 默认的网卡命名规则。
1.安装CentOS7.x系统时在启动选项增加内核参数。net.ifnames=0 biosdevname=0
2.如果已安装CentOS7.x,参考CentOS7配置eth0
3.1系统初始化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 1.安装 EPEL 仓库和常用命令 rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm yum install -y net-tools vim wget lrzsz tree screen lsof tcpdump 2.关闭 NetworkManager 和防火墙 systemctl disable firewalld systemctl disable NetworkManager 3.关闭SELinux并确认处于关闭状态 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config grep SELINUX=disabled /etc/selinux/config setenforce 0 4.调整文件描述符 echo '* - nofile 100000 ' >>/etc/security/limits.conf 5.更新系统并重启 [root@linux-node1 ~]# yum update -y && reboot |
3.2域名解析服务
配置hosts域名解析,如果开始了OpenStack部署,一定不要修改主机名,否则会引起意想不到的结果。
1.设置hostname
1 2 3 4 5 6 | #VM1 hostname echo linux-node1.xuliangwei.com > /etc/hostname hostname linux-node1.xuliangwei.com #VM2 hostname echo linux-node2.xuliangwei.com > /etc/hostname hostname linux-node2.xuliangwei.com |
2.解析hostname
1 2 3 4 5 6 7 8 9 10 11 12 | #VM1 hosts [root@linux-node1 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.56.11 linux-node1 linux-node1.xuliangwei.com 192.168.56.12 linux-node2 linux-node2.xuliangwei.com #VM2 hosts [root@linux-node2 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.56.11 linux-node1.xuliangwei.com linux-node1 192.168.56.12 linux-node2.xuliangwei.com linux-node2 |
3.3时间服务NTP
1.OpenStack控制节点部署chrony时间同步
1.OpenStack控制节点部署chrony时间同步
1 2 | [root@linux-node1 ~]# yum install chrony -y |
2.编辑/etc/chrony.conf
文件并添加以下项,根据需要为您的环境(这步可跳过)
1 2 | server time.windows.com iburst |
3.为了让其他节点连接到chrony守护进程在控制器上,添加以下关键至/etc/chrony.conf
文件
1 2 | allow 192.168/16 |
4.启动NTP服务,并将其配置为在系统启动时启动
1 2 | [root@linux-node1 ~]# systemctl enable chronyd.service[root@linux-node1 ~]# systemctl start chronyd.service |
5.设置并查看时区
1 2 | [root@linux-node1 ~]# timedatectl set-timezone Asia/Shanghai[root@linux-node1 ~]# timedatectl status #查看时区 Local time: 六 2016-09-24 20:48:29 CST Universal time: 六 2016-09-24 12:48:29 UTC RTC time: 六 2016-09-24 12:48:29 Time zone: Asia/Shanghai (CST, +0800) NTP enabled: yesNTP synchronized: yes RTC in local TZ: no DST active: n/a |
4.OpenStack基础服务安装
1.安装OpenStack Newton版、安装OpenStack客户端
1 2 | [root@linux-node1 ~]# yum install https://rdoproject.org/repos/rdo-release.rpm -y[root@linux-node1 ~]# yum install centos-release-openstack-newton python-openstackclient -y |
5.OpenStack基础服务MySQL
OpenStack服务使用SQL数据库来存储信息。该数据库通常在控制器节点上运行。本指南中使用MariaDB程序。OpenStack服务还支持其他SQL数据库包括PostgreSQL。
1.安装MySQL服务
1 2 | [root@linux-node1 ~]# yum install mariadb mariadb-server python2-PyMySQL -y |
2.创建和编辑/etc/my.cnf.d/openstack.cnf
文件并添加以下部分
1 2 | [root@linux-node1 ~]# vim /etc/my.cnf.d/openstack.cnf[mysqld]...default-storage-engine = innodbinnodb_file_per_tablemax_connections = 4096collation-server = utf8_general_cicharacter-set-server = utf8 |
3.启动数据库服务,并将其配置为在系统启动时启动
1 2 | [root@linux-node1 ~]# systemctl enable mariadb.service[root@linux-node1 ~]# systemctl start mariadb.service |
4.通过运行mysql_secure_installation
脚本安全数据库服务。为数据库帐户配置合适的密码(生产建议使用openssl rand -hex 10
生成密码)
1 2 | #本指南使用密码为: 123456[root@linux-node1 ~]# mysql_secure_installation |
6.OpenStack基础服务RabbitMQ
OpenStack使用消息队列来协调服务的操作和状态信息。消息队列服务通常在控制器节点上运行。
OpenStack支持多消息队列服务包括RabbitMQ,QPID,和ZeroMQ。然而,大多数分布包OpenStack支持一个特定的消息队列服务。
本指南使用RabbitMQ消息队列服务因为大多数发行版支持。如果您喜欢实现不同的消息队列服务,请查阅与之相关的文档。
1.安装RabbitMQ服务
1 2 | [root@linux-node1 ~]# yum install -y rabbitmq-server |
2.启动消息队列服务,并将其配置为启动系统时启动
1 2 | [root@linux-node1 ~]# systemctl enable rabbitmq-server.service[root@linux-node1 ~]# systemctl start rabbitmq-server.service |
3.检查RabbitMQ的"5672"端口
1 2 | [root@linux-node1 ~]# netstat -lntp|grep 5672tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN 76234/beamtcp6 0 0 :::5672 :::* LISTEN 76234/beam |
4.RabbitMQ新建OpenStack用户,并授权读写权限
1 2 | [root@linux-node1 ~]# rabbitmqctl add_user openstack openstack[root@linux-node1 ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*" |
5.启动RabbitMQ_Web插件,管理界面监听15672
端口
1 2 | [root@linux-node1 ~]# rabbitmq-plugins enable rabbitmq_management[root@linux-node1 ~]# systemctl restart rabbitmq-server.service |
6.访问RabbitMQ_SERVER_IP:15672
,用户: "guest" 密码: "guest"
图1-1
7.修改允许openStack用户登陆RabbitMQ消息队列服务,修改成功后退出重新登陆即可。
password: "openstack"
Tags: "administrator"
图1-2
7.OpenStack基础服务Memcached
对身份认证服务使用Memcached的缓存存储。Memcached的服务通常运行在控制器节点上。对于生产部署,建议启用防火墙,身份验证和加密的组合来保护它。
1.安装Memcached服务
1 2 | [root@linux-node1 ~]# yum install memcached python-memcached -y |
2.启动memcached服务并将其配置为启动系统时启动
1 2 | [root@linux-node1 ~]# systemctl enable memcached.service[root@linux-node1 ~]# systemctl start memcached.service |
