Thursday, December 24, 2015

How to enable kdump on on RHEL 7.1

Find below steps to enable "kdump" on RHEL 7.1 (3.10.0-229.el7.x86_64)

1. Check & install kexec-tools-2.0.7-19.el7.x86_64:
# rpm -q kexec-tools
kexec-tools-2.0.7-19.el7.x86_64

2. Add memory option "crashkernel=auto" in grub:
# cat /etc/default/grub
GRUB_CMDLINE_LINUX="rd.lvm.lv=rootVG/swap crashkernel=auto rd.lvm.lv=rootVG/root rhgb quiet"

3. Regenerate grub configuration:
# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-229.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-229.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-67139936cbf84fe784a0953eb1e18aec
Found initrd image: /boot/initramfs-0-rescue-67139936cbf84fe784a0953eb1e18aec.img
done

4. Verify below parameters in /etc/kdump.conf file:
# cat /etc/kdump.conf
path /var/crash
core_collector makedumpfile -l --message-level 1 -d 31

5. Check & enable the kdump service
# systemctl status kdump.service
kdump.service - Crash recovery kernel arming
    Loaded: loaded (/usr/lib/systemd/system/kdump.service; disabled)
    Active: inactive (dead)

# systemctl enable kdump.service
ln -s '/usr/lib/systemd/system/kdump.service' '/etc/systemd/system/multi-user.target.wants/kdump.service'

6. Reboot the server
# reboot

7. Check status of kdump service:
# systemctl status kdump.service
kdump.service - Crash recovery kernel arming
    Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled)
    Active: active (exited) since Wed 2015-12-23 14:48:14 IST; 54s ago
  Process: 1895 ExecStart=/usr/bin/kdumpctl start (code=exited, status=0/SUCCESS)
  Main PID: 1895 (code=exited, status=0/SUCCESS)
    CGroup: /system.slice/kdump.service

Dec 23 14:48:04 test1.example.com systemd[1]: Starting Crash recovery kernel arming...
Dec 23 14:48:14 test1.example.com kdumpctl[1895]: kexec: loaded kdump kernel
Dec 23 14:48:14 test1.example.com kdumpctl[1895]: Starting kdump: [OK]
Dec 23 14:48:14 test1.example.com systemd[1]: Started Crash recovery kernel arming.


How to test kdump Configuration

1. Test the kdump configuration after reboot check service running status:
# systemctl is-active kdump
active

2. Run following commands at a shell prompt:
# echo 1 > /proc/sys/kernel/sysrq
# echo c > /proc/sysrq-trigger

Above commands will force the Linux kernel to crash, and the address-YYYY-MM-DD-HH:MM:SS/vmcore file will be copied to the location you have selected in the configuration (that is, to /var/crash/ by default).

Thursday, November 26, 2015

Online add space in existing disk by PVRESIZE command in RHEL

Step 1) scan disk
# fdisk -l | grep -i Disk | grep -i dev
Disk /dev/sdb: 42.9 GB, 42949672960 bytes
Disk /dev/sda: 64.4 GB, 64424509440 bytes

Scan scsi disk:
# ls /sys/class/scsi_host/
host0  host1  
# echo "- - -" > /sys/class/scsi_host/host0/scan
# echo "- - -" > /sys/class/scsi_host/host1/scan


or, scan block disk if require
# echo 1 > /sys/block/sdb/device/rescan

# fdisk -l | grep -i Disk
Disk /dev/sdb: 64.4 GB, 64424509440 bytes
Disk /dev/sda: 64.4 GB, 64424509440 bytes

Step 2) resize physical disk
# pvresize /dev/sdb
  Physical volume "/dev/sdb" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized

# pvs
  PV         VG          Fmt  Attr PSize  PFree
  /dev/sdb   vg_xxxxxxxx lvm2 a--  60.00g 20.00g


Now additional disk is visible by vgdisplay command
# vgdisplay
  Format                lvm2
  VG Access             read/write
  VG Status             resizable
  VG Size               60.00 GiB  <--------
  PE Size               4.00 MiB
  Total PE              15359
  Alloc PE / Size       10239 / 40.00 GiB
  Free  PE / Size       5120 / 20.00 GiB <--------

Step 3) Extend existing volume
# lvextend -L +20G /dev/vg_xxxxxxxx/lv_xxxxxxxx -t
  TEST MODE: Metadata will NOT be updated and volumes will not be (de)activated.
  Size of logical volume vg_xxxxxxxx/lv_xxxxxxxx changed from 40.00 GiB (10239 extents) to 60.00 GiB (15359 extents).
  Logical volume lv_xxxxxxxx successfully resized

or, you can extend 100% disk space
#/usr/sbin/lvextend -l +100%FREE /dev/vg_xxxxxxxx/lv_xxxxxxxx -t

# lvextend -L +20G /dev/vg_xxxxxxxx/lv_xxxxxxxx
  Size of logical volume vg_xxxxxxxx/lv_xxxxxxxx changed from 40.00 GiB (10239 extents) to 60.00 GiB (15359 extents).
  Logical volume lv_xxxxxxxx successfully resized

# resize2fs /dev/vg_xxxxxxxx/lv_xxxxxxxx
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vg_xxxxxxxx/lv_xxxxxxxx is mounted on /xxxxxxxx; on-line resizing required
old desc_blocks = 3, new_desc_blocks = 4
Performing an on-line resize of /dev/vg_xxxxxxxx/lv_xxxxxxxx to 15727616 (4k) blocks.
The filesystem on /dev/vg_xxxxxxxx/lv_xxxxxxxx is now 15727616 blocks long.

Step 4) Check file system
# df -h