私有云

任务 1 私有云服务搭建[5分]

1.1.1 基础环境配置[0.2 分]

1.控制节点主机名为 controller,设置计算节点主机名为 compute;

2.hosts 文件将 IP 地址映射为主机名。

使用提供的用户名密码,登录提供的 OpenStack 私有云平台,在当前租户下,使用 CentOS7.9镜像,创建两台云主机,云主机类型使用 4vCPU/12G/100G_50G类型。当前租户下默认存在一张网卡,自行创建第二张网卡并连接至 controller和 compute 节点(第二张网卡的网段为 10.10.X.0/24,X 为工位号,不需要创建路由)。自行检查安全组策略,以确保网络正常通信与 ssh连接
(1)设置控制节点主机名为 controller,设置计算节点主机名为 compute;
(2)修改 hosts 文件将 IP 地址映射为主机名;
完成后提交 controller 节点的用户名、密码和 IP 地址到答题框

[root@controller ~]# hostnamectl set-hostname controller
[root@controller ~]# hostnamectl set-hostname compute

[root@controller ~]# cat /etc/hosts
192.168.10.1 controller
192.168.10.2 compute

1.1.2 Yum 源配置[0.2 分]

使用提供的 http 服务地址,分别设置 controller 节点和 compute 节点的 yum源文件 http.repo。使用提供的 http 服务地址,在 http 服务下,存在 centos7.9 和 iaas 的网络yum 源,使用该 http 源作为安装 iaas 平台的网络源。分别设置 controller 节点和compute 节点的 yum 源文件 http.repo。完成后提交控制节点的用户名、密码和 IP 地址到答题框。

[root@controller ~]# cat /etc/yum.repos.d/http.repo 
[cnetos]
name=centos
baseurl=http://192.168.10.3/Competition_2022/centos/
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=http://192.168.10.3/Competition_2022/iaas/iaas-repo
gpgcheck=0
enabled=1

1.1.3 配置无秘钥 ssh[0.2 分]

配置 controller 节点可以无秘钥访问 compute 节点。配置 controller节点可以无秘钥访问 compute节点,配置完成后,尝试 ssh连接 compute 节点的 hostname 进行测试。完成后提交 controller 节点的用户名、密码和 IP 地址到答题框

[root@controller ~]# ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:ps2bYYXJ+quNZ0Og5is/iVAUeXoWmCVa1AL808Gwa88 root@controller
The key's randomart image is:
+---[RSA 2048]----+
|oo=O+            |
| +*.=o           |
|...=...          |
|  oo+... o       |
| . =.. .S .      |
|. . =  *..       |
| . + Eo.=        |
|  o +  =++       |
|   oooo+*o       |
+----[SHA256]-----+
[root@controller ~]# ssh-copy-id compute

1.1.4 基础安装[0.2 分]

在控制节点和计算节点上分别安装 openstack-iaas 软件包。在控制节点和计算节点上分别安装 openstack-iaas 软件包,根据表 2 配置两个节点脚本文件中的基本变量(配置脚本文件为/etc/openstack/openrc.sh)
完成后提交控制节点的用户名、密码和 IP 地址到答题框。

[root@controller ~]# cat /etc/openstack/openrc.sh 
#--------------------system Config--------------------##
#Controller Server Manager IP. example:x.x.x.x
HOST_IP=192.168.10.1

#Controller HOST Password. example:000000 
HOST_PASS=000000

#Controller Server hostname. example:controller
HOST_NAME=controller

#Compute Node Manager IP. example:x.x.x.x
HOST_IP_NODE=192.168.10.2

#Compute HOST Password. example:000000 
HOST_PASS_NODE=000000

#Compute Node hostname. example:compute
HOST_NAME_NODE=compute

#--------------------Chrony Config-------------------##
#Controller network segment IP.  example:x.x.0.0/16(x.x.x.0/24)
network_segment_IP=192.168.10.0/24

#--------------------Rabbit Config ------------------##
#user for rabbit. example:openstack
RABBIT_USER=openstack

#Password for rabbit user .example:000000
RABBIT_PASS=000000

#--------------------MySQL Config---------------------##
#Password for MySQL root user . exmaple:000000
DB_PASS=000000

#--------------------Keystone Config------------------##
#Password for Keystore admin user. exmaple:000000
DOMAIN_NAME=demo
ADMIN_PASS=000000
DEMO_PASS=000000

#Password for Mysql keystore user. exmaple:000000
KEYSTONE_DBPASS=000000

#--------------------Glance Config--------------------##
#Password for Mysql glance user. exmaple:000000
GLANCE_DBPASS=000000

#Password for Keystore glance user. exmaple:000000
GLANCE_PASS=000000

#--------------------Placement Config----------------------##
#Password for Mysql placement user. exmaple:000000
PLACEMENT_DBPASS=000000

#Password for Keystore placement user. exmaple:000000
PLACEMENT_PASS=000000

#--------------------Nova Config----------------------##
#Password for Mysql nova user. exmaple:000000
NOVA_DBPASS=000000

#Password for Keystore nova user. exmaple:000000
NOVA_PASS=000000

#--------------------Neutron Config-------------------##
#Password for Mysql neutron user. exmaple:000000
NEUTRON_DBPASS=000000

#Password for Keystore neutron user. exmaple:000000
NEUTRON_PASS=000000

#metadata secret for neutron. exmaple:000000
METADATA_SECRET=000000

#External Network Interface. example:eth1
INTERFACE_NAME=eth1

#External Network The Physical Adapter. example:provider
Physical_NAME=provider

#First Vlan ID in VLAN RANGE for VLAN Network. exmaple:101
minvlan=1

#Last Vlan ID in VLAN RANGE for VLAN Network. example:200
maxvlan=1000

#--------------------Cinder Config--------------------##
#Password for Mysql cinder user. exmaple:000000
CINDER_DBPASS=000000

#Password for Keystore cinder user. exmaple:000000
CINDER_PASS=000000

#Cinder Block Disk. example:md126p3
BLOCK_DISK=vdb1

#--------------------Swift Config---------------------##
#Password for Keystore swift user. exmaple:000000
SWIFT_PASS=000000

#The NODE Object Disk for Swift. example:md126p4.
OBJECT_DISK=vdb2

#The NODE IP for Swift Storage Network. example:x.x.x.x.
STORAGE_LOCAL_NET_IP=192.168.10.2

#--------------------Trove Config----------------------##
#Password for Mysql trove user. exmaple:000000
TROVE_DBPASS=000000

#Password for Keystore trove user. exmaple:000000
TROVE_PASS=000000

#--------------------Heat Config----------------------##
#Password for Mysql heat user. exmaple:000000
HEAT_DBPASS=000000

#Password for Keystore heat user. exmaple:000000
HEAT_PASS=000000

#--------------------Ceilometer Config----------------##
#Password for Gnocchi ceilometer user. exmaple:000000
CEILOMETER_DBPASS=000000

#Password for Keystore ceilometer user. exmaple:000000
CEILOMETER_PASS=000000

#--------------------AODH Config----------------##
#Password for Mysql AODH user. exmaple:000000
AODH_DBPASS=000000

#Password for Keystore AODH user. exmaple:000000
AODH_PASS=000000

#--------------------ZUN Config----------------##
#Password for Mysql ZUN user. exmaple:000000
ZUN_DBPASS=000000

#Password for Keystore ZUN user. exmaple:000000
ZUN_PASS=000000

#Password for Keystore KURYR user. exmaple:000000
KURYR_PASS=000000

#--------------------OCTAVIA Config----------------##
#Password for Mysql OCTAVIA user. exmaple:000000
OCTAVIA_DBPASS=000000

#Password for Keystore OCTAVIA user. exmaple:000000
OCTAVIA_PASS=000000

#--------------------Manila Config----------------##
#Password for Mysql Manila user. exmaple:000000
MANILA_DBPASS=000000

#Password for Keystore Manila user. exmaple:000000
MANILA_PASS=000000

#The NODE Object Disk for Manila. example:md126p5.
SHARE_DISK=vdb3

#--------------------Cloudkitty Config----------------##
#Password for Mysql Cloudkitty user. exmaple:000000
CLOUDKITTY_DBPASS=000000

#Password for Keystore Cloudkitty user. exmaple:000000
CLOUDKITTY_PASS=000000

#--------------------Barbican Config----------------##
#Password for Mysql Barbican user. exmaple:000000
BARBICAN_DBPASS=000000

#Password for Keystore Barbican user. exmaple:000000
BARBICAN_PASS=000000
###############################################################
#####在vi编辑器中执行:%s/^.\{1\}//  删除每行前1个字符(#号)#####
###############################################################

1.1.5 数据库安装与调优[0.5 分]

在控制节点上使用安装 Mariadb、RabbitMQ 等服务。并进行相关操作。在 controller 节点上使用 iaas-install-mysql.sh 脚本安装 Mariadb、Memcached、RabbitMQ 等服务。安装服务完毕后,修改/etc/my.cnf 文件,完成下列要求:
1.设置数据库支持大小写;
2.设置数据库缓存 innodb 表的索引,数据,插入数据时的缓冲为 4G;
3.设置数据库的 log buffer 为 64MB;
4.设置数据库的 redo log 大小为 256MB;
5.设置数据库的 redo log 文件组为 2。
6.修改 Memcached 的相关配置,将内存占用大小设置为 512MB,调整最大连接数参数为 2048;
7.调整 Memcached 的数据摘要算法(hash)为 md5;

完成后提交控制节点的用户名、密码和 IP 地址到答题框。

[root@controller ~]# cat /etc/my.cnf
[mysqld]
lower_case_table_names=1
innodb_buffer_pool_size=4G
innodb_log_buffer_size= 64MB
innodb_log_file_size=256MB
innodb_log_files_in_group=2

[root@controller ~]# cat /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="2048"
CACHESIZE="512"
OPTIONS="-l 127.0.0.1,::1,controller"
hash_algorithm=md5

1.1.6 Keystone 服务安装与使用[0.5 分]

在控制节点上安装 Keystone 服务并创建用户。
在 controller 节点上使用 iaas-install-keystone.sh 脚本安装 Keystone 服务。然后创建OpenStack域210Demo,其中包含Engineering与Production项目,在域 210Demo 中创建组 Devops,其中需包含以下用户:
1.Robert 用户是 Engineering 项目的用户(member)与管理员(admin),email 地址为:Robert@lab.example.com。
2.George 用户是 Engineering 项目的用户(member),email 地址为:George@lab.example.com。
3.William 用户是 Production 项目的用户(member)与管理员(admin),email 地址为:William@lab.example.com。
4.John 用户是 Production 项目的用户( member ) , email 地址为:John@lab.example.com。
完成后提交控制节点的用户名、密码和 IP 地址到答题框。

[root@controller ~]# openstack domain create 210Demo
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description |                                  |
| enabled     | True                             |
| id          | 3825bebcaa3c4ec991dff0a437979d43 |
| name        | 210Demo                          |
| options     | {}                               |
| tags        | []                               |
+-------------+----------------------------------+
[root@controller ~]# openstack group create devops --domain 210Demo       
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description |                                  |
| domain_id   | 3825bebcaa3c4ec991dff0a437979d43 |
| id          | 245bee3114374e40a517862455966976 |
| name        | devops                           |
+-------------+----------------------------------+
[root@controller ~]# openstack project create Engineering --domain 210Demo                   
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description |                                  |
| domain_id   | 3825bebcaa3c4ec991dff0a437979d43 |
| enabled     | True                             |
| id          | 52b5aa9714914acdaf01bd9ae61e97e4 |
| is_domain   | False                            |
| name        | Engineering                      |
| options     | {}                               |
| parent_id   | 3825bebcaa3c4ec991dff0a437979d43 |
| tags        | []                               |
+-------------+----------------------------------+
[root@controller ~]# openstack project create Production --domain 210Demo           
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description |                                  |
| domain_id   | 3825bebcaa3c4ec991dff0a437979d43 |
| enabled     | True                             |
| id          | 95c908f6b9724effb7fcd4c237b2ad04 |
| is_domain   | False                            |
| name        | Production                       |
| options     | {}                               |
| parent_id   | 3825bebcaa3c4ec991dff0a437979d43 |
| tags        | []                               |
+-------------+----------------------------------+
[root@controller ~]# openstack user create --domain 210Demo --project Engineering Robert --email Robert@lab.example.com
No password was supplied, authentication will fail when a user does not have a password.
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| default_project_id  | 52b5aa9714914acdaf01bd9ae61e97e4 |
| domain_id           | 3825bebcaa3c4ec991dff0a437979d43 |
| email               | Robert@lab.example.com           |
| enabled             | True                             |
| id                  | b55092d96d15447480ad4f175d4932ac |
| name                | Robert                           |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+
[root@controller ~]# openstack user create --domain 210Demo --project Engineering George --email George@lab.example.com      
No password was supplied, authentication will fail when a user does not have a password.
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| default_project_id  | 52b5aa9714914acdaf01bd9ae61e97e4 |
| domain_id           | 3825bebcaa3c4ec991dff0a437979d43 |
| email               | George@lab.example.com           |
| enabled             | True                             |
| id                  | 9468e632ede34662af8c626bc07e2267 |
| name                | George                           |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+
[root@controller ~]# openstack user create --domain 210Demo --project Production William --email William@lab.example.com                 
No password was supplied, authentication will fail when a user does not have a password.
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| default_project_id  | 95c908f6b9724effb7fcd4c237b2ad04 |
| domain_id           | 3825bebcaa3c4ec991dff0a437979d43 |
| email               | William@lab.example.com          |
| enabled             | True                             |
| id                  | 808f4535a099498384560d45a66b4332 |
| name                | William                          |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+
[root@controller ~]# openstack user create --domain 210Demo --project Production John --email John@lab.example.com          
No password was supplied, authentication will fail when a user does not have a password.
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| default_project_id  | 95c908f6b9724effb7fcd4c237b2ad04 |
| domain_id           | 3825bebcaa3c4ec991dff0a437979d43 |
| email               | John@lab.example.com             |
| enabled             | True                             |
| id                  | a21b4b6829cc4bda89c85d45825ebd3d |
| name                | John                             |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+
[root@controller ~]# openstack role add --user Robert --project Engineering member 
[root@controller ~]# openstack role add --user Robert --project Engineering admin
[root@controller ~]# openstack role add --user George --project Engineering member
[root@controller ~]# openstack role add --user William --project Production member       
[root@controller ~]# openstack role add --user William --project Production admin
[root@controller ~]# openstack role add --user John --project Production member 

1.1.7 Glance 安装与使用[0.5 分]

在控制节点上安装 Glance 服务。上传镜像至平台,并设置镜像启动的要求参数。
​ 在 controller 节点上使用 iaas-install-glance.sh 脚本安装 glance 服务。然后使用提供的 coreos_production_pxe.vmlinuz 镜像(该镜像为 Ironic Deploy 镜像,是一个 AWS 内核格式的镜像,在 OpenStack Ironic 裸金属服务时需要用到)传到 OpenStack 平台中,命名为 deploy-vmlinuz。完成后提交控制节点的用户名、密码和 IP 地址到答题框。

[root@controller ~]# openstack image create deploy-vmlinuz --container-format aki < coreos_production_pxe.vmlinuz 
+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field            | Value                                                                                                                                                                                      |
+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| checksum         | 69ca72c134cac0def0e6a42b4f0fba67                                                                                                                                                           |
| container_format | aki                                                                                                                                                                                        |
| created_at       | 2023-10-09T06:22:38Z                                                                                                                                                                       |
| disk_format      | raw                                                                                                                                                                                        |
| file             | /v2/images/59433a4a-d028-4ad6-a2d6-0891218b9ca2/file                                                                                                                                       |
| id               | 59433a4a-d028-4ad6-a2d6-0891218b9ca2                                                                                                                                                       |
| min_disk         | 0                                                                                                                                                                                          |
| min_ram          | 0                                                                                                                                                                                          |
| name             | deploy-vmlinuz                                                                                                                                                                             |
| owner            | 0b6f2d0be1d342e09edc31dc841db7a5                                                                                                                                                           |
| properties       | os_hash_algo='sha512', os_hash_value='7241aeaf86a4f12dab2fccdc4b8ff592f16d13b37e8deda539c97798cdda47623002a4bddd0a89b5d17e6c7bc2eb9e81f4a031699175c11e73dc821030dfc7f4', os_hidden='False' |
| protected        | False                                                                                                                                                                                      |
| schema           | /v2/schemas/image                                                                                                                                                                          |
| size             | 43288240                                                                                                                                                                                   |
| status           | active                                                                                                                                                                                     |
| tags             |                                                                                                                                                                                            |
| updated_at       | 2023-10-09T06:22:39Z                                                                                                                                                                       |
| virtual_size     | None                                                                                                                                                                                       |
| visibility       | shared                                                                                                                                                                                     |
+------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

1.1.8 Nova 安装与优化[0.5 分]

在控制节点和计算节点上分别安装 Nova 服务。安装完成后,完成 Nova 相关配置。
在 controller 节点和 compute 节点上分别使用 iaas-install-placement.sh 脚本、iaas-install-nova -controller.sh 脚本、iaas-install-nova-compute.sh 脚本安装 Nova 服务。在 OpenStack 中,修改相关配置文件,修改调度器规则采用缓存调度器,缓存主机信息,提升调度时间。配置完成后提交controller点的用户名、密码和IP地址到答题框。

[root@controller ~]# cat /etc/nova/nova.conf
driver=caching_scheduler

1.1.9 Neutron 安装[0.2 分]

在控制和计算节点上正确安装 Neutron 服务。

使用提供的脚本 iaas-install-neutron-controller.sh 和 iaas-install-neutroncompute.sh,在 controller 和 compute 节点上安装 neutron 服务。完成后提交控制节点的

用户名、密码和 IP 地址到答题框。

[root@controller ~]# iaas-install-neutron-controller.sh 
[root@compute ~]# iaas-install-neutron-compute.sh 

1.1.10 Dashboard 安装[0.5 分]

在控制节点上安装 Dashboard 服务。安装完成后,将 Dashboard 中的 Django数据修改为存储在文件中。
在controller节点上使用iaas-install-dashboad.sh脚本安装Dashboard服务。安装完成后,修改相关配置文件,完成下列两个操作:
1.使得登录 Dashboard 平台的时候不需要输入域名;
2.将 Dashboard 中的 Django 数据修改为存储在文件中。
完成后提交控制节点的用户名、密码和 IP 地址到答题框。

#修改如下
[root@controller ~]# cat /etc/openstack-dashboard/local_settings
SESSION_ENGINE = 'django.contrib.sessions.backends.file'
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = False

1.1.11 Swift 安装[0.5 分]

在控制节点和计算节点上分别使用 iaas-install-swift-controller.sh 和 iaas-install-swift-compute.sh 脚本安装 Swift 服务。安装完成后,使用命令创建一个名叫 examcontainer 的 容 器 , 将 cirros-0.3.4-x86_64-disk.img 镜像上传到examcontainer 容器中,并设置分段存放,每一段大小为 10M。完成后提交控制节点的用户名、密码和 IP 地址到答题框。

[root@controller ~]# curl -O http://192.168.10.3/cirros-0.3.4-x86_64-disk.img
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 12.6M  100 12.6M    0     0  67.9M      0 --:--:-- --:--:-- --:--:-- 67.7M
[root@controller ~]# swift post examcontainer
[root@controller ~]# swift upload -S 10M examcontainer cirros-0.3.4-x86_64-disk.img 
cirros-0.3.4-x86_64-disk.img segment 1
cirros-0.3.4-x86_64-disk.img segment 0
cirros-0.3.4-x86_64-disk.img

1.1.12 Cinder 创建硬盘[0.5 分]

在控制节点和计算节点分别使用 iaas-install-cinder-controller.sh、iaas-install-cinder-compute.sh 脚本安装 Cinder 服务,请在计算节点,对块存储进行扩容操作,即在计算节点再分出一个 5G 的分区,加入到 cinder 块存储的后端存储中去。完成后提交计算节点的用户名、密码和 IP 地址到答题框。

[root@compute ~]# pvcreate /dev/vdb4 
  Physical volume "/dev/vdb4" successfully created.
[root@compute ~]# vgs
  VG             #PV #LV #SN Attr   VSize   VFree  
  cinder-volumes   1   1   0 wz--n- <10.00g 484.00m
  manila-volumes   1   0   0 wz--n- <10.00g <10.00g
[root@compute ~]# vgextend  cinder-volumes /dev/vdb4 
  Volume group "cinder-volumes" successfully extended
[root@compute ~]# vgs
  VG             #PV #LV #SN Attr   VSize   VFree  
  cinder-volumes   2   1   0 wz--n-  14.99g  <5.47g
  manila-volumes   1   0   0 wz--n- <10.00g <10.00g

1.1.13 配置主机禁 ping [0.5 分]

修改 controller 节点的相关配置文件,配置 controller 节点禁止其他节点可以ping 它。
配置完之后。完成后提交 controller 节点的用户名、密码和 IP 地址到答题框。

[root@controller ~]# cat /etc/sysctl.conf 
net.ipv4.icmp_echo_ignore_all = 1
[root@controller ~]# sysctl -p
net.ipv4.icmp_echo_ignore_all = 1

任务 2 私有云服务运维[15分]

1.2.1 Heat 编排-创建用户[1 分]

使 用 自 己 搭 建 的 OpenStack 私 有 云 平 台 , 使 用 heat 编写摸板(heat_template_version: 2016-04-08)创建名为”chinaskills”的 domain,在此 domain下创建名为 beijing_group 的租户,在此租户下创建名为 cloud 的用户,将此文件命名及保存在/root/user_create.yml。完成后提交 controller 点的用户名、密码和 IP 地址到答题框。(竞赛系统会执行 yaml 文件,请确保执行的环境)

[root@controller ~]# heat resource-type-template OS::Keystone::Domain > /root/user_create.yml
[root@controller ~]# heat resource-type-template OS::Keystone::Project >> /root/user_create.yml
[root@controller ~]# heat resource-type-template OS::Keystone::User >> /root/user_create.yml

[root@controller ~]# cat user_create.yml 
heat_template_version: 2016-04-08
resources:
  chinaskills:
    properties:
      name: chinaskills
      enabled: true
    type: OS::Keystone::Domain
  keystoneProject:
    properties:
      domain: {get_resource: chinaskills}
      name: beijing_group
    type: OS::Keystone::Project
  keystoneUser:
    properties:
      default_project: {get_resource: keystoneProject}
      name: cloud
      domain: {get_resource: chinaskills}
    type: OS::Keystone::User

1.2.2 KVM 优化[1 分]

在自行搭建的 OpenStack 私有云平台或赛项提供的 all-in-one 平台上,修改相关配置文件,启用-device virtio-net-pci in kvm,配置完成后提交控制节点的用户名、密码和IP 地址到答题框。

#修改如下
cat /etc/nova/nova.conf
--libvirt_use_virtio_for_bridges=true

1.2.3 NFS 对接 Glance 后端存储[1 分]

使用赛项提供的 OpenStack 私有云平台,创建一台云主机(镜像使用CentOS7.9,flavor 使用带临时磁盘 50G 的),配置该主机为 nfs 的 server 端,将该云主机中的 50G 磁盘通过/mnt/test 目录进行共享(目录不存在可自行创建)。然后配置 controller 节点为 nfs 的 client 端,要求将/mnt/test 目录作为glance 后端存储的挂载目录。配置完成后提交 controller 控制节点的用户名、密码和 IP 地址到答题框。

nfs节点

[root@node ~]# yum install nfs-utils rpcbind
[root@node ~]# systemctl start rpcbind
[root@node ~]# systemctl start nfs
[root@node ~]# mkdir /mnt/test
[root@node ~]# cat /etc/exports
/mnt/test *(rw,no_root_squash,sync)
[root@node ~]# exportfs -r
[root@node ~]# systemctl restart nfs

controller节点

mount -t nfs 192.168.10.4:/mnt/test /var/lib/glance/images/ 
chown glance:glance -R /var/lib/glance/images/ 

1.2.4 Redis 主从[1 分]

使用赛项提供的 OpenStack 私有云平台,申请两台 CentOS7.9 系统的云主机,使用提供的 http 源,在两个节点安装 redis 服务并启动,配置 redis 的访问需要密码,密码设置为 123456。然后将这两个 redis 节点配置为 redis 的主从架构。配置完成后提交 redis 主节点的用户名、密码和 IP 地址到答题框。

主节点

[root@master ~]# yum install -y redis
[root@master ~]# cat /etc/redis.conf
bind 0.0.0.0
protected-mode no
masterauth 123456
requirepass 123456
appendonly yes
daemonize yes
[root@master ~]# systemctl restart redis

从节点

[root@node ~]# yum install -y redis
[root@node ~]# cat /etc/redis.conf
bind 0.0.0.0
protected-mode no
#主节点ip
slaveof 192.168.10.10 6379
masterauth 123456
requirepass 123456
appendonly yes
daemonize yes
[root@node ~]# systemctl restart redis

验证

[root@master ~]# redis-cli -a 123456
127.0.0.1:6379> info Replication
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.10.11,port=6379,state=online,offset=29,lag=0
master_repl_offset:29
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:28

1.2.5 Linux 系统调优-脏数据回写[1 分]

Linux 系统内存中会存在脏数据,一般系统默认脏数据 30 秒后会回写磁盘,修改系统配置文件,要求将回写磁盘的时间临时调整为 60 秒。完成后提交 controller 节点的用户名、密码和 IP 地址到答题框。

[root@controller~]# vi /etc/sysctl.conf 
vm.dirty_expire_centisecs = 6000
[root@controller ~]# sysctl -p
vm.dirty_expire_centisecs = 6000

1.2.6 Glance 调优[1 分]

在 OpenStack 平台中,glance-api 处理请求的子进程数量默认是 0,只有一个主进程,请修改相关配置文件,将子进程数量相应的配置修改成 2,这样的话有一个主进程加 2 个子进程来并发处理请求。完成后提交控制节点的用户名、密码和 IP 地址到答题框。

修改如下
[root@controller ~]# cat /etc/glance/glance-api.conf 
workers = 2

可有偿提供技术指导可以私信
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐