2.4 从CentOS 6.5升级到CentOS 7
对于一些已安装CentOS旧版本的计算机来说,通常更希望能从旧版本直接升级到CentOS 7,因为这样能够避免数据迁移的问题。由于CentOS 7与之前的版本差异较大(事实上每一个新版本与老版本差异都较大),不一定能百分之百成功。本节将简要介绍如何从CentOS 6.5升级到CentOS 7。
2.4.1 升级风险
在个人使用的计算机或虚拟机中升级CentOS即使失败,可能也未必会有多大损失,但拥有宝贵数据的生产环境则不同。此处仅讨论生产环境中升级可能带来的影响,其主要可归结为以下几点:
(1)系统升级后,系统中的软件也会同时升级。这些软件可能会因为兼容性等原因与之前版本的数据、配置文件等产生冲突,导致不可用或部分功能丧失。
(2)由于CentOS 7属于较新的系统,其稳定性、性能尚不稳定,可能会危及业务系统的可用性。
(3)新系统使用时间尚短,可能会有许多没有被发现的Bug,这也是为何运维工程师通常会采用较低版本的原因。
从之前红帽子的更新习惯来看,新版本通常有非常巨大的改动,也必然存在较多Bug且系统也尚未得到时间的考验,因此生产环境更新可稍作等待。待更新两三次,系统中大部分Bug被发现、修复,且性能趋于稳定时再更新。
2.4.2 使用升级工具
与之前的版本不同,新版本的CentOS提供了一个升级工具preupg,用户可以使用此工具将CentOS 6.5升级到7。但这个工具并没有得到非常严格的测试,因此生产环境中不建议使用本小节中介绍的升级工具。
(1)由于升级工具并没有包含在CentOS 6.5的软件源中,因此需要添加新的软件源才能使用。使用vim在目录/etc/yum.repos.d中建立一个名为upgrade.repo的文件,内容如下:
[root@localhost ~]# cat /etc/yum.repos.d/upgrade.repo [upgrade] name=upgrade baseurl=http://dev.centos.org/centos/6/upg/x86_64/ enable=1 gpgcheck=0
完成上述设置后,请确保计算机能正常连接网络,然后执行以下命令安装更新工具:
yum -y install preupgrade-assistant-contents redhat-upgrade-tool preupgrade-assistant
上面这条命令将安装包括测试工具在内的升级工具。
(2)在正式开始升级之前,建议使用测试工具进行测试:
[root@localhost ~]# preupg Preupg tool doesn't do the actual upgrade. Please ensure you have backed up your system and/or data in the event of a failed upgrade that would require a full re-install of the system from installation media. Do you want to continue? y/n #此处需要输入y并按Enter键 y Gathering logs used by preupgrade assistant: All installed packages : 01/11 ...finished (time 00:01s) All changed files : 02/11 ...finished (time 15:29s) Changed config files : 03/11 ...finished (time 00:00s) All users : 04/11 ...finished (time 00:00s) All groups : 05/11 ...finished (time 00:00s) Service statuses : 06/11 ...finished (time 00:01s) ……
需要注意的是,preupg工具仅作一些常规测试,其结果仅能做参考。
(3)接下来就可以导入CentOS 7的key并开始更新了:
[root@localhost ~]# rpm --import http://centos.excellmedia.net/7.0.1406/os/x86_64/RPM-GPG-KEY-CentOS-7 #此命令用 于导入CentOS 7的key [root@localhost ~]# redhat-upgrade-tool-cli --force --network 7 --instrepo=http://mirror.centos.org/centos/7/os/x86_64 setting up repos... .treeinfo | 1.1 kB 00:00 getting boot images... vmlinuz-redhat-upgrade-tool | 4.7 MB 01:38 initramfs-redhat-upgrade-tool.img | 32 MB 10.28 …… (1467/1468): zlib-devel-1.2.7-13.el7.x86_64.rpm | 49 kB 00:00 (1468/1468): zziplib-0.13.62-5.el7.x86_64.rpm | 81 kB 00:00 rpm transaction 100% [=========================================================] rpm install 100% [=============================================================] setting up repos... No upgrade available for the following repos: base extras updates getting boot images... setting up update... testing upgrade transaction setting up system for upgrade Finished. Reboot to start upgrade.
先使用rpm导入Key,然后使用redhat-upgrade-tool-cli工具下载更新中需要使用的软件包。从以上执行结果可以看出共计下载了1468个软件包(视系统中安装的软件不同,需要的软件包也不同),由于此步需要从国外服务器中下载软件包,因此可能需要花费大量时间。
(4)完成上述步骤之后,重新启动系统时系统就会自动更新至CentOS 7,如图2.37所示。
图2.37 升级到CentOS 7
从图中可以看到,系统已经开始更新系统中的软件,视计算机配置不同这个过程将持续10~20分钟。在升级过程中可能还会出现一些错误及部分软件升级失败的情况,通常系统会自动处理这些情况,以保证升级过程顺利完成。