admin 管理员组文章数量: 887021
一、功能架构
二、huawei产品组件
FusionSphere openstack-CPS(云装配服务)
1)负责云平台IaaS层的部署和升级,是IaaS层中真正面向硬件设备,并将其池化软件化的服务。它的作用就是把IaaS层的各种服务进行部署、配置、升级
2)存在形态为一个进程,C/S架构;server端进程分别部署在三个控制节点,一主两备(选举机制zk);client端进程部署在所有节点,用于接收CPS server发布的任务,并把任务落实到节点中
3)底层资源与上层服务的对接
4)web端口:8890
5)web界面配置-资源池管理-配置存储集群选项-瘦分配比:当数值为3.0时。表示当存储总容量为10T时,云硬盘可创建总量为30T;此配置只适用于支持精简卷的存储池,并且创建磁盘时选择配置模式为精简模式
FusionSphere openstack-Service om
1)底层虚拟化资源(计算、存储、网络、镜像、裸金属)管理平台,资源监控、资源管理、资源审计
2)部署形态:调用CPS部署2台主备模式的虚拟机,运行在控制节点
3)可以制作镜像、创建规格、创建主机组
4) 创建规格可选项-大页内存项:
应用程序运行时,虚拟内存和物理内存之间会产生一个映射表,程序关闭,映射表删除;每次应用程序启动都会有建立映射表这么一个流程,降低了应用程序的运行速度;使用大页内存建立映射表缓存,加快内存映射速度;但启动大页内存会占用内存空间,一般情况下不开启大页内存
CPU中的内存管理单元MMU负责建立映射表,频繁的建立映射表将消耗内存的资源,为了减少cpu的开销或者说增强cpu的计算能力而使用大页内存;
5)创建规格-标签项
可对规格A设置标签名B,主机组C可以通过添加标签名B来关联到规格A,后续发放规格A的云主机将落到主机组C中;如果多个主机组拥有相同的规格A,云主机的发放将由nova-scheduler进行调度,选择cpu、内存总体使用率较低的主机组
6)选择AZ项:AZ间存储不能共享,一个存储池不能给两个AZ使用;不同AZ之间网络可以互通;不同AZ之间可以实现业务主备部署,存储的一致性依靠存储容灾服务(SDRS)实现;
7)网络资源-外部网络
创建VPC网络和EIP网络
eSight
1)底层硬件(服务器、存储设备、网络设备)状态监控平台
2)存在形态:主备虚拟机部署在控制节点
ManageOne
是一个比service om更大的云平台;service om只能对计算、网络存储资源池进行管理,无法管理容器和数据库等资源池
1)运营面sc:
①产品管理、集成各类云服务console后提供租户console页面
②组织-创建租户VDC,需要给VDC设置配额,一般给2级vdc设置
③系统-创建审批流程:发放资源需要审批,可以自定义多级审批流程
④VDC添加资源集:不给租户VDC添加资源集,租户VDC没有资源(计算存储网络等)可以使用,资源集以region为单位
⑤服务-服务管理-创建服务-所在区域锁定选项
以弹性云服务器举例,锁定区域后,云主机只能发放到此区域,区域即AZ
“服务”在客户侧就是可以购买的“产品”
2)运维面oc:监控基础设施、云服务和资源池;
3)接收来自Service om和eSight采集的软硬件信息,通过统一的图形界面进行呈现
Fusioncare
1)日志收集、健康检查
三、存储产品
Pacific
没有license无法使用
从HCS8.0开始只支持pacific
在使用FCD时,管理存储默认只能使用华为分布式块存储。业务存储可以使用华为分布式块存储、IPSAN、FCSAN
FusionStroage
OceanStor
1)创建LUN-SmartThin选项
启用SmartThin选项,创建出来的卷为精简卷
2)在console则中的一个磁盘对应存储侧的一个LUN
四、存储的一些基本概念
1)HBA卡(主机总线适配器)
将外部存储设备组织起来,连接到IO总线;也就是服务器和外部存储设备之间的一个适配器
2)LUN(逻辑单元号)
服务器能够识别到的最小的存储资源、独立存储单元,每个LUN对应一个逻辑卷
Thick LUN(传统非精简LUN):被创建时存储池会分配所有需要的空间
Thin LUN(精简LUN):被创建时存储池根据使用情况动态分配空间
3)LV(逻辑卷)
最终用来存储数据的单位
LVM:逻辑卷管理
4)VG(逻辑卷组)
整和多个物理卷的空间形成以一个统一连续的空间
5)PV(物理卷)
可以是一个磁盘,也可以是Raid后的逻辑硬盘
6) PP(物理分区)
用来存储数据的块设备,可以是磁盘、分区、RAID、SAN设备
7)PE
是物理卷中的一个个基本单元,是LV的最小存储单元,具有唯一的编号。PE的大小是可以配置的,默认为4MB
8)LE
是逻辑卷中的一个个基本单元,和PE大小相同并且一 一对应
9)块存储
一般体现为卷或者硬盘,数据按字节进行访问;块存储对数据内容和格式不进行管理
10)文件存储
体现为目录和文件,数据以文件的方式存储和访问;文件存储可以对数据进行一定的管理,比如对文件进行权限管理
11)对象存储
数据和元数据打包在一起作为一个整体成为一个对象放在对象桶中,它的寻址地址为一串UUID
HCS中块存储服务为EVS,为云主机提供云硬盘
SFS为文件存储服务,可存放文件、视频
OBS为对象存储服务,可存放镜像,或者作为云备份服务的备份副本存储点
12)RAID(独立磁盘冗余阵列)
一种存储技术,通过将两个或多个硬盘驱动器合并成一个逻辑硬盘,在系统侧读取到的是逻辑硬盘,方便系统侧使用存储;并且RAID会对这个逻辑上的硬盘创建防数据丢失的安全机制
实现方式:
①:硬件RAID,通过RAID卡实现,相对系统独立,有独立的硬件,不会消耗硬盘性能,不需要操作系统也能创建RAID;但成本较高
②:软件RAID,通过软件实现RAID,不受硬件限制,可以水平扩展,成本较低;但因为软件运行在系统之上,会消耗宿主机的性能
RAID级别
①Raid0:
需要2块硬盘(也可以做单盘RAID0,用于系统识别硬盘),落盘时数据并行写入,读取时多块硬盘并行参与,读写速率最高,硬盘空间利用率100%;但不支持重构,所以无冗余能力,一块硬盘损坏,数据全无
适用于需要高性能且不关系数据冗余的场景:数据库应用、实时流媒体
②Raid1:
至少需要2块硬盘,且组成Raid1的硬盘数量必须为偶数,因为需要一个工作盘对应一个镜像盘;数据写入时先写入到镜像器中,然后由镜像器分别复制写入到物理盘和镜像盘(镜像器由
Raid卡实现);数据读取时,读取工作盘的数据,当工作盘故障后读取这个盘对应的镜像盘;相比于Raid1增加了安全性,但降低了硬盘空间的利用率和读写速率
适用场景:关键数据存储,如财务数据、客户信息
③Raid5:
至少需要3块硬盘,只允许损坏一个硬盘,分布式读写数据,校验数据也是分布式存在于所有硬盘中,相当于读写压力分摊、校验压力分摊;硬盘利用率(n-1)/n;
适用场景:小型企业,既基本较好的性能页也有数据冗余功能
④Raid10
至少需要4块硬盘,硬盘数量必须大于或等于4的偶数;每2个硬盘做一个Raid1,再在这个raid1的基础之上做Raid0;从南北流量来看,数据先并发写入2份硬盘中,保证数据的写入效率,再到Raid0中做数据的镜像写入,保证数据的安全性;硬盘空间利用率50%
适用场景:数据库服务器、虚拟化环境
13JBOD模式
1)是一种存储模式,跟RIAD类型,将多个物理硬盘组成一个逻辑硬盘,但不提供数据库冗余和性能增强服务;
2)注意使用UEFI模式装系统时,系统盘的盘符必须是sda,如果一个服务器中有些硬盘开启了JOBD模式,这些硬盘会抢占盘符,导致安装系统报错;需要手动将JOBD模式的硬盘修改为RAID0
五、openstack
openstack image list -----查看镜像列表
为什么在console侧删除镜像后,在数据库侧表中还有该镜像的记录,虽然状态为deleted?
数据库每天可能处理成数以万计的操作(写入、删除),先将镜像状态标记为删除或者已删除,并且底层也不会立即移除该镜像,找个低峰期或者半个月之后再进行删除,可以降低数据库的压力
镜像的存放位置可以被更改,通过修改/etc/glance/glance-api.conf配置文件实现
openstack server list --all --------查看所有云主机列表
openstack server show 云主机ID ---------查看云主机详细信息
openstack volume list --------查看卷信息
openstack volume create --------创建卷
/etc/libvirt/qemu --------云主机配置文件路径
tail -f /var/log/nova/nova-compute.log --------Nova组件日志查看
/var/lib/nova ---------nova服务家目录
su -s /bin/bash -c "命令" 服务用户名 --------服务的用户不允许登录只用于内部管理,属性为nologin,使用这个命令,临时分配一个shell给服务用户A,并用这个A用户的身份执行命令;可用于在计算节点01上使用nova用户配置免密登录到计算节点02的nova用户
usermod -s /bin/bash nova -----修改nova用户的登录xshell,usermod -s /sbin/nologin nova --------使用完后记得修改回原属性
openstack network agent list ------查看网络代理的状态
ovs-ofctl dump-flows br-eth1 -------查看外部桥流表
1、Cinder
核心功能:对卷的管理,允许对卷、卷的类型、卷的快照、卷备份进行操作。为后端不同的存储设备提供了统一的接口
逻辑架构(借鉴于华为官方PPT架构图)
内部逻辑(借鉴于华为官方PPT架构图)
data fiow 数据流(存储网络)
Management flow 指令流(管理网络)
①cinder-api(接口模块):部署在控制节点,用于接收客户的请求(比如你在console界面点击创建云硬盘,这就是你在请求存储侧的资源),还会接收你对于存储资源属性的定义:比如云硬盘的大小、是高io还是超高io、发在哪个可用区
②cinder-scheduler(存储调度模块):部署在控制节点,根据预定义策略和卷请求的属性选出合适的后端存储节点创卷;(生成lun映射虚拟机的宿主机;宿主机扫描到云硬盘,在相关配置文件(/etc/libvirt/qemu/instance-0001.xml)中进行添加,让虚拟机关联到这块云硬盘------大概描述一下后续流程,这不是scheduler干的活儿)
③cinder-volume(卷管理模块):部署在控制节点或存储节点;等待scheduler选出了存储节点后,volume模块负责与存储节点直接交互,执行卷的创建、删除和管理任务(具体的卷操作不由它来执行,是由存储侧的卷管理系统来执行;我理解为就是给存储发布任务的模块,但在cinder侧或者说openstack侧它就是卷管理模块,例如一个公司的采购,你可能会通过各种方式、找各类厂家购买资源,但是对于老板或者公司来说,你就是资源的产出者)
④cinder-Driver(驱动):部署在控制节点或存储节点,负责命令转换;你在console侧创建云硬盘时,流程的执行由openstack命令进行传递;命令到达存储侧时,由driver模块进行转换,转换为存储系统的命令;创卷之前,先写入数据库信息,再执行创建操作
⑤此时根据客户需求,卷在存储侧生成完毕;客户在console则点击挂载并选择对应云主机,cinder发送指令给存储侧,存储管理系统创建主机加入主机组、LUN加入LUN组,LUN组映射给主机组,给宿主机添加启动器,主机扫描到磁盘(iscsi协议)如:/dev/sdb,宿主机在自身系统/etc/libvirt/qemu/路径下的配件文件中将磁盘添加给虚拟机
2、keystone
1)用户
就是面向给用户使用的账号
2)租户
代表一个组织,团队或者一个公司;例如一个公司需要申请一个租户,才能被分配云上的资源和使用云上的服务
租户之间的网络隔离是命名空间实现的
3)角色
用于定义用户的权限范围,是超级管理员、还是只有只读权限的普通用户
4)region
是一个地理上的区域概念,region之间的数据物理隔离,每个region都有一个完整的openstack部署,每个region都有自己独立的计算设备、网络设备、存储设备;不同的region共享一套keystone来进行访问控制;我理解为一个region就是一个机房,多个region或异地或同地,就算在一个机房内的2个region物理位置是相同,但在逻辑上它们是互相隔离的,互相独立的
5)az
一个region下可以有多个az
az下可以有多个主机集合;云平台通常会将同一配置或者同一CPU型号的主机放入一个主机集合,方便业务上云之后进行热迁移;
主机集合中可以有多个主机组;
可用区,代表一组特殊资源的集合,比如一组全部使用固态硬盘的服务器放在az1,一组全部使用HDD的服务器放在az2;以满足用户不同的需求且便于运维侧人员管理
6)Service
一种openstack服务,例如ECS、CCE、EVS、OBS;服务会对外暴露一个或多个端点,用户可以通过这些端点访问资源并执行操作
7)Endpoint
端点,是指一个可以用来访问某个指定服务的网络地址,或者说定位某个服务的网络地址;一个服务可以有三种端点地址;Endpoint是OpenStack中服务暴露出来的访问点,它使得外部能够访问到OpenStack提供的各种服务,包括计算、存储、网络等,是OpenStack云平台对外提供服务的重要接口。
三种端点地址
public:面向共有的的URL,被终端用户使用
admin:面向管理员的URL,被以管理员权限登录的用户使用
internal :面向内部的URL
例如cinder API模块就由两个主要端点组成
管理端点:被openstack管理员使用,可以创建、删除卷,访问服务目录(admin)
用户端点:被外部用户使用
命令解析
openstack endpoint create --region RgionOne image admin http://controller:9292
配置glance服务的admin类型端点地址,用于管理员访问;并指定了region,所以在RegionTwo中的Glance服务并不会产生这个endpoint
openstack endpoint list
列出已部署服务所有类型的endpoint地址,这个列表由keystone服务的数据库保存并维护更新
8)用户认证流程
客户输入用户名密码请求登录(也可以是创建云主机、云硬盘等请求),keystone验证用户名密码是否正确,生成token,发送给客户并保存在keystone数据中;客户端缓存token,发起API请求并携带令牌(例如在console界面点击ECS服务);服务的API接口解压请求,得到token,向keystone请求验证该token是否过期,token正常允许客户访问服务,token过期返回401-request.error
token默认有效期3600秒
上述用户认证流程当中keystone充当了验证用户名密码的角色;但用户名密码输入正确并不代表这个用户就有访问目标服务的权限
权限的验证在目标服务侧,当用户访问目标服务时,该服务会调取策略文件(/etc/服务名/目录下的 policy.json文件)进行验证
截图为模版文件,服务读取的还是自身目录下的.json文件,初始.json文件为空,需要copy模版文件内容到.json文件中定制化策略文件
publicize_image role:admin #管理员角色的用户才能创建公共镜像
" "代表任何用户都有这个权限
因为所有服务必须与keystone服务互通才能进行彼此间的交互,keystone服务的安装顺位排第一
3、glance
部署位置:控制节点
openstack架构中镜像文件默认存储在本地,HCS架构默认放在swift中,用http的方式传输镜像
1)glance-api
部署位置:控制节点
glance服务对外的统一接口,接收所有来源(服务、客户端)的请求信息
2)glance-registry
nova-api进行数据库查询时,和数据库进行直接交互;但进行数据库写入操作时由registry模块实施
glance配置文件记录了数据库的账户密码
查看镜像列表
openstack image list
为什么在console侧删除镜像后,在数据库侧表中还有该镜像的记录,虽然状态为deleted?
数据库每天可能处理成数以万计的操作(写入、删除),先将镜像状态标记为删除或者已删除,并且底层也不会立即移除该镜像,找个低峰期或者半个月之后再进行删除,可以降低数据库的压力
镜像的存放位置可以被更改,通过修改/etc/glance/glance-api.conf配置文件实现
3)镜像格式
VHD :是 Microsoft 的虚拟机镜像格式。
VMDK :是 VMware 的虚拟机镜像格式。
RAW:是一种非格式化的磁盘镜像格式,通常用于创建自定义镜像。
QCOW2 :是一种写时复制的镜像格式,支持快照和克隆。
在 OpenStack 中,通常使用 QCOW2 格式,因为它支持快照和克隆,是一种写时复制的技术,可以提高存储效率。可以使用的镜像格式取决于openstack平台对接的虚拟化平台是基于KVM还是XEN、vmware;kvm支持QCOW2格式的镜像,VMWARE支持VMDK格式的镜像
4、nova
nova系统架构图(借鉴于华为官方PPT)
借鉴于华为官方PPT
nova服务配置文件路径 /etc/nova/nova.conf
命令
openstack compute service list ------以列表形式查看nova模块状态
systemctl status openstack-nova-api.service 单独查看模块服务状态
1)nova-api
接收外部请求;在创建虚拟机时审核请求资源租户的配额是否足够、审核用户是否具备创建权限,审核通过后,才会通过消息队列传递信息给scheduler去调度宿主机
虚拟机生命周期入口
可水平扩展:如华为三个控制节点就有三个nova-api,互相做负载均衡
2)nova-scheduler
通过查看数据库各种表项计算后台服务器节点的资源使用率,选择低使用率的宿主机来创建虚拟机
选择好宿主机之后,在数据库侧填入这次创建虚拟机所在的物理机信息
3)nova-compute
被选择的宿主机上部署的compute模块从MQ侧收到了创建虚拟机的消息后,将虚拟机的具体信息(虚拟机名称、规格等)通过conductor写入到db中,MQ返回写成功后开始联系其它组件(Glance、Neutron、Cinder)创建虚拟机
虚拟机生命周期管理、资源管理的真正执行者;底层对接不同的虚拟化平台
4)nova-conductor
与glance-registry功能相同,当需要写入数据库信息时,由conductor模块代为执行
其它组件的依赖:compute需要conductor启动成功后才能启动
5)nova-novncproxy
提供浏览器以VNC形式访问虚拟机的通道,且无需安装VNCserver和VNCview
日志文件路径 /var/log/nova/nova-novncproxy.log
在控制节点查看novnc模块的相关配置 /etc/nova/nova.conf
在计算节点查看novnc的配置 /etc/nova/nova.conf
5、 neutron
1)虚拟机网络的特点
1、虚拟交换机可以没有上行链路,只用于主机内部的虚拟机进行交互
2、可以设置上行链路,用于部署的Web服务的虚拟机接受公网客户的访问
3、可以在虚拟机中配置2张网卡,假设VM1为Web服务器,VM2、3、4为数据库服务器,第一张网卡用于外部访问,另一张网卡用于web服务器和数据库服务器交互
华为HCS将网络服务单独部署,且部署2台(主备),要求至少有2个万兆网卡,否则检测无法通过
两个vpc网络由2个不同的虚拟路由器控制,所以不同的vpc网络不做任何额外配置的情况下默认不通
实现虚拟机交换机的方式
1、Bridge:适用于小规模场景
2、OVS(openvswitch):产品级虚拟交换机 适用于大规模场景
2)基本概念
tap设备:每个虚拟网卡就是一个tap设备,每个虚拟交换机、虚拟路由器网口也是一个tap设备
tun设备:tunnel 隧道网络,VXLAN
veth:虚拟以太网,两个虚拟接口之间的网络,比如虚拟机网卡到虚拟交换机端口的网络
L3 agent : L3agent部署在哪里,那个设备就是网络节点,一般在网络节点还会部署上DHCP agent、metadata agent
Provider Network:对应 HCS Type3 物理路由器来实现不同子网间的通讯,不支持弹性IP、ELB等高级功能
Self-service Network(字符网络):对应 HCS Type1,路由器和VLAN的功能全部由软件来实现
VXLAN:大二层网络,使用IP网络去承载基于MAC+UDP传输的二层网络;做跨数据中心的虚拟机迁移
为什么需要vxlan?
解决虚拟机迁移问题:虚拟机迁移过程中需要保持ip不变、网关不变、TCP连接不变,这样的迁移条件限制了虚拟机的迁移范围必须在一个vlan内
vxlan ID 支持16W个
3)架构、模块
①Neutron-Server 对外提供网络API,并调用Plugin处理请求-----------------接收
core api :核心api:创建VPC、子网等基本网络功能时,这个请求会丢给core api来执行
service api:服务api:创建ELB、VFW等高级服务时,这个请求会丢给service api来执行
②Plugin 处理Neutron-Server的请求,维护网络状态,并调用agent处理请求---------------转发
理解为Neutron-Server和Agent之间的一个驱动、一个插件
相关配置文件路径 /etc/neutron/plugins
③Agent 处理Plugin的请求 调用底层虚拟或物理网络设备实现各种网络功能-----------------执行
4)网络流量分析
qbr:安全组规则附在上面
qvb:linux bridge 面向 br-int 内部桥的虚拟接口
qvo:br-int内部桥面向linux bridge的虚拟接口,两个接口之间形成了虚拟以太网
br-int:内部桥,实现内部网络功能,如给数据包打上或消除VLAN ID(内部tag)
br-ethx:外部桥,跟外部通信的桥;与物理网卡建立连接,允许外部访问云主机实例;给数据包打上或消除VLAN ID(外部tag);每个计算节点和网络节点都有br-eth
虚拟路由器的分布
当云主机需要出外网时,网关虚拟路由器在网络节点,当不同计算节点不同vpc的虚机交互时,网关虚拟路由器在网络节点
当东西向流量需要路由功能时,会被宿主机上的虚拟路由器处理
5)流表
控制流量的走向以及到达每个虚拟交换机时需要执行的动作;对于相同属性的流量进行归类。
priority=3 优先级 数字越大优先级越高
in_port 数据从int-br-eth1端口进来时
dl_vlan=66 匹配到携带的vlan tag 为66
actions 执行的动作为修改vlan tag 为 1
resubmit 继续执行下个流表
6)命名空间
ip netns ls -----------显示所有的网络命名空间
ip netns exec 命名空间id ip addr list ------------查看设备地址
查看虚拟机路由表
ip netns exec 命名空间id iptables -t nat -nL ---------查看命名空间的防火墙规则
ip netns exec 命名空间id iptables-save ---------查看命名空间防火墙已生效规则
租户之间的网络隔离是命名空间实现的
当在一个租户中申请弹性ip并绑定到NAT网关时,会在该租户的命名空间防护墙规则中生成一个条目:不限源ip和目的地址,所有从这个命名空间出去的流量转换成192.168.0.61这个地址;192.168.0.61=公网地址
7)metadata---传递自定义信息服务
用于获取客户自己定义,又无法直接传输给虚拟机的数据:如在console侧配置的虚拟机名、ip地址、用户密码;该服务配置文件在网络节点
169.254.169.254 --------------一个特殊的地址,亚马逊保留的地址;当云主机启动后,会尝试向这个地址查询metadata数据
1、当用户发放云主机时,通过DHCP获得ip地址,还会自定义云主机的系统名,用户密码,自定义ip,这些信息记录在nova-api-metadata(控制节点中nova-api的子服务)数据库中
2、云主机启动期间,需要去获取nova-api-metadata保存的自定义信息,主机上的的cloud-init程序会去访问这个地址http://169.254.169.254/2009-04-04(80端口),这个访问请求根据虚拟机本地路由将会丢给虚拟路由器网关(网络节点)
3、根据虚拟路由器上的防火墙规则转换访问需求到网络节点服务器上的9697端口,将需求丢给neutron-metadata(以进程形式存在并监听了9697端口),neutron-metadata通过管理网络与nova-api-metadata进行交互获得云主机的自定义信息
当虚拟机路由器不存在时,也就是租户网络不存在网关时,怎么获取云主机的自定义信息?
通过与dhcp服务器(网络节点)进行交互获得,网络节点通过管理网络与nova服务互通,得到自定义信息
网络节点 dhcp配置文件,当enable_isolated_metadata = true 时云主机能通过dhcp服务器得到自定义配置信息,当参数为false并且路由器网关不存在时,无法获得自定义信息
云主机默认路由,第二行表示不存在网关192.168.99.254时,下一跳走192.168.99.1(dhcp服务器的地址)
六、rabbitmq消息队列
组件之间各个模块的通信,比如nova-api和nova-computer之间的通信;nova和glance之间的通信不经过消息队列
阻塞控制、查询
#转载请注明出处!!!!!!!!!!
持续更新中!!!!!!!!!!!!!
版权声明:本文标题:华为云Stack学习 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726804094h1031478.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论