Rate this page del.icio.us  Digg slashdot StumbleUpon

Teaching your cluster and storage systems to dance: An introduction to Conga

by

This article introduces Conga, a new application released as part of Red Hat® Enterprise Linux® 5. Walk through setting up your cluster and storage systems properly. Preview some of the major features of this new clustering and storage management tool.

The problem: Multiple cluster and storage system management tools

In the past, in order to create and manage complex clusters and storage systems you had to make use of multiple managements tools. Conga solves the problem of individually installing and managing storage systems and cluster nodes.

Conga grew out of the lineage of GUI applications developed to support storage and clusters. Tools such as red-hat-cluster, system-config-cluster, deploy-tool, and system-config-lvm are examples of Conga’s heritage. “Conga addresses a number of ‘pain points’ customers encountered in our earlier X/Gtk management applications,” says Kevin Anderson, Director of Storage and Cluster Development. “Users frequently commented that while they found value in the interfaces we were providing, they did not routinely install X and Gtk libraries on their production servers. Conga solves this problem by providing an agent that is resident on the production servers and is managed through a web interface.”

Specifically, Conga provides:

  • A single web interface for all cluster and storage management tasks
  • Automated deployment of cluster data and supporting packages
  • Easy integration with existing clusters
  • Integration of cluster status and logs
  • Fine-grained control over user permissions

We’ll take a look at each of these features as we walk through some basic Conga tasks later in this article. To start, let’s take a look at just how Conga works.

Architecture overview: When Luci met Ricci

The following diagram illustrates the Conga architecture.

conga_fig1

Fig.1. The Conga architecture.

The elements of this architecture are:

  • luci is an application server which serves as a central point for managing mulitple clusters.. luci maintains a database of node and user information. Once a system running ricci authenticates with a luci server, it will never have to re-authenticate unless the certificate used is revoked. You’ll typically have only one luci server for your clusters.
  • ricci is an agent that is installed on all servers being managed.
  • the web client is typically a browser, like Firefox, running on a machine in your network.

The interaction is as follows. Your web client securely logs into the luci server. Using the web interface, the administrator issues commands which are then forwarded to the ricci agents on the nodes being managed.

Starting Conga

Once luci is installed (an Enterprise Linux 5 package), its database must be initialized and an admin account must be setup. These tasks are accomplished with the luci_admin command line utility. After this, the luci service should be started:

service luci start
Starting luci:                                             [  OK  ]

Please, point your web browser to https://myhostname:8084 to access luci

And that’s all there is to it. Let’s log into luci and look around. The administrative login window looks like this:

10000000000003F00000023DC465CD21

Fig.2. The luci administrative window.

Once you’ve logged in, you are at the “homebase” tab of the administrative web interface. From this tab, you can add clusters, storage systems, and users. The other tabs support administrative tasks specific to either clusters or storage systems.

10000000000003FC0000023D0E915618

Fig.3. The homebase tab.

Let’s walk through using Conga to perform some basic tasks. Most likely, you’ll start using Conga by administering an existing cluster. This is where we’ll start.

Conga and clusters: Accessing an existing cluster

To illustrate this task, we’ll start with an existing cluster. Note that we’ll need all the nodes of the cluster to be up and running when we start as luci will not let us attempt to manage part of an existing cluster, or a cluster with nodes that are unreachable.

We start by accessing the “homebase” tab in the web interface and then selecting the “add an existing cluster” option. This brings us to the following display. We enter the name of one node in the cluster. Luci will access this node and retrieve the cluster information. Note that if the passwords are the same for all the nodes, we can tell luci to authenticate with the password that we entered for this node.

1000000000000356000001AEAB05FF5A

Fig.4. Adding an existing cluster.

When we press “submit,” luci queries the nodes in the cluster and creates the following display. Note that the initial node that we entered is authenticated.

1000000000000324000001F2BB962E8C

Fig.5. Initial node creation.

After we complete the form by entering the passwords for the other nodes, pressing “add this cluster” will result the cluster being added to luci’s database. We can then view the cluster.

1000000000000346000002080A00249B

Fig.6. Viewing the new cluster.

Note that if there was a problem on a cluster node (for example, one of the cluster daemons was not running), that node would be displayed in red text.

The process to create a new cluster with Conga is similar. We’ll take a look at this next.

Conga and clusters: Building a new cluster

When building a new cluster with Conga, the nodes have to meet some of the same requirements as nodes of an existing cluster that is being administered by Conga. For example, all of the nodes must be running the ricci agent software, must be reachable, and must be able to authenticate via the root password. If some of nodes that you want to configure to be in your new cluster are unreachable, however, you can create the cluster without them and add them to the cluster later when they are available.

The first step in creating the new cluster is to define the cluster’s name and select the nodes that will comprise the cluster. To do this, you select “Create a New Cluster” from the cluster tab and fill in this form:

10000000000003D40000023E9DEBF936

Fig.7. Creating a new cluster.

The options listed in this form are:

  • Download packages from Red Hat Network® – If you select this option, when Conga creates the cluster all the packages necessary to support the cluster (rgmanager, cman, etc.) are automatically downloaded and installed. This is a helpful feature in that the cluster nodes will have the most recent version of the packages you install. Using this option also ensures that all the cluster nodes are running the same version of the cluster packages.
  • Use locally installed packages – Like the name says, selecting this option does not download the cluster packages.
  • Enable Shared Storage Support – Selecting this option downloads and installs the clustered volume manager (CLVM) packages, installs them, and sets up the lvm.conf file on the cluster nodes.
  • Check if cluster node passwords are identical – This option can save you some typing, and help you avoid typos. If you select this option, the password fields for all cluster nodes other than the first node are disabled and the password that you enter for the first node is used by Conga for all the cluster nodes.

After you fill in the form and press ‘Submit’, Conga begins the cluster creation process. While the cluster’s nodes are being updated, you’ll see a dynamic display like the following. When the cluster creation is complete, you see the same display as is seen in Fig.6.

100000000000043A000002CCB4CBF71F

Fig.8. Dynamically updated display of cluster node status.

Now, let’s take a look at managing storage with Conga.

Conga and storage systems

In addition to managing your clusters, Conga can manage storage systems–all though the same web interface. In addition, Conga enables you to define user accounts and then restrict those users to accessing storage on specific storage systems. Adding a new storage system to Conga just requires that you enter the storage system name and password as the luci admin user. Once you do this, you can restrict access to storage systems with this form:

1000000000000332000001C8751EE193

Fig.9. User access.

The result is that when user “jsmith” logs into luci, she will only be able to access storage system “tng3-3.” You as the admin user can view all the storage nodes. Once a storage system is being managed by luci, you can manage disk partitions, logical volume goups, and RAID filesystems. You can also retrieve system logs through the web interface. For example:

10000000000003C600000362C8073024

Fig.10. Viewing system logs.

Note that when a cluster is added to a luci server, all the nodes in that cluster are added as storage systems. If you don’t want any or all of these cluster nodes to also be managed as storage systems, then you can remove individual storage systems from luci, while the cluster management capability is maintained. Also note that storage system user accounts and passwords used in Conga are in addition to any existing system or cluster user accounts and password. Defining user accounts and passwords in Conga will not affect existing system accounts or passwords.

What’s next?

This article is intended to give a brief introduction to the features provided by Conga. In subsequent articles, we’ll examine specific topics in greater detail. These topics will include:

  • Cluster creation and management with Conga
  • Storage system management with Conga
  • Conga administrative and trouble-shooting tips

The topics summarized in the article are covered in greater detail in the excellent user guide and online help provided with Conga. If this article has whet your appetite for learning more about Conga, then the next step you should take is to get a copy of Enterprise Linux 5 and try it out!

References

Acknowledgments

The credit for the creation and development of Conga goes the team who first brought it to life (Jim Parsons–Designer and Architect for Conga, Kevin Anderson–Director of Storage and Cluster Development, Rob Kenna–Product Manager, Ryan McCabe, and Stan Kupcevic) and the community that is making contributions toward its future. The information in this article is in large part adapted from the extensive Conga online help that they created. Without their help, encouragement, and insightful review comments, this article could not have been written.

About the author

Len DiMaggio is a QE Engineer at Red Hat in Westford, MA (USA) and has published articles on software engineering in Dr. Dobbs Journal, Software Development Magazine, IBM Developerworks, STQE, and other journals. He is a frequent contributor to Red Hat Magazine.

28 responses to “Teaching your cluster and storage systems to dance: An introduction to Conga”

  1. Frank Daley says:

    1. It is disappointing that Conga and associated technologies isn’t currently available for use with Fedora. Are there any future plans to include in Fedora?

    2. Many of us are needing cluster systems without the complexity of shared disks as required by GFS. Is Red Hat/Fedora actively supporting, or going to support, clustering solutions with less complex hardware requirements? Projects such as DRDB and GlusterFS come to mind as possible examples.

    thanks
    frank

  2. Ryan McCabe says:

    As far as I understand, it’s too late to get a new package into Fedora 6 Extras. Fedora 7 is shipping with python 2.5, which badly breaks Zope, which conga uses for its luci frontend. Unless Zope is made to work with python 2.5—which is a substantial project unto itself—conga won’t run on Fedora 7.

    In response to 2), Red Hat Cluster Suite doesn’t require that you use GFS or shared storage at all if you don’t need it; you could always use NFS, if you need all nodes to be able to access a common mount point, or nothing at all if you don’t. What do you want to do with your cluster?

  3. Frank Daley says:

    Ryan, thanks for the feedback and explaining the challenges regarding Conga and Fedora.

    With regard to what do I want to do with my cluster:

    MAIN SITE
    Two VMs with hot fail-over between them.

    SECONDARY SITE
    One VM with hot fail over should both of the VMs at the main site fail.

    Applications software I want to run include: Samba, Alfresco, Zimbra, MySQL.

    Should be simple right!!

  4. Sean says:

    This greatly improves storage management. Is there any talk of adding functionality similar to MS’s Virtual Disk Service (VDS) to allow for storage specific “providers” that can do things like create new LUNs? That would be slick if an administrator could log in to this and manage storage all the way from allocating the drive space through partitioning and mounting the volume.

  5. Manas says:

    very informative and interesting one.

  6. Tyler says:

    Any chance of getting a version of conga for RHEL4 ?

    We just implemented a cluster for NFS/CIFS failover on rel4 . I would love to be able to manage the cluster via conga and strip all the X crap out of the server without reinstalling everything with rhel5.

  7. Ryan McCabe says:

    Conga will be/is in RHEL4.5.

  8. Jack says:

    It’s fantastic to finally see a real article on this! Thanks! Keep ‘em coming!

  9. Rob Kenna says:

    Len & company will be providing follow up articles to further show how your cluster can whistle and do back flips too! Stay tuned.

  10. Dennis Gilmore says:

    In Reply to comment 2 its not To late to get a package in Fedora 6 it can be done today. Unfortunately zope does not work with python 2.5 there is some work going on to find a way to have it working somehow on Fedora 7. All i can say is get conga in Fedora 6 and work through the kinks for Fedora 7

  11. Vitaly says:

    Gonga is a nice GUI, but for some reson I cannot open Conga’s URL from remote machine, only from Conga’s box itself.

    When I’m trying to access conga from remote, I get “Please wait, redirecting…” for forever.

  12. Quinten Laureijs says:

    Please check if hostnames (FQDN!)are being resolved correctly. And besides that: check firewall settings if you haven’t already.

  13. Mattia Gandolfi says:

    In reply to comment number 10: you can get working (although not “officially released”) Conga packages for Fedora 6 at

    http://people.redhat.com/jparsons/downloads/fc6/

  14. hiutopor says:

    Hello

    Very interesting information! Thanks!

    G’night

  15. ben says:

    I’m excited about this tool; it seems amazingly useful. This article says that Conga is a part of RHEL5, which I own, but I can’t find any officially supported RPM’s anywhere. They certainly don’t exist as part of a RHN channel (nor do the dependencies). What’s the deal?

    I’ve gotten it installed on my rhel5 boxen via some fc6 rpms, but I get errors about being unable to write to a key file and SSL problems. More detailed information does not seem to be logged anywhere, and I can see no mailing lists, no support, no nothing.

    Is this a supported part of a RHEL5 support contract? Will it be? If so, when?

  16. Mattia Gandolfi says:

    Ben,

    luci’s RPM (which is, in fact, the core of Conga) is part of RHEL Clustering channel in Red hat Network.

    Detailed instructions on how to install and configure it are available in the official documentation:

    http://www.redhat.com/docs/manuals/enterprise/RHEL-5-manual/Cluster_Administration/s1-start-luci-ricci-conga-CA.html

    Cheers

    Mattia

  17. quan says:

    1)where can i find this topic:
    Conga administrative and trouble-shooting tips
    2)is there any other log files of conga except /var/lib/luci/log?

    thanks.

  18. Pandi says:

    Is it conga available for Fedora 5 Version or any kernel update required

  19. Rob Kenna says:

    re: 18:

    Conga is not currently available on Fedora. It needs zope ad plone pieces and a different version of python. We hope to have this resolved in the future.

  20. Marco says:

    Conga is SHIT as the Red Hat Cluster Suite…no fucking documentation and errors with no help.

  21. Mike says:

    Hey Marco, you get what you pay for! I was able to implement a two node mysql cluster that works great using Conga and I am far from a Linux expert. If you poke around hard enough, you’ll find the answers to your questions.

  22. Marco says:

    Sorry Mike, but I paid for the product (technically for support, ok) and the thing it’s a bloody nightmare…nodes fencing each other…and bloody Luci won’t add the nodes and add an existing cluster. Fresh Red Hat install with Cluster support paid for…

  23. Mahesh says:

    Hey Marco,

    Common mate, it’s a very nice and easy product. I got mine done similar to Mike, why don’t you do some heavy duty search?

    A prayer might help an all :) Else Radio City eliminates all problems.

    Ciao.

  24. Stacy says:

    when the above talks about building a new cluster it mentions that you can use locally installed packages, if you choose this option what packages must be installed on each of the nodes? Before any asks, we cannot connect the hosts to RHN to perform a download. The above does not describe the steps to do in order to perform a install using local packages.

  25. Eduardo Torres says:

    I wonder if CONGA is supported for PPC

  26. Alex says:

    Hi, i need some help, i want to implement a cluster, but before i want to do some tests in two servers, just the documents in the page of red hat is not very helpful, please, somebody help me. I have red hat 4.5 and red hat cluster suite but i dont know what to do with cluster suite =(.

  27. onlyRHEL says:

    What abt the following 2 links.. this shud b helpful

    http://sourceware.org/cluster/conga/
    http://www.centos.org/docs/5/html/Cluster_Administration/ch-config-conga-CA.html

    Regards,
    Kaushik

  28. Abel says:

    I agree with some of the people that say there’s insufficient documentation about this tool. Even the Conga project webpage is lacking in that matter, so I think they have a point.

    Nevertheless, I don’t fail to see that it has the potential to become a great addition to the distribution. But the problems lies in that if you don’t dedicate more than two paragraphs to the ‘Create a cluster’ operation, then ANY error message becomes a big problem. What’s more, I’ve been looking for some informative log files, and it doesn’t appear to be any of use (no, the ones located at /var/lib/luci/log/ are useless).

    So I think I’ll configure the cluster with the more ‘official’ tools from Red Hat, and later on I’ll try to add it to Conga management console…