linux+kvm虚拟化+搭建openstack云平台,私有云搭建

创建虚拟网络:

vim /etc/libvirt/qemu/networks/openstack.xml #创建一个名为openstack的虚拟网络


  openstack                #openstack为虚拟交换机的名字
  
        #桥接nat方式可以连通外网
          #ip为192.168.100.254,相当于虚拟机网关
    
           #DHCP自动分配ip范围是100-200
    
  

virsh net-define /etc/libvirt/qemu/networks/openstack.xml   #定义openstack虚拟网络,用绝对路径定义
virsh net-start openstack     #启动openstack虚拟网络
ifconfig      #ifconfig验证

qemu-img命令

qemu-img 是虚拟机的磁盘管理命令,支持非常多 的磁盘格式,例如raw、qcow2、vdi、vmdk等等
qemu-img 命令格式 :

qemu-img 命令 参数 块文件名称 大小

常用的命令有 :

create 创建一个磁盘
convert 转换磁盘格式
info 查看磁盘信息
resize 扩容磁盘空间

创建新的镜像盘文件

qemu-img create -f 格式 磁盘路径 大小
qemu-img create -f qcow2 disk.img 50G

查询镜像盘文件的信息

qemu-img info 磁盘路径
qemu-img info disk.img

-b 使用后端模板文件

qemu-img create -b disk.img -f  qcow2 disk1.img

服务器配置

准备服务主机 3 台,配置如下:

  1. openstack 管理主机
    – 2CPU,6G 内存,50G 硬盘
    – 配置静态IP:192.168.100.10
  2. node01,node02 计算节点 * 2
    – 2CPU,4.5G 内存,100G 硬盘
    – 配置静态IP:192.168.100.11(12)
  3. 配置主机名 /etc/hosts
  4. 能够相互 ping 通
  5. 配置 dns 服务器 /etc/resolv.conf
  6. 配置NTP服务时间同步

创建openstack 管理主机:
cp /var/lib/libvirt/images/.node_base.xml    /etc/libvirt/qemu/openstack.xml  #拷贝配置文件
cd /var/lib/libvirt/images/      #切换到指定目录
qemu-img create -f qcow2 -b .node_base_qcow2 openstack,img 50G #创建虚拟磁盘文件

vim /etc/libvirt/qemu/openstack.xml #修改虚拟机配置文件

  9   openstack  #虚拟机域名
 11   7488282   #虚拟机最大使用内存,可以手动调整
 12   7488282 #创建虚拟机使用内存
 13   2    #cup核数
 33         #虚拟机硬盘文件
 46              #定义桥接网络源设备,

[root@GGD images]# virsh define /etc/libvirt/qemu/openstack.xml #定义指定文件创建虚拟机
[root@GGD images]# virsh start  openstack #启动虚拟机
[root@GGD images]# virsh console  openstack #连接虚拟机

创建node01节点主机:
cp /var/lib/libvirt/images/.node_base.xml    /etc/libvirt/qemu/node01.xml  #拷贝配置文件
cd /var/lib/libvirt/images/ #切换到指定目录
qemu-img create -f qcow2 -b .node_base_qcow2 node01,img 100G #创建虚拟磁盘文件

vim /etc/libvirt/qemu/node01.xml #修改虚拟机配置文件

  9   openstack  #虚拟机域名
 11   5488282   #虚拟机最大使用内存,可以手动调整
 12   5488282 #创建虚拟机使用内存
 13   2    #cup核数
 33         #虚拟机硬盘文件
 46              #定义桥接网络源设备,

[root@GGD images]# virsh define /etc/libvirt/qemu/node01.xml #定义指定文件创建虚拟机
[root@GGD images]# virsh start  node01 #启动虚拟机
[root@GGD images]# virsh console  node01 #连接虚拟机

创建node02 节点主机:
cp /var/lib/libvirt/images/.node_base.xml    /etc/libvirt/qemu/node02.xml  #拷贝配置文件
cd /var/lib/libvirt/images/ #切换到指定目录
qemu-img create -f qcow2 -b .node_base_qcow2 openstack,img 100G #创建虚拟磁盘文件

vim /etc/libvirt/qemu/node02.xml #修改虚拟机配置文件

  9   openstack  #虚拟机域名
 11   5488282   #虚拟机最大使用内存,可以手动调整
 12   5488282 #创建虚拟机使用内存
 13   2    #cup核数
 33         #虚拟机硬盘文件
 46              #定义桥接网络源设备,

[root@GGD images]# virsh define /etc/libvirt/qemu/node02.xml #定义指定文件创建虚拟机
[root@GGD images]# virsh start  node02 #启动虚拟机
[root@GGD images]# virsh console  node02 #连接虚拟机

配置DNS

系统环境准备
openstack 安装时候需要使用外部 dns 来解析域名
vim /etc/resolv.conf
nameserver 114.114.114.114    #设置真机DNS地址
注:去掉search开头的所有行
虚拟机DNS设置(三台一样配置):
vim /etc/resolv.conf
nameserver 192.168.100.254
注:去掉search开头的所有行
将域名对应的 IP 解析到我们安装的openstack 服务器
vim /etc/hosts
192.168.100.10 openstack
192.168.100.11 node01
192.168.100.12 node02
• 注:DNS 服务器不能与 openstack 安装在同一台主机上

NTP时间服务

node 服务器之间的时间必须保持一致(三台配置NTP)
• 编辑配置文件 vim /etc/chrony.conf
server 192.168.100.254 iburst
systemctl restart chronyd #重启服务
• 测试服务
[student@openstack ~]# chronyc sources -v   #出现*号代表NTP时间可用
^* gateway    2  6  17  62  -753us[-7003us] +/- 24ms

配置yum仓库

[root@GGD ~]# vim /etc/fstab   #真机上挂载文件

/var/lib/libvirt/images/iso/CentOS7-1804.iso   /var/ftp/centos-1804   iso9660    defaults   0   0
/linux-soft/04/openstack/RHEL7OSP-10.iso   /var/ftp/openstack/    iso9660      defaults   0   0
/linux-soft/04/openstack/RHEL7-extras.iso    /var/ftp/extras/    iso9660 defaults   0    0
/var/lib/libvirt/images/iso/CentOS7-1804.iso   /var/ftp/node/   iso9660  defaults  0   0
  • 创建挂载目录
    mkdir /var/ftp/openstack/
    mkdir /var/ftp/extras/
    mkdir /var/ftp/node/

配置 yum 源,软件仓库一共 4 个,软件包共有10,670
[root@openstack ~]# vim /etc/yum.repos.d/openstack.repo
[openstack1]
name=openstack
baseurl=ftp://192.168.100.254/openstack/rhel-7-server-openstack-10-rpms
enabled=1
gpgcheck=0

[openstack2]
name=openstack
baseurl=ftp://192.168.100.254/openstack/rhel-7-server-openstack-10-devtools-rpms
enabled=1
gpgcheck=0

[extras]
name=extras
baseurl=ftp://192.168.100.254/extras
enabled=1
gpgcheck=0

部署Openstack

安装openstack期间,有些软件包所依赖的软件包,并没有在安装过程中安装,这些软件包需提前安装
yum install -y qemu-kvm  libvirt-client  libvirt-daemon  libvirt-daemon-driver-qemu  python-setuptools

openstack 计算节点添加依赖包(node01,node02节点添加)

yum -y install qemu-kvm libvirt-client libvirt-daemon libvirt-daemon-driver-qemu python-setuptools  #node01,node02添加依赖包

  • 配置packstack应答文件 (只需在管理节点上安装)
    安装 openstack 需要使用 packstack

  • 首先安装 openstack-packstack
    [root@openstack ~]# yum install -y openstack-packstack

  • 使用 packstack 创建通用应答文件
    [root@openstack ~]# packstack --gen-answer-file=answer.ini

  • 修改应答文件
    [root@openstack ~]# vim answer.ini
    42: CONFIG_SWIFT_INSTALL=n
    45: CONFIG_CEILOMETER_INSTALL=n
    49: CONFIG_AODH_INSTALL=n
    53: CONFIG_GNOCCHI_INSTALL=n
    75: CONFIG_NTP_SERVERS=192.168.100.254   #NTP服务器地址
    98: CONFIG_COMPUTE_HOSTS=192.168.100.11,192.168.100.12   #安装起虚拟机程序
    102: CONFIG_NETWORK_HOSTS=192.168.100.10,192.168.100.11,192.168.100.12     #配置nova网络以逗号隔开,把需要的IP添加到这里
    333: CONFIG_KEYSTONE_ADMIN_PW=admin    #管理员密码
    840: CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan   #设置支持flat扁平网络,默认支持vxlan网络,设置flat扁平网络可以跟外部同信
    910: CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex   #定义一个虚拟交换机名字,固定叫br-ex需要绑定网卡
    921: CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0   #把eth0绑定到交换机外网口,设定外网通讯端口
    1179: CONFIG_PROVISION_DEMO=n    #取消例子安装

• 如果前期环境准备无误,只要耐心等待安装结束即可
• 根据主机配置不同,安装过程需要20分钟左右或更久
• 如果出现错误,根据屏幕上给出的日志文件进行排错

  • 执行应答文件
    [root@openstack ~]# packstack --answer-file=answer.ini

查看外部OVS网桥

br-ex为外部OVS网桥
[root@openstack ~]# cat /etc/sysconfig/network-scripts/ifcfg-br-ex
ONBOOT=“yes”
NM_CONTROLLED=“no”
IPADDR=“192.168.100.10”
NETMASK=“255.255.255.0”
GATEWAY=“192.168.100.254”
DEVICE=br-ex
NAME=br-ex
DEVICETYPE=ovs
OVSBOOTPROTO=“static”
TYPE=OVSBridge

eth0为外部OVS网桥的端口

[root@openstack ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NAME=eth0
DEVICETYPE=ovs
TYPE=OVSPort
OVS_BRIDGE=br-ex
ONBOOT=yes
BOOTPROTO=none

Horizon配置

Horizon是一个用以管理、控制OpenStack服务的Web控制面板,也称之为Dashboard仪表盘
• 可以管理实例、镜像、创建密匙对,对实例添加卷、操作Swift容器等。除此之外,用户还可以在控制面板中使用终端(console)或VNC直接访问实例
• 基于python的django web框架进行开发

功能与特点

• 实例管理:创建、终止实例,查看终端日志,VNC连接,添加卷等
• 访问与安全管理:创建安全群组,管理密钥对,设置浮动IP等
• 偏好设定:对虚拟硬件模板可以进行不同偏好设定
• 镜像管理:编辑或删除镜像
• 用户管理:创建用户等
• 卷管理:创建卷和快照
• 对象存储处理:创建、删除容器和对象

Horizon BUG 处理

• 安装虽然没有报错,但默认无法打开 Horizon,这是一个软件的配置 BUG
/etc/httpd/conf.d/15-horizon_vhost.conf
WSGIApplicationGroup %{GLOBAL}
ServerAlias localhost
WSGIDaemonProcess apache group=apache processes=3
threads=10 user=apache
WSGIProcessGroup apache
WSGIApplicationGroup %{GLOBAL}  <— 这里添加

  • 修改配置文件后重启apache服务:systemctl restart httpd
  • 重新载入配置文件 apachectl graceful

初始化环境变量

[root@openstack ~]# source ~/keystonerc_admin
[root@openstack ~(keystone_admin)]# env | grep OS
HOSTNAME=openstack
OS_REGION_NAME=RegionOne
OS_PASSWORD=admin #登入密码
OS_AUTH_URL=http://192.168.100.10:5000/v2.0
OS_USERNAME=admin   #登入用户名
OS_TENANT_NAME=admin
• 使用帮助
[root@openstack ~(keystone_admin)]# openstack help
linux+kvm虚拟化+搭建openstack云平台,私有云搭建_第1张图片
到这里openstack云平台就可以用web登入了
用户名:admin
密码: 初始登入密码在 keystonerc_admin 文件里

你可能感兴趣的:(openstack云平台,虚拟化,致力于明天的运维技术生涯)