Mounting local drive with guest extensions

In the last entry we created a Linux install by creating a new virtual machine and booting from an iso image. This works but is very time consuming every time we want a playground. In this entry we will clone an existing machines using thin cloning, modify the clone, add guest services extensions, mount the E:\ drive to reading, and stage an installation of the 11g Oracle database.

The first step is to clone our existing machine. We don’t want to create a new one because the first one took almost two hours. If we left click on the oel6u5 example and right click we can select Clone…

Screenshot 2015-07-02 17.36.32

 

We are given the option of a full clone or a linked clone. A full clone takes all of the files that we created (the 40G root disk which is thin provisioned) and makes a new copy of it. The linked clone tracks differences from the old instance and the clone instance. As changes are made to the new instance, they are recorded in a new directory. The old instance is forked and any new changes happen in a new file. The old file preserves a spot in time where the two were the same. Screenshot 2015-07-02 17.36.45

 

The linked clone comes back almost immediately since no files are copied to create the new instance.

Screenshot 2015-07-02 17.36.51

 

What we want to do is mount the E:\ drive as a media folder inside of our guest operating system. To do this we must go to the settings and select shared folders. We Add a shared folder access point and map it to the E:\ drive. We automount it and make it read-write.

Screenshot 2015-07-02 17.36.59 Screenshot 2015-07-02 17.37.10 Screenshot 2015-07-02 17.37.18

 

While we are in the setting we also need to remote the CD/DVD since we are finished installing the operating system and want to boot off our new instance. We do this by selecting Storage, selecting iso file that we mapped, and clicking on the blue icon at the bottom with a minus sign in it. This removes the CD from our mapping and we boot from the hard drive that we used for our installation.

Screenshot 2015-07-02 17.37.51 Screenshot 2015-07-02 17.40.30 Screenshot 2015-07-02 17.40.33

Once we reboot, we log in as the user oracle and add the guest services extensions. This is done by going to the top menu bar in the VirtualBox window and selecting Insert Guest Additions CD image from the Devices menu. This mounts the CD and asks you if you want auto-run the content.

Screenshot 2015-07-02 17.41.00 Screenshot 2015-07-02 17.41.50 Screenshot 2015-07-02 17.42.05 Screenshot 2015-07-02 17.42.15 Screenshot 2015-07-02 17.42.23 Screenshot 2015-07-02 17.43.13

Note that kernel modifications were made to map the local drive to a mounted resource. We can eject the guest services CD and verify that the file system is mounted.

Screenshot 2015-07-02 17.43.27 Screenshot 2015-07-02 17.43.49

It is important to note that the /media/sf_E_DRIVE is readable only by root. We can copy data from this location to a local location as is needed for database installation or just access the data as root.

Screenshot 2015-07-02 17.44.16 Screenshot 2015-07-02 17.45.58

Before we install the 11g database we will want to change the hostname of this machine. We will keep the ip address the same but change the hostname by editing the /etc/hosts and /etc/sysconfig/network files. We will also need to change ownership of the staging directory back to oracle with the chmod -R command to make it owned by oracle for the installation.

Screenshot 2015-07-02 17.49.42 Screenshot 2015-07-02 17.50.13 Screenshot 2015-07-02 17.51.12 Screenshot 2015-07-02 17.52.13

In this example we change the hostname from oel6u5ex to db11g since we are staging to install the 11g instance of the database. We could have changed it to db12c if we were going to stage the 12c instance of the database. The process and procedure is the same with the exception of the hostnames and which database binaries we put into the staging area.

up next: installing the 11g database into our sandbox

Installing OEL6U6

In our previous post we downloaded VirtualBox, downloaded V41362-01.iso, and configured a single core, 4G of RAM, 40G of hard drive system with two network interfaces. We mounted the Oracle Enterprise Linux Release 6 Update 5 as a virtual CD-ROM once it finished downloading from edelivery.oracle.com. We stored on our E:\iso directory on our sandbox system to use again if needed. We created the virtual disk in the E:\VirtualBox VMs directory and are ready to boot the operating system to start the installation process.

To be honest, I reverted back to OEL6U5 because I had trouble getting the OEM6U6 to install and configure properly. I went with something that I know works and the features/differences between update 5 and update 6 are not that significant when it comes to the Oracle database.

To start the installation process we select an iso image by clicking on Storage and selecting the CD/DVD iso that we are going to boot from. In this case we select the V41362-01.iso file from our E:\iso directory and click on the green Start button at the top left.

Screenshot 2015-07-02 16.04.47Screenshot 2015-07-02 16.06.27 Screenshot 2015-07-02 16.04.25  Screenshot 2015-07-02 16.06.44

 

Once we click on start it takes us to the boot menu for the operating system. We select install and follow the menu prompts.

Screenshot 2015-07-02 16.06.58Screenshot 2015-07-02 16.07.26Screenshot 2015-07-02 16.07.31Screenshot 2015-07-02 15.33.28

Screenshot 2015-07-02 16.07.54 Screenshot 2015-07-02 16.07.59 Screenshot 2015-07-02 16.08.03 Screenshot 2015-07-02 16.08.08 Screenshot 2015-07-02 16.08.27

Configure the network so that eth0 has a static ip address of 192.168.1.121, netmask 255.255.255.0, and default router is 192.168.1.254 (this is my Uverse router). The default dns is 8.8.8.8 with the backup being 8.8.4.4.

Screenshot 2015-07-02 16.08.36 Screenshot 2015-07-02 16.08.44 Screenshot 2015-07-02 16.09.17 Screenshot 2015-07-02 16.09.31 Screenshot 2015-07-02 16.09.45 Screenshot 2015-07-02 16.09.55

 

after setting the timezone and root password, choose to overwrite all data on the existing disks and select a software development platform to install. The software development platform is selected to give us a compiler as well as a user interface. If you select the basic server you do not get a user interface.

Screenshot 2015-07-02 16.10.07

Screenshot 2015-07-02 16.10.17 Screenshot 2015-07-02 16.10.24

Screenshot 2015-07-02 16.10.31 Screenshot 2015-07-02 16.10.39 Screenshot 2015-07-02 16.10.47 Screenshot 2015-07-02 16.11.12

Once the system comes back you can reboot and finish the installation.

Screenshot 2015-07-02 16.24.26Screenshot 2015-07-02 16.25.33   Screenshot 2015-07-02 16.26.03Screenshot 2015-07-02 16.25.48Screenshot 2015-07-02 16.25.57Screenshot 2015-07-02 16.25.43Screenshot 2015-07-02 16.26.17Screenshot 2015-07-02 16.26.29Screenshot 2015-07-02 16.26.37     Screenshot 2015-07-02 16.26.46

At this point we have a valid system and can login, alter the /etc/hosts table, alter the /etc/sudoers file, and run yum update to download the latest patches.

Screenshot 2015-07-02 16.40.52 Screenshot 2015-07-02 16.41.05Screenshot 2015-07-02 16.41.28  Screenshot 2015-07-02 16.41.53Screenshot 2015-07-02 16.43.09Screenshot 2015-07-02 16.43.42   Screenshot 2015-07-02 16.46.18

The yum update will probably take as long as the installation process took. Overall this takes about an hour or two depending upon your network connection speed and amount of RAM that you allocate.

Screenshot 2015-07-02 17.32.54

We now have a fresh install of Oracle Enterprise Linux 6 Update 5 with the latest patches. I suggest that you clone this instance and put it on long term storage somewhere. We don’t need to spend an hour or two recreating this again.

up next: Mounting the E: drive inside the virtual machine to stage other software installations.

 

Downloading and setting up installing OEL6

In this entry we will go through downloading and installing Oracle Enterprise Linux Release 6 update 6. We are selecting this version over RedHat or Ubuntu or Debian because most of the Oracle documentation talk about how to install and configure on OEL6. We could do this for OEL7U1 or OEL5U?. We just selected OEL6U6 because it is the most recent with the best examples on the web.

Two things to consider when installing guest operating systems on VirtualBox are iso images and image sizes. To make things easier we consolidated software into two directories. The first is an iso directory. This directory is for operating system installations. The second directory is for the binaries like the database or identity servers. It is easier to isolate the two because one is used to jumpstart a new instance. The second directory can be mounted and pulled into an instance to install software. The second are that we need to consider is the directory to hold the virtual images that VirtualBox creates.

For our sandbox machine, we installed a 2T disk to hold iso images, binaries, and virtual images. In our example, this is drive E.

Screenshot 2015-07-02 14.04.00

We have consumed about 500G of a 2T drive

Screenshot 2015-07-02 14.03.47

There are three directories that we created: iso, oracle, and VirtualBox VMs. What we want to do is download the operating system iso files from edelivery.oracle.com and put it in the iso directory as is shown.

Screenshot 2015-07-02 13.59.21

To keep things a little more organized, we use a naming convention to identify the iso file. Oracle creates a file with a filename like V52218-01. This means nothing to me but OEL6U6 x86_64.iso has relavance. Note the file convention that we use contains both. The V(number).iso tells us the version that was downloaded from the edelivery site and the OEL6U6 tells us that this is the Linux Release 6 Update 6 version of the OS. Note that some of the conventions are reversed. For the OEL7 iso we had the V(number) inside the parenthesis and the OEL7 outside. Either works as long as you can tell which is which easily.

To download the iso file, you need to go to edelivery.oracle.com and select the Oracle/Linux VM from the top of the screen. There are three options in the pull down: Main, Oracle/Linux VM, and Oracle 1-click. The Main and Oracle 1-click allows you to download the installation binaries for things like the database or E-Business suite. The Oracle/Linux VM allows you to download OracleVM, Linux, and Solaris binaries. Unfortunately, the license requirements and conditions are different prior to downloading the software. Oracle requires you to select what you are going to download and agree to user and license restrictions.

goto http://edelivery.oracle.com and select Oracle Linux/VM to get to the operating system download.  Screenshot 2015-07-02 13.56.16Screenshot 2015-07-02 13.56.20

 

 

 

 

 

Login with your oracle.com credentials.

 

Screenshot 2015-07-02 13.56.31Screenshot 2015-07-02 13.56.40

 

Accept the license to search for the OS

Screenshot 2015-07-02 13.56.52

 

 

 

 

 

 

 

 

 

Look for Linux on a 64-bit systemScreenshot 2015-07-02 13.56.59

 

 

 

 

 

 

 

The OS downloads will come back in release order. Re-sort by Updated date to look for the latest version. Screenshot 2015-07-02 13.57.12 Screenshot 2015-07-02 13.57.19

Select the Release 6 Update 6 version and download the iso images. Note that there are three. The largest is the DVD image that we typically want to boot from.

Screenshot 2015-07-02 13.57.36  Screenshot 2015-07-02 13.57.53

The download takes a while. Remember that you are downloading a 4G iso image. There is no need to download the source, only the bootable iso image.

Once the images are downloaded we need to configure VirtualBox to read this image and boot from it. To start this, we click on the New icon at the top left of the VirtualBox console.

Screenshot 2015-07-02 14.34.35 We call this instance OEL6 example, select Linux as the OS and Oracle 64-bit as the version.  Screenshot 2015-07-02 14.34.50

 

 

We change the memory for this instance to 4G. We can get by with much less but if we are using this for a database, 4G is the minimum recommended.

We create a 40G drive as a virtual, dynamically created drive. Note that we could create this as a VMDK file which makes it compatible with VMWare. In our example we use the VDI since is compatible with OracleVM. Either should work.

Screenshot 2015-07-02 14.34.55 Screenshot 2015-07-02 14.34.59 Screenshot 2015-07-02 14.35.03 Screenshot 2015-07-02 14.35.23

 

We now have a virtual container that we can boot an iso image into. We do need to modify the network as well as mount the iso image as a CD-ROM for booting.

Screenshot 2015-07-02 14.36.58

To map the iso image, we click on the storage and map the iso image as a CD-ROM. Click on the Circle on the right with a Plus sign on it. This pops up the add new CD/DVD question and file selector when we click on Choose disk.

Screenshot 2015-07-02 14.43.17 Screenshot 2015-07-02 14.43.22 Screenshot 2015-07-02 14.43.30 Screenshot 2015-07-02 14.43.35

 

Next we configure the network to have a bridged interface on adapter 1 as well as a host only network interface on adapter 2. This should give us an eth0 as a bridged network and eth1 as a host only interface.

Screenshot 2015-07-02 14.43.45 Screenshot 2015-07-02 14.43.54

From here we click on Start at the top left of the VirtualBox console which gets us into installing the operating system.

Up next: Installing OEL6U6

 

Installing VirtualBox

VirtualBox is a virtualization software package that allows us to create a sandbox to play with Oracle software. We initially selected a deskside computer that is capable of hosting a variety of virtual guests. Our system has 24G of memory and a quad core Intel i7 processor. On Windows you can go to the Control Panel -> Systems to look at the memory and processor configuration.

system config

To download the software you can go to the VirtualBox web page and download the binary for the OS that you are running. In our example, we download the Windows host x86/amd64 binary.

virtualbox.org

From this, you can execute the binary and install the software. There really is not many options other than where you can install the binaries and if you want a shortcut on your desktop and startup menu for Windows.

Windows screen shots

MacOSX screen shots

The user documentation for VirtualBox is relatively helpful if you get stuck. Chapter 2 covers the installation on the various operating systems. Chapter 4 covers guest additions. If you want to mount a directory from your desktop computer you will need the guest additions. Chapter 6 covers networking. For most of what we will focus on, three network configurations are worth learning in more detail.

  1. bridged networks
  2. host-only networks
  3. network address translations

Bridged networks allows you to use DHCP or static ip mappings and send/receive data across routers. In my instance I use bridged routing to connect through my AT&T Uverse router and can see the virtual instance from outside my house. Bridged networks are needed for this so that the ip address is routable.

Host-only networks are good for virtual machine to virtual machine communications. If I have a WebLogic server configured to communicate with a database, I can use the host-only network which is non-routable and create a communications channel that is similar to a corporate backbone inside a DMZ. I can use non-secure communication mechanisms that are not available on a public network or can use things like remote desktop, VNC, or remote X-11 windows to display back to my MacBook Pro or Windows desktop.

Network Address Translation (NAT) is similar to bridged networks but keeps the ip address of the guest operating system hidden and not exposed. The VirtualBox engine and host operating system act as a router for the guest OS. I found that this works but makes administration a little more complex and less secure for my desktop OS if we want to route public ip traffic through AT&T Uverse into my guest OS. If we were trying to expose multiple guest virtual machines I would use NAT.

For our configuration we wanted to expose Enterprise Manager as the main console/browser into our network. We configure the AT&T router to map the DHCP address assigned to connect to the internet to map to the static ip address of the enterprise manager guest OS. In our instance that will be 192.168.1.120. This is a simple mapping that can be done on the admin page of the router using the firewall mapping. Any ports opened from the outside world to the router will get mapped to the static ip address. This allows us to server port 7802 which is the enterprise manager console port for demos. Security must be maintained on the virtual machine because all ports are now exposed to the internet and all script kiddies and hackers.

Screenshot 2015-07-02 13.30.48Once everything is installed you should be able to launch the VirtualBox management console and configure new guest operating systems.

Screenshot 2015-07-02 13.34.49

Note that this is a relatively mature installation with a variety of operating systems and configurations already done.

Up next: Installing Oracle Enterprise Linux and mounting local drives in VirtualBox.

Test platform

The easiest way to play with technology is to create a test platform that works for you and allows you to create a playground or scratch environment. Historically you had to purchase a computer, install and operating system on the computer, and install the software on the operating system. This was very cumbersome. Getting a dedicated computer to play with was initially expensive. Getting the OS installed and configured to work in your network was overly complex and typically required an OS license. Once you had the OS stable you were free to play with software installation and configuration. The key problem was that if something went wrong or something locked up the computer it was back to square one and re-installing and re-configuring the operating system.

Fortunately a few years ago virtualization became something that not only gave you a safe sandbox but became mainstream computing. There are currently three primary platforms for virtualization: VMWare, HyperV, and ZEN. All three have server solution. All three have desktop solutions.

With VMWare there are a variety of products that you can play with.  For desktop solutions, VMWare Fusion is a good solution. You can play with it for free but a licensed version is $70. It does require a modern Intel chip set (or AMD) with 64-bit capability and at least 2G or RAM and 1T of storage. Server solutions are out of the question for individuals but excellent if your corporation has standardized on it as a platform and provides you a sandbox to play in. The VMWare VCloud is a good hosting platform to play with if you have the money and resources but do not have a VMWare server in house to play with. Starting cost of VCloud is $670 per month and can grow as you require more resources. One of the key benefits is that what you develop in Fusion can migration to ESX/VMWare Enterprise to VCloud easily.

With Microsoft, HyperV is bundled into Windows 2012 and newer. You can run a virtual instance inside of Windows but it does require that you have a valid Windows OS license as the base operating system. Unfortunately, migrating HyperV instances from a private hosted environment to a public cloud environment like Azure does not work well and has different file formats. We will not be looking at this option because 1) it cost too much for me to play with (I have a Windows 7 desktop and can not get a server 2012 edition installed on my system to play with) and 2) if our goal is to migrate our examples to the cloud the lack of functionality to migrate these instances to the cloud are show stoppers.

With Oracle, there are two solutions Oracle VM (a Zen based hypervisor) and Virtual Box. Oracle VM is a server solution that is bundled into products like the Database Appliance or the Virtual Compute Appliance. It is also part of the Solaris operating system and works on Sparc and X86 platforms. We will be focusing on VirtualBox since it is a desktop solution that works on MacOSX, Windows 7, and Linux. We can configure a desktop system to be our sandbox at no cost. One of the benefits that I appreciate is the fact that you can add the extensions for your operating system and share drives with the guest OS. This allows you to stage installation binaries in a directory and not have them consume disk space in your virtual machine. This is a common practice in corporations and cloud hosting like Amazon Web Services. You create an S3 storage pool that contains all of you install binaries and mount this on your virtual machine. You can keep your virtual machine smaller and cross mount the installation files across multiple machines without consuming the disk space on all of them. We will be looking at VirtualBox because I did not want to use my laptop as my primary computer and install OracleVM on my deskside computer. I ordered a deskside Linovo computer with 24G of RAM and 3 terabytes of disk to act as a playground. The system came installed with Windows 7 and very little else installed on it since it is the Oracle Desktop standard image.

I mention the AWS service. We could use this as a playground. It is a valid alternative. We will not be looking at this initially because it involves a cost for storage and a cost for compute resources. Pricing for instances are reasonable ranging from 1.3 cents per hour ($113.88 per year)  to $2 per hour ($17,520 per year). They do have a year free on the cheapest services but in my opinion these services are too limiting to play. You get one virtual CPU and 1G of memory. The key benefit to this configuration is that you get a copy of Windows for free so if your testing platform is Windows then it might be a good alternative. The Oracle database requires at least 4G of memory to run without being painfully slow. Layering WebLogic on top of it and Enterprise Manager boosts the requirement to 6G or you are watching the processor spin while it thrashes memory.

There are a variety of other services that you could lease similar to AWS. Oracle has compute infrastructure as a service at $2,190 and up per year. Rackspace, Level 3, Google, and other hosting vendors are alternatives. My recommendation is to look at what works for you and stick with it. We will be using VirtualBox as our preferred platform because instance created in this sandbox can be exported to AWS, VMWare, and OracleVM. This platform is also free for a variety of platforms and has enough features to fulfill our needs and requirements.

Our sandbox system came down to cost. We selected a deskside Linovo M83 system at a cost of $1,364 because it can handle the extra memory that is needed. A laptop is typically limited to 4-8G of RAM. We don’t need the graphics capability of a gaming system or the added processing power. We went with a 4 core Intel i7-4770 chip at 3.4Ghz. This system was selected primarily for the memory expansion. The system can handle 36G so we have some headroom if needed. We could have selected AWS or Oracle IaaS as the testing platform but given that my department had budget for me to get a new computer I opted to keep my personal MacBook Pro as my laptop and have Oracle purchase the deskside as my daily “working” computer.

next: VirtualBox installation and configuration