How to extend the /u01 filesystem on an Exadata

2 min read
Aug 22, 2019 12:00:00 AM
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!
On this page

Ready to unlock value from your data?

With Pythian, you can accomplish your data transformation goals and more.