**
OpenStack 是一套IaaS解决方案
**
七大组件:
1) Horizon web管理界面
- 用于管理OpenStack各种服务的、基于web的管理接口、通过图形界面实现创建用户、网络实例等
2) Keystore 身份认证
- 为其他服务提供认证和授权的集中身份管理服务
- 也提供了集中的目录服务
- 支持多种身份认证模式,如:密码认证、令牌认证、以及AWS WEB服务
- 为用户和其他服务提供了SSO认证服务
3) Neutron 虚拟交换机、虚拟vlan
- 软件定义网络的服务
- 用于创建网络、子网、路由器、管理浮动IP地址
- 可以实现虚拟交换机、虚拟路由器
- 可用于在项目中创建VPN
(在zai 两台主机里各别创建虚拟交换机,再在虚拟交换机里划分不同的vlan,两台主机上虚拟交换机不同的vlan可以通信)
4) Cinder 共享存储卷
- 为虚拟机管理存储卷的服务
- 为运行在Nova中的实例提供永久的块存储
- 可以通过快照进行数据备份
- 经常应用在实例存储环境中,
5) Nova 管理节点软件
- 在节点上用于管理虚拟主机的服务
- Nova是一个分布式的服务,能够与Keystore交互实现认证,与Glance交互实现镜像管理
- Nova被设计成在标准硬件上能够进行水平扩展
- 启动实例时,如果有需要则下载镜像
6) Glance
- 扮演虚拟机镜像注册的角色
- 允许用户为直接存储拷贝服务器镜像
- 这些镜像可以用于新建虚拟机的模板
- 只需要把经镜像传给Glance,Glance会给节点主机安装镜像
- 若镜像有更新只需要更新Glance的镜像即可
OpenStack基础环境
步骤一:配置 yum仓库
警告:仅yum配置的第一个源(系统源)为gpgcheck=1需要导入公钥,其他的都是gpgcheck=0,否则安装会报错。
[root@room9pc01 ~]# mkdir /var/ftp/system
[root@room9pc01 ~]# mkdir /var/ftp/extras
[root@room9pc01 ~]# mkdir /var/ftp/HEL7OSP
[root@room9pc01 ~]# 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
[root@room9pc01 ~]# mount –a
[root@room9pc01 ~]# vim /etc/yum.repos.d/local.repo
[local_repo]
name=CentOS-$releasever - Base
baseurl="ftp://192.168.1.254/system"
enabled=1
gpgcheck=1
[local_extras]
name=extras
baseurl="ftp://192.168.1.254/extras"
enabled=1
gpgcheck=0
[1local_devtools-rpms]
name=devtools-rpms
baseurl="ftp://192.168.1.254/HEL7OSP/rhel-7-server-openstack-10-devtools-rpms"
enabled=1
gpgcheck=0
[2local_optools-rpms]
name=optools-rpms
baseurl="ftp://192.168.1.254/HEL7OSP/rhel-7-server-openstack-10-optools-rpms"
enabled=1
gpgcheck=0
[3local_rpms]
name=rpms
baseurl="ftp://192.168.1.254/HEL7OSP/rhel-7-server-openstack-10-rpms"
enabled=1
gpgcheck=0
[4local_tools-rpms]
name=tools-rpms
baseurl="ftp://192.168.1.254/HEL7OSP/rhel-7-server-openstack-10-tools-rpms"
enabled=1
gpgcheck=0
[5local_mon-rpms]
name=mon-rpms
baseurl="ftp://192.168.1.254/HEL7OSP/rhel-7-server-rhceph-2-mon-rpms"
enabled=1
gpgcheck=0
[6local_osd-rpms]
name=osd-rpms
baseurl="ftp://192.168.1.254/HEL7OSP/rhel-7-server-rhceph-2-osd-rpms"
enabled=1
gpgcheck=0
[7local_rhceph-2-tools-rpms]
name=rhceph-2-tools-rpms
baseurl="ftp://192.168.1.254/HEL7OSP/rhel-7-server-rhceph-2-tools-rpms"
enabled=1
gpgcheck=0
[8local_agent-rpms]
name=agent-rpms
baseurl="ftp://192.168.1.254/HEL7OSP/rhel-7-server-rhscon-2-agent-rpms"
enabled=1
gpgcheck=0
[9local_installer-rpms]
name=installer-rpms
baseurl="ftp://192.168.1.254/HEL7OSP/rhel-7-server-rhscon-2-installer-rpms"
enabled=1
gpgcheck=0
[10local_rhscon-2-main-rpms]
name=rhscon-2-main-rpms
baseurl="ftp://192.168.1.254/HEL7OSP/rhel-7-server-rhscon-2-main-rpms"
enabled=1
gpgcheck=0
**
步骤二:配置DNS(真机操作)
**
[root@room9pc01 ~]# yum -y install bind bind-chroot
[root@room9pc01 ~]# vim /etc/named.conf
options {
listen-on port 53 { 192.168.1.3; }; //修改ip
allow-query { any; }; //允许所有
recursion yes;
forwarders { 172.40.1.10; }; //转发dns,真机的服务器地址
dnssec-enable no;
dnssec-validation no;
};
[root@room9pc01 ~]# systemctl restart named
步骤三:两台虚拟机配置静态ip
两台主机同样操作,改一下ip即可(以openstack.tedu.cn为例)
[root@localhost ~]# echo openstack.tedu.cn > /etc/hostname
[root@localhost ~]# hostname openstack.tedu.cn //另外一台主机改名为nova.tedu.cn
[root@openstack ~]# 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
[root@openstack ~]# systemctl restart network
步骤四:域名解析
[root@openstack ~]# vim /etc/hosts
//在openstack.tedu.cn和nova.tedu.cn主机上面操作
192.168.1.1 openstack.tedu.cn
192.168.1.2 nova.tedu.cn
步骤五:配置NTP时间同步(真机操作)
[root@room9pc01 ~]# yum -y install chrony
[root@room9pc01 ~]# vim /etc/chrony.conf
server ntp1.aliyun.com iburst
bindacqaddress 0.0.0.0
allow 0/0 //允许所有人使用我的时间服务器
cmdallow 127.0.0.1 //控制指令
[root@room9pc01 ~]# systemctl restart chronyd
[root@room9pc01 ~]# 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
[root@room9pc01 ~]# chronyc sources -v //出现*号代表NTP时间可用
^* 120.25.115.20 2 6 17 62 -753us[-7003us] +/- 24ms
**
环境准备
1)配置yum源
备注:只有系统源的gpgcheck=1,其他的都是gpgcheck=0)
[root@room9pc01 ~]# scp /etc/yum.repos.d/local.repo 192.168.1.1:/etc/yum.repos.d/ //拷贝给openstack.tedu.cn这台主机
[root@room9pc01 ~]# scp /etc/yum.repos.d/local.repo 192.168.1.2:/etc/yum.repos.d/ //拷贝给nova.tedu.cn这台主机
2)配置ip
备注: 配置eth0为公共网络,网络地址192.168.1.0/24(已经配置过)
配置eth1为隧道接口,网络地址192.168.2.0/24
1)给openstack.tedu.cn主机添加eth1网卡
[root@room9pc01 networks]# virsh -c qemu:///system attach-interface openstack bridge private2 --model virtio
Interface attached successfully //添加成功
[root@openstack ~]# cd /etc/sysconfig/network-scripts
[root@openstack network-scripts]# cp ifcfg-eth0 ifcfg-eth1
[root@openstack network-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.2.1"
PREFIX=24
GATEWAY=192.168.1.254
[root@openstack network-scripts]# systemctl restart network
2)给nova.tedu.cn主机添加eth1网卡
[root@room9pc01 networks]# virsh -c qemu:///system attach-interface nova bridge private2 --model virtio
Interface attached successfully //添加成功
[root@nova ~]# cd /etc/sysconfig/network-scripts
[root@nova network-scripts]# cp ifcfg-eth0 ifcfg-eth1
[root@nova network-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.2.2"
PREFIX=24
GATEWAY=192.168.1.254
[root@openstack network-scripts]# systemctl restart network
3)配置卷组(openstack主机上面操作)
[root@room9pc01 images]# qemu-img create -f qcow2 disk.img 50G
[root@room9pc01 networks]# virsh -c qemu:///system attach-disk openstack /var/lib/libvirt/images/disk.img vdb --subdriver qcow2 --sourcetype file
Disk attached successfully //添加成功
[root@openstack ~]# yum install lvm2
[root@openstack ~]# pvcreate /dev/vdb
[root@openstack ~]# vgcreate cinder-volumes /dev/vdb
4)安装openstack的依赖包(openstack.tedu.cn和nova.tedu.cn主机上面
[root@openstack ~]# yum install -y qemu-kvm libvirt-client libvirt-daemon libvirt-daemon-driver-qemu python-setuptools
[root@nova ~]# yum install -y qemu-kvm libvirt-client libvirt-daemon libvirt-daemon-driver-qemu python-setuptools
部署Openstack
步骤一:安装packstack
[root@openstack ~]# yum install -y openstack-packstack
[root@openstack ~]# 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
[root@openstack ~]# vim answer.ini
11 CONFIG_DEFAULT_PASSWORD=redhat //密码
42 CONFIG_SWIFT_INSTALL=n
75 CONFIG_NTP_SERVERS=192.168.1.3 //时间服务器的地址
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是否测试
[root@openstack ~]# packstack --answer-file=answer.ini
**** Installation completed successfully ****** //出现这个为成功
安装openstack可能会出现的错误以及排错方法
1)ntp时间不同步
解决办法:查看ntp时间服务器,是否出现*号,若没有,查看配置文件,配置ntp服务器步骤在案例3,可以参考
[root@room9pc01 ~]# chronyc sources -v //出现*号代表NTP时间可用
2)网桥名称写错
解决办法:检查配置文件
[root@openstack ~]# vim answer.ini
...
921 CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0
//br-ex桥的名称与eth0连接,管理eth0,网桥与哪个物理网卡连接
...
3)若/root/.ssh/id_rsa.pub,提示password,同样是配置文件没有写对
4)yum源没有配置正确
解决办法:检查yum是否为10731个软件包,查看是否是yum源没有配置正确,之后安装oprnstack-dashboard
备注:除了系统源gpgcheck=1之外,其他都是gpgcheck=0
5)出现Cannot allocate memory
解决办法:
内存不足,重新启动主机