🟧 HP-UX, Common Ops & Legacy
HP-UX 11i (PA-RISC/Itanium) · Cross-platform common operations · Legacy Unix reference
HP-UX is Hewlett Packard's commercial UNIX, derived from System V. It runs only on HP/HPE proprietary hardware: PA-RISC (HP 9000) and Itanium (HPE Integrity rx/Superdome) servers. HP-UX 11i v3 is 64-bit. End of standard support is 2025–2026, so most estates are being migrated, but L3 admins are still expected to support them through end of life.
| Release | Internal Name | Notes |
|---|---|---|
| HP-UX 11i v1 | B.11.11 | PA-RISC era; legacy |
| HP-UX 11i v2 | B.11.23 | First Itanium release |
| HP-UX 11i v3 | B.11.31 | Current and final; PA-RISC + Itanium; agile addressing |
rpm -qa. Patch naming: PHCO_xxxx (commands), PHKL_xxxx (kernel), PHNE_xxxx (network), PHSS_xxxx (subsystem). Knowing this breakdown impresses interviewers — most candidates just say “patches.”| Concept | Linux LVM | HP-UX LVM |
|---|---|---|
| Init disk | pvcreate /dev/sdb | pvcreate /dev/rdsk/c0t1d0 |
| Allocation unit | Physical Extent, default 4 MiB | Physical Extent, default 4 MB |
| Create VG | vgcreate vg_data /dev/sdb | vgcreate /dev/vg01 /dev/dsk/c0t1d0 |
| VG metadata | /etc/lvm/ | /etc/lvmtab |
| Create LV | lvcreate -L 20G -n lv_app vg_data | lvcreate -L 20480 -n lv_app /dev/vg01 |
| Filesystem | mkfs.xfs / mkfs.ext4 | newfs -F vxfs /dev/vg01/rlv_app |
| Online grow | lvextend -L +10G -r | lvextend then fsadm / extendfs |
| Default FS | XFS / ext4 | VxFS (HFS legacy) |
mknod group is the most common HP-UX LVM mistake on the job.extendfs.- Power on → POST runs from PDC/EFI firmware.
- EFI Boot Manager presents options (HPUX, Service Menu, Shell).
- EFI loads HPUX.EFI (the HP-UX bootloader) from /EFI/HPUX on the EFI System Partition.
- HPUX.EFI loads /stand/vmunix (the kernel) and the AUTO file determines boot mode.
- Kernel initialises, mounts / from /etc/fstab, runs /sbin/init.
- init reads /etc/inittab and runs /sbin/rc which executes /sbin/rcN.d/Sxx scripts for the target run level.
Patches arrive as depots (.depot or directory format). The Software Distributor (SD-UX) tools (swinstall, swremove, swlist, swverify) manage them. A Quality Pack (QPK) is a tested bundle of patches HP releases periodically — usually you install QPK plus selected critical patches rather than individual fixes.
swverify in interviews — it audits all installed software against its manifests, similar to rpm -V but built into SD-UX. Senior admins run it after every patch session.HP-UX 11i v3 uses dynamic kernel tunables via kctune. Earlier versions required rebuilding the kernel with kmtune + kmadmin and a reboot. Most modern HP-UX tunables can change without a reboot — read the Changeable column in kctune -v.
shmmax, shmmni, semmns, maxdsiz_64bit and maxssiz_64bit are critical. Naming maxdsiz_64bit shows you have actually run Oracle on HP-UX.Ignite-UX is HP's equivalent of Kickstart (RHEL) or JumpStart / AI (Solaris) — a network installation framework that also produces system-recovery archives. It is core to every HP-UX shop for disaster recovery.
- Network OS install: PXE-like boot from an Ignite server, then automated install using a configuration profile.
- System recovery:
make_net_recoverycreates a bootable network archive of a live system;make_tape_recoverywrites one to DDS/LTO tape. - Cloning: capture one golden system with
make_net_recovery, then deploy it to dozens of identical servers. - Restore: boot the target from Ignite or the recovery tape and the system is rebuilt automatically.
make_net_recovery by name (and being able to say it ran nightly for 100+ HP-UX servers in your environment) is one of the strongest HP-UX seniority signals you can give.SAM (System Administration Manager) is the legacy text-based menu admin tool. SMH (System Management Homepage) is the web-based replacement on HP-UX 11i v3 at https://server:2381. Both wrap CLI commands; senior admins use the CLI but understand SAM/SMH for occasions when the CLI command name escapes them or a junior screen-shares.
| Concern | HP-UX Tool | Linux Equivalent |
|---|---|---|
| Real-time top | top, glance, gpm | top / htop |
| Per-process detail | glance (text), gpm (GUI) | atop / pidstat |
| CPU statistics | sar -u, vmstat | sar -u, vmstat, mpstat |
| Memory | vmstat, swapinfo | free, vmstat |
| Disk I/O | sar -d, iostat | iostat -xz |
| Per-PID I/O | glance (D drill-down) | iotop -o |
| Network | netstat -i, lanadmin -g | ss / ip / ethtool |
| Historical | OVPA / MeasureWare | sar history / sysstat |
glance is the HP-UX killer feature — press 'c' for CPU drill-down, 'd' for disk, 'm' for memory, 't' for threads. Naming these key-bindings tells the interviewer you have actually lived inside glance for hours.| Technology | Granularity | Isolation | Best For |
|---|---|---|---|
| nPar (hard partition) | By cell board | Electrical (no shared HW) | Maximum isolation, large Superdome |
| vPar (virtual partition) | By CPU/RAM share | Software-level, hard-partitioned CPUs | Multiple independent OS instances on one box |
| Integrity VM (HPVM) | Full hypervisor | Hypervisor-managed | Server consolidation, dynamic workloads |
HP Serviceguard (SG/HP-UX) is the HA clustering product for HP-UX. Concepts mirror Pacemaker/RHEL HA: package groups (resources), heartbeat networks, cluster lock disk (quorum), failover policies. Packages contain a control script and a configuration ASCII file.
/etc/cmcluster/<pkg>/<pkg>.log first — cmviewcl only says “down”, never why.- Take ownership on the bridge. Confirm symptoms with timestamps from app logs vs. system metrics.
- Live capture during the next hang: keep
glance,vmstat 1,sar -d 1andiostat 1running in screen sessions. - CPU vs. I/O: in
glancepress 'c' — any CPU pinned in sys%? Press 'd' — any device with await > 50ms? - Memory:
swapinfo -tm; check paging via vmstatpi/po. - Kernel pressure:
kctunefor table limits hitting their max (nfile,nproc,nflocks); usekcusagefor live consumption. - Filesystem: VxFS intent-log saturation —
vxstat -fandvxfsstat -v /app. - Network:
lanadmin -g mibstats <ppa>for errors;netstat -sfor retransmits. - HBA / SAN:
ioscan -funC disk, EMS hardware events in/var/opt/resmon/log. - If still unresolved:
cstmdiagnostics and HPE Support with the OS manifest + supportinfo bundle. - Document the RCA, update the runbook, share with L1/L2.
kcusage is the HP-UX-specific tool nobody remembers — it shows which kernel tunables are approaching their limit. Mentioning it during a perf scenario is a strong L3 signal.- Connect via the iLO/MP console — the EFI shell will already be visible.
- From EFI:
fs0:to access the EFI partition;lsto confirm HPUX.EFI is present. - Boot the previous kernel manually:
hpux /stand/vmunix.prev(HP-UX keeps the previous kernel asvmunix.prevafter a patch). - Once booted, set the system to use the previous kernel:
kconfig -a previousto activate the previous configuration. - If kernel files are missing, boot from an Ignite-UX recovery image:
boot lan.<ignite-ip> installfrom EFI. - Restore the system from the most recent
make_net_recoveryarchive. - Investigate which patch caused the issue and engage HPE; raise a problem ticket.
kconfig verification after a kernel patch — the rollback path depends on it.| Task | HP-UX | Solaris | RHEL |
|---|---|---|---|
| OS version | uname -r | uname -r / cat /etc/release | cat /etc/os-release |
| Patches | swlist -l patch | showrev -p / pkg list | rpm -qa / dnf list installed |
| Install pkg | swinstall -s | pkgadd / pkg install | rpm -ivh / dnf install |
| Boot mgr | EFI + HPUX.EFI | GRUB / OBP | GRUB2 |
| Single user | boot -is | boot -s | systemctl rescue |
| LVM PV init | pvcreate /dev/rdsk/... | format → labelled | pvcreate /dev/sd* |
| VG create | vgcreate /dev/vg01 ... | zpool create | vgcreate vg ... |
| FS create | newfs -F vxfs | zfs create | mkfs.xfs / mkfs.ext4 |
| Online grow | fsadm (Online JFS) | ZFS native | xfs_growfs / resize2fs |
| Disk listing | ioscan -funC disk | format / zpool status | lsblk |
| Network cfg | lanadmin / nwmgr | ipadm / dladm | nmcli / NetworkManager |
| Live perf | glance | prstat / dtrace | top / atop |
| Cluster | Serviceguard (cmviewcl) | Oracle Cluster | PCS / Pacemaker |
| Auto install | Ignite-UX | JumpStart / AI | Kickstart |
| Recovery | make_net_recovery | flarcreate / UAR | Relax-and-Recover (ReaR) |
iLO (Integrated Lights-Out) is HP's out-of-band management processor — a dedicated chip with its own network port, independent of the host OS and power state.
- Integrated Remote Console (IRC) — KVM-over-IP video/keyboard/mouse access.
- Virtual Media — mount an ISO remotely for OS install or rescue.
- Power control — graceful shutdown, hard reset, power cycle.
- Integrated Management Log (IML) — hardware fault diagnostics (drives, DIMMs, NIC, thermal).
- hponcfg / RIBCL — CLI and scriptable XML configuration of iLO from the host OS.
- iLO4 adds REST API (Redfish) and an HTML5 console over iLO3.
- Access the iLO interface on its dedicated management network (OOB) — independent of production.
- Open the Integrated Remote Console for a direct video feed — OS crashed, hung on boot, or kernel panic?
- Review the IML for hardware alerts: failed drives, memory errors, NIC faults, thermal events.
- Check the System Event Log (SEL) for BIOS/hardware-level errors.
- If the OS is hung: attempt graceful shutdown via iLO; only hard-reset after documenting the decision.
- If the OS cannot boot: mount a rescue ISO via Virtual Media.
- Document every action in the incident ticket with timestamps.
- UCS Manager (UCSM) — centralised management for blade/rack servers; runs on the Fabric Interconnect pair.
- Fabric Interconnects (FI) — redundant A/B pair providing unified Ethernet + FC connectivity and failover.
- Service Profiles — hardware identity (MAC, WWN, UUID, boot policy, firmware) defined in software, not bound to physical hardware.
- vNICs / vHBAs — virtual interfaces presented to the server from FI-level policies.
- UCS KVM — Java/HTML5 console (equivalent to iLO for Cisco hardware).
A service profile binds all hardware identity (MAC, WWN, UUID, boot policy, network/storage policies) to a logical object rather than the physical blade. When a blade fails I disassociate the profile from the dead hardware and reassociate it to a spare. The new blade inherits identical MACs and WWNs, boots from SAN, and is operational in minutes. From the network and storage perspective the server is identical — this is what makes UCS compute truly stateless and ideal for HA.
- UCSM Faults & Events for the server — vNIC errors, fabric failover events, link state changes.
- Fabric path — is traffic consistently on FI-A or FI-B? Unexpected failover between FIs shows here.
- VIC adapter statistics — increasing error counters, dropped packets, CRC errors at the adapter.
- vNIC pinning policy — misconfigured uplink pinning causes thrashing between uplinks.
- Physical layer — DC team inspects blade seating, mid-plane connectors, chassis backplane.
- If no software root cause: open a Cisco TAC case with the UCSM tech-support bundle. Convert to a Problem record if recurring.
- Corosync — cluster communication/membership layer; manages quorum (corosync.conf).
- Pacemaker — resource manager; controls resource agents (VIPs, services, filesystems).
- pcs — command suite (replaces ccs/crm in RHEL 7+) to configure and manage the cluster.
- GFS2 — cluster-aware filesystem allowing concurrent read/write from multiple nodes; requires DLM.
- STONITH / Fencing — 'Shoot The Other Node In The Head'; mandatory for split-brain prevention.
pcs status— confirm which node is offline; check STONITH status; never assume fencing did not occur.- Check Corosync on the affected node; review /var/log/cluster/corosync.log for ring errors or split-brain.
- Verify quorum:
corosync-quorumtool -l— lost quorum freezes resource management. - If the node was fenced, find and fix WHY before re-adding it.
- Rejoin only after confirming health:
pcs node unstandby <node>. - For GFS2: check
dlm_tool statusandgfs2_tool dfbefore allowing concurrent mounts.
This is a P1 — split-brain with GFS2 can cause data corruption. Escalate immediately.
- Do NOT touch both nodes simultaneously. Identify the last known-good node from logs and monitoring.
- Fence the suspect node via STONITH:
pcs stonith fence <node>— ensures only one node has FS access. - With only one node active, run
fsck.gfs2on the volumes in single-node mode. - Review Corosync logs on both nodes for root cause — network partition, deadlocked DLM, misconfigured quorum.
- Restore the second node only after root cause is fixed, under a controlled change.
- Post-incident: full RCA; add a quorum device (qdevice) for better two-node split-brain resolution.
- Service Group — a collection of resources that fail over together.
- Resource & Agent — managed entities (IP, mount, app) and the agents that control them.
- Failover vs Switchover — failover is unplanned (node dies); switchover is a planned move.
- VxVM (Volume Manager) — disk groups, volumes, plexes; VxFS — Veritas File System.
- pcs status — check STONITH; never assume fencing did not occur.
- Corosync logs for ring errors / split-brain; corosync-quorumtool -l for quorum.
- If fenced, find WHY before re-adding the node.
- pcs node unstandby <node> only after confirming health.
- For GFS2: check dlm_tool status before concurrent mounts.
- P1 — escalate immediately. Do NOT touch both nodes at once.
- Identify last known-good node; fence the suspect via pcs stonith fence <node>.
- Run fsck.gfs2 in single-node mode.
- Root cause in Corosync logs (partition / DLM deadlock / quorum).
- Restore node 2 only after fix; add a qdevice for two-node resolution.
| Layer | Tool | Metric / Interpretation |
|---|---|---|
| Guest | iostat -x | await, %util — high await+low %util = path issue |
| ESXi Host | esxtop → d | DAVG/KAVG/GAVG — high KAVG = ESXi saturation |
| Storage path | esxcli storage san fc stats get | Round-robin path balance |
| Datastore | vCenter | Noisy-neighbour congestion |
A service profile binds MAC, WWN, UUID, and boot policy to a logical object, not the blade. Reassociate to a spare blade → identical identities, boots from SAN, operational in minutes. Compute becomes stateless.
- Access iLO on the dedicated management network (OOB).
- Open Integrated Remote Console — OS crashed, hung, or kernel panic?
- Review IML for hardware alerts (drives, DIMMs, NIC, thermal).
- Graceful shutdown via iLO; hard-reset only after documenting.
- Mount rescue ISO via Virtual Media if OS won't boot.
- hponcfg -g / -f to read/push iLO config from the OS with zero downtime.
| Layer | RHEL | Solaris | HP-UX |
|---|---|---|---|
| Real-time | top / htop | prstat -a | glance / top |
| CPU | mpstat -P ALL 1 | mpstat 1 / sar -u | sar -u / glance c |
| Memory | free -h ; vmstat | vmstat / prstat -s rss | swapinfo -tm ; vmstat |
| Disk | iostat -xz 1 ; iotop | iostat -xnz 1 | sar -d ; iostat |
| Network | ss -s ; sar -n DEV | netstat -s ; dlstat | lanadmin -g ; netstat |
| History | sar / atop | sar -A | OVPA / MeasureWare |
| Parameter | RHEL (sysctl) | Solaris (/etc/system) | HP-UX (kctune) |
|---|---|---|---|
| Max SHM segment | kernel.shmmax | shmsys:shminfo_shmmax | shmmax |
| SHM identifiers | kernel.shmmni | shmsys:shminfo_shmmni | shmmni |
| Semaphores | kernel.sem | semsys:seminfo_* | semmns / semmni |
| Max open files | fs.file-max | rlim_fd_max | maxfiles_lim |
| Swappiness | vm.swappiness=10 | lotsfree / desfree | vps_ceiling |
| HugePages | vm.nr_hugepages | use_brk_lpg = 1 | vps_pagesize |
Capacity planning is what separates senior L3 from operational L2. The quarterly process I run:
- Collect baseline: sar/OVPA/sysstat for at least 30 days of CPU, memory, disk I/O, network, swap.
- Compute peak-of-peak vs average for each metric to spot under-provisioning hidden by averages.
- Trend analysis: regression / moving average to project 6 and 12 months out.
- Map to business growth: e.g. “DB transactions/sec growing 8% per quarter → CPU at 80% by Q3.”
- Apply the 70% rule: any resource sustained above 70% at month-end peak → recommend upgrade.
- Output: written capacity report with charts, recommendations, hardware quotes, and a change roadmap.
- Review with infra, DBA, app teams; secure budget approval; track delivery.
| Phase | Action | Output |
|---|---|---|
| Plan (Week 1) | Identify advisories: Red Hat CVE feed, Oracle Solaris MOS, HPE ITRC. Map to CMDB. | Patch matrix per OS |
| Test (Week 2) | Deploy to Dev + UAT. Regression + smoke tests with app team. | Test sign-off |
| Stage (Week 3) | Deploy to DR/Staging. Confirm cluster failover still works post-patch. | DR sign-off |
| Prod (Week 4) | Wave-based rollout. Snapshot before, validate after. | Patch report |
| Area | RHEL | Solaris | HP-UX |
|---|---|---|---|
| SSH | PermitRootLogin no, keys only | Same; ssh in SMF | Same; HP Secure Shell |
| Mandatory access | SELinux Enforcing | RBAC + Trusted Extensions | HP-UX Bastille |
| Firewall | firewalld / nftables | ipfilter / pf | IPFilter |
| Audit | auditd | BSM (auditconfig) | audsys / audevent |
| File integrity | AIDE | Solaris Audit + BART | Bastille file integrity |
| Compliance scan | OpenSCAP | Solaris Audit baselines | Bastille / SCM |
| Password policy | /etc/security/pwquality | /etc/default/passwd | /etc/default/security |
- Single source of truth: a CMDB row per server with OS, version, patch level, owner, last-scan date.
- Scheduled scans: OpenSCAP for RHEL, Bastille for HP-UX, BART/scap for Solaris; results in a central dashboard.
- Drift detection: Ansible playbooks run in check-mode quarterly — any node that drifts is auto-ticketed.
- Evidence pack: before/after configs, scan reports, change tickets, sign-offs — assembled for audit on demand.
- Exceptions: deviations logged in the risk register with a compensating control and expiry date.
df, HP-UX bdf), ConnectTimeout, BatchMode, comment-filtering, timestamped logging — exactly the signals interviewers look for. Most candidates write a Linux-only df script; call out the multi-OS handling.- Agentless: only Python on the target — RHEL has it natively, Solaris and HP-UX have it via depot/IPS.
- SSH-based: works through existing jump-host architecture, no special ports.
- Idempotent: safe to re-run; declarative state instead of imperative scripts.
- Group/host vars let one playbook handle RHEL/Solaris/HP-UX differences via facts and when-clauses.
- AWX/Ansible Tower for RBAC, scheduling, audit trail and approvals — critical for L3 production use.
serial + max_fail_percentage together are what make the playbook safe in production. Without them one playbook run can take down the whole fleet. Always mention these — most candidates forget.- Ansible Vault for encrypted variables (passwords, API tokens) — vault password via CyberArk / HashiCorp Vault, never on disk.
- Dynamic inventory from CMDB/ServiceNow so groups always match reality.
- Group_vars per OS:
group_vars/rhel.yml,solaris.yml,hpux.yml. - Tower/AWX for credentials, scheduled jobs, role-based approvals, audit logs.
- Run all playbooks in
--check --difffirst in production-like environments.
- Canary in staging: salt -G 'role:web and environment:staging' state.apply.
- 10% of prod: salt -G 'environment:production' --batch-size 10% state.apply.
- Monitor with salt-run jobs.lookup_jid; states are idempotent.
- Full rollout only after the 10% batch is clean, under change control.
- RPO (Recovery Point Objective) — how much data you can afford to lose. RPO 1 hour ⇒ backups (or replication) every hour.
- RTO (Recovery Time Objective) — how long it can take to restore service. RTO 4 hours ⇒ entire restore + app validation must fit in 4 hours.
- Tier-1 typically: RPO 15 min via replication, RTO 1 hour via warm standby.
- Tier-3 typically: RPO 24h via nightly backup, RTO 24–48h via restore.
- Backup design must serve both — incremental for RPO, full + cataloguing for RTO.
- Master Server — runs the catalogue, schedules and policies.
- Media Server(s) — move data between clients and storage; offloads the master.
- Client — runs the NetBackup agent on every protected server.
- Storage Units — disk pools (MSDP de-dupe), tape libraries, cloud targets.
- Policies — what to back up, when, retention, replication, encryption.
bpdbjobs in interviews — every NetBackup admin uses it daily. Pair with bperror -problems -hoursago 24 for the morning health check routine.Veeam targets VM-heavy environments — integrates with vSphere/Hyper-V to take application-consistent snapshots and ships them to a repository. For physical Linux, the Veeam Agent for Linux (VAL) handles file/volume/image-level backups.
| Aspect | NetBackup | Veeam |
|---|---|---|
| Strength | Enterprise multi-OS, tape, large scale | VMware-native, fast, simple UI |
| Client install | Agent on every host | Agentless for VMs; VAL for physical |
| Granularity | File, image, app-aware | Image-based + app-aware |
| Replication / DR | AIR, SLP, Auto Image Replication | Backup Copy, Cloud Connect, Replication |
| Best fit | Mixed RHEL/Solaris/HP-UX + tape | Heavily virtualised; vSphere first |
- Quarterly: schedule a DR rehearsal in the change calendar — CAB, app teams, business stakeholders informed.
- Isolated DR network: stand up recovered servers on an isolated VLAN with no production routes.
- Restore each tier from the most recent backup: NetBackup catalogue restore, Veeam image restore, Ignite-UX
make_net_recovery, Solaris UAR / beadm, RHEL ReaR. - Application validation: app team smoke tests; capture screenshots and timings as evidence.
- Document timing per restore step; compare to RTO targets.
- After test: tear down, archive evidence pack, raise findings tickets, update DR runbook.
- Annual: at least one tier-1 system restored to production switch-over and back.
make_net_recovery, you do not actually have a DR plan for HP-UX. State this conviction in the interview — it differentiates senior thinkers.- Join the P1 bridge within the 15-minute SLA. Introduce yourself; take ownership of the technical lead role.
- Confirm scope and impact in the first 5 minutes — systems, business services, user count.
- Read the existing timeline L2 has captured; ask only the questions L2 has not already answered.
- Triage layers in parallel: OS, network, storage, app — assign owners on the bridge.
- Communicate every 15 minutes — even if “still investigating, no change” — to the incident manager.
- Mitigation first, root-cause second: get the service back, then dig.
- After resolution: own the RCA, present at the PIR within 48 hours, drive preventive actions.
| Priority | Response | Resolution Target | Update Cadence |
|---|---|---|---|
| P1 Critical | 15 min | 4 hours | Every 15–30 min |
| P2 High | 30 min | 8 hours | Hourly |
| P3 Medium | 4 hours | 24 hours | Daily |
| P4 Low | Next business day | 72 hours | On request |
- Use 5-Whys plus Ishikawa (fishbone) — never stop at the first technical cause.
- Distinguish trigger, root cause, and contributing factors.
- Timeline first: every action with timestamps, who did what.
- Preventive vs. corrective: corrective fixes this incident; preventive stops the class recurring.
- Track preventive actions in the change calendar with owners and due dates — RCA without follow-through is theatre.
- Pull incident history; correlate timestamps, zone brand, host, OS version, recent changes.
- Pattern: all six in solaris10 branded zones, hosts patched in the last 30 days, between 02:00 and 04:00 (backup window).
- Raise a formal Problem Record — reactive to proactive.
- Hypothesis: backup snapshot pressure under solaris10 brand emulation; verify in /var/adm/messages + DTrace on next reproduction.
- Raise a Change to reschedule backups or tune zone resource caps; track preventive actions.
- Brief leadership: pattern found, RCA in progress, interim workaround applied, permanent fix in Change CHG-xxxxx.
- Raise a case BEFORE the bridge gets desperate — escalate early, downgrade later if you self-resolve.
- Severity 1 cases require 24x7 follow-the-sun engagement: confirm timezone hand-off.
- Provide the right diagnostics upfront: sosreport (RHEL), explorer (Solaris), supportinfo / cstm (HP-UX) — saves a full handoff cycle.
- Track the case ID in the incident ticket; demand a named TAM/CSE for Sev 1; escalate to vendor management if stalled.
- On resolution: get the vendor RCA in writing and attach it to your internal RCA.
- Join the P1 bridge immediately; declare yourself technical lead for the OS layer.
- Triage within the first 15 minutes: server health, network, services, recent changes.
- Maintain a live timeline — every action with timestamps.
- Coordinate App, DBA, Network, Storage teams; prevent siloed working.
- Apply 5-Whys to find root cause while restoring service in parallel.
- Update the incident manager every 15–30 minutes.
- After resolution, draft the RCA and present the PIR within 48 hours.
| Priority | Response | Resolution Target | Updates |
|---|---|---|---|
| P1 Critical | 15 min | 4 hours | Every 15–30 min |
| P2 High | 30 min | 8 hours | Hourly |
| P3 Medium | 4 hours | 24 hours | Daily |
| P4 Low | Next business day | 72 hours | On request |
- Explain that an Emergency Change Request takes under 30 minutes and the risk of an undocumented firewall change outweighs the inconvenience.
- Help them draft the ECR immediately and fast-track it through the CAB on-call approver.
- Implement within 40 minutes — still in time for the demo.
- Afterwards, send a one-pager on raising emergency changes so they can self-serve next time.
- Proactively pull incident history and correlate: timestamps, server model, OS version, recent changes.
- Pattern: all RHEL 7.6, same hardware, incidents 02:00–04:00 during backup windows.
- Raise a formal Problem Record — moving from reactive to proactive.
- Hypothesis: backup software causing memory pressure / I/O starvation → OOM kills or storage timeouts. Verify in /var/log/messages and dmesg.
- Raise a Change to tune backup I/O priority (ionice), reschedule, or patch a known kernel bug.
- Communicate a brief to management: pattern identified, RCA in progress, interim workaround applied, permanent fix in Change #.
- Own the P1 (business-stopping) immediately and set up the bridge.
- Delegate initial investigation of the P2 (degraded but running) to a colleague.
- Snooze the P3 (disk alert) for 30 minutes with a plan to address after the P1 stabilises.
- Update all tickets every 15 minutes — stakeholders should never have to ask for status.
- Pull incident history; correlate timestamps, hardware, OS version, changes.
- Pattern: all RHEL 7.6, same hardware, 02:00–04:00 during backups.
- Raise a Problem Record — reactive to proactive.
- Hypothesis: backup I/O starvation → OOM kills; verify in messages/dmesg.
- Change to tune backup ionice / reschedule / patch kernel bug.
- Explain an ECR takes <30 min and undocumented firewall risk outweighs the inconvenience.
- Help draft the ECR, fast-track via CAB on-call approver.
- Implement within 40 min — still in time for the demo.
- Send a one-pager so they can self-serve next time.
- Runbooks — step-by-step procedures for known operational tasks (boot from rescue, fail over a Serviceguard package).
- Standard Operating Procedures (SOPs) — process documents (patching cycle, change ticket workflow).
- Knowledge Base articles — searchable, symptom-led; one article per recurring symptom L2 should resolve.
- Architecture documents — diagrams of zone layouts, Serviceguard configs, network topology; refreshed annually.
- RCA library — completed incident RCAs, indexed by service and root cause class.
- Weekly 1:1 — 30 minutes per engineer; review their tickets, identify learning gaps, set one skill goal.
- Shadowing — pair them with you on P1 incidents (read-only → assistant → primary with you backing).
- Ticket review — two of their tickets per week, walk through what could have been faster or deeper.
- Topic of the month — one deep dive (e.g. September: Serviceguard) with a runbook deliverable owned by the L2.
- Stretch assignments — give them ownership of small projects so they grow ownership, not just technical skills.
- Visible recognition — credit them in incident reports and to their manager.
- Situation: name the service, the business impact (revenue / user count / SLA risk).
- Task: what was YOUR responsibility on the bridge.
- Action: 3–4 concrete technical actions you led — not what the team did.
- Result: quantified — “Resolved in 47 minutes, no SLA breach, identified the kernel bug that led to permanent fix in next patch cycle.”
Have a concrete example with numbers: “I replaced a manual patching SOP with an Ansible playbook that handles RHEL, Solaris and HP-UX. Patch night went from 8 hours of 3 engineers to 2 hours of 1 engineer — 75% effort reduction and zero post-patch incidents in the next six months.”
Banking and enterprise environments love this question. Example: “Our change process required separate tickets for related changes. I proposed a parent-child template; reduced ticket overhead by 40% and improved CAB visibility.” Show you respect process but improve it.
OS patching is a structured, multi-phase activity performed during approved maintenance windows. The approach varies by OS but follows the same discipline.
- Identify applicable patches from vendor advisories, Red Hat Satellite, or internal patch baseline
- Download and stage patches in a local repository (avoid patching directly from internet on production)
- Raise a Change Request with implementation plan, rollback plan, and risk assessment
- Take VM snapshot or system backup before starting
- Notify application teams and obtain maintenance window approval from CAB
- Verify kernel version:
uname -r - Check all services:
systemctl list-units --state=failed - Review logs:
dmesg | tail -30,journalctl -p err -n 50 - Run application smoke tests with app team sign-off
- Delete snapshot after 48-hour stability confirmation
- Update change ticket, CMDB, and patch inventory
- VM: Access VMware vCenter console (not SSH — network may be unavailable)
- Physical server: Access via iLO / DRAC / IPMI remote console
- At GRUB menu, press Esc or hold Shift to interrupt automatic boot
- Select the previous kernel entry from the list
- If boots successfully → the new kernel caused the regression
- Download patches to local Red Hat Satellite / YUM mirror — servers never hit internet directly
- Create a patch schedule coordinated with change management and application owners
- Test patches in UAT/Staging first — document any issues or conflicts
- Patch in waves: DR first → Staging → Production clusters (rolling, not all at once)
- Use Ansible playbooks to execute patching in parallel batches with health check validation between waves
- Take VMware snapshots before each wave; remove after 48-hour stability confirmation
- Submit post-patching report: patch compliance %, any failures, rollbacks performed
- Raise an Emergency Change Request immediately — get CAB or designated approver sign-off
- Download the patched OpenSSH package to local repo and verify checksum
- Test on one non-production server: update → verify SSH connectivity → check version
- Write a remediation script with automatic rollback if SSH connectivity fails post-update
- Execute in parallel batches using Ansible or pssh across all 20 servers
- Validate SSH on each server after patching; log results in real time
- Submit evidence report (before/after rpm -q openssh, CVE scan results) to security team within 24 hours
| CVSS Score | Priority | Timeline | Change Type |
|---|---|---|---|
| ≥ 9.0 Critical | P1 | 72 hours | Emergency Change |
| 7.0–8.9 High | P2 | 7–14 days | Normal Change |
| 4.0–6.9 Medium | P3 | Next quarterly cycle | Standard Change |
| < 4.0 Low | P4 | Annual review | Deferred |
| Type | Scope | When Applied | Example |
|---|---|---|---|
| Hotfix | Single critical bug or CVE | Immediately / Emergency window | CVE OpenSSL patch |
| Patch | Multiple bug fixes, security updates | Scheduled monthly/quarterly | RHEL kernel update |
| Service Pack | All patches bundled for a version | Major maintenance window | RHEL 8.6 → 8.8 update, AIX TL |
Prioritization is based on CVSS score. I never rely solely on vendor classification — I cross-reference with our asset inventory to determine actual exposure and impact.
| Stage | Component | What Happens | Failure Symptom |
|---|---|---|---|
| 1 | BIOS/UEFI | POST, locates bootloader from MBR/EFI partition | No display, beep codes |
| 2 | GRUB2 | Loads vmlinuz + initramfs, passes kernel params | GRUB rescue prompt |
| 3 | Kernel | Decompresses, hardware init, mounts initramfs | Kernel panic at early boot |
| 4 | initramfs | Loads drivers, activates LVM, mounts real root | Emergency shell "cannot find root" |
| 5 | systemd | PID 1 — starts services per default target | Services fail, partial boot |
| 6 | Login | getty / sshd ready for user login | Login prompt not appearing |
- initramfs = Initial RAM Filesystem — a compressed cpio archive in /boot/
- Provides minimal userspace environment BEFORE real root filesystem is accessible
- Contains: storage drivers (SCSI, NVMe, FC HBA), LVM tools (to activate VGs), encryption modules (LUKS), udev for device naming
- Without initramfs, kernel cannot access root on LVM, SAN, or encrypted disks
- After mounting real root → hands control to systemd on disk
- Emergency shell appears = systemd failed to mount a filesystem in /etc/fstab
- Run
journalctl -xbto see the exact mount failure reason - Run
blkidto list all block devices and their UUIDs
| Panic Type | Visible In | Fix |
|---|---|---|
| NULL pointer dereference | bt output — driver module | Update or blacklist driver |
| Hardware memory error | mcelog, EDAC dmesg | Replace faulty DIMM |
| OOM (Out of Memory) | oom-kill in /var/log/messages | Tune vm.overcommit, add RAM |
| SAN I/O error | HBA errors in dmesg | Fix multipath, check SAN |
- VG is inactive — most common reason after disk replacement, SAN path loss, or system migration
- PV device is not visible — underlying disk/LUN not accessible to the OS
- VG metadata corrupted — LVM metadata on the PV is missing or corrupt
- LVM filter in /etc/lvm/lvm.conf excludes the device
- Disk not scanned yet — new disk added but LVM hasn't discovered it
When df -h shows available space but you get "No space left on device", the cause is inode exhaustion — the inode table is full.
| Filesystem | Can Extend Add Inodes? | Reason |
|---|---|---|
| ext4 | NO | Inode count fixed at mkfs time — cannot change after creation |
| XFS | YES (effectively) | XFS allocates inodes dynamically from free space |
DM-Multipath provides multiple I/O paths between a server and SAN storage for redundancy and load balancing. If one path fails, I/O switches to alternate path — transparent to the application.
| Policy | Behavior | Use Case |
|---|---|---|
| failover | One active path, rest standby | Simple redundancy |
| round-robin | Distribute I/O across all paths | Load balancing |
| multibus | All paths in one group, all active | Max throughput |
- After recovery: implement 80% disk alert in monitoring tool
- Configure proper logrotate for offending application
- Document RCA and submit post-incident report
| Area | Action | Commands/Files |
|---|---|---|
| SSH | Disable root login, key-auth only, SSHv2, idle timeout | /etc/ssh/sshd_config |
| SELinux | Set to Enforcing mode | setenforce 1, /etc/selinux/config |
| Firewall | Default deny, allow only required ports | firewall-cmd --add-service |
| PAM | Password complexity, account lockout, aging | /etc/security/limits.conf |
| Audit | auditd for privileged commands, file integrity | /etc/audit/rules.d/ |
| Kernel | sysctl hardening, disable IP forwarding, SYN cookies | /etc/sysctl.conf |
| Packages | Remove unused packages and services | yum remove, systemctl disable |
| USB | Disable USB storage module | blacklist usb-storage in modprobe |
- Use specific command paths — never give ALL without strong justification
- Avoid NOPASSWD for destructive commands (rm, dd, chmod, shutdown)
- All sudo usage is logged in /var/log/secure and auditd automatically
- Review sudo rules quarterly as part of access review process
PAM is a framework that decouples authentication from applications. Configuration files are in /etc/pam.d/ — one per service (sshd, login, sudo).
ulimit controls resource limits for processes — preventing a single user/process from consuming all system resources.
| Limit | Flag | Common Value | What It Controls |
|---|---|---|---|
| nofile | -n | 65536 | Open file descriptors (critical for Oracle, Tomcat) |
| nproc | -u | 16384 | Max processes (low value causes fork: retry error) |
| core | -c | unlimited | Core dump size for debugging |
| stack | -s | 10240 | Stack size in KB |
- First — gather evidence: grep the logs, document scope before taking any action
- Report to Information Security team IMMEDIATELY — this is a policy violation security incident
- After IS team authorization — enforce key-auth only for this account
- Coordinate with app team to implement proper key-based auth
- Scan all other servers for the same issue
| Cause | Symptom | Fix |
|---|---|---|
| Runaway log writes | High w/s on app partition | Log rotation, reduce verbosity |
| Backup running | Sequential read spikes | Reschedule to off-peak hours |
| Memory too low / swapping | si/so in vmstat > 0 | Increase RAM or swap |
| VMware noisy neighbor | Latency, not throughput | vMotion VM to less-loaded host |
| SAN path degraded | Intermittent high await | Check multipath -ll, escalate |
| Mode | Name | Redundancy | Load Balance | Switch Config |
|---|---|---|---|---|
| Mode 0 | Round Robin | No | Yes | Required |
| Mode 1 | Active-Backup | Yes | No | None needed |
| Mode 2 | XOR | Yes | Yes | Required |
| Mode 4 | 802.3ad / LACP | Yes | Yes | LACP required |
| Mode 5 | Adaptive TLB | Yes | Tx only | None needed |
| Mode 6 | Adaptive LB | Yes | Yes | None needed |
Yes — called IP aliasing or secondary IPs. A single NIC can have multiple IP addresses, all sharing the same MAC address and physical link.
| Criteria | Shell Script | Ansible |
|---|---|---|
| Style | Procedural | Declarative (desired state) |
| Idempotency | Must code manually | Built-in — safe to run twice |
| Scale | 1–few servers | Hundreds of servers in parallel |
| Agent | None needed | None (agentless via SSH) |
| Use case | Monitoring, log mgmt, ad-hoc tasks | Config deployment, patch orchestration |
| Availability | Always available | Requires Ansible installed |
Cause: Process exceeded its 'nofile' ulimit — max open file descriptors limit reached.
Cause: nproc ulimit reached — max number of processes for the user is exhausted. Often caused by a process creating too many threads or a fork bomb.
Cause: Inode table is full — millions of small files (sessions, temp files, mail spools) have exhausted the inode count even though disk space is available.
Cause: System is out of physical RAM and swap, OOM killer is active, or virtual address space is exhausted.
Cause: Files or processes are still using the filesystem — open file handles, processes with working directory inside the mount.
| Cause | Fix |
|---|---|
| Datastore out of space | Free datastore space, or extend; check Storage → Datastores → Monitor |
| VMware Tools not installed/old | Install/update open-vm-tools inside guest OS |
| Snapshot consolidation needed | Right-click VM → Snapshots → Consolidate |
| Too many existing snapshots | Delete old snapshots first (max recommended: 3-4) |
| Backup running (disk locked) | Wait for NetBackup/Veeam backup to complete |
| Guest OS quiesce failure | Check /var/log/vmware-vmsvc.log inside guest |
vMotion is VMware's live migration technology — moves a running VM from one ESXi host/datastore to another with zero downtime (typically < 1 second interruption).
| Type | Moves | Requirement |
|---|---|---|
| vMotion | CPU + Memory (compute) | Shared storage between hosts |
| Storage vMotion | VM disk files | VM stays on same host |
| Enhanced vMotion | Compute + Storage | No shared storage needed |
A VM template is a master golden image for deploying new VMs consistently. It is a non-runnable copy of a configured VM.
| Item | Template | Snapshot | Clone |
|---|---|---|---|
| Purpose | New VM deployments | Rollback point | Copy for testing |
| Runnable? | No | Yes (parent VM) | Yes |
| Uses | Gold image for fleet | Pre-change safety net | Dev/test copies |
| Function | Why It Matters |
|---|---|
| Time synchronization | Critical for Kerberos, Oracle RAC, banking timestamps |
| Quiesced snapshots | Consistent backup — requires VMware Tools |
| Graceful shutdown/restart | vCenter can cleanly shut down VM (not force power off) |
| Memory balloon driver | Hypervisor reclaims unused guest memory under pressure |
| VMXNET3 NIC driver | Paravirtual — much faster than emulated e1000 |
| PVSCSI driver | High I/O performance for Oracle/SQL Server |
| Guest metrics | vCenter shows OS-level CPU/memory/disk inside guest |
CPU Ready means the vCPU is ready to run but the physical CPU is not available — the hypervisor host is overcommitted.
- Check if the ESXi host cluster is overcommitted (too many vCPUs vs physical cores)
- Coordinate with VMware team to vMotion the VM to a less-loaded host immediately
- Consider reducing vCPU count — fewer vCPUs = less co-scheduling pressure (counterintuitive but effective)
- Escalate for capacity addition if entire cluster is consistently overloaded
- Document correlation between CPU Ready % and application response time for capacity report
| Task | Solaris 10 | Solaris 11 |
|---|---|---|
| Patching | patchadd, patchrm | pkg update |
| Package install | pkgadd | pkg install |
| Service management | svcadm, svcs | svcadm, svcs (same) |
| Zones | zoneadm, zonecfg | zoneadm, zonecfg |
| Network | ifconfig, ndd | ipadm, dladm |
| ZFS | zfs, zpool | zfs, zpool (same) |
| Deployment | JumpStart | AI (Automated Installer) |
| Feature | Benefit | Command |
|---|---|---|
| Copy-on-Write | Crash consistency, instant recovery | Built-in |
| Snapshots | Instant, space-efficient backups | zfs snapshot pool/ds@snap |
| Clones | Writable copy of snapshot | zfs clone pool/ds@snap pool/new |
| Compression | 2-4x storage savings for logs | zfs set compression=lz4 |
| Quotas | Capacity management per dataset | zfs set quota=100G |
| RAIDZ | Native disk redundancy | zpool create -o ashift=12 raidz2 |
| Concept | Linux LVM | AIX LVM |
|---|---|---|
| Allocation unit | Physical Extents (PE) — 4MB default, fixed | Physical Partitions (PP) — 4–128MB, configurable per VG |
| VG types | Standard only | Original (32 PVs), Big (128), Scalable (1024) |
| Mirroring | Via RAID or dm-mirror | Native — mklvcopy |
| Metadata | /etc/lvm/ | ODM (Object Data Manager) |
| Filesystem | ext4, XFS | JFS2 (preferred) |
NIM is AIX's network-based infrastructure management system for OS installation, cloning, and updates across LPAR environments.
- Join the P1 bridge call immediately and declare technical lead for the OS layer
- Perform initial triage within first 15 minutes: server health, network, service status, recent changes
- Maintain a live incident timeline — document every action with timestamps
- Coordinate with App, DBA, Network, and Storage teams — prevent siloed working
- Apply 5-Why methodology to drill to root cause while simultaneously restoring service
- Update the incident manager every 15–30 minutes with status
- After resolution: draft RCA document and present PIR within 48 hours
| Priority | Response Time | Resolution Target | Update Frequency |
|---|---|---|---|
| P1 — Critical | 15 minutes | 4 hours | Every 15–30 min |
| P2 — High | 30 minutes | 8 hours | Every 1 hour |
| P3 — Medium | 4 hours | 24 hours | Daily |
| P4 — Low | Next business day | 72 hours | On request |
- Empathize with the urgency but firmly explain that production changes require a change ticket — this is compliance, not bureaucracy
- Guide the developer/manager to raise an Emergency Change Request (ECR) immediately — can be approved in 30–60 minutes
- While ticket is being raised, collect technical details: source IP, destination IP, port, protocol, business justification — ready to implement the moment approval arrives
- Do NOT make the change without an approved ticket — this exposes the bank to audit risk and potential security breach
- Once approved: implement, document in the ticket, update firewall rule inventory, and schedule post-implementation review
- IBM Tivoli Monitoring (ITM) / Netcool — enterprise monitoring in banking
- Nagios / Icinga — threshold-based service and resource alerting
- Zabbix — agent-based monitoring with dashboards
- HP Operations Manager (HPOM) — event correlation
- vCenter performance alerts — VMware-specific metrics
- Custom shell scripts + cron + mailx — lightweight targeted monitoring
| Alert | Threshold | My Action |
|---|---|---|
| CPU High | >85% sustained 5min | Identify top process, escalate to app team |
| Memory High | >90% | Check for leak, add swap temporarily |
| Disk Warning | >80% | du -sh, clean or extend LV |
| Disk Critical | >90% | Immediate cleanup, alert app team |
| Filesystem Full | 100% | Emergency cleanup, P1 ticket |
| Inode Exhaustion | >90% IUse | Find small file consumer, clean up |
| Service Down | Immediate | systemctl restart, RCA if recurring |
| Backup Failed | Next morning | Retry, fix root cause, document |
| SSH Brute Force | >10 fails/min | Check secure log, block source IP |
- Incident Management: I prioritize tickets by impact × urgency matrix, not by who shouts loudest. SLA adherence is tracked and reported weekly.
- Change Management: All production changes go through RFC → CAB → Implementation → PIR. No exceptions — this protects both the bank and me personally.
- Problem Management: When I see the same incident recurring, I raise a Problem ticket to find and eliminate the root cause. Example: I noticed 80% of disk-full tickets on a cluster came from unmanaged log growth — implemented systematic log rotation that eliminated the recurring incidents entirely.
- Continual Service Improvement (CSI): I track SLA trends monthly and identify improvement opportunities. Automation initiatives I've implemented have reduced manual ticket handling by 40%.
- Knowledge Management: Every resolved incident gets documented in the knowledge base with RCA and resolution steps — reduces time-to-resolve for repeat issues.