版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《OpenStack云计算实战》大数据创新人才培养系列第1章OpenStack云计算基础云计算概述Linux虚拟化技术了解OpenStackOpenStack架构OpenStack部署1.1云计算概述云计算的最终目标是将计算、服务和应用作为一种公共设施提供给公众,使人们能够像使用水、电、煤气和电话那样使用计算机资源。云计算是提供虚拟化资源的模式,将以前的信息孤岛转化为灵活高效的资源池和具备自我管理能力的虚拟基础架构,从而以更低的成本和更好的服务的形式提供给用户。云计算架构面向服务,将计算、存储和网络类IT系统资源以服务的形式提供给用户,用户只需向云平台请求所需的虚拟机来运行自己的应用系统。云计算是虚拟化技术的升级版,通过在数据中心部署云计算系统,可以完成多数据中心之间的业务无感知迁移,并可为公众同时提供服务,此时数据中心就成为云数据中心。云计算通过Internet按需交付共享资源,利用虚拟化可以实现云计算的所有功能。云计算的概念1.1云计算概述IaaS(基础设施即服务)PaaS(平台即服务)SaaS(软件即服务)云计算架构1.1云计算概述公共云(PublicCloud)面向公众提供的应用和存储等资源,为外部客户提供服务。最大优点是其所应用的程序、服务及相关数据都存放在公共云端,用户无需做相应的投资和建设。安全性存在一定风险,可用性不受用户控制,存在一定的不确定性。私有云(PrivateCloud)服务不是供公众使用,而是供自己内部人员或分支机构使用。数据安全性、系统可用性、服务质量都可由自己控制。细分为自有私有云(On-PremisePrivateCloud)和托管私有云(HostedPrivateCloud)。混合云(HybridCloud)既面向公共空间又面向私有空间提供服务,可以发挥出所混合的多种云计算模型各自的优势。有助于提供所需的、外部供应的扩展。云计算部署模式1.1云计算概述商用云计算平台亚马逊AWS(AmazonWebServices)MicrosoftAzure阿里云(AliCloud)开源云计算平台OpenStackOpenNebulaEucalyptusCloudStack云计算解决方案1.1云计算概述BareMetalCloud可译为裸金属云,也可译为裸机云,是一种提供物理服务器服务的云产品。“OnMetal”裸金属云服务——采用OCP服务器和OpenStack的Ironic进行管理。主要产品IBM的的裸金属服务器亚马逊的i3裸金属服务器阿里云的神龙云服务器裸金属云(BareMetalCloud)云计算概述Linux虚拟化技术了解OpenStackOpenStack架构OpenStack部署1.2Linux虚拟化技术虚拟化体系结构计算机虚拟化基础Hypervisor原生型(Native)宿主型(Hosted)全虚拟化和半虚拟化全虚拟化(FullVirtualization)半虚拟化(ParaVirtualization)1.2Linux虚拟化技术KVMXenLinux容器LXCDockerHyper-VVMwareESXiBaremetal与IronicOpenStack所支持的虚拟化技术1.2Linux虚拟化技术KVM模块KVM模块作为整个虚拟化环境的核心工作在系统空间,负责CPU和内存的调度。QEMUQEMU作为模拟器工作在用户空间,负责虚拟机I/O模拟。KVM架构KVM——基于Linux内核的虚拟化解决方案KVM虚拟磁盘(镜像)文件格式raw——原始的格式rcow2——QEMU引入的镜像文件格式qed——qcow2的一种改型1.2Linux虚拟化技术Libvirt套件云计算概述Linux虚拟化技术了解OpenStackOpenStack架构OpenStack部署1.3了解OpenStackOpenStack作为一个云操作系统,通过数据中心控制大型的计算、存储、网络资源池,并可以使用Web界面和API进行管理。什么是OpenStack1.3了解OpenStackOpenStack的主要项目仪表板(Dashboard)——Horizon计算(Compute)——Nova网络(Network)——Neutron对象存储(ObjectStorage)——Swift块存储(BlockStorage)——Cinder身份(Identity)——Keystone镜像(Image)——Glance计量(Telemetry)——Ceilometer编排(Orchestration)——Heat数据库(Database)——Trove数据处理(DataProcessing)——Sahara什么是OpenStackOpenStack的主要优势模块松耦合组件配置灵活二次开发容易1.3了解OpenStackWeb前端(Webfrontend)工作负载置备(Workloadprovisioning)应用程序生命周期(Applicationlifecycle)编排(Orchestration)计算(Compute)网络(Networking)存储(Storage)共享服务(Sharedservices)OpenStack项目的组成监控工具(Monitoringtools)优化与策略工具(Optimization/Policytools)计费和商业逻辑(Billing/Businesslogic)多层工具(Multi-regiontools)部署和生命周期工具(Deployment/Lifecycletools)容器基础架构(Containerinfrastructure)网络功能虚拟化(NFV)每个项目由一系列进程、命令行脚本、数据库和其他脚本组成。1.3了解OpenStackOpenStack基金会个人会员企业会员OpenStack社区技术委员会负责总体管理全部OpenStack项目项目技术负责人(ProjectTechnicalLead)管理项目内事务社区对于个人会员而言是非常开放的个人只有加入基金会,才能享有会员权益OpenStack基金会与社区1.3了解OpenStack2010年10月,OpenStack第1个正式版本发布,其代号为Austin。起初计划每隔几个月发布一个全新的版本,并且以26个英文字母为首字母,从A到Z顺序命名后续版本。2011年9月第4个版本Diablo发布时,定为每半年发布一个版本,分别是当年的春秋两季。每个版本不断改进,吸收新技术,实现新概念。OpenStack版本演变云计算概述Linux虚拟化技术了解OpenStackOpenStack架构OpenStack部署1.4OpenStack架构按照不同的功能和通用性划分不同的项目,拆分子系统。按照逻辑计划、规范子系统之间通信。通过分层设计整个系统架构。不同功能子系统间提供统一的API接口。OpenStack架构设计的基本原则1.4OpenStack架构OpenStack的概念架构(ConceptArchitecture)1.4OpenStack架构OpenStack的逻辑架构(LogicalArchitecture)1.4OpenStack架构基于AMQP协议的通信用于每个项目内部各个组件之间的通信。基于SQL的通信用于各个项目内部的通信。基于HTTP协议进行通信通过各项目的API建立的通信关系,API都是RESTfulWebAPI。通过NativeAPI实现通信OpenStack各组件和第三方软硬件之间的通信。OpenStack组件之间的通信关系1.4OpenStack架构OpenSatck的多节点部署OpenStack的物理架构1.4OpenStack架构控制节点(ControlNode)支持服务(supportingservice)基础服务扩展服务计算节点(ComputeNode)基础服务扩展服务存储节点(StorageNode)Cinder块存储服务Swift对象存储服务共享文件服务OpenStack的物理架构一个计算节点至少需要两个网络端口,一个与控制节点进行通信,受控制节点统一调配;另一个与网络节点和存储节点进行通信控制节点一般来说只需要一个网络端口用于通信和管理各个节点存储节点最少需要两个网络接口,一个连接管理网络,与控制节点进行通信,接受控制节点任务,受控制节点统一调配;另一个使用专门存储网络(数据网络),与计算节点和网络节点进行通信,完成控制节点下发的各类数据传输任务1.4OpenStack架构网络节点(NetworkNode)提供者网络(Providernetworks)自服务网络(Self-servicenetworks)OpenStack的物理架构网络节点通常需要3个网络端口,分别用于与控制节点进行通信、与除控制节点之外的计算和存储节点之间的通信、外部的虚拟机与相应网络之间的通信1.4OpenStack架构Windows系列优点是便于部署、管理和使用,深受国内企业的青睐。多目标、易于管理和实现各种网络服务的操作系统。稳定性和可靠性不如UNIX及Linux。UNIX版本很多,大多要与硬件相配套,一般提供关键任务功能的完整套件,在高端市场处于领先地位。以其高效、稳定的特点适用于运行任务重大的应用程序的平台。需要专业网络管理人员进行管理。Linux凭借其开放性和高性价比等特点,近年来获得了长足发展,市场份额不断增加。继承了UNIX的全部优点并加以发展实现网络关键性应用的理想选择。什么是OpenStack1.4OpenStack架构节点的组合可以从控制节点中分出一个专门的API节点,API节点去除Neutron服务之外的管理控制服务(如Nova、Glance、KeyStone等)。API节点又可以与网络节点合二为一。数据库服务器和消息队列协议可以部署在控制节点(或API节点)上,也可以运行于网络节点。Glance、KeyStone、Cinder服务可以在API节点运行,也可以在网络节点上运行,还可以在控制节点上运行。可以创建单独的认证节点来运行KeyStone服务;还可以创建单独的镜像节点来运行Glance服务。存储节点可以并到某个计算节点上。nova-compute与Neutron(openswitch、neutron-openvswitch-agent)服务必须在一个节点上运行,否则虚拟机实例无法获得网络分配。OpenStack的物理架构1.4OpenStack架构Internet(PulicNetwork)外部网络(ExternalNetwork)管理网络(ManagementNetwork)API网络数据网络(DataNetwork)项目(租户)网络(TenantNetwork)存储访问网络(StorageAccessNetwork)存储后端网络(StorageBackendNetwork)OpenStack的物理网络类型云计算概述Linux虚拟化技术了解OpenStackOpenStack架构OpenStack部署1.5OpenStack部署openSUSE和SUSELinuxEnterpriseServerRedHatEnterpriseLinux和CentOSUbuntu选择操作系统平台1.5OpenStack部署在大规模OpenStack生产环境中,每类节点都分别部署在若干台物理服务器上,各司其职并互相协作。这样的部署具备很好的性能、伸缩性和高可用性。在最小的实验环境中,可以将各类节点部署到一台物理服务器甚至是虚拟服务器上。这就是所谓的All-in-One部署,又称一体化部署。部署拓扑1.5OpenStack部署DevStack在虚拟机上运行OpenStack。在物理机(PC或服务器)上以All-in-One(一体化)方式在单一节点上部署OpenStack。在物理机(PC或服务器)上以分布式方式部署OpenStack。OpenStack部署工具Devstack采用自动化源码安装,用户只需要下载相应的OpenStack版本脚本,修改相关的配置文件,就可以实现自动化安装,自动化解决依赖关系。Devstack适合部署OpenStack开发或教学环境,并不适合生产环境。1.5OpenStack部署FuelOpenStack工业级的自动化部署方案简化和加速OpenStack各种配置模板的规模部署、测试和维护Fuel的系统框架OpenStack部署工具1.5OpenStack部署RDO利用RDO的Packstack安装工具快速部署OpenStack云测试平台利用RDO的TripleO产品在裸机上部署生产性云环境TripleO全称“OpenStackOnOpenStack”,意思即为“云上云”底层云与上层云OpenStack部署工具1.5OpenStack部署RDOTripleO的架构OpenStack部署工具1.5OpenStack部署RDOTripleO的物理视图OpenStack部署工具1.5OpenStack部署PuppetPuppet由Ruby语言编写。Puppet是进入OpenStack自动化部署中的早期一批项目。主流的部署工具直接集成了POM(PuppetOpenstackModules)。AnsibleAnsible基于Python开发,集合了众多运维工具(如Puppet、Cfengine、Chef、Saltstack等)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。Ansible一方面总结了Puppet的设计上的得失,另一方面又改进了很多设计。OpenStack部署工具1.5OpenStack部署Linux操作系统的安装、管理与运维。SQL数据库系统安装、配置、管理和优化。计算机虚拟化技术,重点是KVM与Libvirt套件。网络设备,包括网桥、交换机、路由器和防火墙。组网技术,包括DHCP、VLAN和iptables。存储技术,包括文件系统、LVM、分布式存储。Shell脚本及其编程。部署OpenStack的技术要求THANKS《OpenStack云计算实战》大数据创新人才培养系列第2章人民邮电出版社单节点的OpenStack一体化部署使用Packstack安装单节点OpenStack云平台熟悉OpenStackDashboard操作界面创建虚拟机实例定制虚拟网络实现虚拟机与外网通信2.1使用Packstack安装单节点OpenStack云平台创建虚拟机内存建议16GBCPU(处理器)双核且支持虚拟化硬盘不低于200GB网卡以桥接模式接入主机(物理机)网络准备安装环境2.1使用Packstack安装单节点OpenStack云平台在虚拟机中安装CentOS7操作系统准备安装环境2.1使用Packstack安装单节点OpenStack云平台NetworkManager服务禁用防火墙与SELinux设置网络准备安装环境NAME=eno16777736UUID=c84d0100-79f6-427b-8ced-0348b5df4ed7DEVICE=eno16777736ONBOOT=yesIPADDR=1NETNASK=GATEWAY=DNS1=142.1使用Packstack安装单节点OpenStack云平台设置主机名更改语言编码设置时间同步在虚拟机的宿主机上部署一个NTP服务器,统一所有OpenStack实验节点的系统时间。在虚拟机(作为All-in-One节点)上配置Chrony,使其与物理机的时间同步。准备安装环境编辑/etc/chrony.conf,加入以下语句:server01iburst重启时间同步服务使设置生效:systemctlrestartchronyd.service2.1使用Packstack安装单节点OpenStack云平台设置OpenStack库确保openstack-queens软件库可用更新当前软件包准备所需的软件库yuminstall-ycentos-release-openstack-queensyum-config-manager--enableopenstack-queensyumupdate-y2.1使用Packstack安装单节点OpenStack云平台支持qemu-kvm较新版本的安装安装yum-plugin-priorities插件切换到用于存放软件源定义文件的目录下载RDO官网针对CentOS7提供的软件源定义文件delorean-deps.repo下载RDO官网针对CentOS7提供的软件源定义文件delorean.repo升级所有包准备所需的软件库yum-yinstallyum-plugin-prioritiescd/etc/yum.repos.d/curl-O/centos7/delorean-deps.repocurl-O/centos7/current-passed-ci/delorean.repoyumupdate-y2.1使用Packstack安装单节点OpenStack云平台安装openstack-packstack及其依赖包Packstack是RDO的OpenStack安装工具,用于取代手动设置OpenStack。PackStack基于Puppet工具,通过Puppet部署OpenStack各组件。安装Packstack安装器yuminstall-yopenstack-packstack2.1使用Packstack安装单节点OpenStack云平台PackStack工具的基本用法--gen-answer-file=GEN_ANSWER_FILE:产生应答文件模板。--answer-file=ANSWER_FILE:依据应答文件的配置信息以非交互模式运行该工具。--install-hosts=INSTALL_HOSTS:在一组主机上一次性安装,主机列表以逗号分隔。--allinone:所有功能集中安装在单一主机上。运行Packstack安装OpenStackpackstack[选项][--help]2.1使用Packstack安装单节点OpenStack云平台Packstack安装过程运行Packstack安装OpenStackInstalling:CleanUp[DONE]Discoveringipprotocolversion[DONE]#设置SSH密钥Settingupsshkeys[DONE]#准备服务器Preparingservers[DONE]#安装Puppet和探测主机详情之前PreinstallingPuppetanddiscoveringhosts'details[DONE]#准备预装的项目Preparingpre-installentries[DONE]#设置证书SettingupCACERT[DONE]#准备AMQP(高级消息队列协议)项目PreparingAMQPentries[DONE]#准备MariaDB(现已代替MySQL)数据库项目PreparingMariaDBentries[DONE]2.1使用Packstack安装单节点OpenStack云平台Packstack安装过程运行Packstack安装OpenStack#修正KeystoneLDAP参数FixingKeystoneLDAPconfigparameterstobeundefifempty[DONE]#准备Keystone(认证服务)项目PreparingKeystoneentries[DONE]#准备Glance(镜像服务)项目PreparingGlanceentries[DONE]#检查Cinder(卷存储服务)是否有卷CheckingiftheCinderserverhasacinder-volumesvg[DONE]#准备Cinder(卷存储服务)项目PreparingCinderentries[DONE]#准备NovaAPI(Nova对外接口)项目PreparingNovaAPIentries[DONE]#为Nova迁移创建SSH密钥CreatingsshkeysforNovamigration[DONE]GatheringsshhostkeysforNovamigration[DONE]#准备NovaCompute(计算服务)项目PreparingNovaComputeentries[DONE]2.1使用Packstack安装单节点OpenStack云平台Packstack安装过程运行Packstack安装OpenStack#准备NovaScheduler(调度服务)项目PreparingNovaSchedulerentries[DONE]#准备NovaVNC(虚拟网络控制台)代理项目PreparingNovaVNCProxyentries[DONE]#准备OpenStack与网络相关的Nova项目PreparingOpenStackNetwork-relatedNovaentries[DONE]#准备Nova通用项目PreparingNovaCommonentries[DONE]#以下准备Neutron(网络组件)项目PreparingNeutronLBaaSAgententries[DONE]PreparingNeutronAPIentries[DONE]PreparingNeutronL3entries[DONE]PreparingNeutronL2Agententries[DONE]PreparingNeutronDHCPAgententries[DONE]PreparingNeutronMeteringAgententries[DONE]CheckingifNetworkManagerisenabledandrunning[DONE]2.1使用Packstack安装单节点OpenStack云平台Packstack安装过程运行Packstack安装OpenStack#准备OpenStack客户端项目PreparingOpenStackCliententries[DONE]#准备Horizon仪表板项目PreparingHorizonentries[DONE]#以下准备Swift(对象存储)项目PreparingSwiftbuilderentries[DONE]PreparingSwiftproxyentries[DONE]PreparingSwiftstorageentries[DONE]#准备Gnocchi(用于计费的时间序列数据库作为服务)项目PreparingGnocchientries[DONE]#准备Redis(用于计费的数据结构服务器)项目PreparingRedisentries[DONE]#准备Ceilometer(计费服务)项目PreparingCeilometerentries[DONE]#准备Aodh(警告)项目PreparingAodhentries[DONE]2.1使用Packstack安装单节点OpenStack云平台Packstack安装过程运行Packstack安装OpenStack#准备Puppet模块和配置清单PreparingPuppetmanifests[DONE]CopyingPuppetmodulesandmanifests[DONE]#应用控制节点(测试时可能需要较长时间)Applying1_controller.pp1_controller.pp:[DONE]#应用网络节点(测试时可能需要较长时间)Applying1_network.pp1_network.pp:[DONE]#应用计算节点(测试时可能需要较长时间)Applying1_compute.pp1_compute.pp:[DONE]#应用Puppet配置清单ApplyingPuppetmanifests[DONE]Finalizing[DONE]2.1使用Packstack安装单节点OpenStack云平台Packstack安装过程运行Packstack安装OpenStack#安装成功完成应用并给出其他提示信息****Installationcompletedsuccessfully******Additionalinformation:#执行命令产生的应答文件*Anewanswerfilewascreatedin:/root/packstack-answers-20180606-112056.txt#未安装时间同步。,需要确认CentOS7当前的系统时间正确,如果不正确,则需要修改*Timesynchronizationinstallationwasskipped.PleasenotethatunsynchronizedtimeonserverinstancesmightbeproblemforsomeOpenStackcomponents.#在用户主目录下产生keystonerc_admin文件,使用命令行工具需要使用它作为授权凭据*File/root/keystonerc_adminhasbeencreatedonOpenStackclienthost1.Tousethecommandlinetoolsyouneedtosourcethefile.2.1使用Packstack安装单节点OpenStack云平台Packstack安装过程运行Packstack安装OpenStack#访问OpenStackDashboard(Web访问接口),请使用keystonerc_admin中的登录凭据*ToaccesstheOpenStackDashboardbrowseto1/dashboard.Please,findyourlogincredentialsstoredinthekeystonerc_admininyourhomedirectory.#安装日志文件名及其路径*Theinstallationlogfileisavailableat:/var/tmp/packstack/20180606-112055-8r6isW/openstack-setup.log#Puppet配置清单路径*Thegeneratedmanifestsareavailableat:/var/tmp/packstack/20180606-112055-8r6isW/manifests使用Packstack安装单节点OpenStack云平台熟悉OpenStackDashboard操作界面创建虚拟机实例定制虚拟网络实现虚拟机与外网通信2.2熟悉OpenStackDashboard操作界面OpenStackDashboard登录界面OpenStackDashboard主界面2.2熟悉OpenStackDashboard操作界面OpenStackDashboard主界面OpenStackDashboard主界面2.2熟悉OpenStackDashboard操作界面用户菜单与用户设置OpenStackDashboard主界面2.2熟悉OpenStackDashboard操作界面项目(Project)管理界面2.2熟悉OpenStackDashboard操作界面管理员(Admin)管理界面2.2熟悉OpenStackDashboard操作界面身份管理中的用户列表身份管理(Identity)界面2.2熟悉OpenStackDashboard操作界面修改用户密码身份管理(Identity)界面使用Packstack安装单节点OpenStack云平台熟悉OpenStackDashboard操作界面创建虚拟机实例定制虚拟网络实现虚拟机与外网通信2.3创建虚拟机实例安全组列表添加安全组访问规则2.3创建虚拟机实例访问规则列表添加安全组访问规则2.3创建虚拟机实例添加SSH访问规则添加安全组访问规则添加ICMP访问规则2.3创建虚拟机实例创建密钥对创建或导入密钥对2.3创建虚拟机实例密钥对列表创建或导入密钥对2.3创建虚拟机实例创建镜像添加镜像2.3创建虚拟机实例镜像列表添加镜像2.3创建虚拟机实例从镜像创建实例设置实例名称和数量创建并运行虚拟机实例2.3创建虚拟机实例从镜像创建实例设置实例的源创建并运行虚拟机实例2.3创建虚拟机实例从镜像创建实例选择实例类型创建并运行虚拟机实例2.3创建虚拟机实例从镜像创建实例为实例选择网络创建并运行虚拟机实例2.3创建虚拟机实例从镜像创建实例实例列表创建并运行虚拟机实例2.3创建虚拟机实例从镜像创建实例显示实例概况创建并运行虚拟机实例2.3创建虚拟机实例从镜像创建实例实例控制台创建并运行虚拟机实例2.3创建虚拟机实例直接创建实例设置实例的源创建并运行虚拟机实例2.3创建虚拟机实例直接创建实例实例列表创建并运行虚拟机实例2.3创建虚拟机实例直接创建实例卷列表创建并运行虚拟机实例2.3创建虚拟机实例直接创建实例在控制台中测试网络通信创建并运行虚拟机实例使用Packstack安装单节点OpenStack云平台熟悉OpenStackDashboard操作界面创建虚拟机实例定制虚拟网络实现虚拟机与外网通信2.4定制虚拟网络实现虚拟机与外网通信网络代理插件配置文件/etc/neutron/plugins/ml2/ml2_conf.ini网络接口br-ex配置文件
/etc/sysconfig/network-scripts/ifcfg-br-ex将网络接口与外部桥接口br-ex进行关联[ml2]type_drivers=vxlan,flattenant_network_types=vxlanmechanism_drivers=openvswitchDEVICE=br-exDEVICETYPE=ovsTYPE=OVSBridgeBOOTPROTO=staticIPADDR=1NETMASK=GATEWAY=DNS1=14ONBOOT=yesDEVICE=eno16777736TYPE=OVSPortDEVICETYPE=ovsOVS_BRIDGE=br-exONBOOT=yesHWADDR=00:0c:29:72:95:6e网络接口eno16777736配置文件
/etc/sysconfig/network-scripts/ifcfg-eno167777362.4定制虚拟网络实现虚拟机与外网通信显示当前的网络列表显示当前的路由列表配置虚拟网络2.4定制虚拟网络实现虚拟机与外网通信删除现有路由配置外部网络创建一个外部网络配置虚拟网络2.4定制虚拟网络实现虚拟机与外网通信配置外部网络为外部网络设置子网配置虚拟网络2.4定制虚拟网络实现虚拟机与外网通信配置外部网络设置子网详情配置虚拟网络2.4定制虚拟网络实现虚拟机与外网通信调整内部网络修改内部网络的子网设置配置虚拟网络2.4定制虚拟网络实现虚拟机与外网通信配置路由新建路由配置虚拟网络2.4定制虚拟网络实现虚拟机与外网通信配置路由为路由设置网关配置虚拟网络2.4定制虚拟网络实现虚拟机与外网通信配置路由为路由增加接口配置虚拟网络2.4定制虚拟网络实现虚拟机与外网通信查看网络拓扑网络拓扑配置虚拟网络查看路由信息2.4定制虚拟网络实现虚拟机与外网通信管理浮动IP的关联分配浮动IP为虚拟机实例分配浮动IP地址2.4定制虚拟网络实现虚拟机与外网通信已分配一个浮动IP分配浮动IP的虚拟机实例为虚拟机实例分配浮动IP地址2.4定制虚拟网络实现虚拟机与外网通信在Linux计算机上使用SSH访问虚拟机实例基本用法示例使用SSH访问虚拟机实例ssh-i密钥文件<用户名>@<实例IP地址>[root@node-a~]#cd~/.ssh[root@node-a.ssh]#chmod700demo-key.pem[root@node-a~]#ssh-i~/.ssh/demo-key.pemcirros@4Theauthenticityofhost'4(3)'can'tbeestablished.RSAkeyfingerprintisSHA256:RKi9Iwl1j/3lBOzxXJ72Hiyk+leZKYuqswK6nZ+gaTg.RSAkeyfingerprintisMD5:54:0a:4a:0c:8e:8f:ef:9a:12:d1:ed:d8:29:7a:10:c7.Areyousureyouwanttocontinueconnecting(yes/no)?yesWarning:Permanentlyadded'4'(RSA)tothelistofknownhosts.$2.4定制虚拟网络实现虚拟机与外网通信在Windows计算机上使用SSH访问虚拟机实例导入SSH私钥使用SSH访问虚拟机实例设置远程主机登录信息2.4定制虚拟网络实现虚拟机与外网通信在Windows计算机上使用SSH访问虚拟机实例要求登录密码使用SSH访问虚拟机实例终端窗口操作2.4定制虚拟网络实现虚拟机与外网通信为虚拟机实例设置用户账户和密码修改root账户密码使用SSH访问虚拟机实例[root@node-a.ssh]#ssh-i~/.ssh/demo-key.pemfedora@8Lastlogin:SatJun906:29:192018from01[fedora@fedora~]$sudopasswdrootChangingpasswordforuserroot.Newpassword:Retypenewpassword:passwd:allauthenticationtokensupdatedsuccessfully.2.4定制虚拟网络实现虚拟机与外网通信为虚拟机实例设置用户账户和密码在控制台中以root账户和密码登录使用SSH访问虚拟机实例2.4定制虚拟网络实现虚拟机与外网通信项目网络和提供者网络并存基于提供者网络的虚拟机实例2.4定制虚拟网络实现虚拟机与外网通信基于提供者网络创建虚拟机为实例选择提供者网络“public”基于提供者网络的虚拟机实例2.4定制虚拟网络实现虚拟机与外网通信基于提供者网络创建虚拟机实例直接连接网络“public”基于提供者网络的虚拟机实例THANKS《OpenStack云计算实战》大数据创新人才培养系列第3章人民邮电出版社OpenStack基础环境OpenStack云部署架构设计主机节点网络设置数据库服务器及其配置消息队列服务及其配置3.1OpenStack云部署架构设计示例架构的硬件配置示例架构的物理部署3.1OpenStack云部署架构设计控制节点运行Keystone身份服务、Glance镜像服务、Nova计算服务的管理部分、Neutron网络服务的管理部分、各种网络代理和Horizon的Dashboard服务,以及像SQL数据库、消息队列和NTP(网络时间协议)这样的支持性服务。可选的部署组件有Cinder块存储、Swift对象存储和Telemetry计量监控等服务的管理部分。控制节点至少需要两个网络接口。计算节点部署Nova计算服务的虚拟机管理器以运行虚拟机实例。可以部署不止一个计算节点。每个计算节点至少需要两个网络接口。示例架构的物理部署3.1OpenStack云部署架构设计块存储节点块存储节点是可选的。它包括Cinder块存储和Manila共享文件系统为虚拟机实例提供的磁盘存储。可以部署不止一个块存储节点。每个块存储节点至少需要一个网络接口。对象存储节点对象存储节点也是可选的。它提供Swift对象存储服务用于存储账户、容器和对象的磁盘。对象存储服务要求两个节点。每个节点至少需要一个网络接口。示例架构的物理部署3.1OpenStack云部署架构设计网络方案一:提供者网络示例架构的虚拟网络方案3.1OpenStack云部署架构设计网络方案二:自服务网络示例架构的虚拟网络方案3.1OpenStack云部署架构设计管理用网络提供者网络主机节点的网络拓扑OpenStack云部署架构设计主机节点网络设置数据库服务器及其配置消息队列服务及其配置3.2主机节点网络设置NetworkManager服务systemctldisableNetworkManagersystemctlstopNetworkManagersystemctlenablenetworksystemctlstartnetwork3.2主机节点网络设置为各个主机节点配置网络连接。为每个网卡配置IP地址、子网掩码、默认网关和DNS服务器。连接外部网络(公网)的网卡通常不用配置IP地址,最后需要关联网桥。每个节点设置可识别的主机名,并通过/etc/hosts文件来提供各节点主机的名称解析。网络连接配置localhostlocalhost.localdomainlocalhost4localhost4.localdomain4node-a::1localhostlocalhost.localdomainlocalhost6localhost6.localdomain6node-a1node-anode-a.localdomain2node-bnode-b.localdomain3.2主机节点网络设置禁用防火墙禁用SELinux编辑/etc/selinux/config文件,将“SELINUX”的值设置为“disabled”,重启系统使禁用SELinux生效。禁用防火墙与SELinuxsystemctldisablefirewalldsystemctlstopfirewalld3.2主机节点网络设置Chrony简介Chrony既可作时间服务器服务端,也可作客户端。与ntp相比,Chrony更具优势。Chrony配置简单,管理方便。chronyd是一个在系统后台运行的守护进程。chronyc是用来监控chronyd性能和配置其参数程序。编辑chrony主配置文件/etc/chrony.confserver参数指定时间服务器,可添加多台时间服务器。allow参数指定可以连接此时间服务器的客户端计算机,范围可以是一台主机、子网或者网络。配置主机节点时钟同步整个OpenStack环境中所有节点的时间必须是同步的。通常选择一个控制节点作为其他节点的时间服务器。OpenStack云部署架构设计主机节点网络设置数据库服务器及其配置消息队列服务及其配置3.3数据库服务器及其配置MySQL、MariaDB和PostgreSQLMySQL版本支持多种存储引擎,并通过InnoDB引擎实现ACID。MySQL不同存储引擎的行为有较大差别,MyISAM引擎最快,因为只执行很少的数据完整性检查,适合于后端读操作较多的;而对于敏感数据的读写来说,支持ACID特性的InnoDB则是更好的选择。MariaDB是MySQL的一个分支,主要由开源社区在维护,目的是完全兼容MySQL。PostgreSQL支持大部分SQL标准并且提供许多其他高级特性,是一个只有单一存储引擎的完全集成的数据库。PostgreSQL具有极高的可靠性,支持高事务、任务关键型应用。它完全支持ACID特性。MySQL或MariaDB更适合网站与Web应用的快速数据库后端。PostgreSQL针对事务型企业应用,支持增强ACID特性和数据完整性检查。SQL数据库3.3数据库服务器及其配置验证SQL数据库在CentOS操作系统上部署OpenStack,建议选择MariaDB。查看该数据库服务的当前状态MariaDB配置文件为/etc/f以及/etc/f.d/*.cnf。SQL数据库[root@node-a~]#systemctlstatusmariadb●mariadb.service-MariaDB10.1databaseserverLoaded:loaded(/usr/lib/systemd/system/mariadb.service;enabled;vendorpreset:disabled)Active:active(running)sinceThu2018-06-1408:51:01CST;12hago3.3数据库服务器及其配置手动安装和配置SQL数据库SQL数据库(1)安装SQL数据库。通常安装MariaDB。yuminstallmariadbmariadb-serverpython2-PyMySQL(2)创建并编辑/etc/f.d/f文件。[mysqld]bind-address=1default-storage-engine=innodbinnodb_file_per_table=onmax_connections=4096collation-server=utf8_general_cicharacter-set-server=utf8(3)启动数据库服务并将其配置为开机自动启动。systemctlenablemariadb.servicesystemctlstartmariadb.service(4)运行mysql_secure_installation脚本。mysql_secure_installation3.3数据库服务器及其配置NoSQL数据库类型键值(Key-Value)存储数据库列存储数据库文档型数据库图形(Graph)数据库NoSQL数据库适用场合数据模型比较简单需要灵活性更强的IT系统对数据库性能要求较高不需要高度的数据一致性对于给定键,比较容易映射复杂值的环境NoSQL数据库3.3数据库服务器及其配置NoSQL数据库产品MongoDB是一个基于分布式文件存储的数据库产品。Memcached是一个用C语言开发的高性能的分布式内存对象缓存系统。Redis是一个用C语言开发的的高性能键值存储系统。NoSQL数据库3.3数据库服务器及其配置验证NoSQL数据库Redis作为OpenStack计量服务的组成员之间协作的后端驱动。Redis配置文件为/etc/redis.conf以及/etc/redis/*.conf。查看Redis服务的当前状态:身份服务对于各服务的认证机制使用Memcached来缓存令牌。查看Memcached的当前状态:NoSQL数据库[root@node-a~]#systemctlstatusredis●redis.service-Redispersistentkey-valuedatabaseLoaded:loaded(/usr/lib/systemd/system/redis.service;enabled;vendorpreset:disabled)Drop-In:/etc/systemd/system/redis.service.d└─limit.confActive:active(running)sinceFri2018-08-3110:56:37CST;6hago[root@node-a~]#systemctlstatusmemcached●memcached.service-memcacheddaemonLoaded:loaded(/usr/lib/systemd/system/memcached.service;enabled;vendorpreset:disabled)Active:active(running)sinceFri2018-08-3110:56:38CST;9hago3.3数据库服务器及其配置手动安装NoSQL数据库在控制节点上安装RedisNoSQL数据库(1)安装相应的包:yuminstallredispython-redis(2)保持默认配置即可。(3)启动Redis服务并将其配置为开机自动启动。systemctlenableredis.servicesystemctlstartredis.service(1)安装相应的包:yuminstallredispython-redis(2)保持默认配置即可。(3)启动Redis服务并将其配置为开机自动启动。systemctlenableredis.servicesystemctlstartredis.service3.3数据库服务器及其配置手动安装NoSQL数据库在控制节点上安装Memcached服务NoSQL数据库(1)安装相应的包:yuminstallmemcachedpython-memcached(2)编辑配置文件/etc/sysconfig/memcached,配置该服务使用控制节点的管理网络地址,也就是在默认的“OPTIONS”参数设置中添加控制节点地址(替换controller):OPTIONS="-l,::1,controller"(3)启动Memcached服务并将其配置为开机自动启动。systemctlenablememcached.servicesystemctlstartmemcached.serviceOpenStack云部署架构设计主机节点网络设置数据库服务器及其配置消息队列服务及其配置3.4消息队列服务及其配置消息队列消息队列是一种应用程序对应用程序的通信方法。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信。消息总线消息总线(MessageBus)是在消息队列提供的技术上封装出适合消息交互的业务场景。内部服务进程之间的两种通信方式事件通知(EventNotifaction)远程过程调用(RPC)OpenStack所支持的消息队列服务RabbitMQ:实现了AMQP的消息中间件服务,支持多种协议网关和编程语言。Qpid:Apache基金会下的顶层项目,实现了AMQP协议。ZeroMQ:开源的高性能异步消息库,可以在没有Server/Broker的情况下工作。消息队列与消息总线3.4消息队列服务及其配置AMQP系统的组成AMQP模型与原理3.4消息队列服务及其配置消息的传递过程AMQP模型与原理(1)消息的产生(2)消息的交换(路由)交换器可为以下3种类型。•Direct(点对点)•Topic(发布——订阅)•Fanout(多播)(3)缓存3.4消息队列服务及其配置AMQP的通信机制AMQP模型与原理(1)建立连接(2)建立消息信道。(3)发送消息。(4)转发消息。(5)接收消息。(6)确认消息。3.4消息队列服务及其配置概述OpenStack云使用AMQP消息队列协议。OpenStack各模块之间的调度依赖于每个模块的API接口,任何组件的调用都是通过AMQP进行消息传递,进而传递到相关的模块。AMQP在OpenStack的工作中是一个通信连接枢纽,负责任何模块的调度消息发送和分发。AMQP与OpenSatck3.4消息队列服务及其配置Nova与AMQPAMQP与OpenSatck3.4消息队列服务及其配置RabbitMQ简介RabbitMQ是一个由erlang语言开发的AMQP的开源实现。RabbitMQ提供了基于消息的通信服务和远程函数调用功能。RabbitMQ的远程函数调用也是基于消息传递的。验证RabbitMQRabbitMQ及其部署[root@node-a~]#systemctlstatusrabbitmq-server●rabbitmq-server.service-RabbitMQbrokerLoaded:loaded(/usr/lib/systemd/system/rabbitmq-server.service;enabled;vendorpreset:disabled)Drop-In:/etc/systemd/system/rabbitmq-server.service.d└─limits.confActive:active(running)sinceFri2018-08-3110:56:51CST;11hago3.4消息队列服务及其配置手动安装RabbitMQRabbitMQ及其部署(1)安装消息队列服务。yuminstallrabbitmq-server(2)启动该服务并将其配置为开机自动启动。systemctlenablerabbitmq-server.servicesystemctlstartrabbitmq-server.service(3)添加一个openstack用户。rabbitmqctladd_useropenstackRABBIT_PASS用合适的密码替换其中的RABBIT_PASS变量。(4)授予openstack用户配置、写入和读取权限。rabbitmqctlset_permissionsopenstack".*"".*"".*"THANKS《OpenStack云计算实战》大数据创新人才培养系列第4章人民邮电出版社OpenStackAPI与客户端RESTfulAPI和WSGIOpenStackAPI的基本使用OpenStack命令行客户端基于Horizon的Dashboard界面通过日志排查故障通用库Oslo4.1RESTfulAPI和WSGIREST术语RepresentationalStateTransfer的缩写,通常译为表现层状态转化。表现层(Representation)资源的外在表现形式。资源可以有多种表现形式。客户端和服务器之间传递的是资源的表现形式。客户端操作会让服务器端发生状态转化,而这种转化是建立在表现层之上的,所以就称为表现层状态转化。REST特征面向资源是REST最明显的特征,对于同一个资源的一组不同的操作,REST要求必须通过统一的接口来对资源执行各种操作。REST是所有Web应用都应该遵守的架构设计指导原则。RESTfulAPI简介4.1RESTfulAPI和WSGIOpenStack各个项目都提供了RESTful架构的API作为对外提供的接口。RESTful架构的核心是资源和资源的操作。OpenStack定义了很多的资源,并实现了针对这些资源的各种操作函数。其API服务进程接收到客户端的HTTP请求时,一个所谓的“路由”模块就会将请求的URL转化成相应的资源,并路由到合适的操作函数上。OpenStack的RESTfulAPI4.1RESTfulAPI和WSGIWeb组件类型Web服务器(WSGIServer)Web应用程序(WSGIApplication)Web中间件(WSGIMiddleware)WSGI运行机制WSGI(Web服务器网关接口)4.1RESTfulAPI和WSGIPastePaste是Python的一套Web开发工具,可看作是一种Web框架的框架。Paste中包含的Python模块有助于实现WSGI中间件,包括一个CGI应用程序框架和一个简单的Web服务器。PasteDeployPasteDeploy是Python用来发现和配置WSGI应用的一种机制。PasteDeploy的主要用法就是从配置文件中生成一个WSGI应用程序。WebobWebob在WSGI中对请求环境变量进行封装,通过对WSGI的请求与响应进行封装来简化WSGI应用的编写。Router路由模块Routers是用Python实现的类似Rails的URL路由系统。Routes模块的主要功能就是将路径映射到对应的动作。OpenStackAPI的传统框架4.1RESTfulAPI和WSGIPecanPecan是一个轻量级的基于对象路由(分发)的Python的Web框架。Pecan主要实现了URL路由功能,支持RESTfulAPI。使用Pecan开发REST服务,开发人员可以专注于实现每个API的功能。Pecan通过一个Python源码式的配置文件就可以完成基本的配置。WSMEWSME的全称是WebServiceMadeEasy,是专门用于实现REST服务的typing库,让开发人员不需要直接操作请求和响应对象,而且和Pecan这个框架结合得非常好。WSME自动检查HTTP请求和响应中的数据是否符合预先设定的要求,主要通过装饰器来控制controller方法的输入和输出。OpenStackAPI所用的新型框架RESTfulAPI和WSGIOpenStackAPI的基本使用OpenStack命令行客户端基于Horizon的Dashboard界面通过日志排查故障通用库Oslo4.2OpenStackAPI的基本使用cURL命令利用URL规则在命令行下工作,支持包括HTTP、HTTPS、FTP等众多协议,支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特性。OpenStack命令行客户端提供一个统一的命令行工具openstackREST客户端浏览器通过Web接口使用OpenStack服务。Horizon项目是一个Django应用,实现了一个面板功能,包含了前后端的代码。OpenStack的PythonSDK使用PythonSDK编写Python自动化脚本在OpenStack云中创建和管理资源。该SDK实现对OpenStackAPI的Python绑定,让开发人员通过Pytho
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年学生逆向思维的培养研究
- 室外道路及管网工程施工设计方案
- 物流中心管理系统仓储物流解决方案
- 实验动物质量检测协议书
- 网约车的电子协议书
- 饮品点位服务协议书模板
- 施工方案编制难点(3篇)
- 钢架柜子施工方案(3篇)
- 春节服装活动策划方案(3篇)
- 电器自控施工方案(3篇)
- 2026年宁夏石嘴山市单招职业适应性测试题库及答案详解(名师系列)
- 2026年湖南省卫生健康委直属事业单位招聘185人笔试备考试题及答案解析
- 2026年春季苏教版(2024)小学数学三年级下册教学计划含教学进度表
- 庐山旅游观光车股份有限公司面向社会公开招聘工作人员补充考试参考题库及答案解析
- 第4课 坚持才会有收获 课件(内嵌视频)2025-2026学年道德与法治二年级下册统编版
- 2026辽宁大连理工大学后勤处自聘管理岗位招聘2人笔试备考试题及答案解析
- 北京大学生就业指导
- 工厂固定资产管理流程与规范
- 2025年江西省高职单招文化统一考试真题及答案
- 2026年北方华创行测笔试题库
- GB/T 46914-2025养老机构生活照料服务基本规范
评论
0/150
提交评论