一, 云计算
是一种服务模式, 是获取网络上资源的服务, 通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源
--IaaS 云(Infrastructure as a Service), 即基础设施服务
提供给消费者所有计算基础设施的利用, 包括处理 CPU, 内存, 存储, 网络和其它基本的计算资源, 用户能够部署和运行任意软件, 包括操作系统和应用程序
IaaS 通常分为三两种用法: 公有云, 私有云和混合云
--PaaS 云(Platform as a Service), 平台即服务
云计算时代相应的服务器平台或者开发环境作为服务进行提供就成为了 PaaS, 简单地说, PaaS 平台就是指云环境中的应用基础设施服务, 也可以说是中间件即服务
--SaaS 云(Software as a Service), 软件即服务, 比如手机应用商城, 用户不用再购买软件, 而改用向提供商租用基于 web 的软件, 来管理企业经营活劢, 且无需对软件进行维护, 服务提供商会全权管理和维护软件, 软件厂商在向客户提供互联网应用的同时, 也提供软件的离线操作和本地数据存储, 让用户随时随地都可以使用其定购的软件和服务.
二, Openstack
是一套做 IaaS 云的解决方案, 是一个开源的云计算管理平台
主要组件:
--Horizon: 用于管理 Openstack 各种服务, 是基于 web 的管理接口(图形界面)Horizon 是一个用以管理, 控制 OpenStack 服务的
Web 控制面板, 也称为 Dashboard 仪表盘, 可以管理实例, 镜像, 创建密匙对, 对实例添加卷, 操作 Swift 容器等. 除此之外, 用户还可以在控制面板中使用终端 (console) 戒 VNC 直接访问实例
--Keystone: 提供认证和授权的集中身份管理服务, 支持多种身份认证模式, 提供了集中的目录服务
--Neutron: 一种软件定义网络服务, 解决虚拟机之间网络的通信问题, 用于创建网络, 子网, 路由器, 管理浮动 IP 地址; 可以实现虚拟交换机, 虚拟路由器; 可用于在项目中创建 ×××
--Cinder: 为虚拟机管理存储卷的服务, 管理虚拟机磁盘, 为运行在 Nova 中的实例提供永久的块存储
--Nova : 虚拟机管理软件在节点上用于管理虚拟机服务, 是一个分布式的服务, 能够与 keystone 实现交互认证, 与 Glance 交互实现镜像管理
--Glance: 管理镜像注册, 保存处理镜像, 允许用户直接存储拷贝虚拟机镜像, 这些镜像可以用于新建虚拟机的模板
三, 安装配置 Openstack
1. 环境检查
--selinux 是否关闭
#sestatus
-- 防火墙和网络管理器是否被卸载
#rpm -qa | grep -P "firewalld|NetworkManager"
-- 检查时间服务器是可用
#chronyc sources -v
-- 检查 DNS 是否可用
#nslookup
-- 检查 yum 源(9591 个包)
#yum repolist
-- 检查内存是否够 8G
#free -m
-- 查看是否有 20G 的 vdb 设备
#lsblk
查看是否两块网卡且都能 ping 通
#ifconfig
2 配置 openstack yum 源(共 12 个 yum 源 10731 个包)
在真机挂载
- #vim /etc/fstab
- /iso/RHEL7-extras.iso /var/ftp/openstack-ext iso9660 defaults 0 0
- /iso/RHEL7OSP-10.iso /var/ftp/openstack iso9660 defaults 0 0
- :wq
- #mount -a
在虚拟机里搭建 yum
- #vim /etc/yum.repo.d/centos.repo
- [centos7]
- name=centos7
- baseurl=ftp://192.168.1.254/centos
- enabled=1
- gpgcheck=1
- [openstack_extras]
- name=openstack extras
- baseurl="ftp://192.168.1.254/openstack-ext"
- enabled=1
- gpgcheck=0
- [rhel-7-server-openstack-10-devtools-rpms]
- name=rhel-7-server-openstack-10-devtools-rpms
- baseurl=ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-devtools-rpms
- enabled=1
- gpgcheck=0
- [rhel-7-server-openstack-10-optools-rpms]
- name=rhel-7-server-openstack-10-optools-rpms
- baseurl=ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-optools-rpms
- enabled=1
- gpgcheck=0
- [rhel-7-server-openstack-10-rpms]
- name=rhel-7-server-openstack-10-rpms
- baseurl=ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-rpms
- enabled=1
- gpgcheck=0
- [rhel-7-server-openstack-10-tools-rpms]
- name=rhel-7-server-openstack-10-tools-rpms
- baseurl=ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-tools-rpms
- enabled=1
- gpgcheck=0
- [rhel-7-server-rhceph-2-mon-rpms]
- name=rhel-7-server-rhceph-2-mon-rpms
- baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhceph-2-mon-rpms
- enabled=1
- gpgcheck=0
- [rhel-7-server-rhceph-2-osd-rpms]
- name=rhel-7-server-rhceph-2-osd-rpms
- baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhceph-2-osd-rpms
- enabled=1
- gpgcheck=0
- [rhel-7-server-rhceph-2-tools-rpms]
- name=rhel-7-server-rhceph-2-tools-rpms
- baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhceph-2-tools-rpms
- enabled=1
- gpgcheck=0
- [rhel-7-server-rhscon-2-agent-rpms]
- name=rhel-7-server-rhscon-2-agent-rpms
- baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhscon-2-agent-rpms
- enabled=1
- gpgcheck=0
- [rhel-7-server-rhscon-2-installer-rpms]
- name=rhel-7-server-rhscon-2-installer-rpms
- baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhscon-2-installer-rpms
- enabled=1
- gpgcheck=0
- [rhel-7-server-rhscon-2-main-rpms]
- name=rhel-7-server-rhscon-2-main-rpms
- baseurl=ftp://192.168.1.254/openstack/rhel-7-server-rhscon-2-main-rpms
- enabled=1
- gpgcheck=0
- :wq
- #yum repolist
四, 部署 Openstack
1. 配置卷组, 安装依赖软件包
Openstack 为虚拟机提供的云硬盘, 本质上是本地的逻辑卷, 逻辑卷创建于名为 cinder-volumes 的卷组
- #yum install -y lvm2
- #pvcreate /dev/vdb // 创建物理卷
- #vgcreate cinder-volumes /dev/vdb // 创建卷组, 卷组名必须是 cinder-volumes
- #vgs // 查看卷组
安装软件包: 由于 openstack 是基于 KVM 虚拟化, 因此需要安装 KVM 需要的包(四个),openstack 是 python 语言开发的, 因此需要安装 python-setuptools
#yum install -y qemu-kvm libvirt-daemon libvirt-client libvirt-daemon-driver-qemu python-setuptools
2. 安装 packstack
写一个应答文件自动安装 openstack
更改主机名为 openstack
- #vim /etc/hosts
- 192.168.4.100 openstack
- :wq
- // 能 ping 通主机名
- #yum -y install openstack-packstack // 安装 packstack
- #packstack --gen-answer-file answer.txt // 创建一个应答文件
编辑应答文件
#vim answer.ini
配置默认密码:
11 行: CONFIG_DEFAULT_PASSWORD=Taren1
禁用 swift 对象存储模块 (要使用 cinder-volumes 卷组):
42 行: CONFIG_SWIFT_INSTALL=n
NTP 服务器地址:
75 行: CONFIG_NTP_SERVERS=192.168.1.254
计算节点:(本机 IP)
98 行: CONFIG_COMPUTE_HOSTS=192.168.1.100
需要配置 vxlan 网络的 IP 地址:(本机 IP)
102 行: CONFIG_NETWORK_HOSTS=192.168.1.100
禁用自动创建 cinder-volumns 卷组(之前已经手动创建好了):
554 行: CONFIG_CINDER_VOLUMES_CREATE=n
设置网络支持协议:
840 行: CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan
设置组播地址:
876 行: CONFIG_NEUTRON_ML2_VXLAN_GROUP=239.1.1.5
设置虚拟交换机:
910 行: CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex
设置虚拟交换机所连接的物理网卡:
921 行: CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0
设置隧道网络使用的网卡:
936 行: CONFIG_NEUTRON_OVS_TUNNEL_IF=eth1
禁用测试的 DEMO
1179 行: CONFIG_PROVISION_DEMO=n
3. 安装 openstack
#packstack --answer-file=answer.ini
通过虚拟交换机 br-ex 和物理网络进行连接
虚拟交换机的配置文件 / etc/sysconfig/network-scripts/ifcfg-br-ex
驱动类型: DEVICETYPE=ovs
配置 eth0 为外部 OVS 网桥的端口(自动生成的配置文件)
- #cat /etc/sysconfig/network-scripts/ifcfg-eth0
- DEVICE=eth0
- NAME=eth0
- DEVICETYPE=ovs
- TYPE=OVSPort
- OVS_BRIDGE=br-ex
- ONBOOT=yes
- BOOTPROTO=none
验证虚拟交换机端口的命令:
- #ip -o addr show
- #ovs-vsctl show
- Bridge br-ex
- Controller "tcp:127.0.0.1:6633"
- is_connected: true
- fail_mode: secure
- Port phy-br-ex
- Interface phy-br-ex
- type: patch
- options: {peer=int-br-ex}
- Port "eth0"
- Interface "eth0"
4.Horizon 配置
#vim /etc/httpd/conf.d/15-horizon_vhost.conf
在 WSGIProcessGroup apache(倒数第二行)后添加一行:
WSGIApplicationGroup %{GLOBAL}
重启 apache
#apache graceful
或 #systemctl restart graceful
访问 openstack 控制面板:
http://192.168.4.100/
用户名密码在 / root/keystonerc_admin 里查看
项目管理
-- 项目: 一组隔离的资源和对象. 由一组关联的用户进行管理, 根据配置的需求, 项目对应一个组织, 一个公司或是一个使用客户等
项目中可以有多个用户, 项目中的用户可以在该项目创建, 管理虚拟资源
缺省情况下, packstack 安装的 openstack 中有两个独立的项目:
admin: 为 admin 账户创建的项目
services: 不安装的各个服务相关联
创建项目:
身份管理 ->创建项目 ->创建用户
来源: http://www.bubuko.com/infodetail-2730450.html