4- Patch Exadata KVM Host Servers
This is part 4/5 of Exadata Patch series, this section outlines the patching workflow for KVM host servers. The process is managed using patchmgr and dcli, ensuring a centralized and repeatable approach.
We have RAC include 4 servers, base on that I will apply the patch on VM1 & VM2 from VM3
Step 1: Setup Passwordless
Ensure you can connect passwordlessly between peer VMs to facilitate patching:
From KVM_3:
cat /EXAVMIMAGES/patches/stage/KVM_Hosts_1_2
EXA1-KVM1
EXA1-KVM2
dcli -g /EXAVMIMAGES/patches/stage/KVM_Hosts_1_2 -l root -k -s '-o StrictHostKeyChecking=no'
dcli -g /EXAVMIMAGES/patches/stage/KVM_Hosts_1_2 -l root hostname
Comment: Passwordless SSH is crucial for dcli and patchmgr to function across nodes.
Step 2: Run patchmgr precheck:
From KVM3
cd /EXAVMIMAGES/patches/dbnodeupdate/
unzip -q p21634633_241200_Linux-x86-64.zip
cd /EXAVMIMAGES/patches/dbnodeupdate/dbserver_patch_240719/
./patchmgr --dbnodes /EXAVMIMAGES/patches/stage/KVM_Hosts_1_2 --precheck --repo \ /EXAVMIMAGES/patches/YUM_KVM/p36684576_241000_Linux-x86-64.zip --target_version 24.1.2.0.0.240711 \
--log_dir auto
Step 3: Backup (Optional but Recommended)
patchmgr: uses dbserver_backup.sh script to perform a backup of the file system hosting the operating system before updating the Exadata database server
cd /u01/stage/Exadata_24.1.2.0.0/dbserver_patch_240719
./patchmgr --dbnodes /EXAVMIMAGES/patches/stage/KVM_HOSTS_3_4 --backup --repo /EXAVMIMAGES/patches/YUM_KVM/p36684576_241000_Linux-x86-64.zip --target_version 24.1.2.0.0.240711
[--allow_active_network_mounts]
Comment: Add –allow_active_network_mounts if your environment uses NFS mounts.
Step 4: Stop CRS and Agents
Disable and stop Clusterware:
dcli -g /EXAVMIMAGES/patches/stage/ALL_VM_1_2 -l root "/u01/app/19.0.0.0/grid/bin/crsctl disable crs"
dcli -g /EXAVMIMAGES/patches/stage/ALL_VM_1_2 -l root "/u01/app/19.0.0.0/grid/bin/crsctl stop crs"
Validate CRS is down:
dcli -g /EXAVMIMAGES/patches/stage/ALL_VM_1_2 -l root "ps -ef | grep grid | grep -v grep"
dcli -g /EXAVMIMAGES/patches/stage/ALL_VM_1_2 -l root "/u01/app/19.0.0.0/grid/bin/crsctl check crs"
Stop Enterprise Manager agents:
dcli -g /EXAVMIMAGES/patches/stage/ALL_VM_1_2 -l oracle /u01/app/oracle/agent/agent_13.5.0.0.0/bin/emctl stop agent
Step 5: Shutdown all Guest in KVM_HOSTS_1_2
From each KVM hosts:
vm_maker --list-domains
vm_maker --stop-domain --all
vm_maker --list-domains
if there is any VM stuck then
vm_maker –stop-domain EXA1-VM_XXX –force
Step 6: Apply the Patch
From KVM 3:
cd /EXAVMIMAGES/patches/dbnodeupdate/dbserver_patch_240719/
./patchmgr --dbnodes /EXAVMIMAGES/patches/stage/KVM_HOSTS_1_2 --upgrade --nobackup --repo \ /EXAVMIMAGES/patches/YUM_KVM/p36684576_241000_Linux-x86-64.zip \
--target_version 24.1.2.0.0.240711 --log_dir auto
Cleanup (if required):
./patchmgr –dbnodes /EXAVMIMAGES/patches/stage/KVM_HOSTS_3_4 –precheck -cleanup –log_dir auto
Enable CRS and Agents
Once patching is successful on KVM1 and KVM2, start the VMs and CRS in the nodes then flip the workflow and apply the patch from KVM_1 to KVM_3 and KVM_4.
🔖 Next: Part 1/5 – Oracle Exadata Patching (Oracle Homes)
🔖 Next: Part 2/5 – Oracle Exadata Patching (RoCE Switches)
🔖 Next: Part 3/5 – Oracle Exadata Patching (Cell Storage)
🔖 Next: Part 4/5 – Oracle Exadata Patching (KVM Host)
🔖 Next: Part 5/5 – Oracle Exadata Patching (KVM Guest)

