이 문서에서는 FusionIO 카드가 장착된 C460 시스템의 SP2에서 SP3으로 시스템, 애플리케이션 및 SAP(Data Processing)의 제품용 소프트웨어 및 시스템 개발(SUSE) Linux Enterprise Server(SLES) 11을 업그레이드하는 단계에 대해 설명합니다.SAP HANA(High Performance Analytic Appliance) 시스템은 설치 시 SAP 애플리케이션 및 드라이버 버전용 SLES 11 최신 버전과 함께 제공됩니다.시스템 수명 동안 고객은 SAP 또는 SUSE에서 요청할 수 있는 최신 보안 패치, 업데이트 및 커널 버전으로 환경을 업데이트하는 책임을 집니다.
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
이러한 구성 요소는 다음과 같습니다.
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.
커널 드라이버로의 업그레이드 또는 커널 매개 변수 변경 등 운영 체제(OS)에서 주요 작업을 수행할 때마다 HANA 로그 파티션의 백업이 있어야 하며, 어플라이언스 외부에 저장되어야 합니다.또한 SAP, SUSE 및 Cisco 지원 채널에서 관련 릴리스 노트를 읽어야 합니다.
C460과 같이 FusionIO 카드를 포함하는 SAP HANA 시스템의 경우 FusionIO 드라이버는 실행 중인 커널에 맞게 특별히 설계되었습니다.따라서 새 커널로 업그레이드하려면 추가 단계가 필요합니다.
마지막으로, 업데이트 프로세스 중에 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.
HANA 데이터베이스를 중지한 후 LOG 영역으로 이동하여 로그 파티션을 백업합니다.
server01 :~ # cd /hana/log
server01 :/hana/log # find . ?xdev | cpio ?oav > /backup/hana.log.cpio
로그 파티션을 마운트 해제하고 /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
서비스 팩 업그레이드의 경우 Novell의 KB 문서 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
커널 업데이트는 재부팅이 필요하지만 아직 재부팅되지 않습니다.
커널 업데이트 프로세스 중에 새 GNU(GNU's Not Unix) GRand GRUB(Unified Bootloader) 항목이 생성됩니다./boot/grub/menu.lst에서 RAID(Redundant Array of Independent Disks) 컨피그레이션을 반영하는지 확인합니다.
관련 항목은 라인 루트(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
또한 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>
이제 서버를 재부팅해도 안전합니다.커널이 업그레이드되었는지 확인하려면 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
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>
이러한 지침은 새 드라이버를 원하는 경우에도 사용할 수 있습니다.최신 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
새 드라이버를 설치한 후 드라이버를 활성화하려면 시스템을 재부팅해야 합니다.재부팅한 후 버전이 올바른지 확인합니다.
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
/etc/fstab의 변경 내용을 실행 취소하려면 주석(#)을 제거하고 /hana/log를 마운트하십시오.
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