UEK R3升级手记

UEK是OracleLinux发布的内核版本,对内核增加了更多优化。最近发布了UEK R3。如果需要部署3.x系列内核,可以基于此版本进行测试升级了。

主要的更新内容包括:

  • 基于Linux主线版本3.8.13
  • 虚拟化相关支持升级
  • btrfs升级(UEK R2中基于kernel 3.0,UEK R3基于kernel 3.8)
  • DTrace 0.4
  • cgroups和LXC更新。lxc-0.9.0-2.0.4同时发布
  • XEN改进
  • 大量的驱动升级,涵盖存储设备、网络设备等

重要改进:

  • ext4支持inode内存储小文件(通过-O inline_data)选项 mkfs.ext4 -O inline_data device 针对已有的ext4文件系统 tune2fs -O inline_data device
  • XFS日志checksum
  • zero huge page以改善现有zero 4-KB page的性能
  • NUMA节点下内存分配的自动平衡
  • memory control group支持额外的参数
    • memory.kmem.failcnt
    • memory.kmem.limit_in_bytes
    • memory.kmem.max_usage_in_bytes
    • memory.kmem.usage_in_bytes
  • SCSI error-handling超时值可以通过/sys/class/scsi_device/*/device/eh_timeout设置
  • 通过mmap()的flags或shmget()的shmflg参数可以使用variable-sized huge page
  • TCP fast open (TFO)
  • watchdog定时器设备/dev/watchdog

注意事项

  • I/O scheduler默认为deadline。RHEL中默认为cfq

安装UEK R3。

首先需要安装Oracle仓库。安装oracle仓库的方法参考http://public-yum.oracle.com。或者以root身份执行以下命令

#CentOS 5
cd /etc/yum.repos.d
wget https://public-yum.oracle.com/public-yum-el5.repo

#CentOS 6
cd /etc/yum.repos.d
wget https://public-yum.oracle.com/public-yum-ol6.repo

由于UEK R3还没有加入到正式版本中,所有需要手工设置使用oracle的beta仓库(目前属于测试阶段,以后可能会更改)

cd /etc/yum.repos.d
wget http://public-yum.oracle.com/beta/public-yum-ol6-beta.repo
sed -i s/enabled=0/enabled=1/g public-yum-ol6-beta.repo

cat >/etc/yum.repos.d/public-yum-ol6-beta.repo<<EOF
[ol6_beta]
name=Oracle Linux \$releasever Beta (\$basearch)
baseurl=http://public-yum.oracle.com/beta/repo/OracleLinux/OL6/uek3/\$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=0
enabled=1
EOF

现在可以通过yum来安装uek3:

yum install -y kernel-uek-3.8.13-13.el6uek

[root@localhost yum.repos.d]# yum install kernel-uek-3.8.13-13.el6uek -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * epel: mirrors.hust.edu.cn
 * extras: mirrors.btte.net
 * updates: mirrors.hust.edu.cn
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package kernel-uek.x86_64 0:3.8.13-13.el6uek will be installed
--> Processing Dependency: kernel-firmware = 3.8.13-13.el6uek for package: kernel-uek-3.8.13-13.el6uek.x86_64
--> Running transaction check
---> Package kernel-uek-firmware.noarch 0:3.8.13-13.el6uek will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================
 Package                            Arch                  Version                         Repository               Size
========================================================================================================================
Installing:
 kernel-uek                         x86_64                3.8.13-13.el6uek                ol6_beta                 36 M
Installing for dependencies:
 kernel-uek-firmware                noarch                3.8.13-13.el6uek                ol6_beta                1.6 M

Transaction Summary
========================================================================================================================
Install       2 Package(s)

Total download size: 37 M
Installed size: 151 M
Downloading Packages:
(1/2): kernel-uek-3.8.13-13.el6uek.x86_64.rpm                                                    |  36 MB     02:22     
(2/2): kernel-uek-firmware-3.8.13-13.el6uek.noarch.rpm                                           | 1.6 MB     00:05     
------------------------------------------------------------------------------------------------------------------------
Total                                                                                   256 kB/s |  37 MB     02:29     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : kernel-uek-firmware-3.8.13-13.el6uek.noarch                                                          1/2 
  Installing : kernel-uek-3.8.13-13.el6uek.x86_64                                                                   2/2 
  Verifying  : kernel-uek-firmware-3.8.13-13.el6uek.noarch                                                          1/2 
  Verifying  : kernel-uek-3.8.13-13.el6uek.x86_64                                                                   2/2 

Installed:
  kernel-uek.x86_64 0:3.8.13-13.el6uek                                                                                  

Dependency Installed:
  kernel-uek-firmware.noarch 0:3.8.13-13.el6uek                                                                         

Complete!

现在可以在/boot目录下和/etc/grub/menu.lst里看到3.8.13版本的内核项。重启试试。

uname -a
Linux localhost.localdomain 3.8.13-13.el6uek.x86_64 #1 SMP Wed Aug 21 14:28:36 PDT 2013 x86_64 x86_64 x86_64 GNU/Linux

还可以安装其它工具

# yum install dtrace-utils
# yum install lxc

Release Notes