目录

简介

先决条件

要求

使用的组件

步骤

1.停止HANA数据库

2.备份日志分区

3.卸载日志分区并修改fstab

操作系统升级

4.升级SLES

升级后任务

5.选中menu.lst

6.检查格鲁布

7.验证操作系统升级

8.重建FusionIO驱动程序

9.验证FusionIO驱动程序

十、撤消fstab更改

11.启动HANA数据库

简介

本文档介绍在带FusionIO卡的C460系统上，从Service Pack(SP)2升级到SP3的步骤，以升级软件和系统开发(SUSE)Linux Enterprise Server(SLES)11 for Systems， Applications and Products in Data Processing(SAP)。SAP高性能分析设备(HANA)系统在安装时随SAP应用和驱动程序版本的SLES 11的最新版本一起提供。在系统生命周期内，客户有责任使用SAP或SUSE可能请求的最新安全补丁、更新和内核版本来更新环境。

先决条件

要求

Cisco 建议您了解以下主题：

- Linux管理

- SAP HANA管理

需要以下组件：

- SLES 11 for SAP OS，已在Novell或

- SLES 11 SP3安装介质或对SP3存储库的本地访问

- FusionIO驱动程序和实用程序

使用的组件

本文档中的信息基于以下软件和硬件版本：

- 带固件1.5(4a)的C460 M2

- 内核为3.0.80-0.7的SLES 11 SP2

- 内核为3.0.101-0.35的SLES 11 SP3

- FusionIO ioDrive 320GB，带驱动程序3.2.3内部版950和固件7.1.13

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您使用的是真实网络，请确保您已经了解所有命令的潜在影响。

步骤

无论何时在操作系统(OS)上执行主要操作，如对内核驱动程序的升级或对内核参数的更改，请确保您有HANA日志分区的备份，最好存储在设备外部。您还应阅读SAP、SUSE和思科支持渠道中的任何相关版本说明。

对于包含FusionIO卡（如C460）的SAP HANA系统，FusionIO驱动程序专为运行内核而构建。因此，升级到新内核需要额外的步骤。

最后，在更新过程中，必须停止HANA数据库。

1.停止HANA数据库

server01 :~ # su - <SID>adm

server01:/usr/sap/<SID>/HDB00 # HDB stop

hdbdaemon will wait maximal 300 seconds for NewDB services finishing.

Stopping instance using: /usr/sap/HAN/SYS/exe/hdb/sapcontrol

-prot NI_HTTP -nr 00 -function StopWait 400 2

12.08.2014 23:46:34

Stop

OK

12.08.2014 23:47:02

StopWait

OK

hdbdaemon is stopped.

2.备份日志分区

停止HANA数据库后，移至LOG区域并备份日志分区。

server01 :~ # cd /hana/log

server01 :/hana/log # find . ?xdev | cpio ?oav > /backup/hana.log.cpio

3.卸载日志分区并修改fstab

卸载日志分区并在/etc/fstab中注释它，这样它在重新启动后不会自动装载日志分区。这是必需的，因为内核升级后，需要在装载日志分区之前重建FusionIO驱动程序。

server01:~ # umount /hana/log

server01:~ # vi /etc/fstab

server01:~ # cat /etc/fstab | grep "log"

#/dev/md0 /hana/log xfs defaults 1 2

操作系统升级

4.升级SLES

对于Service Pack升级，请遵循Novell知识库文章7012368中记录的流程 。

如果需要，请配置代理服务，以便服务器可以访问镜像。

server01:~ # cd /etc/sysconfig/

server01:/etc/sysconfig # vi proxy

PROXY_ENABLED="yes"

HTTP_PROXY="http://<COMPANY.COM>:8080"

HTTPS_PROXY="http://<COMPANY.COM>::8080"

FTP_PROXY=http://<COMPANY.COM>::8080

内核更新需要重新启动，但暂时不要重新启动。

升级后任务

5.选中menu.lst

在内核更新过程中，将创建新的GNU（GNU的Not Unix）GR和Unified Bootloader(GRUB)条目。验证/boot/grub/menu.lst，确保它们反映了特定的独立磁盘冗余阵列(RAID)配置。

相关条目位于行根(hd0,0)和包含新内核的行下。

server01:/boot/grub # cat menu.lst

# Modified by YaST2. Last modification on Wed Jul 24 18:27:21 GMT 2013

default 0

timeout 8

##YaST - generic_mbr

gfxmenu (hd0,0)/message

##YaST - activate

###Don't change this comment - YaST2 identifier: Original name: linux###

title SUSE Linux Enterprise Server 11 SP<#> - <VERSION> (default)

root (hd0,0)

kernel /vmlinuz-<VERSION>-default root=/dev/rootvg/rootvol

resume=/dev/rootvg/swapvol splash=silent crashkernel=256M-:128M

showopts intel_idle.max_cstate=0 vga=0x314

initrd /initrd-<VERSION>-default

###Don't change this comment - YaST2 identifier: Original name: failsafe###

title Failsafe -- SUSE Linux Enterprise Server 11 SP<#> - <VERSION> (default)

root (hd0,0)

kernel /vmlinuz-<VERSION>-default root=/dev/rootvg/rootvol showopts ide=nodma

apm=off

noresume edd=off powersaved=off nohz=off highres=off processor.max_cstate=1

nomodeset x11failsafe intel_idle.max_cstate=0 vga=0x314

initrd /initrd-<VERSION>-default

6.检查格鲁布

此外，从CLI启动grub并输入以下命令：

GNU GRUB version 0.97 (640K lower / 3072K upper memory)

[ Minimal BASH-like line editing is supported. For the first word,

TAB lists possible command completions. Anywhere else TAB lists the

possible completions of a device/filename. ]

grub> device (hd0) /dev/sda

grub> root (hd0,0)

Filesystem type is ext2fs, partition type 0x83

grub> setup (hd0)

Checking if "/boot/grub/stage1" exists... yes

Checking if "/boot/grub/stage2" exists... yes

Checking if "/boot/grub/e2fs_stage1_5" exists... yes

Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... failed (this is not fatal)

Running "embed /boot/grub/e2fs_stage1_5 (hd0,0)"... failed (this is not fatal)

Running "install /boot/grub/stage1 (hd0) /boot/grub/stage2 p /boot/grub/menu.lst "...

succeeded

grub>

7.验证操作系统升级

现在应该可以安全地重新启动服务器。输入uname -a命令以验证内核是否已升级。

server01:/root # uname -a

Linux server01 3.0.101-0.35-default #1 SMP Wed Jul 9 11:43:04 UTC 2014 (c36987d)

x86_64 x86_64 x86_64 GNU/Linux

8.重建FusionIO驱动程序

8a在/usr/src/packages/RPMS/（选项1）中使用源RPM

server01:/ # find / -name "iomemory*.src.rpm"

/usr/src/packages/RPMS/x86_64/iomemory-vsl-<VERSION>.src.rpm

server01:/

# rpmbuild --rebuild /usr/src/packages/RPMS/x86_64/iomemory-vsl-<VERSION>.src.rpm

Installing iomemory-vsl-<VERSION>.src.rpm

...

Wrote:

/usr/src/packages/RPMS/x86_64/iomemory-vsl-3.0.101-0.35-default-<VERSION>.x86_64.rpm

server01:/

# rpm -ivh /usr/src/packages/RPMS/x86_64/iomemory-vsl-3.0.101-0.35-

default-<VERSION>.x86_64.rpm

Preparing...                ########################################### [100%]

1:iomemory-vsl-3.0.101-0.########################################### [100%]

如果旧驱动程序仍列出，请将其删除。

server01:/recover/FusionIO # rpm -qa | grep vsl

iomemory-vsl-3.0.101-0.35-default-<VERSION>

iomemory-vsl-3.0.80-0.7-default-<VERSION>

server01:~ # rpm -e iomemory-vsl-3.0.80-0.7-default-<VERSION>

8b在/recover分区中使用源RPM（选项2）

如果需要较新的驱动程序，也可使用这些说明。FusionIO支持的最新驱动程序版本可在FusionIO支 持站点的KB 857中找到。

server01:/recover # rpm -qa | grep vsl

iomemory-vsl-3.0.80-0.7-default-<VERSION>

libvsl-<VERSION>

server01:/recover # rpm -qi iomemory-vsl-3.0.80-0.7-default-<VERSION>

Name        : iomemory-vsl-3.0.80-0.7-default  Relocations: (not relocatable)

Version     : <VERSION>                         Vendor: Fusion-io

Release     : 1.0                           Build Date: Tue Aug 12 23:22:57 2014

Install Date: Tue Aug 12 23:27:46 2014         Build Host: server91.local

Group       : System Environment/Kernel     Source RPM: iomemory-vsl-<VERSION>.src.rpm

Size        : 5059825                          License: Proprietary

Signature   : (none)

URL         : http://support.fusionio.com/

Summary     : Driver for ioMemory devices from Fusion-io

Description :

Driver for fio devices

Distribution: (none)

恢复分区应具有两个带驱动程序的文件夹：CISCO_FusionIO和FusionIO。本例中RPM的供应商是FusionIO。

server01:/recover # cd FusionIO

server01:/recover/FusionIO # ls *vsl*src.rpm

iomemory-vsl-<VERSION>.src.rpm

server01:/recover/FusionIO # rpmbuild -?rebuild iomemory-vsl-<VERSION>.src.rpm

Installing iomemory-vsl-<VERSION>.src.rpm

...

Wrote:

/usr/src/packages/RPMS/x86_64/iomemory-vsl-3.0.101-0.35-default-<VERSION>.x86_64.rpm

server01:/recover/FusionIO # rpm -ivh

/usr/src/packages/RPMS/x86_64/iomemory-vsl-3.0.101-0.35-default-<VERSION>.x86_64.rpm

Preparing...                ########################################### [100%]

1:iomemory-vsl-3.0.101-0.########################################### [100%]

server01:/recover/FusionIO # rpm -qa | grep vsl

iomemory-vsl-3.0.101-0.35-default-<VERSION>

如果FusionIO驱动程序已升级，则应升级实用程序。

server01:/recover/FusionIO # cd Installed

server01:/recover/FusionIO/Installed # ls

fio-common-<VERSION>.x86_64.rpm    fio-util-<VERSION>.x86_64.rpm  libvsl-<VERSION>.x86_64.rpm

fio-sysvinit-<VERSION>.x86_64.rpm

server01:/recover/FusionIO/Installed # rpm -Uvh libvsl-<VERSION>.x86_64.rpm

Preparing...                ########################################### [100%]

1:libvsl                 ########################################### [100%]

server01:/recover/FusionIO/Installed

# rpm -Uvh fio-common-<VERSION>.x86_64.rpm fio-sysvinit-<VERSION>.x86_64.rpm

fio-util-<VERSION>.x86_64.rpm

Preparing...                ########################################### [100%]

1:fio-util               ########################################### [ 33%]

2:fio-common             ########################################### [ 67%]

3:fio-sysvinit           ########################################### [100%]

insserv: Service syslog is missed in the runlevels 4 to use service Framework

iomemory-vsl              0:off  1:on   2:on   3:on   4:on   5:on   6:off

9.验证FusionIO驱动程序

安装新驱动程序后，需要重新启动系统以激活驱动程序。重新启动后，验证版本是否正确。

server01:/root # rpm -qa | grep vsl

iomemory-vsl-3.0.101-0.35-default-<VERSION>

libvsl-<VERSION>

server01:/root # rpm -qa | grep fio

fio-common-<VERSION>

fio-util-<VERSION>

fio-sysvinit-<VERSION>

如果旧驱动程序仍列出，请将其删除。

server01:/root # rpm -qa | grep vsl

iomemory-vsl-3.0.101-0.35-default-<VERSION>

iomemory-vsl-3.0.80-0.7-default-<VERSION>

server01:~ # rpm -e iomemory-vsl-3.0.80-0.7-default-<VERSION>

验证驱动程序状态。您应该看到一个版本，适配器应在线并连接。

server01:/root # fio-status | egrep -i "(driver|attached|online)"

Driver version: <version>

fct0    Attached

fioa    State: Online, Type: block device

fct1    Attached

fiob    State: Online, Type: block device

十、撤消fstab更改

删除注释(#)并装入/hana/log以撤消/etc/fstab中的更改。

11.启动HANA数据库

server01 :~ # su - <SID>admserver01:/usr/sap/<SID>/HDB00 # HDB start

StartService

OK

OK

Starting instance using: /usr/sap/HAN/SYS/exe/hdb/sapcontrol

-prot NI_HTTP -nr 00 -function StartWait 2700 2

12.08.2014 23:57:56

Start

OK

12.08.2014 23:59:10

StartWait

OK