云盘算赛项私有云

打印 上一主题 下一主题

主题 510|帖子 510|积分 1530

云盘算赛项私有云

   B站ID:老白嫖大怪兽
链接:【OpenStack摆设与运维】 https://www.bilibili.com/video/BV13M411C7nu
录有搭建过程
关注不迷路

  【赛程名称】云盘算赛项第一场-私有云
​ 某企业拟使用 OpenStack 搭建一个企业云平台,以实现资源池化弹性管理、企业应用集 中管理、统一安全认证和授权等管理。 系统架构如图 1 所示,本地环境IP 地址规划如表 1 所示。
​ 如下为我的本地环境。
IP地址功能10.18.4.46自建文件服务器10.18.4.100控制节点(controller)10.18.4.200盘算节点(compute)10.18.4.201~10.18.4.250做集群或它用 【任务 1】私有云服务搭建(10分)

【标题 1】基础环境搭建(5 分)

​ 使用提供的用户名密码,登录提供的 OpenStack 私有云平台,在当前租户下,使用 CentOS7.9 镜像,创建两台云主机,云主机范例使用 4vCPU/12G/100G_50G 范例。当前租户 下默认存在一张网卡,自行创建第二张网卡并连接至 controller 和 compute 节点(第二张网 卡的网段为 10.10.X.0/24,X 为工位号,不必要创建路由)。自行查抄安全组计谋,以确保网络正常通信与 ssh 连接,然后按以下要求配置服务器:
(1)设置控制节点主机名为 controller,设置盘算节点主机名为 compute;
(2)修改 hosts 文件将 IP 地址映射为主机名;
​ 完成后提交控制节点的用户名、密码和 IP 地址到答题框。
  1. #controller node
  2. hostnamectl set-hostname controller
  3. #compute node
  4. hostnamectl set-hostname compute
  5. #ALL Node
  6. cat >> /etc/hosts <<EOF
  7. 10.18.4.100 controller
  8. 10.18.4.200 compute
  9. EOF
复制代码
【标题 2】Yum 源配置[0.5 分]

​ 使用提供的 http 服务地址,在 http 服务下,存在 centos 和 iaas 的网络 yum 源, 使用该 http 源作为安装 iaas 平台的网络源。 分别设置 controller 节点和 compute 节点的 yum 源文件 http.repo。
  1. #直接删除默认源
  2. rm -rf /etc/yum.repos.d/*
  3. #创建http类型的yum源
  4. cat > /etc/yum.repos.d/http.repo <<EOF
  5. [centos]
  6. name=centos
  7. baseurl=http://10.18.4.46/centos
  8. gpgcheck=0
  9. enabled=1
  10. [iaas]
  11. name=iaas
  12. baseurl=http://10.18.4.46/iaas/iaas-repo
  13. gpgcheck=0
  14. enabled=1
  15. EOF
  16. #可以通过来验证源的配置是否正确
  17. yum makecache
复制代码
【标题 3】配置无秘钥 ssh[0.5 分]

​ 配置 controller 节点可以无秘钥访问 compute 节点,配置完成后,实验 ssh 连接 compute 节点的 hostname 举行测试。完成后提交 controller 节点的用户名、密码和 IP 地址到答题框
  1. #all node
  2. #生成密钥,回显默认全部回车即可
  3. ssh-keygen
  4. #传输密钥
  5. ssh-copy-id controller
  6. ssh-copy-id compute
  7. #测试尝试连接compute
  8. ssh compute
复制代码
【标题 4】基础安装[0.5 分]

​ 在控制节点和盘算节点上分别安装 openstack-iaas 软件包,根据表 2 配置两个节点脚本 文件中的根本变量(配置脚本文件为/etc/openstack/openrc.sh)。

  1. ###0.提前准备
  2. #分区
  3. #在 compute 节点上利用空白分区划分 2个 20G 分区作为cinder与swift的存储
  4. #划分1个5G的硬盘做为manila1的存储,见题目11
  5. #划分1个5G的硬盘做为cinder扩展磁盘,见题目12
  6. #分区也可以使用fdisk
  7.     parted /dev/vdb
  8.     (parted) mklabel gpt
  9.     (parted) mkpart a 0% 40%  
  10.     (parted) mkpart b 40% 80%  
  11.     (parted) mkpart c 80% 90%
  12.      (parted) mkpart d 90% 100%
  13.     (parted) quit
  14. ###1.安装openstack-iaas来生成openrc.sh与脚本
  15. yum -y install openstack-iaas
  16. ###2.编辑环境变量,简化脚本
  17. #使用vi底行模式,正则表达式如下
  18. :%s@##.*@@g        #删除文件中开头##的所在行
  19. :%s@#@@g                #删除文件中开头的#
  20. :g@^$@d                #删除文件中所有的空行
  21. :%s/PASS=/PASS=000000/g  #快速配置文件中个服务组件的password
  22. #环境变量文件示例
  23. HOST_IP=10.18.4.100                        #controller ip address,按照实际环境来
  24. HOST_PASS=000000
  25. HOST_NAME=controller
  26. HOST_IP_NODE=10.18.4.200                #compute ip address,按照实际环境来
  27. HOST_PASS_NODE=000000
  28. HOST_NAME_NODE=compute
  29. network_segment_IP=10.18.4.0/24               
  30. RABBIT_USER=openstack
  31. RABBIT_PASS=000000
  32. DB_PASS=000000
  33. DOMAIN_NAME=demo
  34. ADMIN_PASS=000000
  35. DEMO_PASS=000000
  36. KEYSTONE_DBPASS=000000
  37. GLANCE_DBPASS=000000
  38. GLANCE_PASS=000000
  39. PLACEMENT_DBPASS=000000
  40. PLACEMENT_PASS=000000
  41. NOVA_DBPASS=000000
  42. NOVA_PASS=000000
  43. NEUTRON_DBPASS=000000
  44. NEUTRON_PASS=000000
  45. METADATA_SECRET=000000
  46. INTERFACE_NAME=ens34
  47. Physical_NAME=provider
  48. minvlan=1
  49. maxvlan=200
  50. CINDER_DBPASS=000000
  51. CINDER_PASS=000000
  52. BLOCK_DISK=sdb1
  53. SWIFT_PASS=000000
  54. OBJECT_DISK=sdb2
  55. STORAGE_LOCAL_NET_IP=10.18.4.200         #compute IP
  56. TROVE_DBPASS=000000
  57. TROVE_PASS=000000
  58. HEAT_DBPASS=000000
  59. HEAT_PASS=000000
  60. CEILOMETER_DBPASS=000000
  61. CEILOMETER_PASS=000000
  62. AODH_DBPASS=000000
  63. AODH_PASS=000000
  64. ZUN_DBPASS=000000
  65. ZUN_PASS=000000
  66. KURYR_PASS=000000
  67. OCTAVIA_DBPASS=000000
  68. OCTAVIA_PASS=000000
  69. MANILA_DBPASS=000000
  70. MANILA_PASS=000000
  71. SHARE_DISK=sdb3                                    #manila—Disk
  72. CLOUDKITTY_DBPASS=000000
  73. CLOUDKITTY_PASS=000000
  74. BARBICAN_DBPASS=000000
  75. BARBICAN_PASS=000000
  76. ###首先执行初始化包###
  77. (all node)
  78. iaas-pre-host.sh
  79. ###3.controller node执行
  80. iaas-install-mysql.sh && iaas-install-keystone.sh && iaas-install-glance.sh \
  81. && iaas-install-placement.sh && iaas-install-nova-controller.sh \
  82. && iaas-install-neutron-controller.sh && iaas-install-dashboard.sh \
  83. && iaas-install-cinder-controller.sh && iaas-install-swift-controller.sh  \
  84. && iaas-install-heat.sh && iaas-install-manila-controller.sh \
  85. && iaas-install-cloudkitty.sh && iaas-install-barbican.sh
  86. ###4.compute node 执行
  87. #提示:当控制节点在部署脚本的时候,计算节点也别闲着,可以为其安装相应的包
  88. cat /usr/local/bin/iaas-*compute.sh | grep yum
  89. #然后将如上罗列出来的内容全部安装后,等待controller节点的脚本执行后,执行如下内容
  90. iaas-install-nova-compute.sh  && iaas-install-neutron-compute.sh \
  91. && iaas-install-cinder-compute.sh && iaas-install-swift-compute.sh \
  92. && iaas-install-manila-compute.sh
复制代码
【标题 5】数据库安装与调优[0.5 分]

​ 在 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。
​ 完成后提交控制节点的用户名、密码和 IP 地址到答题框。
​ 参数表明:mariadb系统变量-redo log
解题:
  1. #可以快速定位参数
  2. mysql -uroot -p000000
  3. MariaDB [(none)]>  show variables like 'innodb_log%';
  4. vim /etc/my.cnf
  5. #数据库支持大小写
  6. lower_case_table_names =1
  7. #数据库缓存
  8. innodb_buffer_pool_size = 4G
  9. #数据库的log buffer即redo日志缓冲
  10. innodb_log_buffer_size = 64MB
  11. #设置数据库的redo log即redo日志大小
  12. innodb_log_file_size = 256MB
  13. #数据库的redo log文件组即redo日志的个数配置
  14. innodb_log_files_in_group = 2
复制代码
​ 验证:重启mariadb服务来验证配置的精确与否

【标题 6】Keystone 服务安装与使用[0.5 分]

​ 在 controller 节点上使用 iaas-install-keystone.sh 脚本安装 Keystone 服务。安装完成后, 使用相关下令,创建用户 chinaskill,密码为 000000。完成后提交控制节点的用户名、密码 和 IP 地址到答题框。
  1. #导入环境变量
  2. source /etc/keystone/admin-openrc.sh
  3. #创建用户
  4. openstack user create --password 000000 chinaskill
复制代码
验证:

【标题 7】Glance 安装与使用[0.5 分]

​ 在 controller 节点上使用 iaas-install-glance.sh 脚本安装 glance 服务。使用下令将提供 的 cirros-0.3.4-x86_64-disk.img 镜像(该镜像在 HTTP 服务中,可自行下载)上传至平台, 命名为 cirros,并设置最小启动必要的硬盘为 10G,最小启动必要的内存为 1G。完成后提交 控制节点的用户名、密码和 IP 地址到答题框。
  1. #下载镜像
  2. curl -O http://10.18.4.100/cirros-0.3.4-x86_64-disk.img
  3. #创建符合要求的镜像
  4. openstack image create --min-disk 10 --min-ram 1024 --file cirros-0.3.3-x86_64-disk.img  cirros
复制代码
验证:

【标题 8】Nova 安装与优化[0.5 分]

​ 在 controller 节点和 compute 节点上分别使用 iaas-install-placement.sh 脚本、 iaas-install-nova -controller.sh 脚本、iaas-install-nova-compute.sh 脚本安装 Nova 服务。安装完成后,请修改 nova 相关配置文件,解决因等候时间过长而导致假造机启动超时从而获取不 到 IP 地址而报错失败的问题。配置完成后提交 controller 点的用户名、密码和 IP 地址到答 题框。
  1. #关键字是
  2. cat /etc/nova/nova.conf |grep vif_plugging_is_fatal
  3. vif_plugging_is_fatal=false
  4. #重启nova-*
  5. systemctl restart openstack-nova*
复制代码
【标题 9】Neutron 安装[0.5 分]

​ 使用提供的脚本 iaas-install-neutron-controller.sh 和 iaas-install-neutron-compute.sh,在 controller 和 compute 节点上安装 neutron 服务。完成后提交控制节点的用户名、密码和 IP 地址到答题框。
【标题 10】Doshboard 安装[0.5 分]

​ 在controller节点上使用iaas-install-dashboad.sh脚本安装dashboad服务。安装完成后, 将 Dashboard 中的 Djingo 数据修改为存储在文件中(此种修改解决了 ALL-in-one 快照在其 他云平台 Dashboard 不能访问的问题)。完成后提交控制节点的用户名、密码和 IP 地址到 答题框。
  1. #根据题意找线索,是关于django的数据,这个单词他写错了,就检索出来所有关于他的配置
  2. #会发现有一行
  3. #SESSION_ENGINE = 'django.contrib.sessions.backends.cache'存在cache里,改一改就行。
  4. cat /etc/openstack-dashboard/local_settings |grep django
  5. SESSION_ENGINE = 'django.contrib.sessions.backends.file'
  6. #重启服务生效配置
  7. systemctl restart httpd
复制代码
【标题 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 地址到答题 框。
  1. #通过命令行创建容器
  2. openstack container create examcontainer
  3. openstack container list
  4. #下载镜像
  5. curl -O http://10.18.4.46/cirros-0.3.4-x86_64-disk.img
  6. #swfit切片上传cirros
  7. #-S 上载不大于<size>(字节)的段中的文件,然后创建一个“清单”文件,该文件将下载所有段,就像它是原始文件一样。
  8. swift upload examcontainer -S 10485760 cirros-0.3.4-x86_64-disk.img
  9. swift stat examcontainer cirros-0.3.4-x8664-disk.img
复制代码

【标题 12】Cinder 创建硬盘[0.5 分]

​ 在 控 制 节 点 和 计 算 节 点 分 别 使 用 iaas-install-cinder-controller.sh 、 iaas-install-cinder-compute.sh 脚本安装 Cinder 服务,请在盘算节点,对块存储举行扩容操纵, 即在盘算节点再分出一个 5G 的分区,到场到 cinder 块存储的后端存储中去。完成后提交计 算节点的用户名、密码和 IP 地址到答题框。
  1. #创建物理卷
  2. pvcreate /dev/vdb4
  3. #扩展cinder-volume卷组
  4. vgextend cinder-volumes /dev/vdb4
  5. #验证
  6. [root@compute ~]# vgdisplay
复制代码
验证:

【标题 13】Manila 服务安装与使用[0.5 分]

在控制和盘算节点上分别使用 iaas-install-manila-controller.sh 和 iaas-install-manila-compute.sh 脚本安装 manila 服务。安装服务后创建 default_share_type 共享 范例(不使用驱动程序支持),接着创建一个巨细为 2G 的共享存储名为 share01 并开放 share01 目次对 OpenStack 管理网段使用权限。最后提交控制节点的用户名、密码和 IP 地址 到答题框。
  1. #创建不适用驱动程序支持的default_share_type共享类型
  2. manila type-create default_share_type False
  3. #创建共享卷
  4. manila create NFS 2 --name share01
  5. #开放share01目录对OpenStack管理网段使用权限
  6. manila access-allow share01 ip 10.18.4.0/24 --access-level rw
  7. #验证
  8. manila type-list
  9. manila list
复制代码

【标题 14】Barbican 服务安装与使用[0.5 分]

使用 iaas-install-barbican.sh 脚本安装 barbican 服务,安装服务完毕后,使用 openstack 下令创建一个名为 secret01 的密钥,创建完成后提交控制节点的用户名、密码和 IP 地址到 答题框。
  1. #导入环境变量
  2. source /etc/keystone/admin-openrc.sh
  3. #创建密钥
  4. openstack secret store --name secret01 --payload secretkey
复制代码
【标题 15】Cloudkitty 服务安装与使用[1 分]

​ 使用 iaas-install-cloudkitty.sh 脚本安装 cloudkitty 服务,安装完毕后,启用 hashmap 评级 模块,接着创建 volume_thresholds 组,创建服务匹配规则 volume.size,并设置每 GB 的价 格为 0.01。接下来对应大量数据设置应用扣头,在组 volume_thresholds 中创建阈值,设置 若超过 50GB 的阈值,应用 2%的扣头(0.98)。设置完成后提交控制节点的用户名、密码 和 IP 地址到答题框。
  1. #0.启用hashmap
  2. [root@controller ~]# openstack rating module enable hashmap
  3. #1.创建hashmap service
  4. [root@controller ~]# openstack rating  hashmap service create volume.size
  5. +--------+--------------------------------------+
  6. | Name   | Service ID                           |
  7. +--------+--------------------------------------+
  8. | volume.size | 09da4a8b-b849-4715-a8e3-7cd12dfcf46e |
  9. +--------+--------------------------------------+
  10. #2.创建hashmap service group
  11. [root@controller ~]# openstack rating hashmap group create  volume_thresholds
  12. openstack rating hashmap group create  volume_thresholds
  13. +-------------------+--------------------------------------+
  14. | Name              | Group ID                             |
  15. +-------------------+--------------------------------------+
  16. | volume_thresholds | 8b3dfe73-5efb-46ab-a93b-dc9519063ed6 |
  17. +-------------------+--------------------------------------+
  18. #3.创建volume单价
  19. [root@controller ~]# openstack rating hashmap mapping create   -s  09da4a8b-b849-4715-a8e3-7cd12dfcf46e -g 8b3dfe73-5efb-46ab-a93b-dc9519063ed6  -t flat  0.01  
  20. #4.创建service rule
  21. [root@controller ~]# openstack rating hashmap threshold create   -s  09da4a8b-b849-4715-a8e3-7cd12dfcf46e -g 8b3dfe73-5efb-46ab-a93b-dc9519063ed6  -t rate 50 0.98
复制代码
【标题 16】OpenStack 平台内存优化[0.5 分]

​ 搭建完 OpenStack 平台后,关闭系统的内存共享,打开透明大页。完成后提交控制节点 的用户名、密码和 IP 地址到答题框。
  1. #关闭系统的内存共享
  2. echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag
  3. #验证
  4. cat /sys/kernel/mm/transparent_hugepage/defrag
  5. always madvise [never]
  6. #打开透明大页(默认就是开启)
  7. echo 'always' > /sys/kernel/mm/transparent_hugepage/enabled
复制代码

【标题 17】修改文件句柄数[0.5 分]

​ Linux 服务器大并发时,每每必要预先调优 Linux 参数。默认环境下,Linux 最大文件 句柄数为 1024 个。当你的服务器在大并发到达极限时,就会报出“too many open files”。 创建一台云主机,修改相关配置,将控制节点的最大文件句柄数永世修改为 65535。配置完 成后提交 controller 点的用户名、密码和 IP 地址到答题框。
  1. #临时生效
  2. ulimit -n 65535
  3. #永久生效
  4. cat >> /etc/security/limits.conf <<EOF
  5. * soft nofile 65535
  6. * hard nofile 65535
  7. EOF
复制代码
【标题 18】Linux 系统调优-防止 SYN 攻击[1 分]

​ 修改 controller 节点的相关配置文件,开启 SYN cookie,防止 SYN 洪水攻击。完成后 提交 controller 节点的用户名、密码和 IP 地址到答题框。
  1. #默认的SYN相关配置
  2. sysctl -a | grep _syn
  3.         net.ipv4.tcp_max_syn_backlog = 512
  4.         net.ipv4.tcp_syn_retries = 6
  5.         net.ipv4.tcp_synack_retries = 5
  6.         net.ipv4.tcp_syncookies = 1
  7. #参数释义
  8. tcp_max_syn_backlog是SYN队列的长度,加大SYN队列长度可以容纳更多等待连接的网络连接数。 tcp_syncookies是一个开关,是否打开SYN Cookie 功能,该功能可以防止部分SYN攻击。 tcp_synack_retries和tcp_syn_retries定义SYN 的重试连接次数,将默认的参数减小来控制SYN连接次数的尽量少。
  9. #虽然默认是开启的,但是需要把配置添加到如下文件中
  10. echo 'net.ipv4.tcp_syncookies = 1' >> /etc/sysctl.conf
  11. #生效配置
  12. sysctl -p
复制代码
环境展示




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

祗疼妳一个

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表