金鱼哥RHCA回忆录:CL210管理计算资源--红帽的超融合基础设施
🎹 个人简介:大家好,我是 金鱼哥,CSDN运维领域新星创作者,华为云·云享专家,阿里云社区·专家博主
📚个人资质:CCNA、HCNP、CSNA(网络分析师),软考初级、中级网络工程师、RHCSA、RHCE、RHCA、RHCI、ITIL😜
💬格言:努力不一定成功,但要想成功就必须努力🔥🎈支持我:可点赞👍、可收藏⭐️、可留言📝
📜HCI节点介绍
使用角色部署overcloud,这些角色确定每个节点上安装的服务和组件。在我们典型的教室部署中,预定义的角色包括Controller、Compute和Cephstorage,但是还存在许多其他预定义角色。本节介绍另一个预定义角色ComputeHCI。它用于部署超融合计算节点。Hyperconverged是一种节点配置,它将同一个计算节点上的普通hypervisor计算角色与本地Ceph OSDs结合在一起。红帽的超融合基础设施总是使用Ceph作为存储组件。超聚合节点上的Ceph组件与安装在Ceph存储角色存储节点上的组件相同。
超融合存储的好处是,通过更高效的资源管理,降低了成本,提高了操作灵活性。远程分支和边缘网络是超融合节点的主要用例场景。
在overcloud部署中包含超融合节点有两种方法。第一种方法不需要配置或分配ComputeHCI角色。相反,它设置了一个参数,该参数声明应该将Compute角色节点配置为ComputeHCI角色。使用此方法,所有计算节点将成为超融合节点,不会创建普通计算节点。第二种方法是启用ComputeHCI角色,然后将Compute或ComputeHCI角色分配给每个预期的计算节点。后一种方法是在单个RHOSP集群中部署混合计算节点类型的唯一方法。
使用RHOSP Director部署Overcloud节点,使用部署配置模板查看用于部署此教室Overcloud的角色模板文件中的配置角色。
(undercloud) [stack@director templates]$ grep ' name' roles_data.yaml
- name: Controller
- name: Compute
#- name: BlockStorage
#- name: ObjectStorage
- name: CephStorage
- name: ComputeHCI
查看网络端口规范,该规范确定哪个OpenStack管理网络将在由该角色分配的节点上拥有接口,可以在网络配置模板文件中找到。
分配给这些网络接口的IP地址在同一个网络配置模板文件中。您可以将此信息与computehci0节点上的接口进行比较。
超融合的基础设施允许使用标准化的私有云构建块,使作为单个单元管理计算和存储功能变得更容易,从而节省了成本和空间。使用超融合的基础设施提高了数据中心和远程网络之间的应用程序可移植性,并为网络边缘的网络功能虚拟化部署提供了更大的利用。
在RHOSP 13中,所有的overcloud服务都被容器化,这增加了资源管理效率,并为每个超融合节点的实现节省了成本。超融合的基础设施还允许组织用OpenStack云管理员取代孤立的专家存储角色。
Red Hat OpenStack平台允许标准计算节点、Ceph存储节点和超融合节点的非统一混合。
📜HYPERCONVERGED配置
要创建HCI环境,请确保在部署overcloud之前完成以下配置。
📑资源隔离
超融合节点将计算服务和Ceph存储OSD服务结合在同一个系统上。默认情况下,计算服务不知道系统资源正在与另一个重要服务共享。为了解决这个问题,需要对超融合节点进行调优,以保持稳定性并最大限度地增加可能的实例数量。为此,需要在超融合节点上为计算服务设置资源约束。
资源约束是在overcloud部署或升级期间使用plan环境文件配置的。虽然RHOSP的安装过程超出了本课程的范围,但了解如何计算和设置资源约束还是很有用的。有一些默认的计划示例,其中包括几个CPU和内存分配工作负载配置文件,可以从中选择匹配您的需求。
工作负载配置文件包括average_guest_memory_size_in_mb和average_guest_cpu_utilization_percentage参数,它们用于计算计算服务的reserved_host_memory和cpu_allocation_ratio设置。这些值是根据红帽的建议计算的。这些最终计算服务设置中的一个或两个都可以在计划环境文件中手动覆盖。
reserved_host_memory参数设置应该为Ceph OSD服务保留多少RAM,以及超融合节点上每个任务实例的开销。例如,在一个有256GB内存和10个osd的节点上,通常每个osd消耗3 GB内存,给Ceph分配30GB内存,剩下226 GB给compute,它可以托管113个实例,每个实例使用2GB内存。
cpu_allocation_ratio参数设置计算调度器在选择部署实例的计算节点时应该使用的比率。默认情况下,这是16.0(即16:1)。这意味着,如果一个节点上有24个核,计算调度器将调度足够的实例来消耗一个节点上的384个vcpu,然后再考虑该节点无法继续驻留。
超融合基础设施指南包括附录计算CPU和内存计算器,其中解释如何计算红帽推荐的资源约束参数。
📑Ceph回填
当OSD被删除时,Ceph使用一个回填和恢复过程来重新平衡存储集群。这样做是为了根据放置组策略保存数据的多个副本。这两个操作使用系统资源,所以当Ceph存储集群负载时,Ceph的性能会下降,因为Ceph将资源转移到回填和恢复过程中。当OSD被删除时,为了保持Ceph存储的可接受性能,降低回填和恢复操作的优先级。降低优先级的代价是,在较长的一段时间内,数据副本更少,这使数据的风险稍微大一些。
与资源约束类似,这些回填和恢复操作调优参数是在overcloud部署计划环境文件中设置的,这里包含这些参数是为了介绍如何调优超融合节点。需要修改的三个变量如下:
-
osd_recovery_max_active参数一次设置每个OSD的活动恢复请求数。更多的请求会加速恢复,但是请求会增加集群的负载。
-
osd_max_backfills参数设置一个OSD中允许的最大回填数量。
-
osd_recovery_op_priority参数设置恢复操作的优先级。它相对于osd_client_op_priority参数。
📜主机聚合
主机聚合用于为可用性区域内的节点创建进一步的分区区分。创建和配置聚合需要管理员权限。主机总量用于将元数据键-值对分配给节点组。节点可以是多个主机聚合的成员。可以将相同的键-值元数据分配给多个聚合,并且聚合可以与定义主机选择场景所需的任意多的键-值对相匹配。当使用自定义风格元数据启动实例时,元数据将被传递给compute scheduler,以便从可用性区域中的可用主机聚合执行高级调度器选择。例如,这可以用于定义逻辑组,通过指定所需的额外硬件或性能特征来控制实例部署或迁移。
OpenStack用户无法看到不匹配的主机聚合,但可以选择适当的方式来指定在实例启动期间由计算调度器过滤的主机特征。需要管理员权限才能使用匹配的元数据属性来配置主机聚合和风格。在任何主机聚合上设置键-值属性,以包括主机特征属性,然后在任何样式上再次设置相同的属性,用于请求启动具有所需主机特征的主机。
可用性区域通常用于指定地理主机分组,也是主机聚合的一种类型。可用性区域有一个特殊的标志设置,它允许普通用户看到和选择区域来控制实例启动。管理员可以设置该标志或任何主机聚合,使其作为可用性区域可见。另一个重要的区别是,主机可以是许多聚合的成员,但只能是一个可用性区域的成员。
📜课本练习
[student@workstation ~]$ lab computeresources-hci setup
Setting up workstation for lab exercise work:
• Verifying project: finance.................................. SUCCESS
. Ensuring environment file exists: architect1-finance-rc..... SUCCESS
• Creating user env file: developer1-finance-rc............... SUCCESS
• Creating keypair: example-keypair........................... SUCCESS
. Creating flavor: default.................................... SUCCESS
. Creating image: hci-image................................... SUCCESS
. Creating internal network: finance-network1................. SUCCESS
. Creating subnet: finance-subnet1............................ SUCCESS
. Creating external network: provider-datacentre.............. SUCCESS
. Creating router: finance-router1............................ SUCCESS
. Creating security group: default............................ SUCCESS
. Creating security group rule: tcp........................... SUCCESS
. Creating security group rule ICMP: icmp..................... SUCCESS
📑1.作为architect1用户,创建一个名为hci-aggregate的新聚合。将computehci0节点添加到hci-aggregate。
[student@workstation ~]$ source architect1-finance-rc
[student@workstation ~(architect1-finance)]$ openstack aggregate create hci-aggregate
+-------------------+----------------------------+
| Field | Value |
+-------------------+----------------------------+
| availability_zone | None |
| created_at | 2020-10-29T07:24:13.473012 |
| deleted | False |
| deleted_at | None |
| id | 1 |
| name | hci-aggregate |
| updated_at | None |
+-------------------+----------------------------+
[student@workstation ~(architect1-finance)]$ openstack aggregate add host hci-aggregate computehci0.overcloud.example.com
+-------------------+----------------------------------------+
| Field | Value |
+-------------------+----------------------------------------+
| availability_zone | None |
| created_at | 2020-10-29T07:24:13.000000 |
| deleted | False |
| deleted_at | None |
| hosts | [u'computehci0.overcloud.example.com'] |
| id | 1 |
| metadata | {} |
| name | hci-aggregate |
| updated_at | None |
+-------------------+----------------------------------------+
📑2. 设置hci-aggregate的元数据。
[student@workstation ~(architect1-finance)]$ openstack aggregate set --property computehci=true hci-aggregate
[student@workstation ~(architect1-finance)]$ openstack aggregate show hci-aggregate
+-------------------+----------------------------------------+
| Field | Value |
+-------------------+----------------------------------------+
| availability_zone | None |
| created_at | 2020-10-29T07:24:13.000000 |
| deleted | False |
| deleted_at | None |
| hosts | [u'computehci0.overcloud.example.com'] |
| id | 1 |
| name | hci-aggregate |
| properties | computehci='true' |
| updated_at | None |
+-------------------+----------------------------------------+
📑3. 创建一个新的flavor并确认computehci属性。
[student@workstation ~(architect1-finance)]$ openstack flavor create --ram 1024 --disk 10 --vcpus 2 --public default-hci
+----------------------------+--------------------------------------+
| Field | Value |
+----------------------------+--------------------------------------+
| OS-FLV-DISABLED:disabled | False |
| OS-FLV-EXT-DATA:ephemeral | 0 |
| disk | 10 |
| id | de9a2514-db1e-43a8-bffe-e33b92001ac2 |
| name | default-hci |
| os-flavor-access:is_public | True |
| properties | |
| ram | 1024 |
| rxtx_factor | 1.0 |
| swap | |
| vcpus | 2 |
+----------------------------+--------------------------------------+
[student@workstation ~(architect1-finance)]$ openstack flavor set default-hci --property computehci=true
[student@workstation ~(architect1-finance)]$ openstack flavor show default-hci
+----------------------------+--------------------------------------+
| Field | Value |
+----------------------------+--------------------------------------+
| OS-FLV-DISABLED:disabled | False |
| OS-FLV-EXT-DATA:ephemeral | 0 |
| access_project_ids | None |
| disk | 10 |
| id | de9a2514-db1e-43a8-bffe-e33b92001ac2 |
| name | default-hci |
| os-flavor-access:is_public | True |
| properties | computehci='true' |
| ram | 1024 |
| rxtx_factor | 1.0 |
| swap | |
| vcpus | 2 |
+----------------------------+--------------------------------------+
📑4. 使用openstack image list命令确保hci镜像存在。使用openstack image show命令来确认镜像的大小。
[student@workstation ~(architect1-finance)]$ openstack image list
+--------------------------------------+-----------------+--------+
| ID | Name | Status |
+--------------------------------------+-----------------+--------+
| 858c2335-35cc-41cc-923a-790da3186c4a | hci-image | active |
| ec9473de-4048-4ebb-b08a-a9be619477ac | octavia-amphora | active |
| 6b0128a9-4481-4ceb-b34e-ffe92e0dcfdd | rhel7 | active |
| 5f7f8208-33b5-4f17-8297-588f938182c0 | rhel7-db | active |
| 14b7e8b2-7c6d-4bcf-b159-1e4e7582107c | rhel7-web | active |
+--------------------------------------+-----------------+--------+
[student@workstation ~(architect1-finance)]$ openstack image show hci-image --max-width 80
+------------------+-----------------------------------------------------------+
| Field | Value |
+------------------+-----------------------------------------------------------+
| checksum | 9300685c8287e30b967ca4cb71057b3b |
| container_format | bare |
| created_at | 2020-10-29T07:17:25Z |
| disk_format | qcow2 |
| file | /v2/images/858c2335-35cc-41cc-923a-790da3186c4a/file |
| id | 858c2335-35cc-41cc-923a-790da3186c4a |
| min_disk | 10 |
| min_ram | 1024 |
| name | hci-image |
| owner | 42eecbfbaf684f909abfe5304434fc77 |
| properties | direct_url='rbd://fe8e3db0-d6c3-11e8-a76d- |
| | 52540001fac8/images/858c2335-35cc-41cc-923a- |
| | 790da3186c4a/snap', locations='[{u'url': |
| | u'rbd://fe8e3db0-d6c3-11e8-a76d- |
| | 52540001fac8/images/858c2335-35cc-41cc-923a- |
| | 790da3186c4a/snap', u'metadata': {}}]' |
| protected | True |
| schema | /v2/schemas/image |
| size | 1632174080 |
| status | active |
| tags | |
| updated_at | 2020-10-29T07:17:42Z |
| virtual_size | None |
| visibility | public |
+------------------+-----------------------------------------------------------+
📑5. 在workstation上打开一个新的终端。从workstation登录到controller0节点。在controller0上,配置nova以进行调试。重新启动容器并检查nova_scheduler日志文件。
[root@controller0 ~]# crudini --get /var/lib/config-data/puppet-generated/nova/etc/nova/nova.conf DEFAULT debug
False
[root@controller0 ~]# crudini --set /var/lib/config-data/puppet-generated/nova/etc/nova/nova.conf DEFAULT debug True
[root@controller0 ~]# docker restart nova_api
nova_api
[root@controller0 ~]# docker restart nova_scheduler
nova_scheduler
[root@controller0 ~]# docker ps --format "table {{.Names}}\t{{.Status}}" | grep nova
nova_metadata Up 4 days
nova_api Up 49 seconds (healthy)
nova_scheduler Up 42 seconds (healthy)
nova_vnc_proxy Up 4 days (healthy)
nova_consoleauth Up 4 days (healthy)
nova_api_cron Up 4 days
nova_conductor Up 4 days (healthy)
nova_placement Up 4 days
📑6. 使用default-hci flavor创建实例。
确保在computehci0节点上创建实例。检查nova-scheduler.log的日志文件。
[student@workstation ~(architect1-finance)]$ openstack server create --flavor default-hci --image hci-image --nic net-id=finance-network1 --wait hci-server1
+-------------------------------------+-------------------------------------------------+
| Field | Value
+-------------------------------------+-------------------------------------------------+
| OS-DCF:diskConfig | MANUAL
| OS-EXT-AZ:availability_zone | nova
| OS-EXT-SRV-ATTR:host | computehci0.overcloud.example.com
| OS-EXT-SRV-ATTR:hypervisor_hostname | computehci0.overcloud.example.com
| OS-EXT-SRV-ATTR:instance_name | instance-00000015
| OS-EXT-STS:power_state | Running
| OS-EXT-STS:task_state | None
| OS-EXT-STS:vm_state | active
| OS-SRV-USG:launched_at | 2020-10-29T07:45:59.000000
| OS-SRV-USG:terminated_at | None
| accessIPv4 |
| accessIPv6 |
| addresses | finance-network1=192.168.1.7
| adminPass | Sp2jMigNhvBf
| config_drive |
| created | 2020-10-29T07:44:41Z
| flavor | default-hci (de9a2514-db1e-43a8-bffe-e33b92001ac2)
| hostId | da71252412c8a04dea50b45f3c920ca7989f51e831c72e18fb1dc9ba
| id | 97c779a2-732d-4b9a-84d5-07df3b407b36
| image | hci-image (858c2335-35cc-41cc-923a-790da3186c4a)
[root@controller0 ~]# grep 97c779a2-732d-4b9a-84d5-07df3b407b36 /var/log/containers/nova/nova-scheduler.log
2020-10-29 07:44:41.712 1 DEBUG nova.scheduler.manager [req-10e33474-3287-48ae-84cf-0eb0b44617ab 69fb452af3dc1c1b54fb342df19d898fe3928e50cc930ebb8f112b1a59e91726 3c003f65d8d64914a053f178fbbf953c - 8dd2d316acc74f54b890bae519ea75b9 default] Starting to schedule for instances: [u'97c779a2-732d-4b9a-84d5-07df3b407b36'] select_destinations /usr/lib/python2.7/site-packages/nova/scheduler/manager.py:110
2020-10-29 07:44:42.416 1 DEBUG nova.scheduler.utils [req-10e33474-3287-48ae-84cf-0eb0b44617ab 69fb452af3dc1c1b54fb342df19d898fe3928e50cc930ebb8f112b1a59e91726 3c003f65d8d64914a053f178fbbf953c - 8dd2d316acc74f54b890bae519ea75b9 default] Attempting to claim resources in the placement API for instance 97c779a2-732d-4b9a-84d5-07df3b407b36 claim_resources /usr/lib/python2.7/site-packages/nova/scheduler/utils.py:786
[root@controller0 ~]# grep req-10e33474-3287-48ae-84cf-0eb0b44617ab /var/log/containers/nova/nova-scheduler.log
按课本需求自行观察
📑清除实验
[student@workstation ~]$ lab computeresources-hci cleanup
💡总结
RHCA认证需要经历5门的学习与考试,还是需要花不少时间去学习与备考的,好好加油,可以噶🤪。
以上就是【金鱼哥】对 第七章 管理计算资源–红帽的超融合基础设施 的简述和讲解。希望能对看到此文章的小伙伴有所帮助。
💾红帽认证专栏系列:
RHCSA专栏:戏说 RHCSA 认证
RHCE专栏:戏说 RHCE 认证
此文章收录在RHCA专栏:RHCA 回忆录
如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点。
如果有对【运维技术】感兴趣,也欢迎关注❤️❤️❤️ 【金鱼哥】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!
- 点赞
- 收藏
- 关注作者
评论(0)