理论
一.了解Openstack的基本概念
OpenStack是一个开源的云计算平台,它提供了一组组件和工具,用于构建和管理云基础设施。下面是一些与OpenStack相关的基本概念:
-
云计算:云计算是一种通过网络提供计算资源和服务的方式,用户可以根据需要随时获取和使用这些资源和服务。
-
OpenStack项目:OpenStack是一个由一系列项目组成的开源软件项目,每个项目都提供不同的云计算功能。
-
组件:OpenStack由多个组件组成,每个组件负责不同的功能。一些核心组件包括计算(Nova)、网络(Neutron)、对象存储(Swift)和块存储(Cinder)。
-
Nova:Nova是OpenStack的计算组件,它提供了虚拟机实例的管理和调度功能。
-
Neutron:Neutron是OpenStack的网络组件,它提供了虚拟网络的创建和管理功能,可以为虚拟机创建虚拟网络、子网和路由器。
-
Swift:Swift是OpenStack的对象存储组件,它提供了可扩展的、高可用性的对象存储服务。
-
Cinder:Cinder是OpenStack的块存储组件,它提供了持久化块存储的功能,允许用户创建和管理块存储卷。
-
节点和服务:在OpenStack中,每个组件运行在一个或多个节点上,并提供特定的服务。节点可以是物理服务器、虚拟机或容器。
-
镜像:在OpenStack中,镜像是虚拟机实例的模板。用户可以通过创建和管理镜像来快速部署和扩展虚拟机实例。
-
API:OpenStack组件之间通过API进行通信和交互。API允许用户通过命令行工具或API客户端与OpenStack进行交互和管理。
Openstack是一个云操作系统,控制着一个大规模(数据中心级别)的资源池,资源池包含计算、存储和网络。
二、云与操作系统
1、虚拟化与云计算 虚拟化是将物理资源分配给多个虚拟机,提高硬件资源利用率,重点在于分配物理资源的能力 云计算通过管理众多云虚拟机对外提供服务,重点在于提供服务。并且能够多租户之间隔离,按需使用、按量计费
2、操作系统功能 云也被当成操作系统,因为它也提供了:资源抽象、资源分配与负载调度、应用的生命周期管理、系统运维及人机交互等。
三、Openstack的定位
四、openstack的设计理念
开放 1.开源。 2.尽最大可能重用已有开源项目。 灵活 1.不使用任何不可替代的私有/商业组件(如华为云用GaussDB替代MySQL)。 2.大量使用插件化方式进行架构设计与实现。 可拓展 1.由多个相互独立的项目组成。 2.每个项目包含多个独立服务组件。 3.无中心架构。 4.无状态架构(高可用)。
实操
一、卸载前面的安装的Openstack组件 #controller节点 执行在/usr/local/bin中的 iaas-uninstall-all.sh进行卸载 # compute节点 执行在/usr/local/bin中的 iaas-uninstall-all.sh进行卸载
二、设置主机名和网卡参数 #controller节点
执行hostnamectl set-hostname controller 查看/etc/sysconfig/network-scripts/ifcfg-ens*(具体的网口)文件文件,确认有IP参数。 ctrl+d 退出 重新登陆 # compute节点 执行hostnamectl set-hostname compute 查看/etc/sysconfig/network-scripts/ifcfg-ens*(具体的网口)文件文件,确认有IP参数。 ctrl+d 退出 重新登陆
三、重新安装并设置vsftpd服务
# controller节点 yum -y install vsftpd vi /etc/vsftpd/vsftpd.conf 添加一行 anon_root=/opt/ systemctl start vsftpd systemctl enable vsftpd #compute节点 确认yum list可看到资源清单
四、重新设置环境变量
# controller节点 yum install iaas-xiandian -y vi /etc/xiandian/openrc.sh (具体内容在后面) #compute节点 yum install iaas-xiandian -y vi /etc/xiandian/openrc.sh
HOST_IP=20.0.0.10 HOST_NAME=controller HOST_IP_NODE=20.0.0.20 HOST_NAME_NODE=compute RABBIT_USER=openstack RABBIT_PASS=000000 DB_PASS=000000 DOMAIN_NAME=demo ADMIN_PASS=000000 DEMO_PASS=000000 KEYSTONE_DBPASS=000000 GLANCE_DBPASS=000000 GLANCE_PASS=000000 NOVA_DBPASS=000000 NOVA_PASS=000000NEUTRON_DBPASS=000000 NEUTRON_PASS=000000 METADATA_SECRET=000000 INTERFACE_NAME=ens33 Physical_NAME=provider minvlan=101 maxvlan=201 CINDER_DBPASS=000000 CINDER_PASS=000000 TROVE_DBPASS=000000 TROVE_PASS=000000 BLOCK_DISK=sdb1 SWIFT_PASS=000000 OBJECT_DISK=sdc1 STORAGE_LOCAL_NET_IP=20.0.0.10HEAT_DBPASS=000000 HEAT_PASS=000000 CEILOMETER_DBPASS=000000 CEILOMETER_PASS=000000 AODH_DBPASS=000000 AODH_PASS=000000
五、重新安装基本配置
# Controller节点和Compute节点 执行脚本iaas-pre-host.sh进行安装 # 安装完成后同时重启 [root@controller ~]# reboot
六、重新安装基础服务
# Controller节点 执行脚本iaas-install-mysql.sh进行安装 #compute节点 yum -y install MySQL-python
七、重新安装Keystone认证服务
# Controller节点 执行脚本iaas-install-keystone.sh进行安装
八、重新安装Glance镜像服务
# Controller节点 执行脚本iaas-install-glance.sh进行安装 上传镜像: # source /etc/keystone/admin-openrc.sh (执行配置授权脚本) # glance image-create --name "CentOS7.0" --disk-format qcow2 --container-format bare --progress < /opt/images/CentOS_6.5_x86_64_XD.qcow2
九、重新安装Nova计算服务
# Controller节点 执行脚本iaas-install-nova-controller.sh进行安装
十、安装Neutron网络服务
#Controller节点 执行脚本iaas-install-neutron-controller.sh进行安装 #Compute节点 执行脚本iaas-install-neutron-compute.sh进行安装
十一、设置Neutron网络为vlan模式
#Controller节点 #openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types vlan #systemctl restart neutron-server
#openstack-config --set /etc/neutron/l3_agent.ini DEFAULT external_network_bridge br-ex #systemctl restart neutron-l3-agent
十二、创建Neutron网络的vlan
#Controller节点 #neutron net-create demo-net --tenant-id `openstack project list |grep -w admin |awk '{print $2}'` --provider:network_type vlan
十三、重新安装Dashboard服务
#Controller 执行脚本iaas-install-dashboard.sh进行安装Controller节点
十四、使用管理平台进行云子网设置
#在dashboard网页中 项目 → 网络 → (demo-net) → 创建子网(外网填服务器的外网网段)→设置dhcp
十五、安装Cinder块存储服务
#controller节点 执行在/usr/local/bin中的 iaas-install-cinder-controller.sh进行安装 # compute节点 修改/etc/yum.repos.d/centos.repo 将两个IP改为管理IP:20.0.0.10 执行在/usr/local/bin中的 iaas-install-cinder-compute.sh进行安装
十六、安装Swift对象存储服务
#controller节点 执行在/usr/local/bin中的 iaas-install-swift-controller.sh进行安装 # compute节点 执行在/usr/local/bin中的 iaas-install-swift-compute.sh进行安装 需联机时,输入密码controller登录密码:Aa123456789 -----------------------------安装阶段结束---------------------------------------
十七、设定外网连接参数
#controller节点和compute节点 执行环境变量脚本: source /etc/xiandian/openrc.sh source /etc/keystone/admin-openrc.sh openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_flat flat_networks provider systemctl restart network
十八、创建外网
#controller节点 执行环境变量脚本: neutron net-create ext-net --router:external True --provider:physical_network provider --provider:network_type flat 附,内网创建命令为( 前面实验已做): neutron net-create demo-net --tenant-id `openstack project list |grep -w admin |awk '{print $2}'` --provider:network_type vlan
十九、创建云主机类型 (请按如下参数来建立)
二十、上传新主机镜像 (请在网页中上传新的主机环境镜像)
二十一、添加外网的子网(靖参考下图参数)
二十二、添加内网的子网(靖参考下图参数)
二十三、添加路由(默认先接到外网)
二十四、添加路由接口(通过接口连到内网)
二十五、尝试建立云主机 请自行选择上面相关参数
总结
OpenStack是一个开源的云计算平台,可以用来搭建和管理私有云和公有云。在学习OpenStack的过程中,我总结了以下几个重要的方面:
-
架构和组件:OpenStack包含多个核心组件,包括计算(Nova)、网络(Neutron)、存储(Cinder和Swift)等。了解每个组件的功能和相互关系是学习OpenStack的基础。
-
安装和部署:OpenStack的安装和部署可以使用不同的工具和方法。可以使用DevStack进行快速的单节点部署,或者使用TripleO进行更复杂的多节点部署。学习如何正确地安装和部署OpenStack是非常重要的。
-
使用和管理:学习如何使用OpenStack的各个组件,创建和管理虚拟机、网络、存储等资源。了解OpenStack的命令行工具和API接口,可以帮助更高效地管理和操作OpenStack。
-
故障排查和监控:学习如何排查和解决OpenStack的故障和问题。了解常见的故障场景和解决方法,并学习如何设置和使用监控工具来监控OpenStack的运行状态。
-
扩展和定制:OpenStack是一个高度可扩展的平台,可以通过插件和扩展来满足不同的需求。学习如何定制OpenStack,添加自定义功能和扩展组件,可以使OpenStack更适用于特定的使用场景。
总之,学习OpenStack需要全面了解其架构和组件,掌握安装和部署的方法,熟悉使用和管理的技巧,能够排查和解决故障,并具备定制和扩展的能力。通过不断的实践和学习,可以逐渐掌握OpenStack的技术和应用。