OpenStack实例正确设置九大技巧

发布时间:2017.03.23

在OpenStack的术语中,一个实例就是一台虚拟机,即客机工作负载。它从操作系统镜像中启动,并且配置有特定数量的CPU、RAM和磁盘空间,以及其他参数,例如网络或安全设置。

在红帽资深顾问Marko Myllynen撰写的这篇博文中,我们将探索九个OpenStack配置和优化选项,帮助您的工作负载实现所要求的性能、可靠性和安全性

无论OpenStack云管理员在您的云环境中启用了什么功能,某些优化可在客机内进行。然而,更先进的选项要求提前启用,而且可能需要特殊的主机能力。这意味着本文介绍的许多选项取决于管理员如何配置云环境,或者可能在某些租户中不可用,因为这些选项是为某些用户组预留的。关于本主题的更多信息可见红帽文档门户和红帽OpenStack镜像服务综合指南。同时,上游OpenStack文档也提供了一些额外指导准则。

对于在任何OpenStack环境中运行的任何虚拟机,需要对以下配置进行评估。这些变更没有负面影响,而且即使未使用,一般也可以安全地启用。

 

 

01
 

镜像格式:QCOW还是RAW?

OpenStack存储配置是云管理员的一个实施选项,而租户通常无法完整看到。存储配置也可能随着时间推移而变化,而无需管理员明确通知,因为他/她通过不同的规范而在配置中增加了容量。

在OpenStack上创建新实例时,该实例基于Glance镜像。两种最常见并且推荐使用的镜像格式是QCOW2RAW。QCOW2镜像(来自 QEMU Copy On Write)的体积更小。以拥有一块100 GB磁盘的服务器为例,RAW格式的镜像如果格式化为QCOW2格式,其大小可能仅10 GB。无论哪种格式,在通过 virt-sysprep(1)和virt-sparsify(1)将镜像上传到Glance之前都需要进行处理。

QCOW2的性能取决于系统管理程序内核和格式版本,最新版本为QCOW2v3(有时称为QCOW3),比先前的QCOW2性能更优秀,与RAW格式基本相同。总体来讲,我们假设RAW的整体性能更好,尽管在运行方面存在缺陷(例如缺乏快照),或者上传或引导时间增加(由于体积更大)。最新的红帽OpenStack Platform版本自动采用更新的QCOW2v3格式(得益于最近的RHEL版本),而且该版本可以检查并且利用 qemu-img(1)在RAW和更老/更新的QCOW2镜像间进行转换。

OpenStack实例可以从本地镜像或者远程卷中引导。这意味着:

 

  • 镜像支持的实例通过旧QCOW2与QCOW2v3和RAW间的性能差异而显著获益。

  • 卷支持的实例可以从QCOW2或RAW Glance镜像中创建。然而,由于Cinder后端视特定供应商而不同(Ceph、3PAR、EMC等),它们可能不采用QCOW2或RAW。可能有自己的机制,例如重复数据删除、精简配置或者边写入边复制。需要特别注意的是,这并不支持在配有Ceph的Glance中使用QCOW2。

 

 

 

根据一般经验,极少使用的镜像应以QCOW2格式存储在Glance中,但对于经常用于创建新事例(在本地存储)的镜像,或者用于创建卷支持的事例的镜像,使用RAW能够提供更好的性能,尽管有时初始引导时间更长(Ceph支持的系统除外,原因是它采用了边写入边复制的方法)。最后,任何实际的建议都依赖于云管理员所选择的OpenStack存储配置。

 

02
 

通过镜像额外属性进行性能调整

 

从Mitaka版本起,OpenStack允许Nova自动优化计算主机上的某些libvirt和KVM属性,目的是更好地执行客机中的特定OS。要向Nova提供客机OS信息,只需定义以下Glance镜像属性:

 

  • os_type=linux # 通用名称,例如linux或windows

  • os_distro=rhel7.1 # 使用osinfo-query os列出支持的变体

 

此外,至少在目前,为了保证使用更新和更具扩展能力的virtio-scsi超虚拟化SCSI控制器取代旧的virt-blk,需要明确设置以下属性:

 

  • hw_scsi_model=virtio-scsi

  • hw_disk_bus=scsi

 

支持的所有镜像属性在红帽文档门户和其他CLI选项中列出。  

 

03
 

为Cloud-init做好准备

“Cloud-init” 是用于云实例早期初始化的程序包,用于配置基本信息,例如分区/文件系统大小和SSH密钥。

您要保证已经在Glance镜像中安装了cloud-init和cloud-utils-growpart程序包,而且相关服务将在引导时执行,以允许执行针对OpenStack VM的 “cloud-init” 配置。

 

许多情况下可以接受默认配置,但也有许多定制选项可以使用。

 

04
 

启用QEMU客机代理

在Linux主机上,建议安装并启用QEMU客机代理,以允许正常关机和(将来)需要快照时客机文件系统的自动冻结,这是一致备份的必要操作:

 

  • yum install qemu-guest-agent

  • systemctl enable qemu-guest-agent

 

为了提供必需的虚拟设备,并且在需要时使用文件系统冻结功能,需要为Glance镜像定义以下属性:

 

  • hw_qemu_guest_agent=yes # 创建所需的设备,以允许客机代理运行

  • os_require_quiesce=yes # 接受文件系统冻结/解冻请求

 

05
 

从客机故障状态恢复

全面的实例故障恢复、高可用性和服务监控需要采用分层的方法。在下文中,我们列出了仅可用于客机内的选项(可视为最内层)。最常用的实例故障恢复机制有:

 

  • 从内核瘫痪状态恢复

  • 从客机挂起状态恢复(不一定涉及到内核瘫痪/错误)

 

在极少发生的客机内核瘫痪的情况下,kexec/kdump将捕获内核vmcore,用于提供进一步分析和客机重新引导。如果不需要vmcore,通过设置错误内核参数,例如“panic=1”,内核可以在瘫痪后按照指令重新引导。

 

为了在发生其他意外行为后对实例进行重新引导,例如某个阈值的高负荷,或者在没有内核错误时的整个系统锁定,可以使用watchdog服务。以下属性需要对Glance镜像或Nova Flavor而定义。

 

  • hw_watchdog_action=reset

 

然后,在客机内安装与配置watchdog程序包,最后启用该服务:

 

  • yum install watchdog

  • vi /etc/watchdog.conf

  • systemctl enable watchdog

 

根据默认设置,watchdog检测到内核瘫痪和整个系统锁定。例如,如何在watchdog功能检查过程中添加健康监控脚本。

 

06
 

调试内核

调试Linux代码的最简单方式是使用 “tuned” 工具。这种服务可根据所选的档案配置几十个系统参数,对于OpenStack,它是“虚拟客机”。对于NFV工作负载,红帽提供了一组NFV调试档案,用于简化网络密集型虚拟机的调试。

在您的Glance镜像中,建议安装所要求的程序包,在引导时启用服务,然后激活首选的档案。您可以在将镜像上传到Glance之前编辑镜像,也可以作为cloud-init配置的一部分:

 

  • yum install tuned

  • systemctl enable tuned

  • tuned-adm profile virtual-guest

 

07
 

通过VirtIO多队列增强网络能力

客机内核virtio驱动程序是标准RHEL/Linux内核程序包的一部分,并且自动启用,而不需要根据需要进一步配置。对于特定的Windows版本,Windows客机也应使用官方virtio驱动程序,用于显著提高网络和磁盘IO性能。

然而,在Linux内核和用户空间组件中网络程序包处理方面,最新的发展提供了大量用于调试或绕开virtio驱动程序的额外选项。下文列出了一种virtio设备模型。

网络多队列(或者叫virtio-net多队列)方法实现了并行数据包处理,这样能够随着客机可用vCPU数量而线性扩展,从而实现传输速度的显著提高,特别是对于vhost-user。

由于OpenStack Admin配置了带有支持组件的虚拟化主机(至少OVS 2.5 / DPDK 2.2),这一功能可由OpenStack Tenant通过需要网络多队列的这些Glance镜像中的以下属性启用:

 

  • hw_vif_multiqueue_enabled=true

 

在从该镜像完成初始化的客机中,可通过以下命令检查并更改NIC通道设置:

 

  • ethtool -l eth0 #用于查看当前队列的数量

  • ethtool -L eth0 combined <nr-of-queues> # 用于设置队列的数量。应与vCPU数量相符。

 

另外有一个开放RFE,用于实施多队列激活,这是内核中的默认功能。

 

 

08
 

客机的其他杂项调试

毫无疑问,规模适当的实例仅包含最少的程序包,并且仅运行所需的服务。特别需要注意的是,安装并启用irqbalance服务可能是一种很好的做法,尽管这并非在所有情况下都绝对有必要,但该服务的开销最低,并且应该在SR-IOV设置中使用。

即使在KVM上采用隐性设置,明确添加内核参数no_timer_check是一种很好的做法,这可以避免定时设备出现问题。分别使用PERSISTENT_DHCLIENT=yes和NOZEROCONF=yes启用永久DHCP客户端,并禁用网络配置中的zeroconf路径有助于避免网络极端状况的问题。

根据默认设置,客机MTU设置一般都能够正确地调整,但在堆栈的所有级别使用正确的MTU对于实现最高网络性能至关重要。在配有10G(以及更快)NIC的环境中,这一般意味着要使用MTU高达9000的Jumbo Frames,同时考虑可能的VXLAN封装。

 

09
 

改善您接入实例的方式

尽管某些纯粹主义者可能考虑在纯云原生实例中以不兼容的方式运行SSH,尤其是在自动扩展的生产工作负载中,但我们绝大多数人仍然依赖优秀的旧有SSH来执行配置任务(例如通过Ansible)以及维护和故障排除(例如,在软件故障后提取日志)。

SSH daemon应避免DNS查询,目的是加快建立SSH连接。对于这一要求,考虑在/etc/ssh/sshd_config 中采用UseDNS no,并向/etc/sysconfig/sshd增加OPTIONS=-u0。如果未使用Kerberos,可以考虑设置GSSAPIAuthentication no。如果实例频繁地互相连接,也可以考虑ControlPersist / ControlMaster选项。

一般来说,远程SSH接入和采用Horizon通过控制台接入对于大多数情况已经足够。在开发阶段,从Nova计算主机直接通过控制台接入也可能很有帮助,要做到这一点,需启用serial-getty@ttyS1.service,允许根据需要通过向 /etc/securetty添加ttyS1 而通过ttyS1进行根接入,然后利用virsh console <instance-id> –devname serial1从Nova计算主机接入客机控制台。 

 

 

内容来源:红帽


 

艾威OpenStack云计算最佳实践培训

——面授+直播+E-Learning

 

 

OpenStack云计算最佳实践培训

课程介绍

讲解Openstack核心组件的工作原理,构建方法和管理。

学员要求

学习了前置课程《Ubuntu Linux系统管理》或者有Linux系统管理经验,对进程运行环境、linux磁盘管理、网络管理、服务管理熟悉。

课程长度

5天(35学时)

授课方式

面授+远程直播+  E-learning

课程内容

第一天:Heartbeat HA集群搭建,理解浮动IP和计算转移的原理

第二天:OpenStack 单机安装,使用dashboard,镜像的创建和使用,heat,ceilometer应用介绍

第三天:计算节点配置与管理:keystone和nova的安装和配置

第四天:存储服务配置与管理:cinder和swift的安装和配置

第五天:网络服务配置与管理:neutron和horizon的安装和配置,公网和私网的实现原理和部署方

【艾威(中国)】简介:

艾威培训隶属于上海艾威信息科技有限公司,于2002年在上海建立办事处,2003年正式注册成立上海艾威信息科技有限公司并全面开展国内的培训业务,主要专注于职业认证培训与IT技术培训,致力于中国数字化管理人才与技术人才的培养。

  

艾威主要业务为培训业务与咨询业务两大类,目前培训的主要产品有:项目管理培训、IT管理培训、敏捷培训、业务分析与需求管理培训、企业架构培训、业务流程管理培训、数据管理与治理培训、信息安全培训、办公软件与多媒体培训、大数据与人工智能培训、虚拟化与云计算培训、数据库培训、软件开发培训等....近30给分类上百门的课程的培训与咨询服务。

 

艾威凭借引进国际领先的课程知识体系和多年积累的丰富教学经验,结合中国本土企业文化、实际需求,为企业、个人提供定制化的培训解决方案。艾威已服务了超过 10000 多家客户,获得了良好的口碑!已被众多 500强企业纳入培训供应商,如 HP,NOKIA,CISCO,INTEL,GE,华为,宝马,德电,通用,大陆汽车,中国银行,交行,工行,罗氏,赛诺菲,埃森哲……等。

 
  • 2002年艾威成立上海办事处,并于2003年正式成立公司,开启全面培训业务
  • 2002年成为思科Cisco授权培训中心
  • 2003年成为Oracle授权培训中心
  • 2003年成为国际项目管理协会PMI授权的全球(PMP,PGMP,ACP,PBA)教育机构
  • 2005年成为国际需求管理协会IIBA授权的全球(ECBA,CCBA,CBAP)教育机构
  • 2008-2015年成为100+家央企、国企、外企指定培训供应商(惠普、诺基亚、德电、罗氏、中国银行、交通银行、中国海关等)。
  • 2015年艾威国际网校(edu.avtechcn.com)成立,引进数百门在线课程。
  • 2016年成为国际信息审计协会ISACA授权的CISA,CISM,CRISC,CGEIT,COBIT教育机构。
  • 2017年成为The Open Group授权的TOGAF企业架构的官方培训机构。
  • 2017年成为APMG与国际外包专业协会(IAOP)授权的外包治理国际认证SGF(Sourcing Governance Foundation)教育机构。
  • 2017年成为APMG与业务关系管理协会(BRMI)授权的BRMP、CBRM教育机构。
  • 2018年成为PeopleCert授权ITIL、Prince2、MSP培训及考试机构。
  • 2018年成为DRI授权CBCP培训及考试机构。
  • 2019年成为亚马逊培训合作伙伴。
  • 2019年成为国际云安全联盟CCSK授权培训合作伙伴。
  • 2020年艾威数字化人才培训中心成立,并首创发布了艾威MDD数字化人才三角模型及8大能力培训体系。
  • 2021年成为SAFe大规模敏捷认证官方培训机构。
  • 2021年成为DAMA国际数据管理协会CDGA/CGDP/CDMP数据管理认证官方培训机构。
  • 2022年艾威数字化人才培训中心成立一周年,进一步完善并升级“艾威MDD数字化人才三角模型及8大能力体系”为“艾威数字化人才18大能力罗盘”。