RHEL kpatch and SQL Server

kpatch is a no downtime Kernel Patching Solution that is built in Red Hat Enterprise Linux (RHEL). I was recently asked to test the impact of kpatch on SQL Server

A little more information on kpatch is available this Link
So to test kpatch with SQL Server i decided to use HammerDB and run a TPC-C Benchmark while running a kpatch.

First i checked that no kpatch patch modules were installed

[root@fuad ~]# kpatch list
Loaded patch modules:
Installed patch modules:
[root@fuad ~]#

Then I Installed a TPC-C Schema using HammerDB

After the install Was completed I staged the kpatch module that i was going to use

[root@fuad tmp]# ls -alt /tmp/kpatch-patch-3_10_0–862_9_1–0–1.el7.x86_64.rpm
-rw-r — r — . 1 root root 6724 Jul 27 09:47 /tmp/kpatch-patch-3_10_0–862_9_1–0–1.el7.x86_64.rpm

After this i kicked off a HammerDB TPC-C load and it was loading at 12tpm (My Laptop VM was slow).

While the Load was running

[root@fuad tmp]# yum install kpatch-patch-3_10_0–862_9_1–0–1.el7.x86_64.rpm
Loaded plugins: product-id, search-disabled-repos, subscription-manager
Repository packages-microsoft-com-prod is listed more than once in the configuration
Examining kpatch-patch-3_10_0–862_9_1–0–1.el7.x86_64.rpm: kpatch-patch-3_10_0–862_9_1–0–1.el7.x86_64
Marking kpatch-patch-3_10_0–862_9_1–0–1.el7.x86_64.rpm to be installed
Resolving Dependencies
 → Running transaction check
 — -> Package kpatch-patch-3_10_0–862_9_1.x86_64 0:0–1.el7 will be installed
 → Processing Dependency: kpatch >= 0.4.0–3 for package: kpatch-patch-3_10_0–862_9_1–0–1.el7.x86_64
 → Running transaction check
 — -> Package kpatch.noarch 0:0.4.0–3.el7 will be installed
 → Finished Dependency Resolution
Dependencies Resolved
 Package Arch Version Repository Size
 x86_64 0–1.el7 /kpatch-patch-3_10_0–862_9_1–0–1.el7.x86_64 12 k
Installing for dependencies:
 kpatch noarch 0.4.0–3.el7 rhel-7-server-rpms 10 k
Transaction Summary
Install 1 Package (+1 Dependent package)
Total size: 22 k
Total download size: 10 k
Installed size: 26 k
Is this ok [y/d/N]: y
Downloading packages:
kpatch-0.4.0–3.el7.noarch.rpm | 10 kB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
 Installing : kpatch-0.4.0–3.el7.noarch 1/2
 Installing : kpatch-patch-3_10_0–862_9_1–0–1.el7.x86_64 2/2
loading patch module: /usr/lib/kpatch/3.10.0–862.9.1.el7.x86_64/kpatch-3_10_0–862_9_1–0–1.ko
installing /usr/lib/kpatch/3.10.0–862.9.1.el7.x86_64/kpatch-3_10_0–862_9_1–0–1.ko (3.10.0–862.9.1.el7.x86_64)
 Verifying : kpatch-0.4.0–3.el7.noarch 1/2
 Verifying : kpatch-patch-3_10_0–862_9_1–0–1.el7.x86_64 2/2
 kpatch-patch-3_10_0–862_9_1.x86_64 0:0–1.el7
Dependency Installed:
 kpatch.noarch 0:0.4.0–3.el7


I installed and Loaded a kpatch module with no change in my TPM or any activity on the box and i did not need to reboot my box . Here i validate that kpatch module was installed

[root@fuad tmp]# kpatch list
Loaded patch modules:
kpatch_3_10_0_862_9_1_0_1 [enabled]
Installed patch modules:
kpatch_3_10_0_862_9_1_0_1 (3.10.0–862.9.1.el7.x86_64)

kpatch or Live kernel fixes will need to requested via support channels but the ability ot have a database functioning while a sysadmin is patching a critical vulnerability allows for business continuity but please also ensure that appropriate testing is completed before using this in a production environment

As i continue learning i will post more information on running SQL Sever on RHEL and other topics.