This post will cover a basic installation of Oracle Linux 6.
For this task, we will use a virtual box guest, however, the same idea apply to any other virtualization technology or bare metal install on a physical server.
- Before we start
- Release notes
- ISO / DVD
- Installation Method
- Installation Media
Before we start
In the about page are few lines about who I am, my email and link to linkedin. All feedback is good feedback.
Let me share few lines about Linux and myself.
On the year 2003, RedHat took the first RHCE exam in Chile, RedHat 9.
Before that was just on the other countries like Argentina or Brazil, so this time was in Chile, quite expensive and the famous RHCE, the real deal with a lunch break in the middle and only hands on, trouble shooting and a installation request.
I took the exam and passed, and was well expended money. After that, the market was open to me, being RHCE gave me an enormous advantage vs the other peers that were good but they weren't rhce.
As soon as I got certified in RHCE got the invite to become RHCI, so from 2004 to 2011 I was an RedHat Certified Instructor.
In RedHat space, I got certified in 2003 with RH9, then on 2007 with RHEL5.
In Oracle space, In 2007 I took the beta exam for Oracle Linux 5, and last December took the beta exam for Oracle Linux 6. Both passed.
So if you are good, and you can pass an exam, do it, it will look nice on the resume, and will help you in your work.
Back to our goal, I will be sharing here, both sides of the coin, the teorical level from being an instructor, and the Implementation and Support side of being Unix Admin with many implementations under the belt, most of them always related with Oracle products like databases and ebusiness suite.
If you have worked with Oracle in the past, you are familiar with what I am going to discuss here.
If you have worked with any paid linux or unix, or hardware from some brands that require a minimun or supported version, you are somewhat familiar with certification matrix.
Certification matrix is an end-to-end matrix of versions.
You may want to go ahead, install the latest Oracle Linux available, apply all the patches available and hand over to the dba or apps team.
If you are using Oracle Linux, the chances that you are going to be working with enterprise grade hardware, and expensive applications are very high, in such cases better check and gather the requirement, rather than find the 6.4 Oracle Linux with kernel-uek-2.6.30-400 is not supported for that old application, or vice versa, the Oracle Linux 5.1 required to run that old application is not supported to run on that brand new hardware.
A certification Matrix should cover:
- hardware with their recommended firmware upgrades, and OS tools
- Operating system that is supported, recommended for that hardware
- Operating system that is supported, certified and recommended for that application
- Application with their recommended patch level
Let me give you some examples.
When Oracle Linux 5 came out, the installer of the Oracle Database 10.2 complained about the Version wasn't supported. When Oracle Linux 6 came out, the page of some hardware vendor only listed some versions of Enterprise Linux 5, not 6.
If you ignore the needs of the applications, or just skip checking the supported version of the hardware, you may find later in the project that the hardware or the application is behaving poorly, or crashing, and when the application team engage the vendor, for hardware or software, they may just suggest, give a try to the version X.Y.Z of the OS, and you may need to do extra work.
When you deal with paid applications (Top Dollar), you will learn are some rules, not written, that the called 'best practices'.
My best advice here is test, check, put on paper the versions of all the components, and in case of doubt, open a service request or support ticket with the vendor and ask the written confirmation or deny of using X.Y.Z combination.
Oracle is a big company, the chances you are going to end using Oracle products on top of the Oracle Linux are very high, and you need to double check in both sides that both layers are supported.
I will be covering some of this information for some of the products I use in later posts, but if you are going to be working and supporting Oracle Linux for Oracle Products, you should start becoming familiar with Certification Matrix
Release notes and documentation
Release notes, seriously? yes, seriously.
Oracle is a big company, and they are very professional, you may not need at all check a single doc or release notes to get a linux installation, but at some point you should review the release notes and documentation
When Oracle linux 6.4 came out, an oracle linux blog post came out
Quote of the Oracle Linux Blog post:
For further details, please see the Oracle Linux 6.4 Release Notes. Oracle Linux customers also have access to a number of recently announced unique features/benefits, including: Support for XFS file system: Today we also announced support for XFS file system in Oracle Linux. It is now available for customers with Premier Support subscriptions using Oracle Linux 6. Read the XFS support blog article for more details. Ksplice offline client: We recently announced a new feature in our Ksplice service, known as the Ksplice offline client. Ksplice provides zero downtime updates for your kernel and now this new option eliminates the requirement to have a direct connection to the internet to apply Ksplice patches. Read more details in Wim Coekaerts blog and watch this video describing updating and patching in Oracle Linux. DTrace for Oracle Linux: Another new addition is the general availability of DTrace for Oracle Linux. DTrace is a comprehensive dynamic tracing framework available to Oracle Linux customers. It is available to download from ULN for supported customers.
From the release note
Table of Contents Preface 1. New Features and Changes 1.1. Supported Kernels 1.1.1. Unbreakable Enterprise Kernel Release 2 1.2. Notable New Features 1.2.1. Xen Improvements 1.2.2. Notable New Features Available with the Red Hat Compatible Kernel 1.3. Technology Preview Features 1.4. Packages Added to the Upstream Release 1.5. Packages Modified from the Upstream Release 1.6. Packages Removed from the Upstream Release 1.7. Packages Added by Oracle 2. Fixed and Known Issues 2.1. Fixed Issues 2.2. Known Issues 3. Upgrading to Oracle Linux 6 Update 4 3.1. Supported Upgrade Paths 3.2. Obtaining Oracle Linux 6 Update 4 Packages 3.2.1. About the Unbreakable Linux Network 3.2.2. About Public Yum 3.2.3. About Oracle Linux Installation Media 3.3. Applying Updates 3.4. Upgrading Unbreakable Enterprise Kernel Release 2
And we are talking of minor release, from 6.3 to 6.4
For sure you can just install it, or do yum -u update in an existing Oracle Linux 6, but the release notes contain very nice information.
You should be checking at least
2. Fixed and Known Issues 2.1. Fixed Issues 2.2. Known Issues
ISO / DVD
The chicken and the egg, what goes first.
As we did on a previous post, you need to download oracle linux , once you have the iso, you can start to plan the deployment of Oracle Linux.
For a single install, either physical or virtual, you can just burn the downloaded iso, or mount the iso and do a normal installation.
But this method is not efficient if you need to perform several installations.
The ISO image is the starting point, as we will review in the following sections, you will be able to use several methods to start the installation, and you will able to use several methods to get the media on the client. Further more, the whole process can be automated, and instead of the normal interactive installation, can be done silent.
For example an installation, for an Oracle Linux 6.3 using root filesystem as btrfs, including all the packages and parameter needed to run Oracle Rac
The installation of Oracle Linux, can be divided in 2 separate tasks.
- Execution of the installed
- Installation of linux to the hard disk
To execute the installer you can use
- pendrive/hard drive
Let's review this options
You are familiar with this one, is just use the iso in a dvd, physical or virtual, and start the installer.
Get an DVD-RW as you may end modifying your Oracle Linux DVD to your own needs.
You can put the image of the iso in a pendrive or a harddrive and boot from an internal hard drive, lun, virtual disk or attached usb pendrive or disk.
The pendrive is very useful if you keep changing the kickstart file, example, you can edit the pendrive to setup the server name, network settings, then go to the server, boot, and take the files from a network share. This combination is very useful and simple.
You can turn on a server, boot from the network and it will load the installer from the network
This is very cool, in a system that you have to reinstall for any reason, you can put an entry in grub, reboot the server, choose that option, and it will start the installer
During this post, we will review cd/dvd execution of the installer. Either by full dvd or just boot.iso
Once the installer have been loaded, the 2nd part is to perform the installation of our OracleLinux.
The binaries to perform the installation can be taken from several sources
This allow us to install from a CD or DVD, this usually goes related to boot from a cd/dvd and then install from the same media. The best of this method is that doesn't require anything external, so you can setup a server and later take care of the network part.
This method, goes very well with a custom DVD, were you can place a kickstart file to automate the installation. If your company have a standard, fixed or not, you can automate the process, anything than is asked during the installation, can be automated.
This one, allows to take the rpm from a pendrive or hard drive.
Ideal if you want to have a hard drive with the media plus some applications.The harddrive installation is very fast, as opposite to the pendrive.
With today networks speed, install over a network share is faster then CV/DVD or pendrive. Keep that idea on mind when you need to develop your internal standard build.
This is the normal installation, that you boot from a DVD and give you the interactive install.
The process of the installation, have several questions or customisation, every one of them can be later performed in an automated way.
The installer is called 'anaconda' and have a predefined set of options, like the default layout for hard drive if you just select next, or the groups of packages.
For an Oracle Database or Oracle Application, the installation layout should be something like:
/ /boot swap
As the minimun. This is OK for dev and testing or test virtual machines.
A more real layout for production, where our goal is uptime, is to separate those filesystem that can fill up or due heavy usage can become corrupted (due a crash, outage or run out of space)
So, for a production environment, a more common filesystem layout should be
/ /boot /home /tmp /usr /var /var/tmp swap
In order to get the most simple approach, you may want to use Logical Volumes, that will give you a simple disk layout and the flexibility to grow those filesystem later in case you run out of space,
LVM, stand for Logical Volume, the basic idea behind this is.
A physical disk (or more than one) provide PE, Physical Extend to the next layer
A Volume group is made of Physical Devices with a number of PE, and this Volume Group hold Logical Volumes.
A Logical Volume is mafe of LE, or logical extends
A filesystem is created on top of a logical volume
This image is from Redhat 6 LVM Manual
So, imagine you have a disk that is sda, and the 3rd partition sda3 is on fdisk as fd to mard the partition as LVM
Then you create a Volume Group called VG00, that have sda3 as member
Then you can create logical volumes and initialize those as filesystem or swap devices.
For some tasks you can use those logical volumes as backed block deivices where is supported, like virtual machines on a desktop system to have virtual machines with XEN.
If you want to read more about this, check RedHat 6 LVM manual
Back to our installation, for a production environment, a more common filesystem layout using LVM should be
first partition for /boot, say 500 MB format as ext4 second partition for swap say 4GB for most system say 16GB if your sever is over 12GB of ram and you will use Oracle DB third partition as PV, the rest of the space
Then, logical volumes as
/ /home /tmp /usr /var /var/tmp
The anaconda installer, allow us during the boot pass an argument with an address where anaconda can find a kickstart file.
A kickstart file is just a text file with a format with answers to each of the tasks to perform during the installation.
If your kickstart is missing an option, then it will prompt on the console for that information, so, if you kickstart is complete, then you will get an installation, end to end un-attended, that is what more sysadmin like to have, less work, a consistent delivery of machines. The opposite of this is the lack of standard, where 10 different servers will have different selection of packages, different time zone, different layout of disks, etc. You want to stay away of this.
Are several ways to start working with a kickstart file, the top 3 are:
- Create a kickstart based on a kickstart file
- Create a kickstart using system-config-kickstart tool
- Create a kickstart with just a text editor
Or, of course a mix between any of these.
Create a kickstart based on a kickstart file
Any Oracle Linux machine, will leave /root/anaconda-ks.cfg file, that will be a template of the installation performed on that box.
This is a very nice feature and the best way to start creating a kickstart.
Take a server or virtual machine, perform a installation according the standard you have, and at the end, you will end with a system that will be your base and a kickstart file that will allow you to create a file to re-use on new installations.
Create a kickstart using system-config-kickstart tool
On a OracleLinux server, do yum install system-config-kickstart to install this tool
Then execute it as system-config-kickstart and you will be able to customise the different options and will save and create your very own kickstart file.
It also have the option to open a kickstart file in case you want to change or edit some options.
Create a kickstart with just a text editor
Once you are confortable with the process, you can just use a text editor and create your very own kickstart.
This is also valid to have scripts that create kickstart files, that is, you have a base, and your servers differ just in hostname, and network setup. Then you can create an script to create kickstart files.
A very nice manual and examples for kickstart files, can be found on Chapter 32. Kickstart Installations from redhat manual