OS版本调研

时间:2022-03-17 06:22:31

1引言

1.1 编写目的

本文的主要目的是通过对当前项目中使用的各种版本的操作系统进行比较,分析各自特性和稳定程度,最终推荐合适的版本作为当前的标准系统。

1.2 背景

当前,部门负责管理维护的现网使用操作系统种类繁多,主要涉及的有CentOS、SLES、Ubuntu、RHEL、Windows等;由于使用的操作系统大小版本各异,增加了管理成本,不便于维护;所以需要制定统一的标准。

1.3 参考资料

2使用分析

2.1 使用概况

在线版本

使用率

CentOS(5.4/5.8/6.4/6.5/6.6/7)

低(5系列)、高(6/7系列)

SLES11sp3

Windows(2003/2008/2012)

Ubuntu14

RHEL(5.4/5.8/6.5)

表1

2.2 常用系统分析

从统计结果看,使用较多是CentOS6/7系统,目前标准系统选型将从CentOS中挑选。CentOS是Community ENTerprise Operating System的简称,叫社区企业操作系统,它是linux的一个发行版本。CentOS并不是全新的linux发行版,它是Red Hat Enterprise Linux(以下称之为RHEL)的克隆版本,RHEL是很多企业采用的linux发行版本,需要向RedHat付费才可以使用,并能得到付费用户的服务及技术支持和版本升级。这个CentOS可以像REHL一样的构筑linux系统环境,但不需要向RedHat付任何的费用,同样也得不到任何有偿技术支持和升级服务。

3特性分析

以下将对目前使用的CentOS6/7系列版本进行分析,从中挑选基准OS。

Release

正式发行

最后更新

6.5

2013-12-01

2014-02-26

6.6

2014-10-27

2014-11-15

6.7

2015-08-07

2015-08-15

7.0

2014-07-07

2015-10-11

7.1

2015-04-01

2015-10-11

表2

3.1 主要改动

OS版本

改动

6.5

Precision Time Protocol(精确时间协议)—— 原先是项技术预览 —— 现在已获全面支持。以下驱动程序支持网络时间戳印:bnx2x、tg3、e1000e、igb、ixgbe 及 sfc。

OpenSSL 已被更新至 1.0.1 版。

OpenSSL 及 NSS 现在支持 TLS 1.1 及 1.2。

KVM 新增了数项改善,包括:改良对 VMDK 及 VHDX 档的只读支持、CPU 热插及已更新的 virt-v2v-/virt-p2v-conversion 工具。

Hyper-V 及 VMware 驱动程序已被更新。

更新 Evolution(2.32)及 Libre Office(4.0.4)。

6.6

强化对SCSI设备的处理,有助应付某些指令。

OpenvSwitch 模块现在已成为内核模块。

新增 HyperV 长驻程序有助CentOS在微软 HyperV主机上运行。

作为科技预览,6.6可以在微软的 2012R2 HyperV上以第二代VM的方式运行。

全面支持 keepalived及haproxyd

新增Intel Wildcat平台的支持

新增OpenJDK作为科技预览。

6.7

sssd 拥有数个新功能

支持通过udev规则强制以只读模式挂载卸除式媒体,加强安全性

全面支持LVM高速缓冲

新增的clufter组件可分析及转换群集配置文件格式

缺省停用SSLv3及较旧的不安全协议,不同组件亦加入更多选择协议用的设置

vim 已改用7.4版本,对取消操作及正规表达式有所改善

libreoffice已升级至4.2.8.2

KVM 监督器现在能为每台虚拟机器管理240个虚拟处理器

容许在防火墙规则内运用IPv6 IP群集

squid 已改用3.1.23版本,并支持没有主体的 HTTP/1.1 POST及PUT响应

mdadm 已改用 3.3.2版本,改善了对迁移RAID级别和自动重建数组的支持

yum-plugin-downloadonly组件已被主要的yum组件取代,因为该功能已获整合

7.0

内核更新至 3.10.0

支持 Linux 容器

Open VMware Tools 及 3D 图像能即装即用

OpenJDK-7 作为缺省 JDK

原地升级 6.5 至 7.0(上文已提及)

ext4 及 XFS 的 LVM 快照

转用 systemd、firewalld 及 GRUB2

XFS 作为缺省文件系统

内核空间内的 iSCSI 及 FCoE

支持 PTPv2

支持 40G以太网络卡

7.1

由2015年3月起,ABRT(>= 2.1.11-19.el7.centos.0.1)可以直接向bugs.centos.org报告bug,你在这里可以找到更多关于此特性的信息。

支持新的处理器(Broadwell)及图像卡(AMD hawaii)

全面支持LVM缓存

可挂载ceph方块设备

更新Hyper-V网络驱动程序

新的libguestfs功能

全面支持openJDK-1.8.0

改善时钟(PTP 及 NTP)的稳定性

更新 Networkmanager 组件至1.0版本

更新docker至1.4.1

更新openSSh至 6.6.1

新组件:Mozilla Thunderbird

更新多个存储、网络及图像卡驱动程序

科技预览:支持 Btrfs 文件系统、OverlayFS 及 Cisco VIC 内核驱动程序

表3

3.2 降级功能

OS版本

降级功能

6.5

正如6.4发行时所公布,matahari已被降级而且不再被包含于 6.5内。

以下组件已被降级并且有可能在未来的发行版本中被删除。它们将不会再获更新:

mingw-gcc

mingw-boost

mingw32-qpid-cpp

python-qmf

python-qpid

qpid-cpp

qpid-qmf

qpid-tests

qpid-tools

ruby-qpid

saslwrapper

6.6

下列组件在 CentOS 6.3 已被降级,并且已从 CentOS 6.6 中删除:

mingw-gcc

mingw-boost

mingw32-qpid-cpp

下列组件已被降级,并有可能在未来的发行版本中被删除。它们将不会再获更新:

python-qmf

python-qpid

qpid-cpp

qpid-qmf

qpid-tests

qpid-tools

ruby-qpid

saslwrapper

6.7

下列组件已被降级,并有可能在未来的发行版本中被删除。它们将不会再获更新:

python-qmf

python-qpid

qpid-cpp

qpid-qmf

qpid-tests

qpid-tools

ruby-qpid

saslwrapper

7.0

7.1

以下组件的i686版本:krb5-server 和 krb5-server-ldap

进一步要废弃的组件:libvirt-daemon-driver-lxc, libvirt-daemon-lxc 和 libvirt-login-shell

表4

3.3 已知问题

OS版本

已知问题

6.5

上游的 Mozilla NSS 由 3.14 版起停止支持以 MD5 散数签署的凭证,该版本已被加进 CentOS 6.4。详情及权宜之计可以在这个Fedora bugzilla 报告内找到。

就Intel及AMD的处理器结构而言,CentOS 6仿效上游的要求,规定32位的x86 芯片必须支持 PAE。

安装程序须要至少 406MB 内存才能运作。文字模式会自动被应用于拥有少于 632MB 内存的系统上。

相比起图像安装程序,文字安装程的功能受到局限。

Insufficient memory to configure kdump! 这个消息在安装时会出现。这个已知的问题出现在少于2GB内存的系统上。你不用理会它。

i386及x86_64 结构的内容均被分为两只DVD。我们尝试令所有基本服务器及基本桌面安装只需要DVD-1。

当你把公钥转转到一台启用selinux的CentOS 6服务器时,请确保它拥有正确的selinux脉络。否则selinux或许会拒绝对 ~/.ssh/authorized_keys 进行访问,进而导致金钥验证失效。

整个x86_64 安装ISO及minimal ISO都能在EFI 硬件上引导。

有数个组件的名称含 .centos. 字眼却未曾被修改,详情见 CentOS 错误 #0005281。

以下是在 6.5 内仍受影响的 SRPM:

at-spi

gtk2-engines

libcanberra

libgail-gnome

libwmf

针对旧版 AMD(前身为 ATI)显示卡,亦即 2xxx、3xxx 及 4xxx 系列的官方驱动程序不能兼容CentOS-6.4 所引入的新版 X 服务器。截至 2013 三月中旬,现时唯一能支持官方驱动程序的权宜之计是把 X 服务器(xorg* 组件)降级至 CentOS 6.3所提供的版本。要防止 yum 不会再度把你已降级的组件升级,请把以下内容加进 /etc/yum.conf 的档尾exclude=xorg*。

请留意如果你只想在 CentOS-6 下设置双显示器,你无须官方的驱动程序。

VMware Workstation配搭(包含在 CentOS-6.5 内的)glib2-2.26.1-3 及 kernel-2.6.32-431,执行Microsoft Windows 时会出现问题。

6.6

注:安装媒体内所包含的openssl含有POODLE漏洞。不论你采用哪种安装媒体,请在安装后执行yum update来取得 CentOS-6.6 的安全性更新。

netinstall iso 档不能配合 UEFI 进行安装,但 minimal 或 DVD iso 档可配合 UEFI。没有一个版本的 CentOS-6.6 在启用 Secure Boot 后能运作。你必须停用 Secure Boot 才能安装 CentOS-6.6。

由此发行版本起 X.org 显示驱动程序的 ABI 有所更改,可能会导致 X-Session 失效。

就 Intel 及 AMD 的处理器结构而言,CentOS 6仿效上游的要求,规定 32 位元的 x86 芯片必须支持 PAE。

安装程序须要至 406MB 内存才能运作。文字模式会自动被应用于拥有少于 632MB 内存的系统上。

相比起图像安装程序,文字安装程的功能受到局限。

Insufficient memory to configure kdump! 这个消息在安装时会出现。这个已知的问题出现在少于 2GB 内存的系统上。你不用理会它。

i386 及 x86_64 结构的内容均被分为两只 DVD。我们尝试令所有基本服务器及基本桌面安装只需要 DVD-1。

当你把公钥转转到一台启用 selinux 的 CentOS 6 服务器时,请确保它拥有正确的 selinux 脉络。否则 selinux 或许会拒绝对 ~/.ssh/authorized_keys 进行访问,进而导致金钥验证失效。

有数个组件的名称含 .centos. 字眼却未曾被修改。

以下是在 6.6 内仍受影响的 SRPM:

at-spi

gtk2-engines

libcanberra

libgail-gnome

IPA 的安装方式有两个变动:当口令过期时,kinit将会要求一个新的口令,它不会批出新的传票,而你需要一个拥有新口令的 kinit。当你安装 IPA 的客端时(包括自动在服务器上安装的客端),sudo 现在会自动获设置,而你亦无须修改 sssd.conf 及 nsswitch.conf。

6.7

在支持 UEFI 的系统上,CentOS 6.x 把开机设置写在 /boot/efi/EFI/redhat。这样做对有意在同一系统上安装 CentOS 及 RHEL 的人会构成问题。这个问题在 CentOS 6 的生命周期内不会获得解决。CentOS 7 并没有这个问题。

VirtualBox 在打开以 UEFI 模式创建的 CentOS 6 虚拟机器时或许会出现问题。

CentOS 6.7 所提供的 boost-1.41.0-27.el6 在编译某些组件或许会出现问题。详情见上游错误 #1245805。如果你遇到这个问题,我们推荐采用 CentOS 6.6 的 boost-1.41.0-25.el6.centos 更新组件直至问题获解决。

EPEL 所提供的 satyr 组件(已由于与 RHEL 6.7 有冲突而被删除)比 CentOS 6.7 的版本还要新。EPEL 所提供的组件似乎能正确运作。我们未发现此问题带来任何负面影响。要是你已安装来自 EPEL 的 satyr 组件,但有意转用 CentOS 的版本,请执行 yum downgrade satyr。

EPEL 所提供的 json-c 组件比 CentOS 6.7 的版本较旧。如果你安装了来自 EPEL 的 json-c,为免 yum 出现问题,请在卸装该组件后才更新系统至 6.7。

CentOS 6.7 上的 sssd-common 不再提供 multilib。要是你在 x86_64 系统上安装了 32 位元的 sssd-common,你必须在更新前执行 yum remove sssd-common.i686 把它删除。

netinstall 映像档不能进行 UEFI 安装,但 minimal 或 DVD 映像皆可配合 UEFI。CentOS-6.7 没有一个版本在启用 Secure Boot 后能运作。你必须停用 Secure Boot 才能安装 CentOS-6.7。(详情见CentOS 错误 #6321)。

就 Intel 及 AMD 的处理器结构而言,CentOS 6 仿效上游的要求,规定 32 位元的 x86 芯片必须支持 PAE。

安装程序须要至少 406MB 内存才能运作。文字模式会自动被应用于拥有少于 632MB 内存的系统上。

相比起图像安装程序,文字安装程的功能受到局限。

Insufficient memory to configure kdump! 这个消息在安装时会出现。这个已知的问题出现在少于 2GB 内存的系统上。你不用理会它。

i386 及 x86_64 结构的内容均被分为两只 DVD。我们尝试令所有基本服务器及基本桌面安装只需要 DVD-1。

当你把公钥转转到一台启用 selinux 的 CentOS 6 服务器时,请确保它拥有正确的 selinux 脉络。否则 selinux 或许会拒绝对 ~/.ssh/authorized_keys 进行访问,进而导致金钥验证失效。你可这样设置正确的 selinux 脉络:

restorecon -R -v /home/$ACCOUNT/.ssh

有数个组件的名称含 .centos. 字眼却未曾被修改,详情见 CentOS 错误 #5281。

以下是在 6.7 内仍受影响的 SRPM:

at-spi

gtk2-engines

libcanberra

libgail-gnome

tigervnc 的组件名称内有 .centos. 因为它是依赖新的组件而重建的。该组件本身未经改动。请参阅CentOS 错误 #7804。

7.0

很多用户投诉新缺省的 NetworkManager 工具不会启用乙太网络界面,安装时必须以人手启用。

安装程序需要最少406MB内存才能运行。在拥有少于406MB的系统上,安装程序会异常终止。C7的最低内存要求是512MB。

不能正确地在一台 VirtualBox 虚拟机器上通过 UEFI 模式把CentOS-7 安装到加密文件系统上。除非修改内核的命令行,否则系统在安装后不会请示扇区的口令。详情见错误报告。

如果你画面的解像度是 800x600或更低,安装画面的下端将会被裁掉。

7.1

Minimal 映像只支持最少安装,纵使安装程序会列出其它选项。你可以在安装完成后安装其它组件,又或者利用其它安装映像来选用所需的选项。

要是你采用 Dell OpenManage 7.4.1 或 8.1.0.,omreport storage vdisk 及某些子指令可能不能显示所需的信息。这问题似乎也出现在 RHEL 7.1。OMSA 8.1.0 连同一个略为修改的 libstorelib 档似乎可用。请在遵照指示修改文件后执行 systemctl restart dataeng.service。内核 kernel 3.10.0-229.7.2 已再度引入所需的 release_date 驱动程序属性,因此 OMSA 文件不用再修改。

libreoffice 的电子表格组件calc引入了一个错误,这影响到电子表格的排序功能。请参见这里和这里的错误报告。

此发行版本内的新版 openssh 并不会像旧版本般于 .ssh/config 档内找到首个配对便离开。这意味了当配置文件有多个 host 部份同时配对某台主机时,它们全部都会获取纳。举个例说:要是你同时有 host1.example.com 的设置和 *.example.com 的设置,这两组设置都会被套用在 host1.example.com 上,但只有 *.example.com 会被套用在 host2.example.com。

很多用户投诉新缺省的 NetworkManager 工具不会启用乙太网络界面,安装时必须以人手启用。见CentOS-7 常见问题集 #2。

安装程序需要最少 406MB 内存才能运行。在拥有少于 406MB 的系统上,安装程序会异常终止。CentOS-7 的最低内存要求是 512MB。

不能正确地在一台 VirtualBox 虚拟机器上通过 UEFI 模式把 CentOS-7 安装到加密文件系统上。除非修改内核的命令行,否则系统在安装后不会请示扇区的口令。详情见错误报告。

如果你画面的解像度是 800x600 或更低,安装画面的下端将会被裁掉。

VMware Workstation/VMware ESXi 可让你安装两种不同的虚拟 SCSI 适配器:BusLogic 和 LsiLogic。然而 CentOS-7 的缺省内核并不包含对应的两个驱动程序,因此利用 CentOS Linux 的缺省值安装在 SCSI 硬盘上,系统将会不能开机。假如你选择 Red Hat Enterprise Linux 作为操作系统,它会选择适用的半虚拟化 SCSI 适配器。

ifconfig/netstat 等常用工具已有一段时间被标签为降级,而 net-tools 组件亦不再纳入 @core 群组内,因此缺省是不会安装它。如果你真的需要它,请利用 nmcli c up ifname <界面名称> 启用你的网络,然后通过 yum 安装该组件。Kickstart 用户可以在安装时加入 net-tools 这个组件。

AlpsPS/2 的 ALPS DualPoint TouchPad 在 CentOS-7 的缺省下不能运用边沿滚动。见错误 7403有关启用此功能的指令。

截至 VirtualBox 4.3.12 版,vBox additions 都不能创建。由 4.3.14 版起此问题已获解决。截至 4.3.16,Windows 主机似乎仍有问题。在安装 vBox additions 后,登录 GNOME 桌面会出现黑画面或终止虚拟计算机。

表5

4 小结

4.1 调研结果

截至当前,CentOS和上游RHEL已出现问题数统计如图1/2,其中6系列涉及8个版本,7系列涉及2个版本,数据仅供参考,不作为评判6、7优劣依据。

总体上来看,RHEL发现问题数是CentOS5~10倍,这是因为RHEL作为上游且应用较广,问题易先发现,CentOS会随之更新,问题数所以会收敛。

OS版本调研

图1 RHEL BUG

OS版本调研

图 2 CentOS BUG

4.2 结论

1.挑选原则:生产系统需要使用稳定版本;业界通常做法是不使用最新版本,优先上一个版本。

2.综合来看,2015年新发布的有CentOS6.7、7.1,需要一段时间稳定,建议不考虑;CentOS6.5、6.6均较稳定,6.6优化了HyperV支持以及全面支持HA,鉴于后续业务会更多依赖虚拟化,建议优先部署6.6版本;CentOS7.0由于进行了大版本升级,带来许多新特性同时也带来一些不稳定因素,建议核心系统继续使用6.6,非核心业务可以尝试使用7.0。

3.从维护角度看,标准化会降低管理成本,提高效率,制定统一OS标准是有必要的。