If you’ve been following the recent changes in the linux world you probably remember how Red Hat and Centos announced in December 2020 that the CentOS Project was shifting focus to CentOS Stream and support for CentOS Linux 8 had been cut to December 31, 2021. It created a wave of discussions in the community about the future for Centos as an enterprise platform and some people started to look to alternative Linux distributives. As a result we got a new, community-driven downstream built, same as Centos used to be, Rocky linux.
The downstream build is based on the same code base as the vendor distributive and resembles most features of the “parent” vendor Linux. It is following all the releases after they have been built by the vendor. In most of my tests I am using Oracle Linux when I am in the Oracle cloud but I am using Centos in Google cloud and other public clouds like Azure or AWS. Now we have Rocky Linux available on those platforms and I’ve had a quick look and done some testing using the Rocky Linux 8.4 (Green Obsidian).
Let’s have a look to the kernel and packages.
[gleb_otochkin@gleb-rocky-01 ~]$ cat /etc/rocky-release Rocky Linux release 8.4 (Green Obsidian) [gleb_otochkin@gleb-rocky-01 ~]$ cat /etc/redhat-release Rocky Linux release 8.4 (Green Obsidian) [gleb_otochkin@gleb-rocky-01 ~]$
It has the same kernel and versions of the packages as the upstream release and is probably compatible in most of the ways. You can verify it with information from Red Hat using the following link.
[gleb_otochkin@gleb-rocky-01 ~]$ uname -r 4.18.0-305.3.1.el8_4.x86_64
I gave it a quick ride and checked if I could use it in my tests and demo deployments. The tests were done in the Google Cloud Platform (GCP) using a e2-medium (2 vCPUs, 4 GB memory) VM with a standard “Rocky Linux 8” image. For the tests I decided to install an Oracle Database 19c to the VM to see if we would get any issues during the process. Maybe this is not an ideal test but I am working extensively with data and with Oracle databases and it could help me and maybe to some of my Oracle peers to understand if it would be a suitable replacement for Oracle Linux or Centos.
To prepare the system I used Oracle’s oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm from the public Oracle repository. The package sets up kernel parameters, creates oracle users and groups and includes all the dependencies to other packages. In earlier versions it was requiring Oracle UEK kernel but it is not the case anymore. With the dnf utility you can install the package directly from the web.
[gleb_otochkin@gleb-rocky-01 ~]$ sudo dnf install http://public-yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/getPackage/oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm Rocky Linux 8 - AppStream 7.1 MB/s | 8.0 MB 00:01 Rocky Linux 8 - BaseOS 12 MB/s | 4.5 MB 00:00 Rocky Linux 8 - Extras 13 kB/s | 3.9 kB 00:00 Google Compute Engine 17 kB/s | 9.3 kB 00:00 Google Cloud SDK 37 MB/s | 35 MB 00:00 oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm 163 kB/s | 31 kB 00:00 Dependencies resolved. ============================================================================================================================================================================================================================================ Package Architecture Version Repository Size ============================================================================================================================================================================================================================================ Installing: oracle-database-preinstall-19c x86_64 1.0-2.el8 @commandline 31 k Installing dependencies: bc x86_64 1.07.1-5.el8 baseos 128 k ... redacted ... Complete! [gleb_otochkin@gleb-rocky-01 ~]$ id oracle uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54330(racdba),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba) [gleb_otochkin@gleb-rocky-2 ~]$
All dependencies were installed correctly and the server was ready for the next steps.
I prepared storage for the binaries and mounted it to the system.
[gleb_otochkin@gleb-rocky-01 ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 200M 0 part /boot/efi └─sda2 8:2 0 19.8G 0 part / sdb 8:16 0 50G 0 disk [gleb_otochkin@gleb-rocky-01 ~]$ sudo pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created. [gleb_otochkin@gleb-rocky-01 ~]$ sudo vgcreate vgorasoft /dev/sdb Volume group "vgorasoft" successfully created [gleb_otochkin@gleb-rocky-01 ~]$ sudo lvcreate -l 100%FREE -n lvorasoft01 vgorasoft Logical volume "lvorasoft01" created. [gleb_otochkin@gleb-rocky-01 ~]$ sudo mkfs.xfs /dev/mapper/vgorasoft-lvorasoft01 meta-data=/dev/mapper/vgorasoft-lvorasoft01 isize=512 agcount=4, agsize=3276544 blks = sectsz=4096 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 data = bsize=4096 blocks=13106176, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=6399, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 Discarding blocks...Done. [gleb_otochkin@gleb-rocky-01 ~]$ [gleb_otochkin@gleb-rocky-01 ~]$ sudo mkdir /u01 [gleb_otochkin@gleb-rocky-01 ~]$ sudo cp /etc/fstab /etc/fstab.orig [gleb_otochkin@gleb-rocky-01 ~]$ sudo su - [root@gleb-rocky-01 ~]# echo -e '\n'`blkid /dev/mapper/vgorasoft-lvorasoft01 | cut -d " " -f 2 | sed 's/"//g'`"\t\t/u01\txfs\tdefaults\t1 2" >>/etc/fstab [root@gleb-rocky-01 ~]# mount /u01 [root@gleb-rocky-01 ~]# df -h /u01 Filesystem Size Used Avail Use% Mounted on /dev/mapper/vgorasoft-lvorasoft01 50G 390M 50G 1% /u01 [root@gleb-rocky-01 ~]# [root@gleb-rocky-01 ~]# chown oracle:oinstall /u01/app/oracle [root@gleb-rocky-01 ~]#
Before doing installation you need to set up the CV_ASSUME_DISTID environment variable or your installation will fail with the “[INS-08101] Unexpected error while executing the action at state: ‘supportedOSCheck'”.
[WARNING] [INS-08101] Unexpected error while executing the action at state: 'supportedOSCheck' CAUSE: No additional information available. ACTION: Contact Oracle Support Services or refer to the software manual. SUMMARY: - java.lang.NullPointerException
After setting the environment variable all the next steps were typical for a silent installation and I hadn’t hit any problems with the system or during the installation.
[oracle@gleb-rocky-01 dbhome1]$ cat /etc/redhat-release Rocky Linux release 8.4 (Green Obsidian) [oracle@gleb-rocky-01 dbhome1]$ export CV_ASSUME_DISTID=OEL8.4 [oracle@gleb-rocky-01 dbhome1]$ ./runInstaller -silent -responseFile /u01/app/oracle/patchdepot/db_install.rsp Launching Oracle Database Setup Wizard... ... redacted ... As a root user, execute the following script(s): 1. /u01/app/oraInventory/orainstRoot.sh 2. /u01/app/oracle/product/19.0.0/dbhome1/root.sh Execute /u01/app/oraInventory/orainstRoot.sh on the following nodes: [gleb-rocky-01] Execute /u01/app/oracle/product/19.0.0/dbhome1/root.sh on the following nodes: [gleb-rocky-01]
Creation of the database was the same, correct, fast and didn’t produce any errors.
oracle@gleb-rocky-01 ~]$ /u01/app/oracle/product/19.0.0/dbhome1/bin/dbca -createDatabase -silent -createAsContainerDatabase true -gdbName orcl -pdbName ottawa -templateName General_Purpose.dbc -sysPassword welcome1 -systemPassword welcome1 -pdbAdminPassword welcome1 -datafileDestination /u01/app/oracle/oradata -storageType FS -sampleSchema true [WARNING] [DBT-06208] The 'SYS' password entered does not conform to the Oracle recommended standards. CAUSE: a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9]. b.The password entered is a keyword that Oracle does not recommend to be used as password ACTION: Specify a strong password. If required refer Oracle documentation for guidelines. ... redacted ... Database creation complete. For details check the logfiles at: /u01/app/oracle/cfgtoollogs/dbca/orcl. Database Information: Global Database Name:orcl System Identifier(SID):orcl Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/orcl/orcl.log" for further details. [oracle@gleb-rocky-01 ~]$
After setting everything up I ran several tests and everything worked correctly as it would be on Red Hat or Oracle Linux.
I checked if I could update my packages with the latest bug fixes and it worked correctly too.
[gleb_otochkin@gleb-rocky-01 ~]$ sudo dnf updateinfo Last metadata expiration check: 1:34:00 ago on Fri 23 Jul 2021 05:44:49 PM UTC. Updates Information Summary: available 2 Security notice(s) 2 Important Security notice(s) 9 Bugfix notice(s) Security: kernel-core-4.18.0-305.10.2.el8_4.x86_64 is an installed security update Security: kernel-core-4.18.0-305.3.1.el8_4.x86_64 is the currently running version [gleb_otochkin@gleb-rocky-01 ~]$ sudo dnf upgrade Last metadata expiration check: 1:34:33 ago on Fri 23 Jul 2021 05:44:49 PM UTC. Dependencies resolved. =============================================================================================================================================================================================================================== Package Architecture Version Repository Size =============================================================================================================================================================================================================================== Upgrading: NetworkManager x86_64 1:1.30.0-9.el8_4 baseos 2.6 M NetworkManager-libnm x86_64 1:1.30.0-9.el8_4 baseos 1.8 M NetworkManager-team x86_64 1:1.30.0-9.el8_4 baseos 144 k NetworkManager-tui x86_64 1:1.30.0-9.el8_4 baseos 327 k ... redacted
I can conclude that the Rocky Linux will probably be replacing some other distributives as a preferable platform for tests, demo or as production on Google and maybe other clouds. Maybe with more intensive usage I will hit some problems but so far it works without any hiccups. If you are looking for a replacement for your Centos or want a RHEL like Linux distributive I recommend to look at Rocky Linux.