尚观科技,07年5月起,经典ULE课程的授课中,授课平台,全面升级为RHEL5平台,是目前国内首家采用RHEL5授课平台的培训机构。让广告学员体验和掌握更专业的Linux技术,体验全新的RHEL5平台带给我们的喜悦吧!
全 球最大的Linux厂商,美国红帽公司(redhat),在经历了2次的跳票后,终于在3月,发布了令人兴奋的红帽Linux企业版5(RHEL5)。这 次RHEL5的发布,不仅仅证明了redhat的强大实力,而且也说明了,Linux的技术前景和发展空间都是非常乐观的。让全球广大开源爱好着兴奋的同 时,RHEL5和以往的RHEL发行版本,又存在那些新的特性和做了那些升级呢?
尚观从红帽企业 Linux 5 beta 开始就密切关注其发布,本月红帽企业 Linux 5 正式版将在北京发布,标志着红帽企业 Linux 5在中国的广泛应用也即将到来。尚观通过此文将对红帽企业 Linux 5的新特性作以介绍。
发行内容和注册
红帽企业 Linux 5 产品相关套件的软件组件包的结构与以前版本的红帽企业 Linux 有所不同。不同种类的发行光盘和 ISO 映像减少到两种:
● 红帽企业 Linux 5 服务器
● 红帽企业 Linux 5 客户端
而非之前红帽企业 Linux 3 和 红帽企业 Linux 4 的四种:
● 红帽企业 Linux AS 高级服务器
● 红帽企业 Linux ES 企业服务器
● 红帽企业 Linux WS 工作站
● 红帽企业 Linux Desktop 客户端
尚观kissingwolf观点:红帽已经意识到过多的发布分类将导致客户的无所适从,从红帽企业 Linux 5开始又回归到已服务为中心的赢利模式中。
发行光盘和ISO 映像包含大量的可选软件包,除提供核心分发版本外还包括之前版本单独发行的其他功能,如:群集和群集存储,并且额外添加了新的虚拟化组件。
具体的光盘和ISO结构也使用新的目录树方式
./
|— Cluster # 集群套间支持
| `— repodata
|— ClusterStorage # 集群文件系统支持
| `-- repodata
|— Server #标准服务器支持
| `-- repodata
|— VT # 虚拟化支持
| `-- repodata
|-- images
| |-- pxeboot
| `-- xen
`-- isolinux
因为可选的内容也存在于发行光盘或 ISO 映像中,所以应该特别注意不要使安装的组件和订阅所提供的组件不匹配。如果这种情况发生了,系统存在错误或安全漏洞的可能性将会增加。
为了保证安装的组件和订阅相匹配,红帽企业 Linux 5 需要输入一个 安装号。它被用来配置安装程序来提供正确的软件包。安装号码包含在购买的红帽企业 Linux 5订阅里。
在 安装过程中被使用的安装号码将被存放在红帽企业 Linux 5 /etc/sysconfig/rhn/install-num 文件里。当在 红帽网络(RHN) 注册时,这个文件将自动被 rhn_register 程序引用,来决定系统应该订阅到哪个合适的子通道,并得到先应的技术支持。
尚 观kissingwolf观点:红帽企业 Linux 5的安装号只是在其安装工程中区分安装类型选单的标识而以,并不影响其产品的正常安装。如果没有输入安装号码,红帽将提示其只安装核心服务器或 Desktop ,但实际情况是,标准的server包例如apache、smb、bind等都回出现在安装选择列表中,开发软件包和开发软件库一个也没有少,所以没有安 装号并不影响红帽企业 Linux 5的标准系统的安装和使用。其它功能例如虚拟化、集群和集群文件系统可以在安装标准系统以后通过手工rpm、yum或 up2date的方式安装从光盘或ISO中已rpm包的方式安装。当然如果你需要红帽的升级服务或其他服务还是要购买红帽的安装号以确定身份。
添加在红帽企业 Linux 5中暂不成熟的技术
Stateless Linux
红 帽企业 Linux 5 启用了 Stateless Linux 的基础环境。Stateless Linux 为运行和管理一个系统提供了一个新思路。它的设计思想是,通过使系统的组成部分可以被简单地更换来达到简化维护和管理一个大型系统的目的。这主要是通过使 用提前准备好的系统映像来实现的,这些系统映像可以在大量的 stateless 系统间被复制和管理,操作系统以只读的方式被运行(/etc/sysconfig/readonly-root 中更多细节)。
在它当前的开发阶段,stateless 的功能只是它所要设计达到的功能的一部分。因此,这些功能被标记为技术预览。
以下是包括在 红帽企业 Linux 5 中的基本功能:
● 使用 NFS 运行一个 stateless 映像
● 使用 loopback over NFS 来运行一个 stateless 映像
● 在 iSCSI 上运行
GFS2
GFS2 是一个基于 GFS 文件系统的先进的新系统。虽然 GFS2的所有功能现在都可以实现,但它当前还不适合于在实际的生产环境中实施。GFS2 计划在 红帽企业 Linux 5 的更新版本中被完全支持。数据转换应用程序(gfs2_convert)可以对 GFS 文件系统的元数据进行更新,把它转换为一个 GFS2 文件系统。
FS-Cache
FS-Cache 是一个远程文件系统的本地缓存工具。它允许用户在一个本地挂载的磁盘上缓存 NFS 数据。要设置 FS-Cache,请安装 cachefilesd RPM 并根据 /usr/share/doc/cachefilesd-<version>/README 中的介绍进行配置。
Ext3 的性能增强
在 红帽企业 Linux 5 中,EXT3 文件系统所支持的最大容量已经从过去的 8TB 增加到 16TB。当前对 16TB 的支持还只是一个技术预览,对它的完全支持计划被包括在以后发行的 红帽企业 Linux 5 中。
尚观kissingwolf观点:ext3文件系统是公认的Linux下最稳定的文件系统之一,但也因为其必须兼容于之前ext2文件系统的困惑,导致其 在小文件存储和检索上性能不佳。对于单个文件的容量限制以目前硬盘技术的发展,用户对8TB的上限突破并不是十分热心。
Frysk GUI
frysk 项目的目的是创建一个智能的、分布式的、always-on 的系统监控和调试工具,它允许开发者和系统管理员来:
● 监控运行的进程和线程(包括创建和终止事件)
● 监控 locking primitive 的使用
● 解开死锁
● 收集数据
● 从列表里选择任何进程来调试,或者允许 frysk 来打开崩溃或不正常的进程的源代码(或其他)窗口。
在 红帽企业 Linux 5 里,frysk 图形用户界面只是一个技术预览,但 frysk 命令行接口是被完全支持的。
Systemtap
Systemtap 提供自由软件(GPL)架构来简化运行的 Linux 系统的信息收集。它协助性能或功能性问题的诊断。利用 systemtap,为了收集数据,开发者不再需要完成阅读冗长的指令、编译、安装和重启等一系列过程。
Dogtail
Dogtail 是一个用 Python 编写的 GUI 测试工具和自动化框架,它使用 Accessibility 来与桌面应用程序进行通信。
iSCSI software initiator(open-iscsi)的安装/引导
Anaconda 现在提供安装至 iSCSI 设备的能力。使用 QLogic qla4xxx hardware initiator 的安装和引导被完全支持。然而,由于下面的原因,安装 open-iscsi software initiator 至 iSCSI 设备的能力目前还只是技术预览:
● 文本模式的安装没有完成。你必须执行图形化的安装,或者是自动化的 kickstart 安装。
● 基于介质的安装没有完成。你必须进行基于网络的安装。
● 由于执行时间的原因,Anaconda 可能不能够检测到所有的 iSCSI target 或 LUN。当发生这样的事情时,使用安装程序 shell 和 iSCSI 命令来配置存储设备。
● iscsid 守护进程可能没有正确启动。这样的事情将阻止系统处理所有的 iSCSI 错误,如网络问题、SCSI/iSCSI 超时和 target 错误。要确认 iscsid 守护进程是否运行,你可以运行命令 iscsiadm -m session -i 并检查 Internal iscsid Session State: 行是否输出任何值。
● 在某些 iSCSI target 实施中,系统可能在关闭过程中挂起。
● 在某些 iSCSI target 实施中,系统可能在关闭过程中挂起。要避免这个问题,关闭系统并再次引导它(而不是直接从同一会话里重新启动)。
● IBM System p 里从 iSCSI 设备引导不稳定。虽然 iSCSI 设备上的安装好像成功了,但最后系统将不能正确引导。
● 在安装后的第一次引导时,你可能会看到如下的 SELinux 错误:
kernel: audit(1169664832.270:4): avc: denied { read
} for pid=1964 comm="iscsid"
要绕过这个问题,用内核参数 enforcing=0 引导系统。一旦系统被正确地引导,使用 setenforce 1 来恢复 enforcing 模式。
这些限制将在将来的红帽企业 Linux 5更新里得到解决。
尚 观kissingwolf观点:iSCSI在企业中的应用并不是很多,虽然2005年开始基于iSCSI协议的设备渐渐出现在市场中,但因为技术的不完 善,关键服务都不推荐使用iSCSI。红帽企业 Linux 5 中此项技术只能作为技术预览,给那些勇于尝试的人使用!
Compiz和 AIGLX
Compiz 是一个基于 OpenGL 的窗口合成管理器。除了可以进行一般的窗口管理,compiz 还可以作为一个合成器使用。它可以协调并同步整个桌面来提供一个更易用的桌面环境。
Compiz 使用 3D 硬件加速来处理各种窗口效果(如 thumbnail windows、window drop shadows,在虚拟桌面间进行动画效果的窗口最大化、最小化以及其它操作)。
因为目前渲染架构的限制,compiz 当前还无法和进行直接渲染的 OpenGL 应用程序或使用 Xv 扩展的应用程序一起使用。这些程序将展示先进的渲染技术。
AIGLX X server 的一个技术预览。它的目标是在标准桌面上启用 GL加速效果。这个项目由以下内容组成:
● 有少许修改的 X server
● 增加了新协议支持的更新的 Mesa 软件包
通过安装这些组件,几乎不作修改你就可以在桌面上实现 GL 加速的效果,而且不需要替换 X server 就可以及启用和终止它。AIGLX 也启用远程 GLX 应用程序来利用 GLX 硬件加速功能。
尚观kissingwolf观点:鉴于大多数红帽企业Linux 5将在服务器邻域的使用,而图形化的新技术主要应用在客户端邻域,建议不打开服务器上运行的红帽企业Linux 5以上两种新技术特性。
软件包更改及成熟技术的使用
红帽企业 Linux 部署指南
红帽企业 Linux 5的发布版本包含了一个相当完备的部署指南。你可以通过 「系统」(面板顶部) => 「文档」 => 红帽企业 Linux 「部署指南」 访问它。
虚拟化
红帽企业 Linux 5 包括了 i686 和 x86-64 的基于 Xen 的虚拟化功能的技术预览,并提供了管理虚拟化环境的基础环境。
在 红帽企业 Linux 5 中,虚拟化是基于超级监督者(hypervisor) 的,它使用极低的系统开销来实现 paravirtualization 技术。在带有 Intel 虚拟化技术或 AMD AMD-V 功能的处理器上,红帽企业 Linux 5 上的虚拟化可以使没有被修改的操作系统在完全虚拟化的模式中运行。
红帽企业 Linux 5 的虚拟化还提供以下功能:
● Libvirt 库函数,它提供了一个管理虚拟机的统一的、可移植的 API。
● Virtual Machine Manager,一个用来监测并管理虚拟机的图形化工具。
● 通过安装程序设置虚拟机,并可以通过 kickstart 安装虚拟机。
红帽网络 也支持虚拟机。
目前,虚拟化功能有着如下的限制:
● 当启用虚拟化时,Suspend to RAM 和 Suspend to Disk 都不被支持,而且也不能执行 CPU 超频。
● 硬件-虚拟化的客户不能够有超过 2GB 的虚拟内存。
● 完全虚拟化的客户不能够保存、恢复和移植。
● 在 Virtual Machine Manager 里没有对应 xm create 命令的图形化界面。
● 虚拟化不支持 bridged networking 组件。客户所使用的所有相应工具都自动以此为缺省设置。
● 缺省的用于虚拟化的 红帽 SELinux 策略只允许配置文件写入 /etc/xen、日志文件写入 /var/log/xen/ 以及磁盘文件(包括核心 dump 文件)写入 /var/lib/xen。这些缺省设置可以用 semanage 工具来修改。
● 这个虚拟化发布版本里包括的 hypervisor 不是 NUMA-aware。在 NUMA 机器上运行的性能可能不是最优的。以后的 红帽企业 Linux 5 更新版本将解决这个问题。
● 为了解决这个问题,可以在 NUMA 机器的 BIOS 里启用 memory node interleaving。这将确保更加一致的性能。
● 目前 Paravirtualized domain 不支持 en-US 外的键盘布局。因此,其他键盘可能不能够输入某些键。以后的 红帽企业 Linux 5 更新版本将解决这个问题。
● 虚拟化的内核不能够利用 kdump 功能。
● qcow 和 vmdk 映像不被支持。当手工配置 guest 时,物理或逻辑设备备份的映像应该使用 phy: 类型。至于 file-backed 的映像,对于 paravirtualized guest 要把映像类型设置为 tap:aio: 而对于 virtualized guest 则设置为 file:。
● 虚拟域的 Profiling 可能不正确。这个问题会在 红帽企业 Linux 5 的下一 minor 版本里得到解决。
● Paravirtualized domain 只能够自动检测相关的鼠标移动,而指针移动则不够稳定。以后的 红帽企业 Linux 5 更新版本将解决这个问题。
● 某些 dom0 串口控制台的设置可能要求额外的配置。关于推荐的配置,请参考 《虚拟化指南》 里的 Troubleshooting 章节。
● 为了使用 paravirtualized guest 的工作控制台,你需要在内核命令行指定 console=xvc0。
● 当配置客户机操作系统使用稀疏文件(sparse file)时,dom0 可能会用尽磁盘空间。这会阻止客户机完成磁盘的写操作并导致数据丢失。而且,使用稀疏文件的客户不能安全地进行 I/O 同步。
因此,我们推荐你使用非稀疏文件(non-sparse file)。要配置客户机使用非稀疏文件,可以在执行 virt-install 时使用 —nonsparse 选项。
尚观kissingwolf观点:虚拟化的加入可以说是红帽企业 Linux 5的亮点,在kissingwolf的测试中,安装虚拟化的系统比之前的beta版方便了很多,安装Windows也成为现实, 但是从一个技术从产生到成熟的过程来看,Xen 还有很长的路要走,目前要解决的问题就是虚拟系统迁移和对多操作系统支持。
Web Server 软件包更改
红帽企业 Linux 5 现在包含了 Apache HTTP 服务器的 2.2 版本。红帽企业 Linux 5带来了 2.0 版本之后的许多改进,包括:
● 改进的缓存模块(mod_cache、mod_disk_cache 和 mod_mem_cache)
● 验证(authentication)和授权(authorization)支持的新结构,代替了以前版本里的验证模块。
● 对代理服务器负载平衡的支持(mod_proxy_balancer)
● 对 32 位平台上的大文件(大于 2GB)处理的支持
缺省的 httpd 配置文件里有下面的改动:
● mod_cern_meta 和 mod_asis 模块不再缺省被装载。
● mod_ext_filter 模块现在缺省被装载。
尚观kissingwolf观点:目前很多的网站还在使用Apache 1.*版本的HTTP服务器,其主要原因是Apache 2.*版本的程序执行效率不如Apache 1.*版本,这从另一方面说明了“新技术的使用并不一定就高效”。
php
红帽企业 Linux 5 里包含了 PHP 的 5.1 版本,这个版本有很多的改进,且性能有显著的提高。某些脚本可能需要用新版本进行编辑;关于更多细节或从 PHP 4.3 移植到 PHP 5.1,请访问下面的链接:
http://www.php.net/manual/en/migration5.php
/usr/bin/php 执行文件现在是用 CLI command-line SAPI,而不是 CGI SAPI 进行构建的。对于 CGI SAPI 可以使用 /usr/bin/php-cgi。php-cgi 执行文件也包含了对 FastCGI 的支持。
下面的扩展模块已经被加入:
● mysqli 扩展模块,是特别为 MySQL 4.1(包含在 php-mysql 软件包里)设计的一个新接口。
● date、hash,、eflection,、SPL 和 SimpleXML(内置于 php 软件包)
● pdo 和 pdo_psqlite(在php-pdo 软件包里)
● pdo_mysql(在 php-mysql 软件包里)
● pdo_pgsql(在 php-pgsql 软件包里)
● pdo_odbc(在 php-odbc 软件包里)
● soap(在 php-soap 软件包里)
● xmlreader 和 xmlwriter(在 php-xml 软件包里)
● dom(代替 php-xml 软件包里的 domxml 扩展模块)
不再包含下面的扩展模块:
● dbx
● dio
● yp
● overload
● Domxml
●
尚观kissingwolf观点:记得红帽公司在从PHP3.*版本升级到PHP4.*的时候下了很大的决心,相信这一次也是。PHP的升级会代理很多的问题,比如页面重写。现在很多网站还在应用RedHat 7.3的原因就是其PHP的代码无法支持高版本的PHP规则。
PEAR 框架
PEAR 框架现在包含在 php-pear 包里。红帽企业 Linux 5 只包含下面的 PEAR 部件:
● Archive_Tar
● Console_Getopt
● XML_RPC
加密的交换分区和非根文件系统
红帽企业 Linux 5 现在对加密的交换分区和非根文件系统提供基本的支持。要使用这些特征,你需要在 /etc/crypttab 里加入合适的条目并引用 /etc/fstab 里创建的设备。
下面是 /etc/crypttab 的一个条目样本:
my_swap /dev/hdb1 /dev/urandom swap,cipher=aes-cbc-essiv:sha256
这创建了加密的块设备 /dev/mapper/my_swap,它可以在 /etc/fstab 里被引用。
下面是用于文件系统卷的 /etc/crypttab 条目样本:
my_volume /dev/hda5 /etc/volume_key cipher=aes-cbc-essiv:sha256
/etc/volume_key 文件包含一个明文加密密钥。你也可以指定 none 作为密钥文件名;这会使系统在引导时请求加密密钥。
RedHat推荐使用 LUKS(Linux Unified Key Setup)来设置文件系统卷。可以遵循下面的步骤来完成:
1. 用 cryptsetup luksFormat 创建加密卷。
2. 在 /etc/crypttab 里添加必要的条目。
3. 用 cryptsetup luksOpen(或 reboot)手工地设置卷。
4. 在加密卷上创建一个文件系统。
5. 在 /etc/fstab 里添加必要的条目。
挂载和卸载
mount 和 umount 命令不再直接支持 NFS;内置的 NFS 客户端不再存在了。提供 /sbin/mount.nfs 和 /sbin/umount.nfs 助手的单独的 nfs-utils 软件包必须被安装。
尚观kissingwolf观点:其实这个问题之前就有了,只是红帽企业 Linux 4 里nfs-utils 软件包是默认安装的。
CUPS 打印机浏览
本地子网上的 CUPS 打印机浏览可以用图形化工具 system-config-printer 来配置。它也可以用 CUPS 的 web 接口 http://localhost:631/ 来完成。
要在子网之间使用用于打印机浏览的直接广播,你可以打开客户机上的 /etc/cups/cupsd.conf 并把 BrowseAllow @LOCAL 替换为 BrowseAllow ALL。
up2date 和 yum
由 于 yum(Yellowdog Updater Modified)的存在,up2date 计划将逐步被替代。因此,我们建议你修订系统里使用的任何依赖 up2date 的脚本。关于 yum 的更多信息,请用 man yum 命令来参考它的帮助页;你也可以参考 /usr/share/doc/yum-<version> 和 /usr/share/doc/yum-metadata-parser-<version>(用 yum 和 yum-metadata-parser 的版本号来替换 <version>)目录下的文档。
红帽 目录服务器
红帽 目录服务器是一个基于 LDAP 的服务器,它把企业和网络的数据集中到一个与操作系统无关的、基于网络的注册表里。
Intel PRO/Wireless 3945ABG 网络连接支持
红帽企业 Linux 5 发布版本包含了对 ipw3945(Intel PRO/Wireless 3945ABG 网络连接)适配器的支持。红帽企业 Linux 5 附属光盘包含了支持这个适配器的驱动、常规守护进程和防火墙。
要启用对 ipw3945 无线适配器的支持,可以在 红帽企业 Linux 5 光盘里搜寻文件名包含 "3945" 的软件包并安装。
对策略模块(Policy Modules)和 semanage 的支持
红帽企业 Linux 5 现在支持 策略模块(Policy Modules) 和 semanage。策略模块通过 semodule 和 checkmodule 工具,简化了自定义策略和第三方策略的创建和分发。
semanage 是一个策略管理工具,它修改 SELinux 的配置。它也允许配置文件上下文,网络组件标签和 Linux 到 SELinux 的用户匹配。
raw 设备映射
raw 设备接口在 红帽企业 Linux 5 里已经被取消了;raw 设备映射现在通过 udev 规则进行配置。要配置 raw 设备映射,可以在 /etc/udev/rules.d/60-raw.rules 里加入以下格式的条目:
设备名称:
ACTION=="add", KERNEL="<device name>", RUN+="raw /dev/raw/rawX %N"
主/次号码:
ACTION=="add", ENV{MAJOR}="A", ENV{MINOR}="B", RUN+="raw /dev/raw/rawX %M %m"
用你需要绑定的设备名称替换 <device name>(如:/dev/sda1)。"A" 和 "B" 是设备的主/次号码,X 是系统使用的 raw 设备号码。
如果你有一个大的、现有的 /etc/sysconfig/rawdevices 文件,你可以用下面的脚本转换它:
#!/bin/sh
grep -v "^ *#" /etc/sysconfig/rawdevices | grep -v "^$" | while read dev major minor ; do
if [ -z "$minor" ]; then
echo "ACTION=="add", KERNEL=="${major##/dev/}", RUN+="/usr/bin/raw $dev %N""
else
echo "ACTION=="add", ENV{MAJOR}=="$major", ENV{MINOR}=="$minor", RUN+="/usr/bin/raw $dev %M %m""
fi
done
驱动更新程序
内核模块软件包
在 红帽企业 Linux 5 里,你有可能构建更新的内核模块软件包,它依赖于当前的内核 ABI 版本而不是特定的内核发布号。用这个功能构建的内核模块可以用在一系列的 红帽企业 Linux 5 里,而不仅仅是单一的内核版本里。http://www.kerneldrivers.org/ 上的项目网站包含了打包过程的更多信息,以及几个示例。
注意,下面的问题也已经被确认:
● 作为 kmod 软件包分发的 Bootpath 驱动不被正式地支持。
● 目前不支持重载内核里现有的驱动。
这个问题将在将来的红帽企业 Linux 5更新里得到解决。
内核模块装载
从以前的红帽企业 Linux发行版本开始,红帽企业 Linux 5里的模块装载行为就已经更改了。和红帽企业 Linux 4 一样,红帽企业 Linux 5内核软件包里附带的模块都是签名的。然而,从另外一个内核版本里载入签名的模块已经不可能了。
这意味着初始的红帽企业 Linux 5分发版本附带的模块不能够装载在将来的更新内核里。这阻止用户在系统里装载不被支持的模块。红帽只支持分发版本包含的签名的模块。
如果你想装载旧的模块,你可以尝试不用签名来重新构建它。或者,你可以用下面的命令从二进制文件里删除签名:
objcopy -R .module_sig <module name>-mod.ko <module name>-nosig.ko
EL5新特性还有很多,以上只是列出了部分更新内容,在学习ULE课程过程中,你会发现,RHEL的每次升级都会给我们带来一定惊喜。
点击:立刻报名体验最专业的Linux课程!
|