OpenStack私有云运维(一)

如果你成功完成了前面openstack搭建部分,那么恭喜你进阶来到了运维部分。

注:运维部分内容是以云比赛内容为基础

一、Heat 编排-创建用户

编写 Heat 模板 create_user.yaml,创建名为 heat-user 的用户。使用自己搭建的OpenStack私有云平台,使用heat编写摸板(heat_template_version:2016-04-08)创建名为”chinaskills”的 domain,在此 domain 下创建名为 beijing_group的租户,在此租户下创建名为 cloud 的用户,将此文件命名及保存在/root/user_create.yml

iaas-install-heat.sh #安装openstack的heat编排服务
vi /root/user_create.yml #创建并进入编辑yml文件

heat_template_version: 2016-04-08
description: Create a user
parameters:
  domain_name:
    description: The name of the domain to create
    type: string
    default: chinaskills
  project_name:
    description: The name of the project to create within the domain
    type: string
    default: beijing_group
  user_name:
    description: The name of the user to create
    type: string
    default: cloud
resources:
  domain: 
    type: OS::Keystone::Domain
    properties:
      name: { get_param: domain_name }
  project:
    type: OS::Keystone::Project
    properties:
      name: { get_param: project_name }
      domain: { get_resource: domain }
  user:
    type: OS::Keystone::User
    properties:
      name: { get_param: user_name }
      domain: { get_resource: domain }
      default_project: { get_resource: project }

#heat_template_version:指定了该 Heat 模板所遵循的版本,这里使用的是 2016 年 4 月 8 日定义的版本。
#description:对模板的功能进行了简要描述,表明该模板用于创建一个用户。
#parameters 部分定义了模板使用的参数,这些参数可以在创建堆栈时进行自定义,若不提供则使用默认值。
#domain_name:用于指定要创建的域的名称
#project_name:用于指定在域内创建的项目的名称
#user_name:用于指定要创建的用户的名称
#resources 部分定义了要创建的 OpenStack 资源。
#domain:使用 OS::Keystone::Domain 类型创建一个域,其名称通过 get_param 函数从 domain_name 参数获取。
#project:使用 OS::Keystone::Project 类型在指定的域内创建一个项目,项目名称从 project_name 参数获取,所属域通过 get_resource 函数引用前面创建的 domain 资源。
#user:使用 OS::Keystone::User 类型创建一个用户,用户名称从 user_name 参数获取,所属域引用 domain 资源,默认项目引用 project 资源。

注:我这个模板其实还有很大改进空间,比如可以添加输出信息部分,这个可以你们自行研究。

二、KVM优化

在 OpenStack 平台上修改相关配置文件,启用-device virtio-net-pci in kvm。在自行搭建的 OpenStack 私有云平台或赛项提供的 all-in-one 平台上,修改相关配置文件,启用-device virtio-net-pci in kvm

修改KVM配置文件

在控制节点(controller)上,修改 /etc/nova/nova.conf 文件,找到 [libvirt] 部分,并添加或修改以下内容:
vif_plugged_timeout=30
vif_unplugged_timeout=30

#vif_plugged_timeout 用于设置在创建虚拟机过程中,等待虚拟网络接口(VIF,Virtual Interface)成功连接(即 “plugged”)到网络的最大时间,单位是秒。默认值通常是 300 秒。在你提供的配置中,将其设置为 30 秒。作用
优化资源使用:当创建虚拟机时,Nova 会尝试将虚拟机的虚拟网络接口连接到相应的网络。如果由于某些原因(如网络配置问题、网络服务故障等)导致连接操作长时间未完成,过长的等待时间会占用系统资源,影响其他操作。通过设置一个合理的超时时间(如 30 秒),当超过这个时间仍未完成连接时,Nova 会判定该操作失败,从而释放相关资源,避免资源的不必要占用。
提高部署效率:在大规模的云环境中,虚拟机的创建和部署频率较高。较短的超时时间可以让 Nova 更快地处理失败情况,及时反馈错误信息,使得管理员能够迅速排查问题,提高整体的部署效率。
#vif_unplugged_timeout 用于设置在删除虚拟机过程中,等待虚拟网络接口从网络中成功断开(即 “unplugged”)的最大时间,单位同样是秒。默认值通常也是 300 秒,这里设置为 30 秒。作用
快速释放网络资源:当删除虚拟机时,需要将其虚拟网络接口从网络中断开,以释放网络资源。如果断开操作长时间未完成,会导致网络资源无法及时释放,影响网络的可用性和性能。设置合理的超时时间可以确保在一定时间内,如果断开操作仍未完成,Nova 会采取相应的处理措施,快速释放网络资源。
避免资源泄漏:在某些情况下,可能会出现虚拟网络接口无法正常断开的情况。如果没有设置超时时间,这些未断开的网络接口会一直占用网络资源,导致资源泄漏。通过设置 vif_unplugged_timeout,可以有效避免这种情况的发生。

启用virtio-net-pci设备

还是在/etc/nova/nova.conf文件中
在 [libvirt] 部分添加或修改以下内容:
libvirt_extra_qemu_args = "-device virtio-net-pci,netdev=ens33,mac=00:0c:29:cc:c0:b4"

#libvirt_extra_qemu_args:用于传递额外的 QEMU 参数,这里添加了 -device virtio-net-pci 设备,netdev=ens33 表示使用网络设备 ens33,mac=00:0c:29:cc:c0:b4 是虚拟机网络接口的 MAC 地址,这些你们根据实际情况修改。

重启KVM服务

sudo systemctl restart libvirtd

如果你出现:
[root@controller ~]# systemctl restart libvirtd
Failed to restart libvirtd.service: Unit not found.
这种情况,你可以使用yum install libvirt-daemon命令进行安装libvirtd

三、NFS对接Glance后端存储

使用 OpenStack 私有云平台,创建一台云主机,安装 NFS 服务,然后对接 Glance 后端存储。

使用赛项提供的 OpenStack 私有云平台(日常练习自己创虚拟机即可),创建一台云主机(镜像使用 CentOS7.9,flavor 使用带临时磁盘 50G 的),配置该主机为 nfs 的 server 端,将该云主机中的 50G磁盘通过/mnt/test 目录进行共享(目录不存在可自行创建)。然后配置 controller 节点为 nfs 的 client 端,要求将/mnt/test 目录作为 glance 后端存储的挂载目录。

1.安装NFS服务

sudo yum install nfs-utils -y

2.配置NFS共享目录

在云主机上创建共享目录/mnt/test (如果已经存在则跳过此步)
chmod 777 /mnt/test #设置共享目录的权限
vi /etc/exports  添加以下内容:
/mnt/test *(rw,sync,no_root_squash)
sudo exportfs -ra  #应用NFS共享配置

3.配置OpenStack控制节点为NFS客户端

yum install nfs-utils -y  #安装NFS客户端
mkdir /mnt/test  #创建挂载点
mount -t nfs xxx.xxx.xxx.xxx:/mnt/test /mnt/test  #挂载NFS共享目录,将xxx.xxx.xxx.xxx替换为云主机IP
vi /etc/fstab  添加以下内容:
xxx.xxx.xxx.xxx:/mnt/test /mnt/test nfs defaults 0 0   #设置挂载点为永久挂载

4.配置Glance后端存储

在 OpenStack 控制节点上,使用 OpenStack CLI 配置 Glance 后端存储:

openstack image service set --backend nfs xxx.xxx.xxx.xxx:/mnt/test

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇