这个文档解释了如何在红帽企业版 Linux 6 系统中有效管理您的电源消耗。下面的部分讨论了降低电源消耗的不同技术(服务器和笔记本电脑),以及每个技术对您系统总体性能的影响。
电源管理是我们改进红帽企业版 Linux 6 的关注点之一。限制计算机的电源消耗是绿色 IT(环保、友好的计算)最重要的部分之一,它可延伸到很多方面,其中包括使用可回收材料、硬件产品对环境的影响以及设计和部署系统时的环保意识。在这篇文档中我们将提供有关运行红帽企业版 Linux 6 系统的电源管理的指导和信息。
达到政府法律法规中对绿色 IT 的要求,例如:能耗星级
红帽企业版 Linux 6 附带了很多新的电源管理特性,它们是默认启用的。所选的特性都不会对典型服务器或者桌面系统使用产生影响。但是对绝对需要最大吞吐量、最小延迟或者最高 CPU 性能的非常具体的使用案例则可能需要审查那些默认特性。
这个文档中描述的大多数技术都会显著影响您系统的性能。如果您选择使用使用比红帽企业版 Linux 6 中默认的现有电源管理更多的功能,您应该在电源优化后监控您的系统性能并决定性能损失是否可以接受。
只在需要时唤醒闲置的 CPU
红帽企业版 Linux 5 内核曾为每个 CPU 使用周期计时器。这个计时器防止 CPU 真正进入闲置状态,因为它要求 CPU 无论是否有进程在运行,都要处理每个计时器事件(根据设置几微妙出现一次)。有效电源管理的主要任务是减少 CPU 唤醒的频率。
因此,红帽企业版 Linux 6 中的 Linux 内核删除了周期计时器:结果是现在 CPU 的闲置状态是无空循环。这就防止了 CPU 在闲置状态下消耗不必要的电力。但是如果您的系统中有生成不必要计时器事件的应用程序就会抵消这个功能带来的好处。查询事件(比如音量更改、鼠标移动等)就属于此类事件。
在很多情况下要依赖先进的硬件并修正 BIOS 配置。旧的系统组件经常不支持一些红帽企业版 Linux 6 中支持的新特性。请确定您系统使用的是最新的官方固件,且在 BIOS 中的电源管理或者设备配置部分启用了电源管理功能。您需要查看的功能包括:
变频(SpeedStep)
PowerNow!
Cool'n'Quiet
ACPI (C 状态)
智能
如果您的硬件支持这些特性,且在 BIOS 中启用了这些特性,红帽企业版 Linux 6 将默认使用这些特性。
不同的 CPU 状态形式及效果
先进 CPU 与高级配置和电源接口(ACPI)共同提供不同的电源状态。三种不同的状态为:
以最低休眠状态运行的 CPU 可能消耗最少的电力,但在需要将其从该状态唤醒时也需要相对较长的时间。在很少情况下 CPU 需要在刚刚进入休眠状态后就马上需要被唤醒。这种情况导致一个持久有效的忙碌 CPU,并在已经使用另一种状态时可能丧失潜在的节电效果。
根据电源消耗审核和分析系统比较困难,即便使用最先进的系统也是如此。大多数系统不会提供测量软件耗能的必需工具。也有例外情况:惠普服务器系统的 ILO 管理控制台有电源模块,您可使用它访问网页。IBM 在其刀片中心电源管理模块中提供类似的解决方案。在有些 Dell 系统中,IT 助理也提供电源监控功能。其他零售商也乐于为其服务器平台提供类似的功能,但没有一个所有零售商都支持的单一解决方案可用。如果您的系统没有内置测量电源消耗的机制,还有其它一些方法可用。您可以为您的系统安装特殊的电源,它可通过 USB 提供电源消耗信息。Gigabyte Odin GT 550 W PC 电源就是一个例子,软件从那些 Linux 系统中读取的值可用于 http://mgmt.sresortth.sze.hu/~andras/dev/gopsu/。最后,有些外用电表,比如 Watts up? 产品也有 USB 接口。
当 PowerTOP 运行时会从系统中收集统计数据并为您显示几个重要信息列表。列表顶端是您的 CPU 核处于可用 C 状态和 P 状态的时间长度。CPU 处于 C 状态或者 P 状态时间越长越好(C4 高于 C3),也显示了是如何更好利用 CPU 的。您的目标应该是 90% 或者以上的时间 CPU 处于 C 状态或者 P 状态,其余时间系统处于闲置状态。
所有可用耗电估计值都跟着一个最常向 CPU 发送唤醒的组件详细列表。列表的顶端是那些您需要更详细调查以便优化系统降低能耗的组件。如果它们是内核组件(组件名称被列在 <> 中),那么唤醒通常与导致这些唤醒的特定驱动程序关联。调整驱动程序通常需要更改内核,这已经超出本文档涉及范围。但是,发送唤醒的用户空间进程更容易管理。首先要确认这个服务或者应用程序是否应该在这个系统中运行。如果不是,只要失活它即可。要永久关闭某个服务,请运行:
chkconfig servicename off
chkconfig servicename off
Copy to ClipboardCopied!Toggle word wrapToggle overflow
Less Watts 网站发布了由 PowerTOP 识别的保持 CPU 活跃的应用程序列表。请参考 http://www.lesswatts.org/projects/powertop/known.php。
红帽企业版 Linux 6 引进了 Battery Life Tool Kit(BLTK),它是一个模拟和分析电池寿命和性能的测试组件。BLTK 通过执行一组模拟特定用户组群的任务并报告结果达到此目的。虽然是特别用于测试笔记本电脑性能的开发,BLTK 还可使用 -a 在启动时报告桌面电脑性能。
模拟观看 CD 或者 DVD 驱动器中的多媒体文件(默认为 mplayer)
指定特定负载使用的文件,例如播放器负载要使用的文件,而不是访问 CD 或者 DVD 驱动器。
BLTK 支持大量更具体的选项。详情请参考 bltk man page。
Tuned 是监控系统组件使用的守护进程,并可根据监控信息动态调整系统设置。在任意正常运行的给定系统中,为各种系统组件进行动态帐户调整的方法都不尽相同。例如:在启动和登录过程中会大量使用硬盘,但在之后用户主要使用类似 OpenOffice 或者电子邮件客户端等程序时就几乎不使用硬盘了。同样,不同时间对 CPU 和网络设备的使用是不同的。Tuned 监控这些组件的活动并在其使用中有所改动。
以典型办公室工作站为例。大多数时间里,以太网网络接口将会非常不活跃。过一段时间只有一些电子邮件进出,或者载入一些网页。对于那类负载,网络接口不一定在所有时间都按默认设置那样全速运行。Tuned 有一个用于网络设备的监控和调整插件,可用来探测低活性,并自动降低接口速度,通常也就降低了电力消耗。如果接口活性在较长时间段内大幅度增长,例如下载 DVD 映像或者打开有大附件的电子邮件,tuned 可探测到这个情况并将接口速度设定为最大以便在高活性等级时提供最佳性能。这个原则也用于其他 CPU 和硬盘插件。
网络设备不是默认配置为这样动作,因为速度更改需要有几秒钟之后方可生效,因此对用户体验有直接和可见的影响。同样的考虑也适用于 CPU 和硬盘调整插件。当硬盘转速降低时,它可能需要几秒钟时间重新提高转速,这将导致系统在此阶段有明显的反应延迟。CPU 插件的延迟副作用最小,但仍可测到,只是用户很难注意到而已。
[main]
interval=10
pidfile=/var/run/tuned.pid
logging=info
logging_disable=notset
# Disk monitoring section
[DiskMonitor]
enabled=True
logging=debug
# Disk tuning section
[DiskTuning]
enabled=True
hdparm=False
alpm=False
logging=debug
# Net monitoring section
[NetMonitor]
enabled=True
logging=debug
# Net tuning section
[NetTuning]
enabled=True
logging=debug
# CPU monitoring section
[CPUMonitor]
# Enabled or disable the plugin. Default is True. Any other value
# disables it.
enabled=True
# CPU tuning section
[CPUTuning]
# Enabled or disable the plugin. Default is True. Any other value
# disables it.
enabled=True
[main]
interval=10
pidfile=/var/run/tuned.pid
logging=info
logging_disable=notset
# Disk monitoring section
[DiskMonitor]
enabled=True
logging=debug
# Disk tuning section
[DiskTuning]
enabled=True
hdparm=False
alpm=False
logging=debug
# Net monitoring section
[NetMonitor]
enabled=True
logging=debug
# Net tuning section
[NetTuning]
enabled=True
logging=debug
# CPU monitoring section
[CPUMonitor]
# Enabled or disable the plugin. Default is True. Any other value
# disables it.
enabled=True
# CPU tuning section
[CPUTuning]
# Enabled or disable the plugin. Default is True. Any other value
# disables it.
enabled=True
Copy to ClipboardCopied!Toggle word wrapToggle overflow
通常具体的系统审核和分析非常耗时,且这样做也不节能。之前,唯一的备选方案是使用默认设置。因此,红帽企业版 Linux 6 tuned-adm 工具中包含在两种极端状态间可作为备选使用的具体案例中的独立侧写,这样就可让您使用命令行在这些侧写间轻松进行切换。红帽企业版 Linux 6 包含很多用于典型案例的预定侧写,您只要使用 tuned-adm 命令即可选择并激活它们,但您也要自己创建、修改并删除侧写。
Copy to ClipboardCopied!Toggle word wrapToggle overflow
您第一次安装 tuned 时会激活 default 侧写。红帽企业版 Linux 6 还包括以下事先定义的侧写:
default
默认节能侧写。它在可用侧写节能中影响最小,只启用 CPU 和 tuned 磁盘插件。
在服务器系统中使用的节能侧写。为 SATA 主机适配器启用 ALPM 节能,禁止通过 HAL 调用光驱(请参考 hal-disable-polling man page)并激活 CPU 和 tuned 磁盘插件。
laptop-ac-powersave
在使用 AC 运行的笔记本电脑中使用的中度影响节能侧写。为 SATA 主机适配器、WiFi 节能以及 CPU、以太网和 tuned 磁盘插件启用 ALPM 节能。
cp -a /etc/tune-profiles/laptop-battery-powersave/ /etc/tune-profiles/myprofile
cp -a /etc/tune-profiles/laptop-battery-powersave/ /etc/tune-profiles/myprofile
Copy to ClipboardCopied!Toggle word wrapToggle overflow
在新侧写中修改文件以达到您的个人需要。例如:如果您要探测 CD 更改,则您可以通过注释出 ktune.sh 脚本中的相关行来禁用那个优化:
Disable HAL polling of CDROMS
for i in /dev/scd*; do hal-disable-polling --device $i; done > /dev/null 2>&1
# Disable HAL polling of CDROMS
# for i in /dev/scd*; do hal-disable-polling --device $i; done > /dev/null 2>&1
Copy to ClipboardCopied!Toggle word wrapToggle overflow
在红帽企业版 Linux 6 中,DeviceKit-power 承担原本是 HAL 一部分的电源管理功能,以及在之前的红帽企业版 Linux 发行本中的 GNOME Power Manager 的一部分功能(还可参考 第 2.7 节 “GNOME 电源管理器”)。DeviceKit-power 提供守护进程、API 和一组命令行工具。系统中的每个电源都使用一个设备代表,无论是否为物理电源。例如:笔记本电脑电池和交流电源都使用设备代表。
GNOME Power Manager 是作为 GNOME 桌面一部分安装的守护进程。GNOME Power Manager 在之前红帽企业版 Linux 版本中提供的很多电源管理功能已经在红帽企业版 Linux 6 中成为 DeviceKit-power 的一部分(请参考 第 2.6 节 “DeviceKit-power 和 devkit-power”)。但是 GNOME Power Manager 仍保留前端功能。在系统托盘中 GNOME Power Manager 可使用同一程序通知您系统电源状态的改变,例如:从电池更换到交流电。它还可报告电池状态并在电池电量低时提出警告。
GNOME Power Manager 还可允许您配置一些基本电源管理设置。要访问这些设置,请点击系统托盘中的 GNOME Power Manager 图标,然后点击「属性」。
使用「使用交流电」和「使用电池」标签指定必须经过多长时间方可关闭不活跃系统中的显示,必须经过多长时间方可将不活跃系统置于睡眠状态,以及是否在不使用系统时停止磁盘驱动器。「使用电池」标签还可允许您设置显示亮度并选择系统处于非常低电池容量时的行为。例如:默认情况下 GNOME Power Manager 在电池容量达到一定程度时使系统休眠。使用「常规」 标签设定系统中的(物理)电源按钮和挂起按钮行为,并指定在什么情况下在系统托盘中显示 GNOME Power Manager 图标。
红帽企业版 Linux 6 提供很多执行系统审核及分析的工具。大多数可作为附加信息资源使用,以防您需要对现有发现进行验证或者您需要对某部分信息进行更深入的研究。很多这些工具也可用于性能调试。它们包括:
vmstat
vmstat 为您给出有关进程、内存、paging、块 I/O、陷阱以及 CPU 活性的详细资料。用它可进一步查看系统都做了什么,以及什么地方忙碌。
使用 x86 构架的 CPU 支持不同的状态,在这些状态中部分 CPU 会被取消激活或者以低性能设置运行。这些状态,也就是我们知道的 C 状态,允许系统通过部分取消激活其不使用的 CPU 达到节能的目的。C 状态从 C0 开始用数字计算,数字越大代表 CPU 功能降低越多,也就越节能。虽然给定数字的 C 状态在不同处理器间类似,但为特定处理器或者处理器产品线使用的特定 C 状态的含义是特定的。C 状态 0-3 定义如下:
最近使用 "Nehalem" 微构架的 Intel CPU 有新的 C 状态,即 C6。它可将供应 CPU 的电压降低到 0,但通常的节能率在 80% 到 90% 之间。红帽企业版 Linux 6 中的内核包括对这个新 C 状态的优化。
减少系统电力消耗和散热的最有效的方法就是使用 CPUfreq。CPUfreq -- 也称 CPU 速度计,即允许随时调整处理器时钟速度。这让系统可在降低的时钟速度下运行以便节电。更改频率的规则,无论是加快还是减慢时钟速度,以及何时更改频率,都在 CPUfreq 调节器中定义。
调节器定义系统的电源属性,它可影响 CPU 性能。每个调节器有其自身的独特负载行为、目的和实用性。这部分描述了如何选择和配置 CPUfreq 调节器,每个调节器的属性以及每个调节器适用的负载种类。
本节列出了红帽企业版 Linux 6 中可用的不同 CPUfreq 调节器类型。
cpufreq_performance
性能调节器强制 CPU 使用可能的最高时钟频率。这个频率是静态设置的,不会改变。因此,这个特定的调节器不提供节能效益。它只适用于几个小时的高负载,且即使在那种情况下也只可用于 CPU 几乎不(或者从不)空闲的时候。
cpufreq_powersave
相反,节电调节器强制 CPU 使用最低可用时钟频率。这个频率将被静态设置,且不会更改。因此,这个特定调节器提供最大节能效益,但是以最低 CPU 性能为代价的。
这里"节电"有时是不正确的,因为(基本上)满负载的低速 CPU 消耗的能量比没有负载的高速 CPU 要多。因此,当建议在需要低性能时将 CPU 设定为使用节电调节器时,意外的高负载可能会导致系统实际消耗了更多的能量。
节电调节器对 CPU 简单来说更象是"限速器"而不是"节能器"。在过热时会出问题的系统和环境中最有用。
cpufreq_ondemand
按需调节器是一个动态调节器,它可允许 CPU 在系统负载高时达到最大时钟频率,还允许系统处于闲置时使用最小时钟频率。虽然这允许系统根据系统负载调整电源消耗,但也确实要承受频率切换间造成的延迟。因此,如果系统在闲置和高负载间切换过于频繁,那么延迟可抵消任何按需调节器带来的性能/节能优势。
Copy to ClipboardCopied!Toggle word wrapToggle overflow
您还可以查看某个具体 CPU 可使用的调节器,请使用:
如果没有为您的 CPU 列出可用的具体调节器,请使用 modprobe 启用您想要使用的调节器。例如:如果 ondemand 调节器不可用于您的 CPU,请使用以下命令:
modprobe cpufreq_ondemand
modprobe cpufreq_ondemand
Copy to ClipboardCopied!Toggle word wrapToggle overflow
将调节器列入您 CPU 的可用列表后,您可使用以下命令启用它:
scaling_setspeed — 用于更改 CPU 时钟速度,单位千赫。您只能在 CPU 策略限制中设定一个速度(根据 scaling_min_freq 和 scaling_max_freq)。
之前,Linux 内核在预定频率时周期性断系统中的每个 CPU - 100 Hz,250 Hz 或者 1000 Hz,具体要根据平台而定。内核查询 CPU 有关执行的进程,并使用结果进行进程计数和负载平衡。也就是我们知道的计时器刻度,内核执行这些中断时不考虑 CPU 的电源状态。因此,即使闲置的 CPU 也要每秒相应最多 1000 次的这种请求。在为闲置 CPU 使用节能方法的系统中,计时器刻度可妨碍 CPU 让系统保持足够长的闲置状态以达到从节能中获益的目的。
红帽企业版 Linux 6 内核运行无空循环:即它使用按需中断替换老的周期性计时器中断。因此可允许闲置 CPU 处于闲置状态直到请求执行新任务为止,且进入低功率状态的 CPU 可在此状态保持较长的时间。
主动连接电源管理(ALPM)是一项节能技术,其原理为通过在闲置时(就是没有 I/O 的时候)将到磁盘的 SATA 连接设定为低功率模式帮助磁盘节电。在那个连接中有 I/O 请求队列后,ALPM 会自动将 SATA 连接恢复为活跃电源状态。
要查看您的 SATA 主机适配器是否真正支持 ALPM,您可以查看是否有文件 /sys/class/scsi_host/host*/link_power_management_policy。要更改设置,只要在这些文件中写入本章节中描述的值或者显示文件检查当前设置即可。
红帽企业版 Linux 6 支持最近在硬件中使用的功率封顶,比如 HP 的动态功率封顶(DPC)以及 Intel 的节点管理器(NM)技术。功率封顶允许管理员使用服务器限制功率消耗,但它还可允许管理器更有效地规划数据中心,因为极大降低了现有电源供应的超载风险。管理器可在同一物理印迹中放置更多的服务器并确定如果服务器电源消耗封顶,在高负载时对电源的需求会超出可用的电源。
HP 动态功率封顶
动态功率封顶是一个在选择 ProLiant 和刀片系统服务器时的特性,它可允许系统管理员对一个服务器或者一组服务器的电源消耗封顶。这个封顶是一个绝对限制,无论其当前工作负载如何,服务器将无法超过该限制。这个封顶只在服务器达到其电源消耗限制时才起效。此时某个管理进程会调整 CPU P 状态和始终刻度来限制电力消耗。
动态功率封顶会修改独立操作系统的 CPU 行为,但是 HP 的集成的 Lights-Out 2(iLO2)固件允许操作系统访问管理处理器,因此用户空间中的应用程序可查询管理处理器。红帽企业版 Linux 6 中使用的内核包括用于 HP iLO 和 iLO2 固件的驱动程序,它们可允许程序查询 /dev/hpilo/dXccbN 中的管理处理器。该内核还包括 hwmonsysfs 接口扩展来支持功率封顶特性,以及用于 ACPI 4.0 使用 sysfs 接口电源米表的驱动程序。这些特性允许操作系统和用户空间工具共同读取为功率封顶配置的值以及系统的当前电源用量。
有关 HP 动态功率封顶详情请参考《HP 功率封顶以及用于 ProLiant 服务器的 HP 动态功率封顶》,地址为:http://h20000.www2.hp.com/bc/docs/support/SupportManual/c01549455/c01549455.pdf
Intel 节点管理器
Intel 节点管理器在系统中强制使用功率封顶,使用处理器 P 状态和 T 状态限制 CPU 性能,并因此节能。通过设置电源管理策略,管理员可将系统配置为在系统负载低时,比如夜间或者周末,消耗较少的电力。
Intel 节点管理器使用直接操作系统配置和电源管理(OSPM)通过标准高级配置和电源接口调整 CPU 性能。当 Intel 节点管理器通知 OSPM 驱动程序更改到 T 状态时,该驱动程序会响应并更改处理器 P 状态。同样,当 Intel 节点管理器通知 OSPM 驱动程序更改到 P 状态时,该驱动程序也会相应更改 T 状态。这些更改自动进行且不需要操作系统有进一步的输入。管理员使用Intel 数据中心管理器(DCM)软件配置并监控 Intel 节点管理器。
红帽企业版 Linux 6 通过删除不必要的资源消耗在图形和显示设备中节能。
同步动态随机访问内存(SDRAM) - 由于用于图形适配器的视频内存,因此每秒会重复充电上千次,以便每个内存单元可保留保存在其中的数据。除了管理数据的主要功能外,因为有数据流入或者流出内存,所以内存控制器通常负责初始化这些刷新循环。但是 SDRAM 还有一个低功率自动刷新模式。在这个模式中,内存使用内部计时器生成其自身刷新循环,它可允许系统在不损害当前内存数据的情况下关闭内存控制器。红帽企业版 Linux 6 使用的内核可在 Intel 图形适配器处于闲置状态时触发内存自动刷新,并可节约 0.8 W 左右的电力。
GPU 时钟修订
典型图形处理单元(GPU)包含管理其内部电路不同部分的内部时钟。红帽企业版 Linux 6 使用的内核可降低部分 Intel 和 ATI GPU 的内部时钟频率。减少 GPU 组件在给定时间内执行循环的次数可减少其在那些它们不一定要执行的循环中消耗的能量。当 GPU 闲置时,内核可自动降低这些时钟的速度;同时当 GPU 活性增强时会提高其时钟速度。降低 GPU 时钟循环最多可节省 5 W 电力。
GPU 关闭
红帽企业版 Linux 6 中使用的 Intel 和 ATI 图形驱动程序可探测到什么时候适配器中没有连接显示器,并完全关闭 GPU。这个功能对不经常连接显示器的服务器尤为重要。
RFKill 是 Linux 内核中的一个子系统,它可提供一个界面,在此界面中可查询、激活并取消激活计算机系统中的无线电传输。当取消激活传输时,可使其处于可被软件重新激活的状态(软锁定)或者将其放在软件无法重新激活的位置(硬锁定)。
RFKill 核为子系统提供应用程序编程界面(API)。内核驱动程序被设计为支持 RFKill 使用这个 API 注册内核,并包含启用和禁用这个设备的方法。另外,RFKill 核提供用户程序可解读的通知以及用户程序查询传输状态的方法。
减少系统硬件的工作量是节能的关键。因此虽然 第 3 章 核心基础结构及技巧 中描述的更改允许系统在减少电源消耗的各种状态下操作,而用户空间中要求系统硬件进行不必要工作的程序会阻止硬件进入这种状态。在红帽企业版 Linux 6 开发过程中,在以下区域执行审核来降低硬件的不必要需求:
减少唤醒
红帽企业版 Linux 6 使用无空循环内核(请参考 第 3.4 节 “无空循环内核”),它允许 CPU 保持深度闲置状态的时间更长一些。但是计时器刻度不是过度 CPU 唤醒的唯一原因,来自程序的功能调用还可阻止 CPU 进入或者保持闲置状态。可在 50 多个程序中减少不必要的功能调用。
现在典型的标准服务器基本都包含红帽企业版 Linux 6 中支持的所有所需硬件功能。您的首要考虑是该服务器主要使用的负载类型。根据这个信息您可以决定要优化哪些组件节能。
打开按需调节器,因为 CPU 最后的几个百分比并不重要。
文件服务器的需要与邮件服务器类似,但根据所用协议,可能需要更多的 CPU 性能。通常,基于 Saba 的服务器需要的 CPU 比 NFS 多,而 NFS 又比 iSCSI 需要更多的 CPU。即使如此,您应可以使用按需调节器。
请使用按需调节器(红帽企业版 Linux 6 中默认启用)
不必要 CPU 唤醒以及未有效使用唤醒。如果您必须执行唤醒,尽快一次做完所有的事(迅速返回闲置状态)。
C 线程共享同一内存,每个线程都有自己的栈,同时内核不一定要生成新的文件描述符并分配新的内存空间。C 可以真正在更多线程中使用更多 CPU 支持。因此要最大化您的线程性能,请使用低级语言,比如 C 或者 C++。如果您使用脚本语言,请考虑写入一个 C 绑定。请使用分析器识别不能很好执行的代码。[4]
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.