Scyld ClusterWare HPC: Administrator's Guide | ||
---|---|---|
<< Previous | Scyld Integrated Management Framework (IMF) | Next >> |
An overview of the architecture and data flow. How to integrate existing Web interfaces into a tab. How to add more diagnostic commands that you can run from the Nodes tab.
The client side of the application is a dynamic html application leveraging the ExtJS javascript library.
For views which are detected as visible, a timer task retrieves relevant data from the server in intervals using AJAX and updates the views asyncronously. The MVC abstraction in terms of ExtJS components involves JsonStore objects retrieving data from URLs, ColumnSelectionModels (Model), and Panels with Grids and Menu objects (View) with menu_handlers invoking javascript functions (Controller).
On the master node = server side, Apache serves up php pages that implement the data producers and controlling mechanisms that the client will interact with.
PHP is a natural choice for implementing the backend server scripts, since Scyld IMF includes a view of Ganglia, which does depend on php. Any other non-php specific data-sources and services could be integrated as well, so there is no specific php dependency on the client side.
Authentication is controlled on the server-side through htaccess.
Most major components of the ClusterWare middleware already support XML as an output format (beostat, qstat, pbsnodes), so we can use xsltproc and XSL stylesheets as a very flexible mechanism to extract and aggregate relevant data into the desired output data to be sent to the javascript client in JSON format.
While ExtJS supports both XML and JSON as a data format on the data store abstraction layer, JSON is more efficient from a development and operations standpoint because it is essentially serialized javascript objects.
When executing commands, the client side passes a command handle name to the server side, and the actual command with its specific parameters is executed according to what is defined for it on the server side.
It is simple to integrate additional Web interfaces as a tab component into the Scyld IMF interface, as long as they can be included into an iframe. Ganglia is an example of an unmodified Web application that was added with help of an iframe in a tab. Other examples could be your switches (i.e. HP Procurve switch Java applet as depicted), PDU's, UPS's, wiki's and whatever else is relevant to you as an admin or to your users. Note that anything that has the management port hidden behind the private cluster network will have to be port-forwarded through the master node, and rely security-wise on its own authentication methods.
HP Procurve admin interface, port-forwarded through headnode and integrated in an iframe.
The server side file hierarchy of the Web application is as follows:
/var/www/html/ext/ the ExtJS javascript library
/var/www/html/admin/ contains all Scyld IMF implementation files
/var/www/html/admin/js/ ExtJS components implementing our client-side application
/var/www/html/admin/php/ php and xsl scripts producing data and allowing control server-side
/var/www/html/logout/ separate login realm to allow logging out of the admin interface without closing browser for selected browsers
edit /var/www/html/admin/js/main-layout.js to include the following in the list of items of the ViewPort center layout as follows:
{ id: 'tpiPowerGrid', title: 'PowerGrid', xtype: 'iframepanel', defaultSrc: 'http://powergrid.mycompany.com', tabTip: 'PowerGrid: Access to our hypothetical URL' } |
Additional documentation and external websites can be added to the Help-tab in a similar fashion by editing /var/www/html/admin/js/help-panel.js and adding:
{ id: 'tpiBeowulfOrg', title: 'Beowulf Archives', xtype: 'iframepanel', defaultSrc: 'http://beowulf.org/archive/index.html', tabTip: 'Beowulf Mailinglist Archive: Beowulf.org' } |
Adding diagnostic commands to be run from the Nodes->Run command can be done by adding a few lines to the following two files. For this example we are adding a variant of cat /proc/scsi/scsi which allows listing all drives with Model and Revision information.
We use the grep to prefilter the returned values with the command grep -v 'Attached devices' /proc/scsi/scsi. To call this command from the Web interface, we are defining a command-handle 'scsi-dev'.
edit /var/www/html/admin/js/beostat-grid.js to include the following in the list of items of the IMF.Beostat.runMenu definition:
{text:'SCSI Devices', cmd:'scsi-dev', handler: node_remote_report} |
edit /var/www/html/admin/php/remote_report.php to include the following in the list of commands as follows:
$cmds['scsi-dev'] = $bpshcmd . 'grep -v "Attached devices" /proc/scsi/scsi'; |
Select all nodes and run the command to get an overview of all drives in your compute nodes.
We have a highly skilled professional service team that can help you customize your Web application to your specific environment with a minimum of labor involved, leveraging the Scyld IMF.
<< Previous | Home | Next >> |
Scyld IMF Components | Up | Compute Node Boot Options |