一、Openstack概述、安装部署环境


虚拟化技术的底层构成:

内核的虚拟化模块(KVM):从内核集去提供虚拟化及CPU指令集的支持,要求CPU支持,(CPU有VMX指令集)
 
硬件仿真层(QEMU):虚拟一些周边设备,鼠标、键盘、网卡、声卡、显卡
 
libvirt:负责管理虚拟机,与虚拟机进行交互
 
用户接口:virt-manager(图形界面)、virsh(命令行)
 
虚拟机:配置文件、硬盘(镜像文件)
qcow2 写拷贝技术
前端盘(img) 后端盘(qcow2) xml文件一般不会更改
 
1.配置yum仓库
 
CentOS7-1708光盘内容作为仓库源
配置 RHEL7-extars内容加入仓库源
RHEL7OSP-10光盘中包含多个目录,每个目录都是仓库源(可以使用脚本生成)
 
配置 yum仓库
警告:仅yum配置的第一个源(系统源)为gpgcheck=1需要导入公钥,其他的都是gpgcheck=0,否则安装会报错。
]# mkdir /var/ftp/system  
]# mkdir /var/ftp/extras 
]# mkdir /var/ftp/HEL7OSP
]# vim /etc/fstab
/iso/RHEL7OSP-10.iso   /var/ftp/HEL7OSP iso9660 defaults 0 0
/iso/CentOS7-1708.iso  /var/ftp/system  iso9660 defaults 0 0
/iso/RHEL7-extras.iso  /var/ftp/extras  iso9660 defaults 0 0
]# mount –a
 
]# vim /etc/yum.repos.d/local.repo
[local_repo]
name=CentOS-$releasever - Base
enabled=1
gpgcheck=1
[local_extras]
name=extras
enabled=1
gpgcheck=0
[1local_devtools-rpms]
name=devtools-rpms
enabled=1
gpgcheck=0
[2local_optools-rpms]
name=optools-rpms
enabled=1
gpgcheck=0
[3local_rpms]
name=rpms
enabled=1
gpgcheck=0
[4local_tools-rpms]
name=tools-rpms
enabled=1
gpgcheck=0
[5local_mon-rpms]
name=mon-rpms
enabled=1
gpgcheck=0
[6local_osd-rpms]
name=osd-rpms
enabled=1
gpgcheck=0
[7local_rhceph-2-tools-rpms]
name=rhceph-2-tools-rpms
enabled=1
gpgcheck=0
[8local_agent-rpms]
name=agent-rpms
enabled=1
gpgcheck=0
[9local_installer-rpms]
name=installer-rpms
enabled=1
gpgcheck=0
[10local_rhscon-2-main-rpms]
name=rhscon-2-main-rpms
enabled=1
gpgcheck=0
 
2. 两台虚拟机配置
 
2.1 创建两台虚拟机后端盘:
images] qemu-img create -f qcow2 -b node.qcow2 openstack.img 50G
images] qemu-img create -f qcow2 -b node.qcow2 nova01.img 50G
 
2.2 创建img:
删除centos7.0.xml里面所有的^mac*,^address*的行
qemu] sed 's,centos7.0,nova01,' centos7.0.xml > nova01.xml
qemu] sed 's,centos7.0,openstack,' centos7.0.xml > openstack.xml
 
2.3 创建虚拟机:
qemu] virsh define openstack.xml 
qemu] virsh define nova01.xml 
 
2.4 修改内存: 
] virsh edit openstack
...
8848000
8848000
...
 
 
] virsh edit nova01
...
6548000
6548000
...
 
 
添加网卡:(每个都添加第二张网卡)
添加硬件--网络(private1,型号 virtio)--保存
 
2.5 登陆openstack
 
] ssh -X root@192.168.1.140
 
openstack:
]# lsblk(有50G)
]# export LANG=en_US
]# growpart /dev/vda 1 (lsblk 2G-50G)
]# xfs_growfs /    (df -h 2G-50G)
 
]# echo openstack > /etc/hostname 
stack ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
# Generated by dracut initrd
DEVICE="eth0"
ONBOOT="yes"
IPV6INIT="no"
IPV4_FAILURE_FATAL="no"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="static"
IPADDR="192.168.1.1"
PREFIX=24
GATEWAY=192.168.1.254
tack ~]# systemctl restart network
 
添加第二张网卡:
scripts]# cp ifcfg-eth0 ifcfg-eth1
scripts]# vim ifcfg-eth1
# Generated by dracut initrd
DEVICE="eth1"
ONBOOT="yes"
IPV6INIT="no"
IPV4_FAILURE_FATAL="no"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="static"
IPADDR="192.168.4.10"
PREFIX=24
scripts]# systemctl restart network(会有eth1)
 
配置DNS:
查看真机器
]# cat /etc/resolv.conf 
# Generated by NetworkManager
search tedu.cn
nameserver 176.233.0.227
虚拟机:
]# vim /etc/resolv.conf 
nameserver 176.233.0.227
测试
]# ping www.baidu.com
 
域名解析
tack ~]# vim /etc/hosts     
//在openstack和nova01主机上面操作
192.168.1.1 openstack
192.168.1.2 nova01
 
2.6 登陆nova01
 
]# ssh -X root@192.168.1.129
 
openstack:
]# lsblk(有50G)
]# export LANG=en_US
]# growpart /dev/vda 1 (lsblk 2G-50G)
]# xfs_growfs /    (df -h 2G-50G)
 
]# echo nova01 > /etc/hostname 
stack ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
# Generated by dracut initrd
DEVICE="eth0"
ONBOOT="yes"
IPV6INIT="no"
IPV4_FAILURE_FATAL="no"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="static"
IPADDR="192.168.1.2"
PREFIX=24
GATEWAY=192.168.1.254
tack ~]# systemctl restart network
 
添加第二张网卡:
scripts]# cp ifcfg-eth0 ifcfg-eth1
scripts]# vim ifcfg-eth1
# Generated by dracut initrd
DEVICE="eth1"
ONBOOT="yes"
IPV6INIT="no"
IPV4_FAILURE_FATAL="no"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="static"
IPADDR="192.168.4.11"
PREFIX=24
scripts]# systemctl restart network(会有eth1)
 
配置DNS:
查看真机器
]# cat /etc/resolv.conf 
# Generated by NetworkManager
search tedu.cn
nameserver 176.233.0.227
虚拟机:
]# vim /etc/resolv.conf 
nameserver 176.233.0.227
测试
]# ping www.baidu.com
 
域名解析
tack ~]# vim /etc/hosts     
//在openstack和nova01主机上面操作
192.168.1.1 openstack
192.168.1.2 nova01
 
3. 配置NTP服务器
将NTP服务与DNS服务部署在同一台主机上
确认NTP服务器的时区是东八区
确认NTP服务器的时间准确
计划安装openstack的服务器与NTP服务器进行时间校正
 
3.1 配置NTP时间同步(真机操作)
]# yum -y install chrony
]# vim /etc/chrony.conf
server ntp1.aliyun.com iburst
bindacqaddress 0.0.0.0
allow 0/0            //允许所有人使用我的时间服务器 
cmdallow 127.0.0.1      //控制指令
]# systemctl restart chronyd
]# netstat -antup | grep chronyd
udp        0      0 0.0.0.0:123             0.0.0.0:*                           23036/chronyd       
udp        0      0 127.0.0.1:323           0.0.0.0:*                           23036/chronyd
]# chronyc sources -v    //出现*号代表NTP时间可用
^* 120.25.115.20 
 
4. 环境准备
准备openstack的基础环境
 
1)配置yum源
备注:只有系统源的gpgcheck=1,其他的都是gpgcheck=0)
]# scp /etc/yum.repos.d/local.repo \192.168.1.1:/etc/yum.repos.d/
//拷贝给openstack
]# scp /etc/yum.repos.d/local.repo \192.168.1.2:/etc/yum.repos.d/
//拷贝给nova.tedu.cn这台主机
 
2) 配置ip
给openstack主机添加eth1网卡 192.168.4.10/24
给nova01主机添加eth1网卡 192.168.4.11/24
 
3)配置卷组(真机创建,openstack添加)
room9pc01 images]# qemu-img create -f qcow2 disk.img 50G
room9pc01 ]# virsh -c qemu:///system attach-disk openstack \
 /var/lib/libvirt/images/disk.img vdb --subdriver qcow2 --sourcetype file
Disk attached successfully      //添加成功
 
stack ~]# yum install lvm2 
stack ~]# pvcreate /dev/vdb 
stack ~]# vgcreate cinder-volumes /dev/vdb
 
stack ~]# lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda    253:0    0  50G  0 disk 
└─vda1 253:1    0  50G  0 part /
vdb    253:16   0  50G  0 disk 
 
stack~]# vgs
VG             #PV #LV #SN Attr   VSize   VFree  
cinder-volumes   1   0   0 wz--n- <50.00g <50.00g
 
4)安装openstack的依赖包(openstack和nova01主机上面)
openstack ~]# yum install -y qemu-kvm libvirt-client libvirt-daemon libvirt-daemon-driver-qemu python-setuptools 
 
nova ~]# yum install -y qemu-kvm libvirt-client libvirt-daemon libvirt-daemon-driver-qemu python-setuptools
 
5.部署Openstack
通过packstack部署Openstack
根据相关日志文件进行排错
 
5.1 安装packstack
stack ~]# yum install -y openstack-packstack
 
创建应答文件:
stack ~]# packstack --gen-answer-file answer.ini  
//answer.ini与answer.txt是一样的,只是用vim打开answer.ini文件有颜色
Packstack changed given value  to required value /root/.ssh/id_rsa.pub
 
修改应答文件:
stack ~]# vim answer.ini
  11 CONFIG_DEFAULT_PASSWORD=redhat  //密码
  42 CONFIG_SWIFT_INSTALL=n
  75 CONFIG_NTP_SERVERS=192.168.1.254   //时间服务器的地址
 333 CONFIG_KEYSTONE_ADMIN_PW=redhat    //openstack管理员的密码,用户名是admin
 554 CONFIG_CINDER_VOLUMES_CREATE=n     //创建卷,已经手动创建过了
 840 CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan   //网络驱动类型
 876 CONFIG_NEUTRON_ML2_VXLAN_GROUP=239.1.1.5  //组播地址
//设置组播地址,最后一个随意不能为0和255,其他固定
 910 CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex  //物理网桥的名称,三层交换机
 921 CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0   
//br-ex桥的名称与eth0连接,管理eth0,网桥与哪个物理网卡连接
 936 CONFIG_NEUTRON_OVS_TUNNEL_IF=eth1  //内部的隧道网络
1179 CONFIG_PROVISION_DEMO=n   //DEMO是否测试
 
仔细检查是否正确,yum是不是10731,要装至少20分钟以上!
stack ~]# packstack --answer-file=answer.ini
 **** Installation completed successfully ******     //出现这个为成功
6.网络管理
 
6.1查看外部OVS网桥
 
1)查看br-ex网桥配置(br-ex为OVS网桥设备)
openstack ~]# cat /etc/sysconfig/network-scripts/ifcfg-br-ex 
ONBOOT="yes"
NM_CONTROLLED="no"
IPADDR="192.168.1.1"
PREFIX=24
GATEWAY=192.168.1.254
DEVICE=br-ex
NAME=br-ex
DEVICETYPE=ovs
OVSBOOTPROTO="static"
TYPE=OVSBridge     (OVS交换机)
 
2)查看eth0网卡配置(该网卡为OVS网桥的接口)
openstack ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE=eth0
NAME=eth0
DEVICETYPE=ovs  //OVS类型
TYPE=OVSPort    //变为OV的一个端口
OVS_BRIDGE=br-ex
ONBOOT=yes
BOOTPROTO=none
 
发现:eth0的IP被br-ex抢走了,原因:
openstack里有一台虚拟a
nova01里有一台虚拟机b
a,b只要通信,必须有一个实体的交换机,那连接实体交换机的网卡是谁?
--eth0,于是,虚拟机a,b要相互通信,通过内部虚拟交换机,同时a,b要连接外网,
那么openstack把虚拟交换机升级为三层交换机,eth0的网卡(4.10)变为虚拟交换机(三层)的一个接口。
通信过程:
a-->a(虚拟交换机)-->a(eth0)-->物理交换机-->b(eth0)-->b(虚拟交换机)-->b
 
3)验证OVS配置
openstack ~]# ovs-vsctl show
    Bridge br-ex
        Controller "tcp:127.0.0.1:6633"
            is_connected: true
        fail_mode: secure
        Port "eth0"     //端口eth0
            Interface "eth0"
        Port br-ex
            Interface br-ex
                type: internal
        Port phy-br-ex
            Interface phy-br-ex
                type: patch
                options: {peer=int-br-ex}
7.管理项目,基本操作
创建名为myproject的项目
查看项目信息
更新vcpu配额为30
删除myproject
 
7.1 浏览器访问openstack
 
1)火狐浏览器输入 192.168.1.1
 //访问失败
2)需要改配置文件并重新加载
stack ~]# cd /etc/httpd/conf.d/
conf.d]# vim 15-horizon_vhost.conf
  35   WSGIProcessGroup apache
  36   WSGIApplicationGroup %{GLOBAL}     //添加这一行,是添加!
conf.d]# apachectl graceful  //重新载入配置文件
3)火狐浏览器输入 192.168.1.1
出现登陆界面
 
查看密码,登陆
stack ~]# cat keystonerc_admin 
unset OS_SERVICE_TOKEN
    export OS_USERNAME=admin
    export OS_PASSWORD=redhat
 
4)创建名为myproject的项目
stack ~]# source ~/keystonerc_admin  //初始化环境变量
admin)]# openstack project create myproject
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | None                             |
| enabled     | True                             |
| id          | 97c91571259b4419be2a758e2e1c88a7 |
| name        | myproject                        |
+-------------+----------------------------------+
 
5)查看项目信息
admin)]# openstack project list
+----------------------------------+-----------+
| ID                               | Name      |
+----------------------------------+-----------+
| 6b57f6e21b6f483ab4d5e8995c27f657 | services  |
| 97c91571259b4419be2a758e2e1c88a7 | myproject |
| bc07c5a9d6914bdd86b28a76207668cd | admin     |
+----------------------------------+-----------+
 
6)更新vcpu配额为30
admin)]# nova quota-update --cores 30 myproject
可以登陆查看
火狐浏览器输入 192.168.1.1
 
7)删除myproject
admin)]# openstack project delete myproject

 

8)安装openstack工具包
stack ~]# yum -y install openstack-utils
stack ~]# openstack-status
 
 
***************************
重点知识整理:
 
1.虚拟机由两部分构成
*.xml   *.img
 
2.配置openstack基础准备
yum源     时间同步(同步阿里云,自己也做服务器)
 
3.什么是云计算
一种便捷的、按需的、提供互联网相关服务的虚拟化资源管理服务。
 
4.云计算的三种服务
IaaS(Infrastructure as a Service) ,基础设施,即服务。
提供给消费者的服务是对所有计算基础设施的利用,包括处理CPU,内存、网络等和其他基本的计算资源,用户能够部署和运行任意软件,包括操作系统和应用程序。 
IaaS通常分为三种用法:共有云(虚拟机),私有云(淘宝)和混合云
 
PaaS(Platform-as-a-Service),平台服务,以服务平台或者开发环境为服务进行提供就成了PaaS.
SaaS(Software-as-a-Service),软件即服务,厂商将应用软件统一部署在服务器上,客户可以根据自己的实际需求,通过互联网向厂商订购(租用,代维护,数据存储)所需要的应用软件服务。
 
5. Openstack 简介
是一套IaaS解决方案,开源的云计算管理平台,以Apache许可证为授权。
七大组件:
01:Horizon 
用于管理Openstack各种服务的、基于web的管理接口
通过图形界面实现创建用户、管理网络、启动实例等操作。
 
02:Keystone 
为其他服务提供认证和授权的集中身份管理服务
密码认证、令牌认证、AWS(亚马逊Web服务)、SSO认证服务等
也提供了集中的目录服务
 
03:Neutron
软件定义网络服务
用于创建网络、子网、路由器、管理浮动IP
实现虚拟交换机、路由器
实现项目中的VPN服务
 
04:Cinder
为虚拟机管理存储卷的服务
为运行在Nova中的实例提供永久的块存储
可以通过快照进行数据备份
经常应用在实例存储环境中,如数据库文件
 
05:Nova
在节点上用于管理虚拟机的服务
分布式服务,能够与Keystone交互实现认证,与Glance交互实现镜像管理
Nova被设计在标准硬件上能够进行水平拓展
启动实例时,如果有则需要下载镜像
相当于皇帝安插在各个大臣身边的钦差,远程管理各个虚拟机(安装服务等)。
 
06:Glance
扮演虚拟机镜像注册的角色
允许用户直接拷贝服务的镜像
这些镜像可以应用于新建虚拟机的模版
类似于yum源,任意云主机想要创建前端盘,可以通过Glance服务器映射后端盘镜像创建前端盘
 
07:Swift
对象存储,底层相当于一个ceph,提供给openstack云主机使用


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM