centos7新特性以及与centos6的差异

网友投稿 884 2023-03-08

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

centos7新特性以及与centos6的差异

Centos7 特性

构架和限制

构架

只有 64 位硬件支持 Red Hat Enterprise Linux 7.0 安装。Red Hat Enterprise Linux 7.0 可将 32 位操作系统作为虚拟机运行,其中包括之前的 Red Hat Enterprise Linux 版本。

Red Hat Enterprise Linux 7.0 在以下架构中作为单一套件使用。 ⁠:

64-bit AMD64-bit IntelIBM POWER7 和 POWER8IBM System z (支持 IBM zEnterprise 196 硬件或者更新的版本)

功能和限制

下表列出了 Red Hat Enterprise Linux 7 与之前的版本 5 和版本 6 之间的功能及限制对比。⁠

表 3.1. Red Hat Enterprise Linux 5、6 和 7 的限制

Red Hat Enterprise Linux 5Red Hat Enterprise Linux 6Red Hat Enterprise Linux 7
最大逻辑 CPU
x86_64160/255160/4096160/5120
POWER128/128128待评估
System z101 (zEC12)101 (zEC12)待评估
最大内存
x86_641 TB支持 3 TB/64 TB支持 3 TB/64 TB
POWER最小 512 GB/建议 1 TB2 TB2 TB
System z3 TB (z196)3 TB (z196)3 TB (z196)
最低要求
x86_64最小 512 MB/建议每个逻辑 CPU 1 GB最小 1GB/建议每个逻辑 CPU 1 GB最小 1GB/建议每个逻辑 CPU 1 GB
POWER1 GB/建议 2 GB2 GB/每个 Red Hat Enterprise Linux 安装 2 GB2 GB/每个 Red Hat Enterprise Linux 安装 2 GB
System z512 MB512 MB1 GB ⁠[a]
文件系统及存储限制
最大文件大小:XFS16 TB16 TB16 TB
最小文件大小:ext416 TB16 TB50 TB
最大文件大小:BtrfsN/A待评估待评估
最大文件系统大小:XFS100 TB ⁠[b]100 TB500 TB
最大文件系统大小:ext416 TB16 TB50 TB
最大文件系统大小:BtrfsN/A待评估50 TB
最大引导 LUN 大小2 TB16 TB ⁠50 TB
每个进程地址大小的最大值:x86_642 TB128 TB128 TB
[a] 在 IBM System z 中安装建议 1 GB 以上。

[b] Red Hat Enterprise Linux 版本 5.5 或者之后的版本支持最大为 100 TB 的 XFS 文件系统大小。

 注:大于 2 TB 的引导 LUN 支持需要 UEFI 和 GPT 支持。

Red Hat Enterprise Linux 5Red Hat Enterprise Linux 6Red Hat Enterprise Linux 7最大逻辑 CPU   x86_64160/255160/4096160/5120POWER128/128128待评估System z101 (zEC12)101 (zEC12)待评估最大内存   x86_641 TB支持 3 TB/64 TB支持 3 TB/64 TBPOWER最小 512 GB/建议 1 TB2 TB2 TBSystem z3 TB (z196)3 TB (z196)3 TB (z196)最低要求   x86_64最小 512 MB/建议每个逻辑 CPU 1 GB最小 1GB/建议每个逻辑 CPU 1 GB最小 1GB/建议每个逻辑 CPU 1 GBPOWER1 GB/建议 2 GB2 GB/每个 Red Hat Enterprise Linux 安装 2 GB2 GB/每个 Red Hat Enterprise Linux 安装 2 GBSystem z512 MB512 MB1 GB ⁠[a]文件系统及存储限制   最大文件大小:XFS16 TB16 TB16 TB最小文件大小:ext416 TB16 TB50 TB最大文件大小:BtrfsN/A待评估待评估最大文件系统大小:XFS100 TB ⁠[b]100 TB500 TB最大文件系统大小:ext416 TB16 TB50 TB最大文件系统大小:BtrfsN/A待评估50 TB最大引导 LUN 大小2 TB16 TB ⁠50 TB每个进程地址大小的最大值:x86_642 TB128 TB128 TB [a] 在 IBM System z 中安装建议 1 GB 以上。[b] Red Hat Enterprise Linux 版本 5.5 或者之后的版本支持最大为 100 TB 的 XFS 文件系统大小。 注:大于 2 TB 的引导 LUN 支持需要 UEFI 和 GPT 支持。

软件包及支持变化

淘汰的软件包

淘汰的软件包

功能/软件包替代品迁移记录
ext2、ext3 文件系统支持ext4可在 ext2 和 ext3 文件系统中使用 ext4 代码
sblim-sfcbtog-pegasus
传统 RHN 托管的注册subscription-manager 和 Subscription Asset Manager
acpidsystemd
evolution-mapievolution-ews请从 Microsoft Exchange Server 2003 机器中迁移
gtkhtml3webkitgtk3
用户信息选项
edac-utils 和 mcelograsdaemon
libcgroupsystemdRed Hat Enterprise Linux 7.0 将继续使用 cgutils,但systemd 改进了让用户在今后的发行本中进行迁移的能力。
krb5-applopensshOpenSSH 包含拥有类似功能的工具,并采用更活跃的维护标准和更活跃的开发和维护代码库。
lvm1lvm2
lvm2mirror 和 cmirrorlvm2 raid1lvm2 raid1 不支持集群,还没有计划替换 cmirror。

功能/软件包替代品迁移记录ext2、ext3 文件系统支持ext4可在 ext2 和 ext3 文件系统中使用 ext4 代码sblim-sfcbtog-pegasus 传统 RHN 托管的注册subscription-manager 和 Subscription Asset Manager acpidsystemd evolution-mapievolution-ews请从 Microsoft Exchange Server 2003 机器中迁移gtkhtml3webkitgtk3 用户信息选项 edac-utils 和 mcelograsdaemon libcgroupsystemdRed Hat Enterprise Linux 7.0 将继续使用 cgutils,但systemd 改进了让用户在今后的发行本中进行迁移的能力。krb5-applopensshOpenSSH 包含拥有类似功能的工具,并采用更活跃的维护标准和更活跃的开发和维护代码库。lvm1lvm2 lvm2mirror 和 cmirrorlvm2 raid1lvm2 raid1 不支持集群,还没有计划替换 cmirror。

删除的软件包

删除的软件包

淘汰的驱动程序和模块

图形驱动程序xorg-x11-drv-ast、xorg-x11-drv-cirrus、xorg-x11-drv-mach64、xorg-x11-drv-mga、xorg-x11-drv-openchrome

注:上述图形驱动程序将由内核模式设置(KMS)驱动程序替换。

输入驱动程序

xorg-x11-drv-void

存储驱动程序

3w-9xxx、arcmsr、aic79xx、Emulex lpfc820

不再继续使用的内核驱动程序、模块及功能

Red Hat Enterprise Linux 6 已从 Red Hat Enterprise Linux 7.0 中删除的驱动程序及模块列表。

存储驱动程序

megaraid_mm、cciss、aic94xx、aic7xxx、i2o、ips、megaraid_mbox、mptlan、mptfc、sym53c8xx、ecryptfs、3w-xxxx

联网驱动程序

图形驱动程序xorg-x11-drv-acecad、xorg-x11-drv-aiptek、xorg-x11-drv-elographics、xorg-x11-drv-fpit、xorg-x11-drv-hyperpen、xorg-x11-drv-mutouch、xorg-x11-drv-penmount

输入驱动程序

xorg-x11-drv-acecad、xorg-x11-drv-aiptek、xorg-x11-drv-elographics、xorg-x11-drv-fpit、xorg-x11-drv-hyperpen、xorg-x11-drv-mutouch、xorg-x11-drv-penmount

存储与文件系统

存储

⁠LIO 内核目标子系统

Red Hat Enterprise Linux 7.0 使用 LIO 内核目标子系统,它是块存储的标准开源 SCSI 目标,可用于以下存储介质:FcoE、iSCSI、iSER(Mellanox InfiniBand)和 SRP(Mellanox InfiniBand)。Red Hat Enterpise Linux 6 使用 SCSI 目标守护进程 tgtd 为 iSCSI 目标提供支持,同时在以太网光纤通道(FCoE)中只使用 fcoe-target-utils 软件包提供的 Linux 内核目标 LIO。targetcli shell 提供 LIO Linux SCSI 目标的常规管理平台。

⁠快速块设备为较慢的块设备提供缓存

Red Hat Enterprise Linux 7.0 中引进让快速块设备作为较慢块设备的缓存的功能作为技术预览。这个功能可让 PCIe SSD 设备作为直接附加存储(DAS)或者存储局域网(SAN)存储的缓存使用,以便提高文件系统性能。

⁠LVM 缓存

Red Hat Enterprise Linux 7.0 引进了 LVM 缓存作为技术预览。这个功能可让用户创建逻辑卷,使用一个小的快速设备作为较大的慢速设备的缓存。有关生成缓存逻辑卷的详情请参考 lvm(8) manual page。注:在缓存逻辑卷中尚不能使用下列命令:

pvmove:跳过所有缓存逻辑卷,lvresize, lvreduce, lvextend:目前无法重新定义缓存逻辑卷大小,vgsplit:当有缓存逻辑卷存在时不能分割卷组。

⁠使用 libStorageMgmt API 进行存储阵列管理

Red Hat Enterprise Linux 7.0 引进了存储阵列管理作为技术预览。libStorageMgmt 是独立于存储阵列的应用程序编程界面(API)。它提供稳定且持久的 API,可让开发人员以编程方式管理不同的存储阵列,并利用所提供的硬件加速功能。系统管理员还可以将其作为手动管理存储的工具使用,同时使用附带的命令行界面(CLI)自动化存储管理任务。

⁠LSI Synchro 支持

⁠LVM 应用程序编程界面

Red Hat Enterprise Linux 7.0 提供新的 LVM 应用程序编程界面(API)作为技术预览。使用这个 API 可查询并控制 LVM 的具体方面。

⁠DIF/DIX 支持

DIF/DIX 是 SCSI 标准的新版本,同时在 Red Hat Enterprise Linux 7.0 中也是技术预览。DIF/DIX 将通常使用的 512 字节磁盘块大小从 512 字节增大到 520 字节,添加了数据完整性字段(DIF)。DIF 在发生写入操作时为主机总线适配器(HBA)计算的数据库保存 checksum 值。该存储设备在收到 checksum 后确认,并同时保存该数据和 checksum。相反,当发生读取操作时,可在收到 HBA 后由该存储设备检查 checksum。详情请参考启用了 DIF/DIX 的块设备一节,网址《存储管理指南》。

⁠支持平行 NFS

文件系统

⁠支持 XFS 文件系统

目前使用 Anaconda 安装的 Red Hat Enterprise Linux 7.0 中使用的默认文件系统是 XFS,它替换了在 Red Hat Enterprise Linux 6 中使用的第四代扩展的文件系统(ext4)。ext4 和 Btrfs(B-Tree)文件系统可作为 XFS 的备选。XFS 是高度可扩展、高性能文件系统,最初由 Silicon Graphics, Inc 设计,目的是为了支持高达 16 艾字节(约 1600万TB)的文件系统,多达 8 艾字节(约 800万TB)以及包含数千万条目的目录结构。XFS 支持元数据日志,它可加快崩溃的恢复。XFS 文件系统还可在挂载且活跃的情况下进行清理碎片和扩展操作。有关 ext4 和 XFS 间常规任务所使用命令的不同请参考《安装指南》中的参考表格。

⁠支持 IBM System z 中的 libhugetlbfs

目前支持 IBM System z 架构中的 libhugetlbfs 库。该库允许 C 和 C++ 程序中的大页面透明开发。应用程序及中间件程序可从其性能优点或者大页面中受益而无需进行更改或者重新编译。

内核

内核

Red Hat Enterprise Linux 7.0 采用 kernel 版本 3.10,该版本提供大量新功能,主要列举如下。

⁠支持大的 crashkernel 大小

Red Hat Enterprise Linux 7.0 支持在有大内存(最大为 3TB)的系统中使用 kdump 崩溃转储机制。

⁠在一个以上 CPU 中使用 crashkernel

Red Hat Enterprise Linux 7.0 启用在一个以上 CPU 中引导 crashnernel 的功能。这个功能作为技术预览支持。

⁠Swap 内存压缩

Red Hat Enterprise Linux 7.0 引进了一个新功能,即 swap 内存压缩。Swap 压缩由 zswap 执行,这是一个用于 frontswap 的精简后端。采用 swap 内存压缩技术可保证显著减少 I/O 并提高性能。

⁠采用 NUMA 的调度和内存分配

在 Red Hat Enterprise Linux 7.0 中,内核会在同一系统的不同 NUMA 节点间自动重置进程和内存以提高没有统一内存访问(NUMA)系统的性能.

⁠APIC 虚拟化

通过利用新处理器的硬件功能支持高级程序中断控制器(APIC)注册的虚拟化以便提高虚拟机监视器(VMM)中断处理能力。

⁠vmcp 内嵌在内核中

在 Red Hat Enterprise Linux 7.0 中,vmcp 内核模块内嵌在内核中。这可保证 vmcp 设备节点总会出现,同时用户可在不首先载入 vmcp 内核模块的情况下发送 IBM z/VM hypervisor 控制程序命令。

⁠硬件错误报告机制

目前,Linux 的硬件报错机制还不完善,多数是由各种工具(mcelog 和 EDAC)造成,这些工具从不同源采用不同方法以及不同工具(比如:mcelog, edac-utils 和 syslog)收集出错信息,报告出错事件。硬件报错问题可分为两个方面:

收集各种数据,有时是重复数据的不同错误数据收集机制,以及在不同位置使用不同时间戳报告这些数据的不同工具,使其与事件关联变得困难。

Red Hat Enterprise Linux 7.0 中的新硬件事件报告机制,也称 HERM 的目标是统一来自不同源的出错数据集合,并采用连续时间线和单一位置向用户控件报告出错事件。Red Hat Enterprise Linux 7.0 中的 HERM 引进了新的用户空间守护进程 rasdaemon,它可捕获并处理所有来自内核追踪架构的可依赖性、可用性及可服务性(RAS)出错事件,并记录它们。Red Hat Enterprise Linux 7.0 中的 HERM 还提供报告那些错误的工具,并可探测不同类型的错误,比如 burst 和 sparse 错误。

⁠全面 DynTick 支持

nohz_full 引导参数将最初的无缝内核功能延伸到额外的情况,比如可以停止 tick 的时候,可以使用 per-cpu nr_running=1 设置的时候。即在 CPU 的运行队列中只有一个可运行的任务。

⁠将内核模块列入黑名单

Red Hat Enterprise Linux 7.0 提供 modprobe 程序可让用户在安装时将内核模块放入黑名单。要禁用自动载入一个模块,请运行以下命令:

modprobe.blacklist=module

⁠动态内核补丁

Red Hat Enterprise Linux 7.0 引进了 kpatch,一个动态内核补丁管理程序作为技术预览。用户可使用 kpatch 管理二进制补丁集合,它可在不重启的情况下动态为内核打补丁。

⁠Emulex ocrdma 驱动程序

Emulex ocrdma 驱动程序在 Red Hat Enterprise Linux 7.0 中是作为技术预览提供。该驱动程序为具体的 Emulex 适配器提供远程直接内存访问(RDMA)功能。

⁠dm-era 目标

Red Hat Enterprise Linux 7.0 引进了 dm-era 设备映射器目标作为技术预览。dm-era 可跟踪在用户定义的时间段(即“era”)内写入的块。每个 era 目标事务可将当前 era 单调地增加到 32 位计数器。这个目标允许备份软件追踪自上次备份后有变化的块。它还允许在返回经销商快照后部分失效的缓存内容恢复缓存一致性。dm-era 目标主要与 dm-cache 目标配对。

虚拟化

基于内核的虚拟化

⁠使用 virtio-blk-data-plane 提高快 I/O性能

在 Red Hat Enterprise Linux 7.0 中,virtio-blk-data-plane I/O 虚拟化功能是作为技术预览使用。这个功能将 QEMU 扩展至在为 I/O 性能优化的专用线程中执行磁盘 I/O。

⁠PCI 桥接

之前 QEMU 最多可支持 32 个 PCI 插槽。Red Hat Enterprise Linux 7.0 采用 PCI 桥接技术,可让用户配置 32 个以上的 PCI 设备。注:不支持桥接后的设备热插拔。

⁠QEMU 沙箱

Red Hat Enterprise Linux 7.0 使用内核系统调用过滤加强 KVM 虚拟化安全性,这提高了主机系统与虚拟机之间的独立性。

⁠支持 QEMU 虚拟 CPU 热添加

Red Hat Enterprise Linux 7.0 中的 QEMU 提供虚拟 CPU(vCPU)热添加支持。可在运行的虚拟机中添加虚拟 CPU(vCPUS)以满足与负载关联的负载要求或者保持服务等级协议(SLA)。注:只在使用 pc-i440fx-rhel7.0.0 机器类型的虚拟机中支持 vCPU 热插拔,这是 Red Hat Enterprise Linux 7.0 中的默认机器类型。

⁠多队列 NIC

多队列 virtio_net 提供更好的可延伸性。每个虚拟 CPU 都有独立的传输或者接收队列以及可在不影响其他虚拟 CPU 的情况下使用的独立中断。

⁠多队列 virtio_scsi

多队列 virtio_net 提供更好的可延伸性。每个虚拟 CPU 都有独立的队列以及可在不影响其他虚拟 CPU 的情况下使用的独立中断。

⁠实时迁移的页面 Delta 压缩

已通过压缩虚拟机内存页并减小传输的迁移数据大小提高 KVM 实时迁移功能。这个功能可让迁移至集合更迅速。

⁠KVM 中的 HyperV 启示

已使用多个微软 Hyper-V 功能更新了 KVM,例如:支持内存管理单元(MMU)和虚拟中断控制程序。微软在虚拟机和主机之间提供半虚拟 API,通过在主机中使用这个功能的一部分,并根据微软的说明对其进行控制,微软 Windows 虚拟机就可以提高其性能。

⁠高带宽 I/O的 EOI 加速

Red Hat Enterprise Linux 7.0 在高级可编程中断控制程序(APIC)中使用 Intel 和 AMD 的改进加速中断结束(EOI)处理。对于老的芯片组来说,Red Hat Enterprise Linux 7.0 为 EOI 加速提供了半虚拟化选项。

⁠KVM 虚拟机的 USB 3.0 支持

Red Hat Enterprise Linux 7.0 通过添加 USB 3.0 主机适配器(xHCI)模拟作为技术预览提供改进的 USB 支持。

⁠Windows 8 和 Windows Server 2012 虚拟机支持

Red Hat Enterprise Linux 7.0 支持在 KVM 虚拟机中运行的微软 Windows 8 和 Windows Server 2012 虚拟机。

⁠QEMU 虚拟机的 I/O 节流

这个功能为 QEMU 虚拟机块设备提供 I/O节流。I/O 节流会延缓 I/O 内存请求的处理。这样会延迟系统但可防止其死机。注:不能节流数据层。

⁠整合膨胀和透明大页面

Red Hat Enterprise Linux 7.0 更好地整合了膨胀和透明大页面。可移除并压缩膨胀页面使其成为大页面。

⁠从主机中提取系统熵

可为虚拟机配置一个新设备 virtio-rng,它可让虚拟机使用主机的熵。默认情况下,这个信息来自主机的 /dev/random 文件,但主机中可用的硬件随机号码生成程序(RNG)也可作为来源使用。

⁠桥接零复制传输(Bridge Zero Copy Transmit)

桥接零复制传输是提高 CPU 处理大量信息的性能特点。这个桥接零复制传输功能提高了虚拟机在使用桥接时的外出流量性能。

⁠实时迁移支持

支持从 Red Hat Enterprise Linux 6.5 主机到 Red Hat Enterprise Linux 7.0 主机的实时迁移。

⁠qemu-kvm 中的丢弃支持

在域的 XML 定义的  元素中添加 discard='unmap' 后,就可以在虚拟机中使用 fstrim 或者 mount -o discard 命令的丢弃支持。例如:

   3.     4.     ...5.  

⁠NVIDIA GPU 设备分配

Red Hat Enterprise Linux 7.0 支持 NVIDA 专业系列显示设备(GRID 和 Quadro)的设备分配作为模拟 VGA 的第二图形设备。

⁠半虚拟 Ticketlock

Red Hat Enterprise Linux 7.0 支持半虚拟 ticketlocks(pvticketlocks)以提高在过度使用 CPU 的 Red Hat Enterprise Linux 7.0 主机中运行的 Red Hat Enterprise Linux 7.0 虚拟机性能。

⁠处理分配的 PCIe 设备出错

如果在将使用高级出错报告(Advanced Error Reporting,AER)的 PCIe 分配给虚拟机时出错,则受到影响的虚拟机会关机,但不影响其他正在运行的虚拟机或者主机。该设备的主机驱动程序从错误中恢复后就可以让该虚拟机重新运行。

⁠Q35 芯片组,PCI 快速总线以及 AHCI 总线模拟

Q35 机型需要 KVM 虚拟机中的 PCI 快速总线支持,它是作为技术预览在 Red Hat Enterprise Linux 7.0 中提供。包含 AHCI 总线也只能在 Q35 机型中使用,同样也是技术预览。

⁠基于 VFIO 的 PCI 设备分配

虚拟功能 I/O(VFIO)用户空间驱动程序界面为 KVM 虚拟机提供改进的 PCI 设备分配解决方案。VFIO 提供内核级设备分离强化,提高设备访问的安全性,并与安全引导等功能兼容。VFIO 替换了 Red Hat Enterprise Linux 6 中使用的 KVM 设备分配机制。

⁠Intel VT-d 大页面

在 Red Hat Enterprise Linux 7.0 的 KVM 虚拟机中使用虚拟功能 I/O(VFIO)设备分配时,使用 2MB 页面作为输入/输出内存管理单位(IOMMU),因此可减少 I/O 操作的转译后备缓存(translation lookaside buffer ,TLB)的消耗。计划在 Red Hat Enterprise Linux 7.0 中提供 1GB 页面支持。VT-d 大页面功能支持目前仅限于 Intel 的平台。

⁠KVM 时钟获取时间性能

在 Red Hat Enterprise Linux 7.0 中加强了 vsyscall 机制以支持 KVM 虚拟机更迅速地从用户控件读取时钟。Red Hat Enterprise Linux 7.0 主机中运行的 Red Hat Enterprise Linux 7.0 虚拟机可体验到经常读取时间的应用程序的性能提高。

⁠图像格式的 QCOW2 版本 3

Red Hat Enterprise Linux 7.0 添加对图像格式的 QCOW2 版本 3 的支持

⁠改进的实时迁移统计

现在可使用实时迁移的有关信息分析和调试性能。改进的统计包括预期关机、关机或者脏页面比例。

⁠实时迁移线程

已将 KVM 实时迁移功能改进为支持线程处理。

⁠字符设备和串行端口的热插拔

目前 Red Hat Enterprise Linux 7.0 支持为新字符设备热插拔新串行端口。

⁠模拟 AMD Opteron G5

KVM 现在可以模拟 AMD Opteron G5 处理器。

⁠在 KVM 虚拟机中支持新的 Intel 指令

KVM 虚拟机可以使用 Intel 22nm 处理器支持的新指令。这些包括:

浮点乘加器,256 位整数向量,大端移动指令(MOVBE)支持,或者 HLE/HLE+。

⁠VPC 和 VHDX 文件格式

Red Hat Enterprise Linux 7.0 中的 KVM 包括对微软虚拟 PC(VPC)和微软 Hyper-V 虚拟硬盘(VHDX)文件格式的支持。

⁠libguestfs 新功能

libguestfs 是一组访问和修改虚拟机磁盘映像的工具。Red Hat Enterprise Linux 7.0 中的libguestfs 包括大量改进,最主要的包括:

使用 SELinux 或者 sVirt 包含的安全虚拟化,保证加强针对恶意和畸形磁盘映像的安全性。可检查和修改远程磁盘,最开始是使用网络块设备(NBD)。在某些程序中可进行磁盘热插拔以便获得更好的性能。

⁠WHQL 认证的 virtio-win 驱动程序

Red Hat Enterprise Linux 7.0 包括用于最新微软 Windows 虚拟机,即 Microsoft Window 8, 8.1, 2012 和 2012 R2 的 Windows 硬件质量实验室(WHQL)认证的 virtio-win 驱动程序。

Xen

⁠Red Hat Enterprise Linux 7.0 Xen HVM 虚拟机

用户现在可以在广受欢迎的 Xen 环境中使用 Red Hat Enterprise Linux 7.0 作为虚拟机。

Hyper-V

⁠Red Hat Enterprise Linux 7.0 托管的第二代虚拟机

Red Hat Enterprise Linux 7.0 可作为 Microsoft Hyper-V Server 2012 R2 主机中的第二代虚拟机。除上一代虚拟机支持的功能外,第二代提供了虚拟机中的新功能,例如:安全引导,使用 SCSI 虚拟硬盘引导或者 UEFI 固件支持。

集群

Pacemaker 集群管理器

Red Hat Enterprise Linux 7.0 使用 Pacemaker 替换 rgmanager 进行集群资源管理以及从节点失败中恢复。Pacemaker 的优点包括:

资源配置的自动同步和版本管理。灵活的资源和 fencing 模式可与用户环境更紧密地对应。可使用 fencing 恢复资源层失败。基于时间的配置选项。在多节点中运行同一资源的能力。例如:网页服务器或者集群文件系统。在两个不同模式之一的多个节点中运行同一资源的能力。例如:同步资源和目标。Pacemaker 不需要分布式锁管理程序。仲裁丢失或者形成多个分区时的可配置行为。

使用 keepalived 和 HAProxy 替换 Piranha

Red Hat Enterprise Linux 7.0 使用 keepalived 和 HAProxy 替换了负载平衡程序 Piranha。keepalived 软件包提供简单且强大的负载平衡和高可用功能。负载平衡框架依赖大家熟知且广泛使用的 Linux 虚拟服务器内核模块,提供四级网络负载平衡。keepalived 守护进程在负载平衡的服务器池中根据其状态采用一组状态检查程序。keepalived 守护进程还采用虚拟路由器冗余协议(VRRP),允许路由器或者管理器故障切换以便提供高可用性。HAProxy 为 TCP 和 HTTP 应用程序提供一个可靠的高性能网络负载平衡程序。它特别适用于在需要持久性或者 Layer7 处理时有非常高负载的网页。

高度可用性管理

Pacemaker 配置系统,也称 pcs,替换了 ccs、ricci 和 luci 作为统一的集群配置和管理工具。pcs 的优点包括:

命令行工具。可轻松自我启动集群,即初始化集群并使其开始运行。可配置集群选项。可添加、删除或者修改资源及其之间的关系。

新的资源代理

Red Hat Enterprise Linux 7.0 提供大量资源代理。资源代理时集群资源的标准化接口。资源代理可将一组标准操作转换为具体资源或者应用程序的步骤,并将其结果解读为成功或者失败。

编译程序及工具

GCC 工具链

在 Red Hat Enterprise Linux 7.0 中,gcc 工具链是根据 gcc-4.8.x 发行系列开发,并包含大量针对 Red Hat Enterprise Linux 6 的改进和 bug 修复。同样,Red Hat Enterprise Linux 7 也包含binutils-2.23.52.x。这些版本与 Red Hat Developer Toolset 2.0 中的等效工具对应。Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 gcc 的 binutils 版本对比请查看:

Red Hat Enterprise Linux 7.0 工具链的主要特点如下:

构建符合 C++11 的应用程序的实验性支持(其中包括所有 C++11 语言支持)和一些 C11 功能的实验性支持。改进的并行应用程序编程支持,其中包括 OpenMP v3.1, C++11 类型和自动内存访问的 GCC 内嵌,以及事务内存的实验性支持(其中包括 Intel RTM/HLE 内联函数、内嵌以及代码生成)。新的本地注册分配程序(LRA),提高代码性能。DWARF4 现在作为默认 debug 格式使用。各种新的具体架构选项。支持 AMD 产品线 15h 和 16h 处理器。接期(Link-time)优化支持。改进的警告和诊断。各种新的 Fortran 功能。

GLIBC

在 Red Hat Enterprise Linux 7.0 中,glibc 库(libc, libm, libpthread, NSS 插件及其他)是根据 glibc 2.17 发行本开发的,其中包含大量针对 Red Hat Enterprise Linux 6 对等产品的改进和 bug 修复。

Red Hat Enterprise Linux 7.0 glibc 库主要特点如下:

实验性 ISO C11 支持。新的 Linux 接口:prlimit, prlimit64, fanotify_init, fanotify_mark, clock_adjtime, name_to_handle_at, open_by_handle_at, syncfs, setns, sendmmsg, process_vm_readv, process_vm_writev。使用流 SIMD 扩展(SSE)、补充流 SIMD 扩展 3(SSSE3)、流 SIMD 扩展2(SSE4.2)以及高级矢量扩展(AVX)为 AMD64 和 Intel 64 架构新优化的字符串功能。为 IBM PowerPC 和 IBM POWER7 新优化的字符串功能。使用为 IBM System z10 和 IBM zEnterprise 196 特别优化的程序为 IBM S/390 和 IBM System z 新优化的字符串功能。新区域:os_RU, bem_ZA, en_ZA, ff_SN, sw_KE, sw_TZ, lb_LU, wae_CH, yue_HK, lij_IT, mhr_RU, bho_IN, unm_US, es_CU, ta_LK, ayc_PE, doi_IN, ia_FR, mni_IN, nhn_MX, niu_NU, niu_NZ, sat_IN, szl_PL, mag_IN。新编码:CP770, CP771, CP772, CP773, CP774。新接口:scandirat, scandirat64。已添加检查 FD_SET, FD_CLR, FD_ISSET, poll 和 ppoll 文件描述符版本的功能。nscd 守护进程现在支持 netgroup 数据库缓存。新功能secure_getenv() 可让您安全访问该环境,如果在 SUID 或者 SGID 进程中运行会返回 NULL。这个功能替换了内部功能 __secure_getenv()。现在如果传递违反那些值规范的盐字节(salt bytes),crypt() 功能会失效。在 Linux 中,crypt() 功能将查看/proc/sys/crypto/fips_enabled 文件决定是否启用了 FIPS。如果启用了该模式,则无法在使用摘要算法 5(MD5)或者数据加密标准(DES)算法的加密字符串中使用。现在clock_* 功能套件(在 中说明)可直接在主 C 库中使用。之前必须将其与-lrt 链接方可使用这些功能。这一变化的效果是使用此功能的单线程程序,比如 clock_gettime()(它未与 -lrt 链接)将不再会在运行时暗自载入 pthreads 库,同时也不会再受到其他代码(比如 C++ 运行时库)所支持的与多线程关联的消耗的困扰。新的标头 和功能getauxval() 可让您在经过 Linux 内核时轻松访问 AT_* key-value 对。该标头还定义与 AT_HWCAP 密钥关联的 HWCAP_* 二进制数。已为低层具体平台功能记录了已安装标头的新等级。PowerPC 添加第一个附带功能的事务以便提供基于时间的注册访问。

GDB

在 Red Hat Enterprise Linux 7.0 中,GDB 调试程序来自 gdb-7.6.1 发行本,并包含大量针对 Red Hat Enterprise Linux 6 操作系统对等产品的改进和 bug 修复。

这个版本与 Red Hat Developer Toolset v2.0 中的 GDB 版本对应,以下列出了 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7.0 GDB 版本之间的不同:

Red Hat Enterprise Linux 7.0 中包含的 GDB 主要新功能有:

使用新的.gdb_index 部分和新的 gdb-add-index shell 命令更迅速地载入符号。注:在 Red Hat Enterprise Linux 6.1 及之后的版本中就有这个功能。gdbserver现在支持标准输入/输出(STDIO)连接,例如:(gdb) target remote | ssh myhost gdbserver - hello使用-location 参数的 watch 命令有更多行为。可使用一个新命令info vtbl 显示虚拟方法表。使用新命令info auto-load, set auto-load 和 show auto-load 控制文件的自动载入。使用set filename-display absolute 命令显示源文件名的绝对路径。使用新命令record btrace 控制有硬件支持的流量记录。

Red Hat Enterprise Linux 7.0 所提供 GDB 的主要 bug 修复如下:

已将info proc 命令更新为可用于 core 文件。在下级的所有匹配的位置中设置断点。断点位置的文件名部分现在与源文件名称结尾部分匹配。现在可在内联函数中使用断点。现在可将模板实例化时将模板参数列入范围。

另外,Red Hat Enterprise Linux 7.0 提供一个新软件包 gdb-doc,该软件包包含 PDF、HTML以及信息格式的 GDB 手册。该 GDB 手册在之前的 Red Hat Enterprise Linux 版本中由主 RPM 软件包提供。

性能工具

Red Hat Enterprise Linux 7.0 中包含对一些性能功能的最新更新版本,比如 oprofile, papi 和elfutils,提供性能、可移植性及功能性改进。

此外还有 Red Hat Enterprise Linux 7.0 首先采用的功能:

支持 Performance Co-PilotSystemTap 支持在整个非特权用户空间运行的基于 DynInst 检测,同时也支持基于 Byteman 的Java 应用程序精确探测。硬件事务内存的 Valgirnd 支持以及矢量化建模指令的改进。

⁠12.4.1. Performance Co-Pilot

Red Hat Enterprise Linux 7.0 引进 Performance Co-Pilot(PCP)支持,这是一个用来对系统级性能测定进行采集、归档和分析的工具、服务及库套件。其轻加权、分布式架构的特点使其特别适合复杂系统的集中分析。

可使用 Python、Perl、C++ 界面添加性能指标。分析工具可直接使用这些客户端 API(Python、C++ 和 C),且大量网页程序可使用 JSON 界面查看所有可用性能数据。

有关详情请参考 pcp 和 pcp-libs-devel 软件包 man page 中的具体论述。pcp-doc 软件包包括两本来自 upstream 项目的免费公开图书:

⁠12.4.2. SystemTap

Red Hat Enterprise Linux 7.0 包含 systemtap 版本 2.4,它可提供一些新功能。这些包括可选的纯用户空间脚本执行、更丰富且有效的 Java 探测、虚拟机探测、改进的报错信息以及大量 bug 修复和新功能。特别是:

stap --remote=libvirt://MyVirtualMachine

另外,对 SystemTap 诊断信息有了大量改进:现在很多信息给出相关手册页供参考。这些页面给出对出错信息的解释及建议修正。如果怀疑脚本输入包含排版错误,则会以分类列表方式向用户提供建议。当用户指定名称与可接受名称不匹配时会在很多上下文中使用这个建议功能,比如探测功能名称、标记符、变量、文件、别名等等。已改进诊断重复信息删除。在信息中添加 ANSI 颜色使其更容易理解。

⁠12.4.3. Valgrind

Red Hat Enterprise Linux 7.0 包含一个检测框架 Valgrind,该框架附带大量工具用于配置应用程序。这个版本是基于 Valgrind 3.9.0 发行本,且包含针对 Red Hat Enterprise Linux 6 和 Red Hat Developer Toolset 2.0 副本的大量改进,后者是在 Valgrind 3.8.1 的基础上开发的。

Red Hat Enterprise Linux 7.0 中包含的 Valgrind 的主要新功能如下:

在安装了 DFP 程序的主机中支持 IBM System z 十进制浮点指令。支持 IBM POWER8 (Power ISA 2.07) 指令。支持 Intel AVX2 指令。注:只适用于 64 位架构。Intel 事务同步扩展初期支持,包括受限制事务内存(RTM)以及硬件锁定省略(HIE)。在 IBM PowerPC 中对硬件事务内存的初期支持。已将转移缓存默认大小增加到 16 个扇区,表现为大程序需要插入并存储大量代码。同样,可追踪的与内存映射的片段数已增加了 6 倍。转移缓存中的最大扇区数可由新标签--num-transtab-sectors 控制。Valgrind不再临时生成整个对象的映射以便从中读取数据,而是通过一个小的固定缓存读取。这样可在 Valgrind 从大的共享对象中读取 debug 信息时避免虚拟内存尖波。使用的禁止显示列表(如果指定-v 选项就会显示)现在为每个使用的禁止显示提示文件名以及定义禁止显示的行号。现在可以使用新标签--sigill-diagnostics 控制在即时(just-in-time,JIT)编译程序遇到它无法转译的指令时是否给出诊断信息。实际行为 — 向应用程序发出 SIGILL 信号 — 保持不变。已改进Memcheck 工具,增加了下述功能:处理向量化代码能力的提升,大量减少错报。使用--partial-loads-ok=yes 标签可从中获益。更好地控制泄露检查。现在可以指定应显示的泄露类型(definite/indirect/possible/reachable),哪些应被视为错误,以及哪些应通过给出泄露抑制而禁止显示。这可通过在 suppression 条目中分别使用选项--show-leak-kinds=kind1,kind2,..、--errors-for-leak-kinds=kind1,kind2,.. 和自选 match-leak-kinds: 行完成。注:生成的泄露抑制包含这个新行,这比之前的发行本要更具体。要获取与之前发行本相同的行为,请在使用它们前从生成的抑制中删除 match-leak-kinds: 行。使用更好的试探法减少泄露检查程序中的possible leak 报告。可用的试探法为std::stdstring、带有析构函数元素的新[ ]分配的阵列以及指向使用多个继承的 C++ 项目内置部分提供有效内部指针探测。可使用 --leak-check-heuristics=heur1,heur2,... 选项进行选择。对于堆上分配块更好的 stacktrace 捕获控制。使用--keep-stacktraces 选项有可能独立控制是否为每个分配和取消分配进行栈跟踪。可使用这个选项生成更好的 “use after free”出错信息,或者通过记录更少的信息减少 Valgrind 的资源消耗。更好地报告泄漏禁止显示使用。已使用禁止显示列表(指定-v 选项时会显示)现在为每个泄漏禁止显示在上次泄漏搜索中禁止显示的块和字节数。使用以下监控命令改进了 Valgrind GDB 服务器整合:新的监视器命令info open_fds 给出打开的文件描述符及附加信息列表。新的监视器命令info execontext 可显示 Valgrind 记录的栈追踪信息。新的监视器命令do expensive_sanity_check_general 运行某些内部一致性检查。

编程语言

⁠Ruby 2.0.0

Red Hat Enterprise Linux 7.0 提供最新的 Ruby 2.0.0。版本 2.0.0 与 Red Hat Enterprise Linux 6 中所包含版本 1.8.7 的主要不同点在于:

新的解释程序 YARV(另一个 Ruby VM),该程序可限制降低载入时间,特别是那些有大树结构或者文件的应用程序。新且迅速的 "Lazy Sweep" 垃圾收集程序。Ruby 限制支持字符串编码。Ruby 限制支持内部线程而不是绿色线程。

⁠Python 2.7.5

Red Hat Enterprise Linux 7.0 包含 Python 2.7.5,它是 Python 2.7 系列发行本的最新版本。这个版本包含很多性能改进,并向前兼容 Python 3。Python 2.7.5 中的主要变化如下:

排序的字典类型快速的 I/O 模块集合及代码词典解读sysconfig 模块

⁠Java 7 及多个 JDK

Red Hat Enterprise Linux 提供 OpenJDK7 作为默认 Java 开发套件(JDK),Java 7 作为默认 Java 版本。所有 Java 7 个软件包(java-1.7.0-openjdk, java-1.7.0-oracle, java-1.7.0-ibm)允许平行安装多个版本,类似于内核。平行安装的功能可让用户同时尝试多个 JDK 版本,以便在需要时调节性能并解决问题。准确的 JDK 与原来一样通过备选方法进行选择。

联网与认证

联网

⁠网络分组

已引进网络分组技术作为链路聚集的捆绑备用方法。该技术旨在轻松管理、debug 和扩展。它可为用户提供性能和灵活性提高,且应为新安装进行评估。

⁠NetworkManager

已对 NetworkManager 进行了大量改进使其更适合在服务器应用程序中使用。特别是NetworkManager 不再默认查看配置文件更改,比如那些由编辑器或者开发工具更改的配置文件。管理员可使其意识到使用 nmcli connection reload 命令进行的外部修改。使用NetworkManager 的 D-Bus API 或者 NetworkManager 命令行工具 nmcli 进行的修改仍可立即生效。

引进 nmcli 工具是要让用户和脚本可以与 NetworkManager 互动。

⁠chrony 套件

可使用程序套件 chrony 更新系统中不适合传统持久联网系统时钟,那些时钟总是在专门服务器分类中。应在所有经常挂起的系统中,或者间歇性断开并重新连接到网络的系统中关注 chrony 套件。例如:移动系统和虚拟系统。

⁠动态防火墙守护进程 firewalld 套件

Red Hat Enterprise Linux 7.0 提供动态防火墙守护进程 firewalld,它可提供一个动态管理的防火墙,并支持网络“区域”以便为网络及其相关链接和接口分配可信度。它还支持 IPv4 和 IPv6 防火墙设置。它支持以太网桥接并有独立的运行时和持久配置选项。它还有一个可直接添加防火墙规则的服务或者应用程序接口。

⁠DNSSEC

DNSSEC 是一组域名系统安全扩展(DNSSEC),允许 DNS 客户端认证和检查来自 DNS 名称服务器响应的完整性以便确认其起始点,并确定在中转过程中是否受到影响。

⁠OpenLMI

Red Hat Enterprise Linux 7.0 中附带 OpenLMI 项目,它为管理 Linux 系统提供常用的基础设施。它还可让用户配置、管理并监控硬件、操作系统及系统服务。OpenLMI 旨在简化任务配置及产品服务器管理。OpenLMI 旨在为 Red Hat Enterprise Linux 的多个版本提供常用管理接口。它是构建在现有工具的顶层,提供一个提取层,为系统管理员过滤了很多底层系统的复杂性。OpenLMI 由安装在要管理的系统中的一组系统管理代理、可管理这些代理并为其提供界面 OpenLMI 控制程序以及使用 OpenLMI 控制程序调用系统管理代理的客户端应用程序或者脚本。OpenLMI 可让用户执行以下操作:

配置、管理和监控裸机产品服务器及虚拟机;配置、管理和监控本地或者远程系统;配置、管理及监控存储和网络;使用 C/C++、Python、Java 或者命令行界面调用系统管理功能

⁠qlcnic 驱动程序中的 SR-IOV 功能

已在 qlcnic 中添加单一 Root I/O 虚拟化(SR-IOV)支持作为技术预览。对这个功能的支持直接由 QLogic 提供,同时鼓励用户为 Red Hat 提供反馈意见。仍全面支持 qlcnic 驱动程序中的其他功能。

⁠FreeRADIUS 3.0.1

Red Hat Enterprise Linux 7.0 包含 FreeRADIUS 版本 3.0.1,它可提供大量新功能,其中主要有:

RadSec,用于使用 TCP 和 TLS 传输 RADIUS 数据包的协议。Yubikey 支持。连接池。radiusd 服务器为各种后端(SQL、LDAP 及其他)维护连接。连接池可在较低资源需求的情况下提供较大的吞吐量。已扩展服务器配置编程语言 unlang 语法。提高了对 site-specific 和 vendor-specific 属性的支持。提高了 debug 功能,在详细输出结果中突出显示问题所在。生成 SNMP 陷阱。改进的 WIMAX 支持。EAP-PWD 支持。

⁠可信的网络连接

Red Hat Enterprise Linux 7.0 引进了可信网络连接功能作为技术预览。可信网络连接可用于现有网络访问控制(NAC)解决方案,比如 TLS、802.1x 或者 IPSec 整合端点态势评估,即收集端点系统信息(比如操作系统配置设置,安装的软件包及其他,总称为完整性测量)。在允许该端点访问该网络前使用可信网络连接根据网络访问策略确认这些测量。

认证和互操作性

⁠新的信任实施

目前在 Red Hat Enterprise Linux 5.9 客户端以及之后的 Red Hat Enterprise Linux 6.3 客户端中支持使用在 Active Directory 中定义的用户 ID 或者组 ID,而不是由用户安全标识符生成的用户 ID 或者组 ID。如果在 Active Directory 中定义了 POSIX 属性,这个信任实施就很有用。

⁠已更新 slapi-nis 插件

Red Hat Enterprise Linux 7.0 拥有更新后的目录服务器插件 slapi-nis,该插件允许 Active Directory 用户在原有客户端中进行认证。注:这个功能时技术预览。

⁠IPA 的备份和恢复机制

IPA 组件的备份和恢复机制在 Red Hat Enterprise Linux 7.0 中是作为技术预览提供。

⁠Samba 4.1.0

Red Hat Enterprise Linux 7.0 中包括升级到最新 upstream 版本的 samba 软件包,该软件包引进了一些 bug 修复和改进,最主要的是支持服务器和客户端工具中的 SMB3 协议。

另外,SMB3 传输可启用对支持 SMB3 的 Windows 服务器以及 Samba 服务器的加密传输连接。同时,Samba 4.1.0 添加了对服务器端复制操作的支持。采用支持服务器端复制操作的客户端,比如最新的 Windows 发行本应体验到明显的文件复制操作性能提高。

警告

更新后的 samba 软件包删除了一些已弃用的配置选项。最主要的是服务器角色 security = share 和 security = server。另外,已完全删除网页配置工具 SWAT。有关详情请参考 Samba 4.0 和 4.1 发行注记:

注:更新了一些 tdb 文件。就是说您启动 smbd 的新版本后就会升级所有 tdb 文件。您无法降级到原来的 Samba 版本,除非您备份那些 tdb 文件。

有关这些变化的详情请参考上述 Samba 4.0 和 4.1 发行注记。

⁠AD 和 LDAP sudo 提供程序的用法

AD 提供程序是一个用来连接 Active Directory 服务器的后端程序。在 Red Hat Enterprise Linux 7.0 中,支持将 AD sudo 提供程序与 LDAP 提供持续一同使用是最为一项技术预览提供的。要启用 AD sudo 提供程序,请在 sssd.conf 文件的 domain 部分添加 sudo_provider=ad 设置。

Web服务器和相关服务

Apache HTTP 服务器 2.4

“事件”处理模块的加强版,提高了异步请求进程和性能;mod_proxy 模块中固有的 FastCGI 支持;使用 Lua 语言支持内嵌的脚本。

⁠MariaDB 5.5

Red Hat Enterprise Linux 7.0 中 MySQL 的默认实施是 MariaDB。MariaDB 是由社区人员开发的 MySQL 数据库项目,并提供 MySQL 的替代品。MariaDB 保留了与 MySQL 的 API 和 ABI 兼容性,并添加了一些新功能。例如:未阻断的客户端 API 库,有加强性能的 Aria 和 XtraDB 存储引擎,更优的服务器状态变量或者改进的复制功能。

⁠PostgreSQL 9.2

PostgreSQL 是一个高级对象关系数据库管理系统(DBMS)。postgresql 软件包包括 PostgreSQL 服务器软件包及访问 PostgreSQL DBMS 服务器所需客户端程序和库。Red Hat Enterprise Linux 7.0 提供 PostgreSQL 版本 9.2.有关新功能、bug 修复以及与 Red Hat Enterprise Linux 6 提供的版本 8.4 之间可能的不兼容性列表,请参考 upstream 发行注记:

或者 PostgreSQL wiki 网页:

RHEL 7值得注意的5个新特性

1. Docker

RHEL 7中最大的新特性就是紧密集成了广受欢迎的应用程序虚拟化技术Docker。随着Docker 1.0发布,把它集成到RHEL 7里正是恰逢其时。

用Docker包装的应用程序可以独立于操作系统,所以它们可以在操作系统之间移植并且正常运行。RHEL 7打算尽可能高效地使用Docker,以防止应用程序竞争资源或者为使用哪种运行时环境而困惑。

从RHEL的Docker路线图上的长期计划表来看,这可能会超越操作系统本身,发展成一系列的Docker容器,它可以支持用最小的开销部署一个系统。这个被称为"Atomic项目"的计划还处于早期阶段,红帽公司准备首先将它部署在他的Fedora Linux发行版,仅仅当做对前沿技术的测试。

2. Systemd

引入systemd进程管理器可能引起系统管理员和Linux专家之间激烈的争论。systemd就被开发用于替代自专用Unix出现以来就在使用的init系统,它使得启动过程中装载服务更加高效。

因为systemd可能会带来一些不适,红帽公司没有马上在RHEL上使用systemd。早在2010发布的Fedora版本15就已经包含了systemd作为默认项目,这给了红帽公司一次很好的了解systemd在真实世界的运行的经验。同样,systemd也没有孤立地加入RHEL 7,而是作为这个OS大计划的一部分。例如,红帽公司希望通过使用systemd加强对RHEL 7中Docker容器的支持。

3. 默认使用 XFS

第3个主要的改变是使XFS成为RHEL默认的文件系统,尽管这可能不那么引人瞩目。

最初由Silicon Graphics International(硅谷图形公司)创建的XFS在Linux系统上用做生产环境已经很长时间了。在RHEL 7上它将支持高达500TB的文件系统。RHEL 6默认使用ext4,尽管它有XFS选项。红帽子的竞争对手Suse Linux 也支持XFS,尽管它安装时默认使用ext3。

非常不幸的是,没有真正的方法可以将RHEL目前使用的其他文件系统,比如ext4或者btrfs移植到XFS。只能备份然后重建(来进行移植)。

4. 兼容微软的身份管理

就算是那些不是微软系统粉丝的管理员也对微软目录服务保持一定的尊重。RHEL 7添加了两个关键的特性以优化处理微软目录服务(AD)的方式。跨域认证现在可以在RHEL 7和微软目录服务之间建立,所以目录服务用户可以直接访问Linux侧的资源,不需要再进行一次登录。RHEL 7另一个目录服务相关的附加特性,是基于DNS信息自动发现和加入目录服务(或者其他红帽子认证服务)。

5. 性能监控(PCP:Performance Co-Pilot)

进行性能调整的时候看不到实时数据就像是开着一辆挡风玻璃被刷上了油漆的车,所以RHEL 7添加了一个新的性能监控系统PCP(Performance Co-Pilot),PCP最初由Silicon Graphics International(硅谷图形)创建,但是现在它是RHEL 7的一部分。除了监控和记录系统状态,PCP还为其他子系统提供获取数据的API和工具集,比如正如你猜到的,刚刚介绍的systemd。

遵循这个思路,另一个次要的附加特性:新的性能配置文件。RHEL 6已经有符合特殊应用场景的调整RHEL的配置文件。RHEL 7不仅默认有一个新的性能最大化的配置文件,而且包含另一个新的平衡性能表现和能源消耗的配置文件。

Centos 7与centos 6的常用差异

启动级别/模式

我们熟悉的CentOS 6中,系统有7个运行级别(0:关机/1:单用户/2:多用户 – NO NFS/3:多用户/4:保留/5:x11图形界面/6:重启)。而在7中,这7个级别转化为4个target,分别如下:

target:多人模式,支持图形和命令行两种登录,对应6中的3和5。Multi-User.target: 多人模式,只支持命令行登录,对应6中的3。target: 单人模式,对应于之前的1级别target: 单人模式,不过系统启动后根目录是只读模式,

说明:启用服务就是在当前“runlevel”的配置文件目录/etc/systemd/system/multi-user.target.wants/里,建立/usr/lib/systemd/system里面对应服务配置文件的软链接;禁用服务就是删除此软链接

可以使用下面的命令切换到“运行级别3 ”:systemctl isolate multi-user.target或systemctl isolate runlevel3.target可以使用下面的命令切换到“运行级别5 ”:systemctl isolate graphical.target或systemctl isolate runlevel5.target

IP设定

网卡名称不再是eth0、eth1,而是eno+8位数字。dhclient先自动获取IP默认不再支持ifconfig命令,而是使用ip add查看。不过我们可以自行安装net-tools包(yum install -y net-tools)。重启网络命令:systemctl restart network.service

主机名设置

hostname #5\6\7都是使用该命令查看hostname putty.biz #只在当前shell中有效hostnamectl set-hostname putty.biz #设置主机名,直接更改配置文件/etc/hostname中的设置。hostname status #这个命令不但包括主机名,还有很多其他信息,例如内核、系统版本等

服务相关systemd

在CentOS 6中,我们熟悉的服务相关命令chkconfig、service等不再被提供,取而代之的是systemd(对应的命令是systemctl),使用概况如下:

而对于启动脚本的存放位置,也不再是/etc/init.d/(这个目录也是存在的),而是/usr/lib/systemd/system/.

添加开机自启脚本

在centos7中增加脚本有两种常用的方法,以脚本autostart.sh为例:

#!/bin/bash

#description:开机自启脚本

/usr/local/tomcat/bin/startup.sh  #启动tomcat

方法一

1、赋予脚本可执行权限(/opt/script/autostart.sh是你的脚本路径)

chmod +x /opt/script/autostart.sh

2、打开/etc/rc.d/rc/local文件,在末尾增加如下内容

/opt/script/autostart.sh

3、在centos7中,/etc/rc.d/rc.local的权限被降低了,所以需要执行如下命令赋予其可执行权限

chmod +x /etc/rc.d/rc.local

方法二

1、将脚本移动到/etc/rc.d/init.d目录下

mv  /opt/script/autostart.sh /etc/rc.d/init.d

2、增加脚本的可执行权限

chmod +x  /etc/rc.d/init.d/autostart.sh

3、添加脚本到开机自动启动项目中

cd /etc/rc.d/init.d

chkconfig --add autostart.sh

chkconfig autostart.sh on

systemd – unit

systemd可以管理所有系统资源,不同的资源称之为Unit.Unit一共分成12种类型,一共分为12种类型,分别为:

Service Unit: 系统服务Target Unit: 多个Unit构建的一个组合Device Unit: 硬件设备Mount Unit: 文件系统的挂载点Automount Unit:自动挂载点Path Unit:文件或路径Scope Unit:不是由Systemd启动的外部进程Slice Unit: 进程组Snapshot Unit: systemd快照,可以切回某个快照Socket Unit: 进程间通信的SocketSWAP Unit: swap文件Timer Unit: 定时器

我们在日常运维中经常接触的是前两者。对于Unit,我们需要掌握以下基本命令。

systemctl list-units #列出正在运行的Unitsystemctl list-units --all #列出所有Unitsystemctl list-units --all --state=inactive #列出所有没有运行的systemctl list-units --failed #列出所有启动失败的,用上面的--state选项过滤也可,效果一样的systemctl list-units --type=service #列出类型为服务的Unitsystemctl is-active application.service #查看某个服务Unit是否正在运行systemctl is-failed application.service #查看某个服务是否加载失败systemctl is-enabled application.service #查看某个Unit是否启用

Systemd – Unit – Target

我们之前提到过对应于6中的启动级别的4种target。它就是将多个Units进行组合。我们甚至可以同时启动多个target。

runlevel #查看最近的运行级别systemctl list-unit-files --type=target #查看当前系统的所有Target,我们可以看到里面有几个runlevel0-level6的target.它们是做的软连接。所以init 0-6一样可以切换systemctl list-dependencies multi-user.target #查看一个target中包含的Unitsystemctl get-default #启动时默认的targetsystemctl set-default multi-user.target #设置启动时默认的target, 本质是ln -svf /lib/systemd/system/multi-user.target /etc/systemd/system/default.targetsystemctl graphical.target #默认情况下,我们切换target时,前一个target启动的进程是不会关闭的。systemctl isolate graphical.target #而这条命令可以改变这种默认行为,将只属于上一个target的unit关闭掉。就相当于init 5

注意:systemd不使用/etc/inittab文件。

target和unit的关联

根据我们之前讲述的知识,target是一系列unit的组合,方便了管理。那么,它们之间的关联有哪些呢?

首先,我们可以通过查看对应的targetname.wants目录(里面大多是软链接)。这里面是对应target要预先加载的一些unit.

其次,我们之前介绍了如何查看某个target下所有的unit,那么我们怎么知道某个unit都跟哪些target有关联呢?

cat /usr/lib/systemd/system/sshd.service #查看[install]下面的内容[Install]

WantedBy=multi-user.target

最后,systemd主配置文件是/etc/systemd/system.conf。

cat /etc/systemd/system.conf

另外,我们需要了解的是/etc/systemd/system/default.target.

ls -l /etc/systemd/system/default.target

lrwxrwxrwx. 1 root root 37 Jan 16  2016 /etc/systemd/system/default.target -> /lib/systemd/system/multi-user.target

#systemctl set-default所设置的运行模式cat /etc/systemd/system/default.target[Unit]Description=Multi-User System //描述Documentation=man:systemd.special(7)Requires=basic.target //依赖的targetConflicts=rescue.service rescue.target //冲突的targetAfter=basic.target rescue.service rescue.target //预先启动的targetAllowIsolate=yes //将之前的systectl isolate指令##

防火墙firewalld

CentOS 6中的防火墙程序netfilter也被替换为firewalld。不过,为了保持先后兼容性,我们仍然可以使用netfilter,方法如下:

systemctl stop firewalldsystemctl disable firewalldyum installed -y iptables-servicessystemctl enable iptablessystemctl start iptables

,CentOS 7中预设了9个zone,默认的zone是public.

drop – 丢弃:只能发送出去请求,任何接收到的网络数据包都将会被丢弃。block – 限制:任何接收的网络连接都被拒绝,反馈IPV4的icmp-host-prohibited信息和IPV6的icmp4-adm-prohibite信息public – 公共:在公共区域类使用,不能相信网络内的其他计算机,只能接收经过选取的连接,就是windows防火墙弹出提示的public,比如咖啡馆等地方的网络。external – 外部:启用了伪装功能的外部网中的路由器服务器。不能信任那只网络的其他计算机,只能接收经过选择的连接dmz – 非军事区:用于非军事区的电脑,此区域可以公开访问,可以优先地进入内部网,仅接收经过选择的连接work – 工作:用于工作区,基本可以相信网络内的其他电脑。仅接受经过选择的连接home – 家庭:用于家庭网络,可以基本信任网络内的其他计算机。仅接受经过选择的连接internal – 内部:用于内部网络,可以基本信任网络类的其他计算机不会有威胁,仅接受经过选择的连接trusted – 信任:可以接受所有的网络连接

firewall-cmd --get-zones //获取所有预设的zonefirewall-cmd --get-default-zone //查看系统默认的zoneiptables -nvL //我们可以看到有关于public的链

firewalld zone相关指令

firewall-cmd --get-default-zonefilewall-cmd --set-default-zone=work #设置默认的zone,接口连入NetWorkManagerfirewall-cmd --get-zone-of-interface=eno16777736 #查看指定网卡所属的zonefirewall-cmd --zone=public --add-interface=lo #给指定的网卡设置zonefirewall-cmd --zone=dmz --change-interface=lo #针对网卡更改zonefirewall-cmd --zone=dmz --remove-interface=lo #针对网卡删除zonefirewall-cmd --get-active-zones #查看网卡所在的zone

其中,我们是可以做到不同的网卡设定不同的ZONE。默认情况下,我们使用set-default-zone选项指定zone时,所有的网卡都被设置为指定的zone.

firewalld zone配置文件

ls /etc/firewalld/ls /etc/firewalld/zones/ #这里面是当前系统默认zone的配置文件ls /usr/lib/firewalld/zones/ #这里是所有9个预设zone的配置文件

注意:/etc/firewalld/目录下才是当前系统生效的各项配置。而/usr/lib/firewalld/中是预设的一些配置样例!

firewalld services

ls /usr/lib/firewalld/services/cat /usr/lib/firewalld/services/ssh.xml #sshd的配置文件

以上目录中的配置文件都不是在当前系统生效的配置文件,生效的配置文件在/etc/firewalld/目录中。与CentOS 6中不同,我们很多时候不用去记各项服务的tcp/udp端口,在7中预设了70+种服务(上面的/usr/lib/firewalld/services/目录中,最小化安装是载入了50多种)以应对各种不同的需求。

通过观察zone的配置文件,我们可以发现,它里面是列举了当前zone可以通过的services。以上的命令其实也就是在修改这些对应的配置文件。

firewalld自定义规则

假设我们SSHD端口由默认的修改成1333啦,那么,基于之前的知识,我们可以直接去修改服务配置文件sshd.xml。除此之外,我们也可以通过命令尾当前zone直接添加放行的端口。

firewall-cmd --add-port=13333/tcp --permanentcat /etc/firewalld/zones/public.xml###...#我们会发现系统当前的zone配置文件多了一条配置信息###

那么,我们可不可以手动去修改上面的配置文件,直接添加一条配置规则了。答案是肯定的。我们只需要记得修改后重载一次即可。

除了增加一个端口,我们还可以添加一个端口范围。以及一些其他操作如下:

firewall-cmd --add-port=2000-4000/tcp #为当前系统zone添加一段端口范围firewall-cmd --permanent --zone=home --add-port=8080/tcp #为特定的zone增加端口firewall-cmd --permanent --zone=home --add-forward-port=port=22:proto=tcp:toaddr=127.0.0.2 #启用端口转发,将到22端口的请求转发到127.0.0.2

其他差异

(1)桌面系统[centos6] GNOME 2.x[centos7] GNOME 3.x(GNOME Shell)

(2)文件系统[centos6] ext4[centos7] xfs

(3)内核版本[centos6] 2.6.x-x[centos7] 3.10.x-x

(4)启动加载器[centos6] GRUB Legacy (+efibootmgr)[centos7] GRUB2

(5)默认数据库[centos6] MySQL[centos7] MariaDB

(5)文件结构[centos6] /bin, /sbin, /lib, and /lib64在/下[centos7] /bin, /sbin, /lib, and /lib64移到/usr下

(7)默认数据库[centos6] MySQL[centos7] MariaDB

(7)文件结构[centos6] /bin, /sbin, /lib, and /lib64在/下[centos7] /bin, /sbin, /lib, and /lib64移到/usr下

(8)时间同步[centos6]$ ntp$ ntpq -p

[centos7]$ chrony$ chronyc sources

(9)修改时间[centos6]$ vim /etc/sysconfig/clockZONE="Asia/Tokyo"UTC=fales$ sudo ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

[centos7]$ timedatectl set-timezone Asia/Tokyo$ timedatectl status

(10)修改地区[centos6]$ vim /etc/sysconfig/i18nLANG="ja_JP.utf8"$ /etc/sysconfig/i18n$ locale

[centos7]$ localectl set-locale LANG=ja_JP.utf8$ localectl status

强制停止[centos6]$ kill -9

[centos7]$ systemctl kill --signal=9 sshd

(11网络

1)网络信息[centos6]$ netstat$ netstat -I$ netstat -n

[centos7]$ ip n$ ip -s l$ ss

2)路由[centos6]$ route -n$ route -A inet6 -n

[centos7]$ ip route show$ ip -6 route show

(12重启关闭

1)关闭[centos6]$ shutdown -h now

[centos7]$ poweroff$ systemctl poweroff

2)重启[centos6]$ reboot$ shutdown -r now

[centos7]$ reboot$ systemctl reboot

3)单用户模式[centos6]$ init S

[centos7]$ systemctl rescue

4)启动模式[centos6][GUI➡CUI]$ vim /etc/inittabid:3:initdefault:[CUI➡GUI]$ startx

[centos7][GUI➡CUI]$ systemctl isolate multi-user.target[CUI➡GUI]$systemctl isolate graphical.target默认$ systemctl set-default graphical.target$ systemctl set-default multi-user.target当前$ systemctl get-default

上一篇:Docker虚拟化技术概述及部署安装
下一篇:用volume container共享数据-每天5分钟玩转Docker容器技术(42)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~