Tuesday May 19, 2015

Tech Article: How to Start Using Docker on Oracle Linux

As Ginny Henningsen puts it, "Docker is an open source virtualization technology that creates lightweight Linux application containers." What I think is particularly cool about Docker is the portability it derives from its open-source genes. As Ginny explains:

"Docker containers can define an application and its dependencies using a small text file (a Dockerfile) that can be moved to different Linux releases and quickly rebuilt, simplifying application portability. In this way, "Dockerized" applications are easily migrated to different Linux servers where they can execute on bare metal, in a virtual machine, or on Linux instances in the cloud."

Here's her article, plus a few additional resources to help you include Docker in your Linux deployments:

Tech Article: Getting Started with Docker on Oracle Linux

by Ginny Henningsen

How to customize a Docker container image and use it to instantiate application instances across different Linux servers. This article describes how to create a Dockerfile, how to allocate runtime resources to containers, and how to establish a communication channel between two containers (for example, between web server and database containers).

Docker Resources

About the Photograph

I took the picture of that wagon in Stovepipe Wells, Death Valley, on my ride to the Sun Reunion.

- Rick

P.S. My last day at Oracle will be May 31. If you'd like to stay in touch, use the links on the left, below:

Follow Rick on:
Personal Blog | Personal Twitter | Oracle Community Profile | Part I of the Great Peruvian Novel
  Follow OTN Garage on:
Blog | Community Discussions | Web | Facebook | Twitter | YouTube

Wednesday May 13, 2015

A Brief Chat with the Linux Foundation

I recently got to chat with Jim Zemlin, Executive Director of the Linux Foundation. In case you were just rescued from a buried time capsule as part of a fraternity pledge, you probably already know that the Linux Foundation is a non-profit trade association that fosters the growth of Linux. It supports the Linux kernel development community, provides services to help companies adopt Linux, and hosts collaborative projects to solve problems in an increasing range of fields. It is supported by leading Linux and open source companies, including IBM, Intel, and Oracle.

More about the Linux Foundation

Every year the Linux Foundation surveys large-scale enterprises to find out how they are using, and planning to continue using, Linux. Jim was kind enough to take a few minutes to walk me through the results of this year's survey. You can listen to our conversation here:

Podcast: How Large Enterprises are Using Linux - mp3

Here's Jim's blog, his Twitter handle, and a recent Ted talk discovered by Dan Lynch.

About the Photograph

I took that photograph of Lower Yellowstone Falls from Uncle Tom's Trail while on a DOG Run in 2014.

- Rick

P.S. My last day at Oracle will be May 31. If you'd like to stay in touch, use the links below:

Follow Rick on:
Personal Blog | Personal Twitter | Oracle Community Profile | Part I of the Great Peruvian Novel
  Follow OTN Garage on:
Blog | Community Discussions | Web | Facebook | Twitter | YouTube

Wednesday Aug 27, 2014

Brendan Gregg's Quick Reference Page for Linux Performance

You may know about Brendan Gregg because of his contributions to DTrace and other Oracle Solaris technologies. Here are two resources to refresh your memory.

Recently, Brendan turned his high-performance spectacles on Linux:

Linux Performance Quick Reference

In his own words, "This page links to various Linux performance material I've created, including the tools maps on the right, which show: Linux observability tools, Linux benchmarking tools, Linux tuning tools, and Linux observability sar. For more diagrams, see my slide decks below."

His diagram reminds me of Edward Tufte's work on elegant visual explanations. Give it a read, bookmark it, and show your friends. While you're at it, be sure to take a look at OTN's resources for Oracle Linux.

About the Photograph

I took a picture of that cove from somewhere in Highway 1 on the California Coast on my ride back from the Sun Reunion.

Follow Rick on:
Personal Blog | Personal Twitter | Oracle Community Profile
  Follow OTN Garage on:
Web | Facebook | Twitter | YouTube

Wednesday Jun 11, 2014

Troubleshooting Your Network with Oracle Linux

Are you afraid of network problems? I was. Whenever somebody said "it's probably the network," I went to lunch. And hoped that it was fixed by the time I got back. Turns out it wasn't that hard to do a little basic troubleshooting

Tech Article: Troubleshooting Your Network with Oracle Linux

by Robert Chase

You're no doubt already familiar with ping. Even I knew how to use ping. Turns out there's another command that can show you not just whether a system can respond over the network, but the path the packets to that system take. Our blogging platform won't allow me to write the name down, but I can tell you that if you replace the x in this word with an e, you'll have the right command:


Once you get used to those, you can venture into the realms of mtr, nmap, and netcap.

Robert Chase explains how each one can help you troubleshoot the network, and provides examples for how to use them. Robert is not only a solid writer, he is also a brilliant motorcyclist and rides an MV Augusta F4 750.

About the Photograph

Photo of flowers in San Simeon, California, taken by Rick Ramsey on a ride home from the Sun Reunion in May 2014.

- Rick
Follow me on:
Personal Blog | Personal Twitter
  Follow OTN Garage on:
Web | Facebook | Twitter | YouTube

Wednesday May 07, 2014

Make Your Database Run Faster on Oracle Linux

If you can get your hands on a Sun Flash Accelerator F40 PCIe Card, and you're running Oracle Database 11g Release 2 or later on Oracle Linux, you can use the Oracle Database Smart Flash Cache to improve performance and response times. That was a mouthful, so let me say it again.

  1. Configure Sun Flash Accelerator F40 PCIe Card as a file system.
  2. Configure Oracle Automatic Storage Management, a feature of Oracle Database, to use multiple Sun Flash Accelerator F40 PCIe Cards.
  3. Configure the Database Smart Flash Cache capability of Oracle Database.

Your pals at Jay Leno's garage can keep a 27-liter 1930 Bentley humming, but they can't help you with that little procedure can they? No worries, Rick Stenho may not own a Bentley, but he can help your database run faster.

Tech Article: How to Improve Database Performance Using Database Smart Flash Cache on Oracle Linux

by Rick Stenho

Oracle Database 11g Release 2 Enterprise Edition allows you to use flash devices to increase the effective size of the Oracle Database buffer cache (Level 2 cache) without adding more main memory. This capability is referred to as Database Smart Flash Cache. This article walks you through the steps required to take advantage of it.

Caution: Any performance advantages you obtain with smart flash cache will probably be nullified by the time you waste watching Jay Leno's garage.

About the Photograph

Photograph of lamp at the Venetian and Sands Expo Center
in Las Vegas taken by Rick Ramsey during Collaborate 2014

- Rick
Follow Rick on:
Personal Blog | Personal Twitter
  Follow OTN on:
Web | Facebook | Twitter | YouTube

Wednesday Mar 26, 2014

More Tips for Remote Access with Oracle Linux

In a previous blog, Oracle Linux Tips and Tricks, I covered alternative ways to use SSH. In this article, I will cover some additional tips and tricks for using SSH for remote access, as well as some other ways to connect remotely to a server.

SSH's primary use is for remote access to hosts. SSH is not only able to provide us a terminal interface to a server, it's also able to provide us a transport for a graphical interface. In order to utilize this functionality, we must have an X server running on our local workstation. On a Linux workstation with a graphical environment, this functionality is built in. On other systems, such as a Windows machine or a Mac, this functionality is not built in. Both XQuartz on the Mac and MobaXTerm are X servers for these platforms. There are also a number of other open source and paid products available for both platforms.

Once you have an acceptable X server installed on your local workstation, you can connect with SSH using the following ssh command. The -X enables X11 forwarding for the connection. Keep in mind that the X11 forwarding is based on the user who originally connected. Logging in with one user and then using sudo often will not work, depending on the permissions and ownership needed to complete a task.

[user@laptop ~]$ ssh -X

Once you authenticate, you drop directly to a standard prompt. If you look closely, though, and examine the environment variables in your terminal, you will find an additional environment variable that has the IP address of your workstation. You can examine your environment variables using the env command.


Now you can launch an application that has a graphical interface, and the interface will be displayed on your local workstation. The following example will launch gedit. The ampersand symbol is useful for forking the process in the background so we can retain the use of our terminal.

[user@remotehost ~]$ gedit &

Using X11 connections over SSH can be quite useful for using application installers that are graphical, such as the Oracle Universal Installer for Oracle Database.

The screen application is a great compliment to SSH and is quite useful for sharing an SSH session with another user. Because of the way screen preserves sessions for the user, it is also great for high-latency network connections that have frequent disconnects and for maintaining sessions that time out due to security policies. With a regular SSH connection, if you are disconnected, any processes that were running are not preserved. Unlike SSH, the screen application keeps the session alive so it can be connected to again later.

One of the simplest things you can do with screen is share a session. You can launch screen on the terminal you wish to share by issuing the screen command. Once you do this, a new shell is running inside of screen. Another user can log in to the same machine and use the command screen -x to be immediately connected to your shell. They see everything you type. Even if you disconnect from the machine on either terminal, the shell will continue to run. This can be quite useful for sharing a terminal for a demonstration in a remote office or for running a terminal-based console that is shared between many users.

To see all of the active screen sessions, you can use screen -list, which will show active and detached sessions. To connect to a detached session, you can use screen -r and the pid.session name listed in the screen -list output. In the following example, there are five screen sessions running. One of them is detached.

[user@server ~]$ screen -list
There are screens on:
        24565.pts-1.server     (Attached)
        24581.pts-2.server     (Attached)
        24597.pts-3.server     (Attached)
        24549.pts-0.server     (Attached)
        24613.pts-4.server     (Detached)
5 Sockets in /var/run/screen/S-user.

The command screen -x can be used to connect to a currently attached session. In the following example, a connection to session 24565 is made:

[user@server ~]$ screen -x 24565

If you need access to a full graphical desktop environment remotely, there are a number of packages that can accomplish this. The package tigervnc-server is useful for connections to a remote machine providing a full Linux desktop experience. To set up and install the package, perform the following steps.

First, run the following command to install the package:

[root@server ~]# yum install tigervnc-server

Once the package is installed, you need to edit the file /etc/sysconfig/vncservers. The VNCSERVERS line establishes the user accounts that you want to enable the VNC server for and their display number. In the example below, the user bob is configured for display 2 and the user sue is configured for display 3. The VNCSERVERARGS[#] section allows you to specify options for each display. In this example, we are specifying a 1280 x 1024 resolution for display 2 and a 1024 x 768 resolution for display 3:

VNCSERVERS="2:bob 3:sue"
VNCSERVERARGS[2]="-geometry 1280x1024 "
VNCSERVERARGS[3]="-geometry 1024x768"

Once the /etc/sysconfig/vncservers file has been edited, you need to set passwords for each user account. This is accomplished with the vncpasswd command. In the following example, the user bob sets a password using the vncpasswd command.

[bob@server ~]$ vncpasswd

Once the package is installed, the configuration file is edited, and passwords are set, you are ready to turn on the vncserver service. The following two commands start the service and set the service to start automatically at the next boot:

chkconfig vncserver on
service vncserver start

Once configured and running, you can connect to your Linux system using a standard VNC client. When connecting, be sure to specify the display and password credentials that are needed in order to connect.


I hope these tips and tricks have been useful and that you will take advantage of some of them in the course of your day. We will be publishing more of these tips-and-tricks articles in the future. Feel free to leave a comment for further topics that you would like to see in this series.

See Also

Oracle Linux blog

About the Author

Robert Chase is a member of the Oracle Linux product management team. He has been involved with Linux and open source software since 1996. He has worked with systems as small as embedded devices and with large supercomputer-class hardware.

About the Photograph

Photograph taken by Rick Ramsey in Durango in the Fall of 2012

Follow OTN Garage on:
Blog | Facebook | Twitter | YouTube

Friday Jan 31, 2014

Simplifying the Installation of Oracle Database on Oracle Linux - Reprint

Most of my workdays start by shapechanging me into a seven-headed Hydra, and each Hydra promptly makes a beeline for multi-tasking hell. So, when I get a chance to simplify something, anything, I jump on it.

Ginny has done that for OTN at last twice. Below are two of her exercises in simplifying our lives. We published these articles before, but we recently had to rebuild one of them because somebody (I'm not going to say who) deleted it. To avoid annoying one of your Hydras, and instead send you off to a peaceful weekend, here they are again.

How I Simplified Oracle Database Installation on Oracle Linux 5

by Ginny Henningsen

Before installing Oracle Database 10g or 11g on a system, you need to preconfigure the operating environment since the database requires certain software packages, package versions, and tweaks to kernel parameters. Ginny discovered that Oracle Linux provides a remarkably easy way to address these installation prerequisites. Find out how.

How I Simplified Oracle Database 11g and 12c Installation on Oracle Linux 6

by Ginny Henningsen

Similar to the article above, but updated for Database 12c and Oracle Linux 6. Ginny simplifies the installation of Oracle Database 11g by automatically pre-configuring Oracle Linux with the required software packages and correct kernel parameters.

Photograph of Fat Boy on Sakajawea Road in Idaho taken by Rick Ramsey

- Rick

Follow me on:
Blog | Facebook | Twitter | YouTube | The Great Peruvian Novel

Thursday Jan 09, 2014

Why Are So Many People Smarter Than Me?

When Tim said "Heisenbug," I pictured a large dirigible exploding and heard a radio reporter cry, "Oh the Humanity!"

As Tim started talking, I realized he'd said "Heisenbug," not Hindenbug. So I pictured my favorite chemistry teacher. Here is a link to his likeness:

Picture of Heisenberg

It was only when I heard my deceased physicist father-in-law's voice growling his favorite endearment "Rick, you dumbass," that I finally realized Tim was talking about Werner Heisenberg's Uncertainty Principle.

Although I wasn't completely sure.

Video Interview: How Ksplice Crushes the Heisenbug

As it turns out, Tim was talking about that phenomenon that happens to all of us when we call in a sysadmin to fix a problem with our system. When the sysadmin shows up, the problem disappears. I know you guys write scripts to make that happen on purpose, but Tim doesn't. And neither does the Ksplice team. So they developed some very cool technology to diagnose these heisenbugs and get our systems running properly again. Don't worry, your secret is safe with me. And everyone who reads this blog.

In any case, you can find out how Ksplice crushes the Heisenbug in this short video:

Video Interview: How Ksplice Crushes the Heisenbug

Here's a video of the Hinderburg crash

- Rick

Follow me on:
Blog | Facebook | Twitter | YouTube | The Great Peruvian Novel

Tuesday Jan 07, 2014

Tips for Using Linux Huge Pages

Ed Whalen is the Chief Technologist at Performance Tuning Corp. He knows an awful lot about making databases run faster, including the use of Linux Huge Pages. Here are two of his very helpful resources.

Tech Article: How to Configure x86 Memory Performance for Large Databases

by Ed Whalen, Oracle ACE

Performance issues in large databases are not easy to detect using normal analysis methods such as AWR reports and OS tools such as sar, top, and iostat. And yet, if you configure your memory appropriately in x86 environments, your database can run significantly faster. This article describes you can use Linux Huge Pages to do just that.

Ed covers x86 virtual memory architecture, Linux memory management, and enabling Linux Huge Pages. See the article here.

Video Interview: What Are Linux Huge Pages?

with Ed Whalen, Oracle ACE

Ed Whalen, Oracle ACE, explains Linux huge pages, the huge performance increase they provide, and how sysadmins and DBA's need to work together to use them properly. Taped at Oracle Open World 2013.

photograph of cliff face in Perry Park, Colorado, copyright Rick Ramsey

- Rick

Follow me on:
Blog | Facebook | Twitter | YouTube | The Great Peruvian Novel

Thursday Jan 02, 2014

About our Latest Lab: How to Migrate to Oracle Linux and Oracle VM

Step by Step Instructions for Migrating to Oracle Linux and Oracle VM

Red Hat Linux and VMWare are fine technologies. A great pairing. However, if you have business reasons for migrating to Oracle Linux and Oracle VM, such as having earlier access to the latest Linux innovations or taking advantage of more integrated virtualization, take a look at our latest lab. It provides the best step by step instructions we could come up with for carrying out that migration. You can also try it just to hone your migration skills. You never know when the boss is going to ask you whether you can handle a migration.

Here's a peek at the major tasks:

  1. Start the two servers (Oracle VM Server and Oracle VM Manager).
  2. Connect to Oracle VM Manager and become familiar with the product.
  3. Verify that the Oracle VM environment started correctly.
  4. Import an assembly that has Oracle Database on top and was exported from VMware.
  5. Create an Oracle VM Template based on the VMware assembly.
  6. Edit the Oracle VM Template that was created.
  7. Create a guest based on the Oracle VM Template that was created.
  8. Verify and then start the Oracle VM guest that was created.
  9. Manually modify the guest configuration and remove VMware tools.
  10. Switch from the Red Hat kernel to Oracle's Unbreakable Enterprise Kernel for free.
  11. Transform the guest into a usable Oracle VM Template ("gold image").

You can run the lab anytime you like on your laptop, or you can attend OTN's next Virtual SA Day, and run it with the help of a proctor. There will be several hundred sysadmins running the same lab at the same time, so you can discuss it with others via chat, and get help from our proctors. Details here.

photograph of a brewery in Ouray, Colorado, by Rick Ramsey

- Rick

Follow me on:
Blog | Facebook | Twitter | YouTube | The Great Peruvian Novel

Tuesday Nov 19, 2013

Extending Your Use of DTrace on Oracle Linux

We just published a new article about using DTrace on Oracle Linux (see below). If you're not already familiar with DTrace on Oracle Linux, you might want to start with these two blogs.

Blog: Trying Out DTrace

by Wim Coekaerts

In October of 2011 Wim Coekaerts described the steps required to use the preview of DTrace on Oracle Linux, and provided a simple example of how to use it.

Blog: How to Get Started Using DTrace on Oracle Linux

by Rick Ramsey

In January of 2013 I described some of the resources that had recently become available to help you start using DTrace on Oracle Linux. They included a video interview with Brendan Gregg, a way to find out which DTrace probes are available on Oracle Linux, a technical article, a book, and more.

New Article: How to Set Up DTrace to Detect PHP Scripting Problems on Oracle Linux

by Christopher Jones

Christopher Jones has just published an OTN tech article that explains how to set up DTrace to detect PHP scripting problems on Oracle Linux. He shows you how to download and install the right version of Oracle Linux, how to install PHP and the OIC18 extensions for Oracle Database, how to verify which PHP probes you have, and how to begin using them.

photograph of Colorado sunset by Beth Ramsey


Follow me on:
Blog | Facebook | Twitter | Personal Twitter | YouTube | The Great Peruvian Novel

Monday Sep 09, 2013

Latest Linux-Related Content on OTN

photograph copyright 2013 by Rick Ramsey

How to Launch Linux Utilities from Inside Oracle Database

by Yuli Vasiliev

By wrapping a Linux utility in a script and using an external database table's preprocessor directive, you can launch the utility from within Oracle Database and have the utility's output be inserted into the external table. This allows you to do things such as query operating system data and then join it with data in Oracle Database.

How to Use Hardware Fault Management in Oracle Linux

by Robert Chase

Robert Chase is a really good writer. If he was writing about teaching iguanas how to quilt I'd still read it. Fortunately, in this article he's writing about hardware fault management tools in Oracle Linux. What they are, how they work, what you can do with them, and examples with instructions. Give it a read.

How to Get Started Using DTrace on Oracle Linux

by Richard Friedman

DTrace is a powerful tool, and it can do some amazing things. But it's not that difficult to get started doing simple things. You can build up from there. In this article, Richard Friedman gives you a high-level overview of DTrace and its major components:providers, modules, functions, and probes. He explains how you can use either one-liner commands on the command line, or write more complex instructions in scripts, using the D language. He provides simple examples for each. It's a great way to get your feet wet.

Blog: Overview of Linux Containers

by Lenz Grimmer

Linux Containers isolate individual services, applications, or even a complete Linux operating system from other services running on the same host. They use a completely different approach than "classicial" virtualization technologies like KVM or Xen. Lenz Grimmer explains.

Blog: Practical Examples of Working With Oracle Linux Containers

by Lenz Grimmer

In his previous post about Linux Containers, Lenz Grimmer explained what they are and how they work. In this post, he provides a few practical examples to get you started working with them.

Video Interview: On Wim's Mind in August

by Lenz Grimmer

We ran a little long, but once Wim started talking about the history of SNMP and how he's been using it of late to do cool things with KSplice and Oracle VM, we geeked out. Couldn't stop. Wim is not your average Senior VP of Engineering. Definitely a hands-on guy who enjoys figuring out new ways to use technology

Video Interview: On Wim's Mind in June

by Lenz Grimmer

On Wim's Mind in June 2013 - Wim's team is currently working on DTrace userspace probes. They let developers add probes to an application before releasing it. Sysadmins can enable these probes to diagnose problems with the application, not just the kernel. Trying this out on MySQL, first. If you know how to do this on Solaris, already, you'll be able to apply that knowledge to Oracle Linux. Also on Wim's mind is the Playground channel on the Public Yum repository, which lets you play with the latest Linux builds, ahead of official Linux releases, without worrying about having your system configured properly.

- Rick

Follow me on:
Blog | Facebook | Twitter | YouTube | The Great Peruvian Novel

Monday Aug 05, 2013

Linux Container (LXC) — Part 2: Working With Containers

Containers by Phil Parker, on Flickr
"Containers" by Phil Parker (CC BY 2.0).

Part 1 of this article series provided an overview about the Linux container technology. This second part intends to give you an impression on how to work with containers, by showing a few practical examples. These can be easily followed and reproduced on an up to date Oracle Linux 6 system. For the first steps, it is recommended to install Oracl Linux inside a virtual environment like Oracle VM VirtualBox. Oracle provides a pre-installed and pre-configured Oracle Linux 6 Virtualbox image for free download from the Oracle Technology Network (OTN).

The administration of Linux containers is performed on the command line; so far, there is no integration or support for this technology in applications like Oracle VM Manager or Oracle Enterprise Manager. However, Oracle has developed several enhancements which are included in the lxc package that's part of Oracle Linux 6.4; these changes were also contributed to the upstream LXC project and are now part of the official LXC releases. The support of Linux containers is also included in the libvirt project, which provides a graphical user interface for the management of virtual machines or containers using virt-manager (and other utilities). Libvirt is also included in Oracle Linux.

The creation of Oracle Linux containers can be accomplished on the command line in a few steps, using the LXC utilities. At first, a dedicated directory should be created to host the container file systems. The default location is /container. Creating this directory on top of a Btrfs file system provides a few additional interesting possibilities, e.g. the option to "freeze" a container file system at a certain point in time, or the fast creation (cloning) of additional containers based on a template. Cloning containers using Btrfs snapshots takes place at an instant, without requiring any additional disk space except for the differences to the original template. The creation and management of Btrfs file systems is explained in detail in the chapter "The Btrfs File System" of the "Oracle Linux Administrator's Solutions Guide for Release 6".

The following example creates a Btrfs file system on the second hard disk drive and mounts it to the directory /container:

# mkfs.btrfs /dev/sdb

WARNING! - see http://btrfs.wiki.kernel.org before using

fs created label (null) on /dev/sdb
nodesize 4096 leafsize 4096 sectorsize 4096 size 4.00GB
Btrfs v0.20-rc1

# mdkir -v /container
mkdir: created directory `/container'
# mount -v /dev/sdb /container
mount: you didn't specify a filesystem type for /dev/sdb
I will try type btrfs
/dev/sdb on /container type btrfs (rw)

Now you can create a container of the latest version of Oracle Linux 6 named "ol6cont1" and using the default options by entering the following command. The option "-t" determines the general type of the Linux distribution to be installed (the so-called "template"), e.g. "oracle", "ubuntu" or "fedora". Depending on the template, you can pass template-specific options after the double dashes ("--"). In the case of the Oracle Linux template, you can choose the distribution's version by providing values like "5.8", "6.3" or "6.latest". Further information about the available configuration options can be found in chapter "About the lxc-oracle Template Script" of the Oracle Linux 6 Administrator's Solutions Guide.

# lxc-create -n ol6cont1 -t oracle -- --release=6.latest
/usr/share/lxc/templates/lxc-oracle is /usr/share/lxc/templates/lxc-oracle
Note: Usually the template option is called with a configuration
file option too, mostly to configure the network.
For more information look at lxc.conf (5)

Host is OracleServer 6.4
Create configuration file /container/ol6cont1/config
Downloading release 6.latest for x86_64
Loaded plugins: refresh-packagekit, security
ol6_latest | 1.4 kB 00:00
ol6_latest/primary | 31 MB 01:23
ol6_latest 21879/21879
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package chkconfig.x86_64 0: will be installed
--> Processing Dependency: libc.so.6(GLIBC_2.4)(64bit) for package: chkconfig-
--> Processing Dependency: libc.so.6(GLIBC_2.3.4)(64bit) for package: chkconfig-
--> Processing Dependency: pygpgme for package: yum-3.2.29-40.0.1.el6.noarch
--> Processing Dependency: python-iniparse for package: yum-3.2.29-40.0.1.el6.noarch
--> Processing Dependency: rpm-python for package: yum-3.2.29-40.0.1.el6.noarch
--> Running transaction check
---> Package audit-libs.x86_64 0:2.2-2.el6 will be installed
---> Package bash.x86_64 0:4.1.2-15.el6_4 will be installed
---> Package checkpolicy.x86_64 0:2.0.22-1.el6 will be installed
---> Package coreutils.x86_64 0:8.4-19.0.1.el6_4.2 will be installed
--> Processing Dependency: coreutils-libs = 8.4-19.0.1.el6_4.2 for package: coreutils-8.4-19.0.1.el6_4.2.x86_64
---> Package pinentry.x86_64 0:0.7.6-6.el6 will be installed
--> Running transaction check
---> Package groff.x86_64 0: will be installed
--> Finished Dependency Resolution

Dependencies Resolved

Package Arch Version Repository Size
chkconfig x86_64 ol6_latest 158 k
dhclient x86_64 12:4.1.1-34.P1.0.1.el6 ol6_latest 316 k
initscripts x86_64 9.03.38-1.0.1.el6_4.1 ol6_latest 937 k
rootfiles noarch 8.1-6.1.el6 ol6_latest 6.3 k
rsyslog x86_64 5.8.10-6.el6 ol6_latest 648 k
vim-minimal x86_64 2:7.2.411-1.8.el6 ol6_latest 363 k
yum noarch 3.2.29-40.0.1.el6 ol6_latest 995 k
Installing for dependencies:
MAKEDEV x86_64 3.24-6.el6 ol6_latest 88 k
audit-libs x86_64 2.2-2.el6 ol6_latest 60 k
basesystem noarch 10.0-4.0.1.el6 ol6_latest 4.3 k
yum-metadata-parser x86_64 1.1.2-16.el6 ol6_latest 26 k
zlib x86_64 1.2.3-29.el6 ol6_latest 72 k

Transaction Summary
Install 135 Package(s)

Total download size: 79 M
Installed size: 294 M
Downloading Packages:
(1/135): MAKEDEV-3.24-6.el6.x86_64.rpm | 88 kB 00:00
(2/135): audit-libs-2.2-2.el6.x86_64.rpm | 60 kB 00:00
(3/135): basesystem-10.0-4.0.1.el6.noarch.rpm | 4.3 kB 00:00
(4/135): bash-4.1.2-15.el6_4.x86_64.rpm | 904 kB 00:02
(5/135): binutils- | 2.8 MB 00:07
(131/135): vim-minimal-7.2.411-1.8.el6.x86_64.rpm | 363 kB 00:01
(132/135): xz-libs-4.999.9-0.3.beta.20091007git.el6.x86_ | 89 kB 00:00
(133/135): yum-3.2.29-40.0.1.el6.noarch.rpm | 995 kB 00:03
(134/135): yum-metadata-parser-1.1.2-16.el6.x86_64.rpm | 26 kB 00:00
(135/135): zlib-1.2.3-29.el6.x86_64.rpm | 72 kB 00:00
Total 271 kB/s | 79 MB 04:59
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : libgcc-4.4.7-3.el6.x86_64 1/135
Installing : setup-2.8.14-20.el6.noarch 2/135
Installing : filesystem-2.4.30-3.el6.x86_64 3/135
Installing : basesystem-10.0-4.0.1.el6.noarch 4/135
Installing : ca-certificates-2010.63-3.el6_1.5.noarch 5/135
Installing : rsyslog-5.8.10-6.el6.x86_64 131/135
Installing : yum-3.2.29-40.0.1.el6.noarch 132/135
Installing : passwd-0.77-4.el6_2.2.x86_64 133/135
Installing : 2:vim-minimal-7.2.411-1.8.el6.x86_64 134/135
Installing : rootfiles-8.1-6.1.el6.noarch 135/135
Verifying : gamin-0.1.10-9.el6.x86_64 1/135
Verifying : procps-3.2.8-25.el6.x86_64 2/135
Verifying : 12:dhclient-4.1.1-34.P1.0.1.el6.x86_64 3/135
Verifying : 2:ethtool-3.5-1.el6.x86_64 4/135
Verifying : ncurses-base-5.7-3.20090208.el6.x86_64 5/135
Verifying : ca-certificates-2010.63-3.el6_1.5.noarch 130/135
Verifying : libssh2-1.4.2-1.el6.x86_64 131/135
Verifying : cpio-2.10-11.el6_3.x86_64 132/135
Verifying : mingetty-1.08-5.el6.x86_64 133/135
Verifying : libcurl-7.19.7-37.el6_4.x86_64 134/135
Verifying : 1:findutils-4.4.2-6.el6.x86_64 135/135

chkconfig.x86_64 0:
dhclient.x86_64 12:4.1.1-34.P1.0.1.el6
initscripts.x86_64 0:9.03.38-1.0.1.el6_4.1
openssh-server.x86_64 0:5.3p1-84.1.el6
Dependency Installed:
MAKEDEV.x86_64 0:3.24-6.el6
audit-libs.x86_64 0:2.2-2.el6
basesystem.noarch 0:10.0-4.0.1.el6
bash.x86_64 0:4.1.2-15.el6_4
binutils.x86_64 0:
upstart.x86_64 0:0.6.5-12.el6_4.1
ustr.x86_64 0:1.0.4-9.1.el6
util-linux-ng.x86_64 0:2.17.2-12.9.el6_4.3
xz-libs.x86_64 0:4.999.9-0.3.beta.20091007git.el6
yum-metadata-parser.x86_64 0:1.1.2-16.el6
zlib.x86_64 0:1.2.3-29.el6

Rebuilding rpm database
Configuring container for Oracle Linux 6.4
Added container user:oracle password:oracle
Added container user:root password:root
Container : /container/ol6cont1/rootfs
Config : /container/ol6cont1/config
Network : eth0 () on virbr0
'oracle' template installed
'ol6cont1' created

To prepare a miminal installation of the latest version of Oracle Linux 6 (about 400 MB), the installation script performs a download of the required RPM packages from Oracle's "public-yum" service. The directory structure of the installed container can be found at /container/ol6cont1/rootfs, it can be browsed and evaluated like any other regular directory structure. The script also creates two user accounts "root" and "oracle" and configures a virtual network device, which obtains an IP address via DHCP from the DHCP server provided by the libvirt framework. The container's configuration file created by lxc-create is located at /container/ol6cont1/config and can be adapted and modified using a regular text editor. Before making any changes, it's recommended to create a snapshot of the container first, which can be used to quickly spawn additional containers:

# lxc-clone -o ol6cont1 -n ol6cont2
Tweaking configuration
Copying rootfs...
Create a snapshot of '/container/ol6cont1/rootfs' in '/container/ol6cont2/rootfs'
Updating rootfs...
'ol6cont2' created
# lxc-ls -1

Start the container using the following command:

# lxc-start -n ol6cont1 -d -o /container/ol6cont1/ol6cont1.log
# lxc-info -n ol6cont1
state: RUNNING
pid: 311
# lxc-info -n ol6cont2
state: STOPPED
pid: -1

The container has now been started in the background. Eventual log messages will be redirected to the file ol6cont.log. As you can tell from the output of lxc-info, only the container ol6cont1 has been started, while the clone ol6cont2 remains in stopped state until you boot it up using lxc-start.

Now you can log into the container instance's console using the following command. The container's system configuration can now be modified using the usual tools (e.g. yum or rpm to install additional software).

# lxc-console -n ol6cont1

Oracle Linux Server release 6.4
Kernel 2.6.39-400.109.4.el6uek.x86_64 on an x86_64

ol6cont1 login: root
[root@ol6cont1 ~]# ps x
1 ? Ss 0:00 /sbin/init
184 ? Ss 0:00 /sbin/dhclient -H ol6cont1 -1 -q -lf /var/lib/dhclien
207 ? Sl 0:00 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
249 ? Ss 0:00 /usr/sbin/sshd
256 lxc/console Ss+ 0:00 /sbin/mingetty /dev/console
260 ? Ss 0:00 login -- root
262 lxc/tty2 Ss+ 0:00 /sbin/mingetty /dev/tty2
264 lxc/tty3 Ss+ 0:00 /sbin/mingetty /dev/tty3
266 lxc/tty4 Ss+ 0:00 /sbin/mingetty /dev/tty4
267 lxc/tty1 Ss 0:00 -bash
278 lxc/tty1 R+ 0:00 ps x
[root@ol6cont1 ~]# logout
Oracle Linux Server release 6.4
Kernel 2.6.39-400.109.4.el6uek.x86_64 on an x86_64

ol6cont1 login: CTRL-A Q

The key combination CTRL-A, Q terminates the console session. Alternatively, you can also log in to the container using SSH from the host system. All containers have their own IP address and are connected to a virtual bridge device virbr0 by default, which is also reachable from the host system. This way, you can easily set up simple client/server architectures within a host system.

A running container can easily be suspended using the command lxc-freeze at any time. All running processes will be halted and won't consume CPU ressources anymore, until you release them using lxc-unfreeze again. Since Linux containers are based on the Linux Control Groups (Cgroups) framework, it is also possible to precisely limit the resources available to a container.

A container can be shut down using various ways: either by calling lxc-stop from the host, or from within the container using the usual commands like shutdown -h or poweroff. Containers that are no longer needed can be discarded using the lxc-destroy command.

If you'd like to learn more about this topic, there is a dedicated chapter about Linux containers in the Oracle Linux Administrator's Solutions Guide. It covers the creation, configuration and starting/stopping as well as monitoring of containers in detail. It also explains how to prepare the container storage on a Btrfs file system and how existing containers can be quickly cloned.

More links about the topic of Linux containers:

Wednesday Jul 31, 2013

Using Ksplice for diagnostic purposes

laptop and stethoscope by jfcherry, on Flickr
laptop and stethoscope by jfcherry (CC BY-SA 2.0)

We've been emphasizing the benefits of using Oracle Linux with Ksplice rebootless updates several times already. The ability to minimize downtime when applying rebootless patches to the Linux Kernel is a feature unique to Oracle Linux, and a growing number of customers realize the benefits of this technology.

Since we acquired Ksplice two years ago, we've continued to improve and further integrate this functionality in Oracle Linux. For example, we implemented the the Ksplice offline client (which I mentioned in this YouTube whiteboard session some time ago), the Ksplice Inspector, or the RedPatch utility.

But did you know that we use Ksplice for diagnostic purposes, too? As part of our Oracle Linux Premier Support offering, we can make use Ksplice to enable additional debugging functionality on your production system, if we need to track down an issue in your environment. Instead of asking you to reboot into a custom Linux kernel that contains additional debugging code, we now simply create a custom Ksplice patch that helps us to gather the required information, while your system keeps running. Once we've obtained the necessary details, you can simply remove the debug patch with Ksplice at runtime again, without any interruption. The additional debugging information helps our support team to determine the root cause of your issue. In case it turns out to be a genuine bug in the Linux kernel, we will then develop and provide a bug fix for this particular problem in the form of a new Ksplice patch, which you can apply while the system keeps humming along. Bug analyzed and fixed, no reboot was required!

To learn more about his feature and the other advantages of Ksplice, take a look at Wim's recent blog post "The Ksplice differentiator".


Logan Rosenstein
and members of the OTN community


« November 2015
Blogs We Like