engineering with suse linux enterprise server

Post on 21-Jun-2022

18 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Engineering with SUSE® Linux Enterprise ServerHardware engineers share their experience in developing solutions

Craig LamparterLinux Systems/Software Engineer

Hewlett Packard Enterprise

Bryan GartnerSr. Technology Strategist

SUSE

2

HPE's history with Linux, Unix & OSS

• Unix (HPUX) product development since 1984

• HPE works with SUSE on hardware enablement and high-end server kernels

• HPE cross-branding and marketing with SUSE

• Linux kernel developers committing code upstream‒ hpsa, hpwdt, iommu, hpilo

• HPE publishes Linux tooling software under GPL‒ HPE contributes to more than 60 GPL-licensed projects

• HPE donates to Linux/OSS organizations‒ kernel.org, OpenStack, Debian Partner, Linux Foundation,

OSDL

3

Overview of SUSE Linux Enterprise Usage in HPE• HPE's factory floor uses SUSE Linux Enterprise

Server to build/init ProLiants‒ PXE boot, sles kernel, custom ramdisc with drivers

‒ Automated diagnostics and burn-in

‒ Apply server personality, birth certificate in AMS log

• HPE Information Technology‒ Largely SAP-HANA workloads

‒ LinuxCOE Provisioning process

‒ SUSE patch distribution, lifecycle support process

• Intelligent Provisioning firmware‒ Boots a Linux environment from firmware

‒ Linux tools to configure hardware & arrays, install distribution

4

Typical ProLiant SUSE provisioning process

Inteligent Provisioning

firmwaresetup array

Bios configs

Boot suse kiso(bootable driver kit)

Insert installermedia,

install linux

Point zypper atHP Software

DeliveryRepository

Optionally install hp

agent softwarefirmware,

driversdownloads.linux.hp.com

kiso

Let's install SUSE Linux Enterprise Server on ProLiant!

6

Installing SUSE Linux Enterprise Server on ProLiant

Press [F10] to enter Intelligent Provisioning

Fun fact: This is SUSE Linux Enterprise Server under the hood!

7

Installing SUSE Linux Enterprise Server on ProLiant

“Array Configuration”

8

Installing SUSE Linux Enterprise Server on ProLiant

SUSE kiso boots, loads drivers, then prompts for traditional installation media

kiso

9

Installing SUSE Linux Enterprise Server on ProLiant

SLES installation Complete!

Installing SUSE Linux Enterprise Server without a kiso driver disc

(generate custom initial ramdisc for use with proto-hardware)

11

Customizing the initial ramdisc

• Hardware manufacturers aren't provided driver discs for their new hardware

• A quick/easy R&D approach to adding drivers is to generate a custom initial ramdisc (initrd)

1) Compile new drivers (.ko kernel objects)

2) Loop mount an existing initrd from SUSE Linux Enterprise Server

3) Drop the newly compiled kernel objects in the initrd

4) Repackage/compress the initrd, place on PXE server or DVD.

5) Configure PXE or grub to load the new ramdisc

12

The Linux boot process

‒ Grub loads the Linux kernel into memory via disc or pxe roms

‒ Grub loads the initial ramdisc into memory

‒ The ramdisc is temporarily mounted as the root filesystem

‒ Boot-essential drivers (nics and storage) are in /lib/modules on ramdisc and linked with the running kernel

‒ Physical storage media is detected and initialized

‒ The kernel runs /init from the ramdisc, which runs YaST

‒ YaST begins the installation process

13

Custom initrd generation example

1) Loop mount the existing SUSE initrd

susevm:/boot # cp initrd-3.0.76-0.11-craiger2 /tmp

susevm:/boot # cd /tmp

susevm:/tmp # file initrd-3.0.76-0.11-craiger2initrd-3.0.76-0.11-craiger2: gzip compressed data, from Unix, last modified: Fri Sep 13 10:31:58 2013, max compression

susevm:/tmp # mkdir initrd.dir

susevm:/tmp # cd initrd.dir/susevm:/tmp/initrd.dir # zcat ../initrd-3.0.76-0.11-craiger2 | cpio -id89290 blocks

susevm:/tmp/initrd.dir # lsbin boot config dev etc init lib lib64 mkinitrd.config proc root run_all.sh sbin sys tmp usr var

14

Custom initrd generation example

2) Install your custom kernel objects (drivers)

susevm:/tmp/initrd.dir/lib/modules/3.0.76-0.11-craiger2/kernel/drivers #

# mkdir custom

# cd custom

# cp ~/craiger/craiger.ko .

# depmod -a -b /tmp/initrd.dir

# cd /tmp/initrd.dir/lib/modules/3.0.76-0.11-craiger2

# grep craiger.ko modules.dep.binBinary file modules.dep.bin matches

15

###Don't change this comment - YaST2 identifier: Original name: linux###title Craiger -- SUSE with Secureboot enable 11 SP3 - 3.0.76-0.11-craiger2 root (hd0,1) kernel (hd0,1)/boot/vmlinuz-3.0.76-0.11-craiger2 root=/dev/sda2 resume=/dev/sda1 splash=silent secureboot_enable=1 crashkernel= showopts# initrd /boot/initrd-3.0.76-0.11-craiger2 initrd /boot/initrd.new

/sbin/modprobe craiger

Custom initrd generation example

3) Repackage initrd, configure boot loader to use it

# cd /tmp/initrd.dir/

# vi init

# find . | cpio -H newc -o > /tmp/initrd.new

# cp /tmp/initrd.new /boot

# vi /boot/grub/menu.lst

16

Custom initrd generation example

4) Reboot, verify module loaded

# lsmod | grep craigercraiger 12426 0

# dmesg | grep -i craiger[ 0.808527] craiger: module license 'unspecified' taints kernel.[ 0.808761] Craigers kernel module was loaded.

Installing SUSE Linux Enterprise Serverin IT/Production environment

(ie, SAP servers)

18

IT/Production provisioning

• On the factory floor, everything is done in ramdisc with the only persistent changes happening in nvram (ie, easy)

• In IT production environments we ‒ Configure arrays

‒ Install SUSE Linux Enterprise Server on the root volume

‒ Apply patches from SUSE

‒ Install management software

‒ Install additional HP drivers if needed

‒ Assign system role, install application software

• All of this must be automated in order to scale to 1000's of hosts

HPEIT

19

LinuxCOE SUSE provisioning

• HPE Linux Common Operating Environment‒ Open source project on sourceforge

‒ Automated hands-free-network-based provisioning process

‒ Design a custom system profile using a web interface

‒ Generate custom boot discs

‒ Automate installation process with SUSE AutoYaST

‒ Waystation software distribution network

• http://instalinux.com External example

• http://sourceforge.net/projects/linuxcoe/ Source

20

Patching

• SUSE “smt-mirror”‒ Create a local mirror of all SUSE updates for a distribution

‒ Generate yum index for each version of SUSE Linux Enterprise Server you support

‒ Rsync repository globally to LinuxCOE waystations

‒ LinuxCOE automatically populates /etc/zypp/repos.d

• Apply all relevant patches‒ # zypper update

• Traditional yast/zypper updates are nice but we need one tool/process for all distros (yum/zypp/apt)

21

Example SUSE Linux Enterprise Server Workload

• SAP HANA‒ In-memory database

‒ “appliance” servers, pre-configured, delivered to datacenter

‒ Normally 2 months from dock to production for five racks

‒ Converged/appliance systems approach is only requires three days

‒ HPE currently employs 90 racks

‒ 180TB in-memory data

HPE Software Delivery RepositorySUSE Linux Enterprise Server Service Pack for

ProLiant

DriversAgent software

Firmware

23

Drivers, agent software, firmware

• HPE Software Delivery Repository‒ Service Pack for ProLiant (SPP)

‒ Management agents (array config, snmp agents, health monitoring)

‒ Kmp-packaged drivers from HP and partners

‒ Firmware updates in rpm packages

‒ Integrates with zypper & yast

http://downloads.linux.hpe.com

24

add_repo.sh

spp

downloads.linux.hp.com

Configure system to pull packages from the Service Pack for ProLiant

25

wgetadd_repo.sh

Subscribe to the spp repository

Note: You could put the repo in YaST just as easily too!

26

zypper install hpsssacli(array config utility)

Run hpssacli

27

Search for suse driversIn the spp

(zypper search kmp-default)

HPE drivers for SUSE Linux Enterprise Server

28

HPE firmware pack for ProLiant (fwpp)# zypper search hp-firmware

29

Unpublished Work of SUSE LLC. All Rights Reserved.This work is an unpublished work and contains confidential, proprietary and trade secret information of SUSE LLC. Access to this work is restricted to SUSE employees who have a need to know to perform tasks within the scope of their assignments. No part of this work may be practiced, performed, copied, distributed, revised, modified, translated, abridged, condensed, expanded, collected, or adapted without the prior written consent of SUSE. Any use or exploitation of this work without authorization could subject the perpetrator to criminal and civil liability.

General DisclaimerThis document is not to be construed as a promise by any participating company to develop, deliver, or market a product. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. SUSE makes no representations or warranties with respect to the contents of this document, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. The development, release, and timing of features or functionality described for SUSE products remains at the sole discretion of SUSE. Further, SUSE reserves the right to revise this document and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes. All SUSE marks referenced in this presentation are trademarks or registered trademarks of Novell, Inc. in the United States and other countries. All third-party trademarks are the property of their respective owners.

top related