engineering with suse linux enterprise server

30
Engineering with SUSE ® Linux Enterprise Server Hardware engineers share their experience in developing solutions Craig Lamparter Linux Systems/Software Engineer Hewlett Packard Enterprise Bryan Gartner Sr. Technology Strategist SUSE

Upload: others

Post on 21-Jun-2022

16 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Engineering with SUSE Linux Enterprise Server

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

Page 2: Engineering with SUSE Linux Enterprise Server

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

Page 3: Engineering with SUSE Linux Enterprise Server

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

Page 4: Engineering with SUSE Linux Enterprise Server

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

Page 5: Engineering with SUSE Linux Enterprise Server

Let's install SUSE Linux Enterprise Server on ProLiant!

Page 6: Engineering with SUSE Linux Enterprise Server

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!

Page 7: Engineering with SUSE Linux Enterprise Server

7

Installing SUSE Linux Enterprise Server on ProLiant

“Array Configuration”

Page 8: Engineering with SUSE Linux Enterprise Server

8

Installing SUSE Linux Enterprise Server on ProLiant

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

kiso

Page 9: Engineering with SUSE Linux Enterprise Server

9

Installing SUSE Linux Enterprise Server on ProLiant

SLES installation Complete!

Page 10: Engineering with SUSE Linux Enterprise Server

Installing SUSE Linux Enterprise Server without a kiso driver disc

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

Page 11: Engineering with SUSE Linux Enterprise Server

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

Page 12: Engineering with SUSE Linux Enterprise Server

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

Page 13: Engineering with SUSE Linux Enterprise Server

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

Page 14: Engineering with SUSE Linux Enterprise Server

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

Page 15: Engineering with SUSE Linux Enterprise Server

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

Page 16: Engineering with SUSE Linux Enterprise Server

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.

Page 17: Engineering with SUSE Linux Enterprise Server

Installing SUSE Linux Enterprise Serverin IT/Production environment

(ie, SAP servers)

Page 18: Engineering with SUSE Linux Enterprise Server

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

Page 19: Engineering with SUSE Linux Enterprise Server

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

Page 20: Engineering with SUSE Linux Enterprise Server

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)

Page 21: Engineering with SUSE Linux Enterprise Server

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

Page 22: Engineering with SUSE Linux Enterprise Server

HPE Software Delivery RepositorySUSE Linux Enterprise Server Service Pack for

ProLiant

DriversAgent software

Firmware

Page 23: Engineering with SUSE Linux Enterprise Server

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

Page 24: Engineering with SUSE Linux Enterprise Server

24

add_repo.sh

spp

downloads.linux.hp.com

Configure system to pull packages from the Service Pack for ProLiant

Page 25: Engineering with SUSE Linux Enterprise Server

25

wgetadd_repo.sh

Subscribe to the spp repository

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

Page 26: Engineering with SUSE Linux Enterprise Server

26

zypper install hpsssacli(array config utility)

Run hpssacli

Page 27: Engineering with SUSE Linux Enterprise Server

27

Search for suse driversIn the spp

(zypper search kmp-default)

HPE drivers for SUSE Linux Enterprise Server

Page 28: Engineering with SUSE Linux Enterprise Server

28

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

Page 29: Engineering with SUSE Linux Enterprise Server

29

Page 30: Engineering with SUSE Linux Enterprise Server

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.