Twitter

Exadata: how to extend /u01

Marketers are very good at selling everyone that resources (CPU, disks, memory) are now infinite which is mainly true on a slide but it's less true in real life and 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 filled here, that you can ensure that your logfiles are properly rotated / purged but on 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 the 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 it helps !

1 comment:

CUDA: Getting started on Google Colab

While getting started with CUDA on Windows or on WSL (same on Linux) requires to install some stuff, it is not the case when using Google...