Pythian Blog: Technical Track

How to extend the /u01 filesystem on an Exadata

Marketers are very good at selling everyone on the fact that resources (CPU, disks, memory) are now infinite, which is mainly true on a slide but it's less true in real life. You may one day face this situation with your Exadata:
[root@exa01_db01 ~]# dcli -g ~/dbs_group -l root df -h /u01
 exa01_db01: 99G 90G 4.2G 96% /u01
 exa01_db02: 99G 88G 6.2G 94% /u01
 exa01_db03: 99G 87G 6.5G 94% /u01
 exa01_db04: 99G 90G 3.6G 97% /u01
 exa01_db05: 99G 92G 1.9G 99% /u01
 exa01_db06: 99G 92G 2.0G 98% /u01
 exa01_db07: 99G 91G 2.8G 98% /u01
 exa01_db08: 99G 85G 8.5G 91% /u01
 [root@exa01_db01 ~]#
 
I won't explore the reasons of the why /u01 is full here. You could ensure that your logfiles are properly rotated / purged, but this blog posts covers how to extend the /u01 filesystem on an Exadata.

A word on /u01

Whether you install Exadata on your own or you re-image it, you cannot influence the size of /u01 during these steps. /u01 is created with a 100 GB size, end of story.

Space available for /u01

Having a closer look at /u01, we can see that it resides on the /dev/mapper/VGExaDb-LVDbOra1 Logical Volume:
[root@exa01_db01 ~]# df -h /u01
 Filesystem Size Used Avail Use% Mounted on
 /dev/mapper/VGExaDb-LVDbOra1 99G 90G 4.2G 96% /u01
 [root@exa01_db01 ~]#
 
This LVDbOra1 Logical Volume is in the VGExaDb Volume Group:
[root@exa01_db01 ~]# lvs
  LV VG Attr LSize 
  LVDbOra1 VGExaDb -wi-ao---- 100.00G
  LVDbSwap1 VGExaDb -wi-ao---- 24.00G
  LVDbSys1 VGExaDb -wi-ao---- 30.00G
  LVDbSys2 VGExaDb -wi-a----- 30.00G
  LVDoNotRemoveOrUse VGExaDb -wi-a----- 1.00G
 [root@exa01_db01 ~]#
 
This VGExaDb Volume Group contains 2 Physical Volumes:
[root@exa01_db01 ~]# pvs
  PV VG Fmt Attr PSize PFree
  /dev/sda2 VGExaDb lvm2 a--u 557.36G 372.36G
  /dev/sda3 VGExaDb lvm2 a--u 1.09T 1.09T
 [root@exa01_db01 ~]#
 
and (good news), there's a lot of free space available here:
[root@exa01_db01 ~]# vgs
  VG #PV #LV #SN Attr VSize VFree
  VGExaDb 2 5 0 wz--n- 1.63T 1.45T
 [root@exa01_db01 ~]#
 

Extend /u01

So we just have to extend the filesystem which is an online operation:
[root@exa01_db01 ~]# lvextend -L +100G /dev/mapper/VGExaDb-LVDbOra1
  Size of logical volume VGExaDb/LVDbOra1 changed from 100.00 GB (25600 extents) to 200.00 GB (51200 extents).
  Logical volume LVDbOra1 successfully resized.
 [root@exa01_db01 ~]# resize2fs /dev/mapper/VGExaDb-LVDbOra1
 resize2fs 1.43-WIP (20-Jun-2013)
 Filesystem at /dev/mapper/VGExaDb-LVDbOra1 is mounted on /u01; on-line resizing required
 old_desc_blocks = 7, new_desc_blocks = 13
 Performing an on-line resize of /dev/mapper/VGExaDb-LVDbOra1 to 52428800 (4k) blocks.
 The filesystem on /dev/mapper/VGExaDb-LVDbOra1 is now 52428800 blocks long.
 [root@exa01_db01 ~]#
 
And you're done!
[root@exa01_db01 ~]# df -h /u01
 Filesystem Size Used Avail Use% Mounted on
 /dev/mapper/VGExaDb-LVDbOra1 197G 94G 94G 50% /u01
 [root@exa01_db01 ~]#
 
Note that this has to be done on each node. Hope this helps!

No Comments Yet

Let us know what you think

Subscribe by email