Monday, 2 June 2014

Online Partition Expansion and File system resizing in Oracle Linux

 
Online resizing of Filesystem is only poissible with logical volume manager. So if you don't have LVM setup at the first place, you have to rebuild you system with LVM volumes.
 
Following are the mandatory sequence of steps which are required to be done to enable online partition expansion and subsequently file-system resizing. 
 
 
During Installation process:
 
1.  Create primary /boot partition                                (TYPE ext4)
2.  Create swap as per the application requirement       (for EBS swap = RAM x 2)
3.  Create Physical Volume (PV) and assign maximum space.  (sda_PVroot_VGroot)
4.  Create Volume Group (VG) and add PV 
5.  Specify desired Logical Volumes (LV) within VGroot          (i.e. sda_PVroot_VGroot_LVroot)
6.  Mount the LV to desire file system                                   (sda_PVroot_VGroot_Lvroot  /)
7.  Similarly create other filesystem on same PV and VG or on separate disk  (sdb,sdc)
 
 

 
 

Post Installation Expansion procedure: 
 
1. Extend SAN Logical Unit Number (LUN) (skip for physical server)
1. Update VM Datastore for VCenter (skip for physical server)
2. Connect system with root permissions
3. Query current disk size 
Ø # fdisk -l /dev/sdb
 
¨ (Here you can observe that the disk size is not updated yet)
 
4. Rescan individual disks to fetch new space
Ø # echo '1' > /sys/class/scsi_disk/2\:0\:2\:0/device/rescan
 
¨ (You have to run above command for all disks which are being expanded)
 
5. Query disk size again
Ø # fdisk -l /dev/sdb
 
¨ (New size is now added)
 
6. Create Primary Linux partition 
Ø # fdisk /dev/sdb 
Ø # n (for new partition)
Ø # P (Primary or Extended)
Ø # 2 (Number)
Ø # Enter (Set cylinder start point)
Ø # Enter (Set cylinder end point)
Ø # w (write changes)
Ø # P (print partitions)
Ø # exit               
 
7. Update partition table by executing
Ø # Partprobe /dev/sdb
Ø # kpartx /dev/sdb
Ø # partx -v -a /dev/sdb
 
¨ (Partprobe and kpartx might fail due to busy resources, in such scenario a reboot is mandatory)
 
8. Create PV on sdb2
Ø # lvm pvcreate /dev/sdb2
 
9. Successful creation can be confirmed displaying all PVs
 
Ø # pvs
Ø    PV         VG         Fmt  Attr PSize   PFree
Ø   /dev/sda3  vg_root    lvm2 a--   25.51g 1000.00m
Ø   /dev/sdb1  vg_ora     lvm2 a--  400.00g       0
Ø   /dev/sdb1  vg_archive lvm2 a--   25.00g       0
Ø   /dev/sdb2             lvm2 a--   22.00g   22.00g
 
10. Add PV to desire VG
 
Ø # lvm vgextend "vg_archive" /dev/sdb2
 
11. Query VG free space 
Ø # vgdisplay vg_archive
Ø   --- Volume group ---
Ø   VG Name vg_archive
Ø   System ID
Ø   Format lvm2
Ø   Metadata Areas 2
Ø   Metadata Sequence No 3
Ø   VG Access read/write
Ø   VG Status resizable
Ø   MAX LV 0
Ø   Cur LV 1
Ø   Open LV 1
Ø   Max PV 0
Ø   Cur PV 2
Ø   Act PV 2
Ø   VG Size 46.99 GiB
Ø   PE Size 4.00 MiB
Ø   Total PE 12029
Ø   Alloc PE / Size 6399 / 25.00 GiB
Ø   Free  PE / Size  5630 / 21.99 GiB
Ø   VG UUID  ZtlZpJ-Shqt-jQ3S-RKb8-TTiy-czVQ-mcmyqo
 
¨ (Note down free physical extends)
 
12. Query LV
Ø lvdisplay /dev/mapper/vg_archive-sdb1_archive_lv
Ø   --- Logical volume ---
Ø   LV Path  /dev/vg_archive/sdb1_archive_lv
Ø   LV Name  sdb1_archive_lv
Ø   VG Name  vg_archive
Ø   LV UUID  fGUYSk-4t9Q-43o2-tR6r-ZDI4-2ddI-LWrbXw
Ø   LV Write Access read/write
Ø   LV Creation host, time ebstestingvm.jubileelife.com, 2014-05-29 12:01:00 +0500
Ø   LV Status available
Ø   # open 1
Ø   LV Size 25.00 GiB
Ø   Current LE  6399
Ø   Segments  1
Ø   Allocation inherit
Ø   Read ahead sectors auto
Ø   - currently set to 256
Ø   Block device 252:1
 
¨ (Add Free PE and Current LE (6399+5630=12029) to obtain maximum possible new size for LV)
 
13. Resize LV 
 
Ø lvm lvresize -l 12029 /dev/mapper/vg_archive-sdb1_archive_lv
Ø   Extending logical volume sdb1_archive_lv to 46.99 GiB
Ø   Logical volume sdb1_archive_lv successfully resized
 
14. Display the Filesystem
Ø # df -h
 
Ø Filesystem            Size  Used Avail Use% Mounted on
Ø /dev/mapper/vg_root-sda3_root_lv
Ø                        20G  5.9G   13G  33% /
Ø tmpfs                 3.0G   72K  3.0G   1% /dev/shm
Ø /dev/mapper/vg_archive-sdb1_archive_lv
Ø                        25G   45M   24G   1% /archive
Ø /dev/sda1             477M  123M  326M  28% /boot
Ø /dev/mapper/vg_root-sd3_temp_lv
Ø                       4.7G  9.8M  4.5G   1% /temp
Ø /dev/mapper/vg_ora-sdb1_u01_lv
Ø                       394G   71M  374G   1% /u01
15. Update filesystems
 
Ø # e2fsck -f /dev/mapper/vg_ora-sdb1_u01_lv
 
16. Resize Filesystem
 
Ø # resize2fs /dev/mapper/vg_archive-sdb1_archive_lv
Ø resize2fs 1.43-WIP (20-Jun-2013)
Ø Filesystem at /dev/mapper/vg_archive-sdb1_archive_lv is mounted on /archive; on-line resizing required
Ø old_desc_blocks = 2, new_desc_blocks = 3
Ø The filesystem on /dev/mapper/vg_archive-sdb1_archive_lv is now 12317696 blocks long.
 
17. Query Filesystem
 
Ø # df -h
Ø Filesystem            Size  Used Avail Use% Mounted on
Ø /dev/mapper/vg_root-sda3_root_lv
Ø                        20G  5.9G   13G  33% /
Ø tmpfs                 3.0G   72K  3.0G   1% /dev/shm
Ø /dev/mapper/vg_archive-sdb1_archive_lv
Ø                        47G   53M   44G   1% /archive
Ø /dev/sda1             477M  123M  326M  28% /boot
Ø /dev/mapper/vg_root-sd3_temp_lv
Ø                       4.7G  9.8M  4.5G   1% /temp
Ø /dev/mapper/vg_ora-sdb1_u01_lv
Ø                       394G   71M  374G   1% /u01
 
18. You can verify the /archive data
 
Ø # ls -l /archive/
Ø total 948
Ø drwx------. 2 oracle dba   16384 May 29 12:01 lost+found
Ø -rw-r--r--. 1 root   root 941320 May 29 16:56 openmotif21-2.1.30-11.EL6.i686.rpm
Ø -rw-r--r--. 1 root   root  10662 May 29 16:56 xorg-x11-libs-compat-6.8.2-1.EL.33.0.1.i386.rpm
 
 
------For more useful articles, check http://ITWriteUps.com--------------------------------