You need to create a physical volume (PV), add it to your volume group (VG), expand the logical volume (LV) and grow the file system.
Create a partition table and an empty partition. gdisk /dev/sda. Once in interactive mode, hit o to create a GPT partition table, than hit n to create an empty partition: just go with the defaults and use 8E00 as partition type (it stands for LVM). Hit w to commit the changes to the disk. This step could be omitted and you could create the PV on the raw disk, but I prefer to create a partition table for consistency - it may look weird and confuse some admins or tools. If you prefer to omit this step, just run below commands on /dev/sda instead of /dev/sda1.
Create the PV with pvcreate /dev/sda1. You can verify it by pvdisplay /dev/sda1.
Find out the name of your VG by running vgdisplay. Than run vgextend <name of your vg> /dev/sda1. Verify with vgdisplay.
Expand your LV by the amount you need. lvextend -L +50G /dev/mapper/rl-root (adjust the size on -L to your needs).
Consider not commiting the whole disk now, if you do not need it. xfs cannot be shrunk and if you should want to create another partition at some point in the future you will not be able to.
Grow the file system with xfs_growfs /.
You need to run the commands as root or with sudo. Be aware that the disk will be wiped by writing a new partition table. So be sure you run the commands on the right disk. If possible, do a backup because any operations on the disks come with some risk.
Solution for what? Getting the space in use or backups?
A convenience of big filesystem volume is that any subset of data can grow to use (all) space.
A benefit of multiple small filesystem volumes is that no subset of data can grow to use space of other subsets. The downside is that some volumes may be unnecessarily big and unused space in them is “wasted”. One should thus predict wisely, if one wants multiple volumes as resizing volumes can become tricky (e.g. one cannot shrink XFS).
A system has basically three things:
system files (installed from packages)
config (configuration systems can make logical copy of it that is trivial to redeploy and easy to backup)
user data (that is the most valuable piece and also least predictable)
The default install creates ‘rl-root’ and ‘rl-home’, for / and /home. The latter has only “user data”. The latter is also example of mounting an additional filesystem (into the directory hierarchy) where “extra” space is required.
Lets say that the largest “user data” will be a Postgresql database that may need almost 240 GB.
One could create a partition into the second HDD (either plain partition or PV for new VG that has LV). Then mount that to /var/lib/pgsql, before installing the Postgresql packages. Now all of the SQL database will be in the “sda”, while system remains in “sdb”.
If the “sda” breaks, you get a new HDD, recreate filesystem, mount it to /var/lib/pgsql and restore database contents from backup.
If the “sdb” breaks, you get a new HDD, reinstall Rocky, mount “sda” to /var/lib/pgsql and restore rest of config and userdata that were in sda from backups.