engineering with suse linux enterprise server
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.