Replacement Hard Drives for XRAID

Currently I'm working on rebuilding our web storage infrastructure for our District. Currently we have 6 XRAID's that have 40,000+ hours on the drives and aren't currently being used right now.  I was in need of DAS to setup my Gluster Cluster, so I decided repurposing these would be the cheapest and most efficient solution.

As some of may know, XRAID's support up to 750GB per drive and require IDE drives.  Finding a 750GB is fairly easy, finding a abundance of these, not so much.  When you do find these drives, they usually range from $150-250 per drive.  So, I started to do some research to see what is out there.  I ran across one article on replacing the drives with notebook drives and IDE to SATA adapter. I then decided to try it out, ordered up one Startech IDE to SATA adapter and a Seagate Momentum 750gb 7200rpm notebook drive.  

The parts arrived, I got to work.  Connected up the adapter and power splitter. Connected the drive, and found that I could throw in one screw and some tape to hold the power in place, and then we were all done.  Slid the module into the XRaid and we were on our way.  

We are currently in process of getting this all ordered and running, I'll post up any updates on the process. 



DHTMLX Touch Alpha Released

DHTMLX has released their alpha version of mobile version of their components.  After 5 minutes of testing, I must say it's everything I expected.  Future versions are likely to be even better.


Gluster Progress

This is still a work in progress, but so far very successful.

Gluster Storage Platform allows you to basically build your own storage cloud.  It allows for CIFS, NFS, FTP, and it's own native GlusterFS connector. And here is my own experiencing with setting it up.

We had (2) Dell Poweredge 8950's and some old Apple XRaid storage not longer in production in our environment.  Trying to stay on the more conservative side in spending additional funds to improve our infrastructure, I decided these would be prime candidates.

So I take the 15 minutes to put the fibre channel cards in and get the 8950's wired into our back network and plugged into the Apple XRaid via Fibre.  On the Gluster website, they have 3 different ways you can install the OS.  First, you can download a Virtual Machine prebuilt and ready to go. Second, you can download a ISO image and use that to build a Virtual Machine from scratch, but not use it as a boot cd for a physical machine.  Last, you can download an img file and setup a bootable usb drive, this is a the method I went with.

Plug in the USB Flash Drive and open the terminal
run "dd if=Gluster-3.1.img of=/dev/sdc bs=1M", keep in mind you need to change the location of the img and location of the usb drive

This takes a few minutes. Once done, pop it into one of the server and boot it up. You will be presented with a menu. First you can to say new server cloud.

Once you do that, you need to select a OS drive and Network Config. Then it will install.

Once done, you will be given the default password.

Reboot and open a web browser on another machine and you can login. From there you can create new volumes or add more servers.  To add another server, boot the new server from the usb drive and select expand the cloud.  Then jump over to the web panel of the master server and click add new server.  This will tell it to go find the new server, install, and add it to the cluster.

Once your two machines are setup you can see storage from each server.  When creating a new volume, you have the option to mirror the two or more machines with multiple protocols.  If you have a load balancer you can input both IP's into it and load balance storage with active-mirroring.  

Very cool stuff, simple and easy to use.  Check out for more information.

Logging Apache in MySQL

I'm currently in process of rebuilding our web server cluster, and thought I would do some searching on improving how our configuration and logs are stored.  Little did I know there are some modules out there that can help us do that.

First, I have completed the logging piece of the puzzle and thought it was pretty cool and easy to setup.  You'll need to need to have the mysql client libraries installed along with libDBI.  Once you have these, you can quickly build the module and add it to Apache.

You can find the source here

Next you can find some simple build instructions here

Last you need to add the following to httpd.conf, make sure to change the Server Login Info

LoadModule log_sql_module modules/
LoadModule log_sql_mysql_module modules/
<IfModule mod_ssl.c>
LoadModule log_sql_ssl_module modules/

LogSQLLoginInfo mysql://user:pass@mysql_server_address/database
LogSQLCreateTables On

See more info here on additional configurations and customizing

After you give apache a restart and go to one of your virtual hosts in the browser, you should see the tables auto build with the log information.

Coming up next is mod_vhost_dbi, this will allow you to store your virtual host config in MySQL


How to Add Google Documents to the Windows Explorer “New” Menu

For those who enjoyed the write up on how to set Gmail as a default email provider, you can also add Google Doc's to the right-click new menu.


Cluster with Gluster

In need of a new storage platform? I suggest checking out Gluster ( Gluster provides an open source solution for creating basically your own cloud. Highly scalable, high-availability, and easy to setup.

Currently I'm in process of setuping up a new Shared Storage solution for our webserver cluster, in hopes of achieving the high-availability and redundancy that we require. More to come over the next week.


Mobile DHTMLX on the way

Just saw today on DHTMLX blog that they are developing a mobile library for iOS and Android. I'm sure it will be just a easy to use and useful as their normal suite. 

DHTMLX Library for Mobile and Touch Devices


Fixing Mailto: Protocol for Google Apps


We'll need to modify a registry key for this one.  

Looking under [HKEY_CLASS_ROOT\mailto\shell\open\command]

You'll need to change the default key to the following (Changing to your domain)

rundll32.exe url.dll,FileProtocolHandler

A reg file can be created also for use in a script

1. Open Notepad and paste the following
Windows Registry Editor Version 5.00

@="rundll32.exe url.dll,FileProtocolHandler"
2. Save as googlemailto.reg 


You can use webmailer to set this up. I'm working on a script that copies the and the preference over then changes the default mail client.



Google Password Sync

Want to sync your Active Directory passwords to Google Apps? No problem.
There is a great tool in the Google Code repository. Hashing Password Filter
This code creates a SHA1 hash of the user’s password and puts it into a attribute field whenever a users password is changed.

A couple things need to happen

1) You need to create an attribute field to house the password hash for the user
2) The password filter needs to be installed on all Domain controllers, but can be installed on one to test with.
3) Complex passwords need to be enabled in the Group Policy
  • Download the filter (depending on your domain controller setup, 32 and/or 64bit versions)
  • Download the Google Data APII (
  • Install the Google Data API on each domain controller
  • Create the attribute “hashedPassword” (type: Case Sensitive String) with AD Scheme Editor
  • You need to create a x500 OID also. Use this tool to figure out and OID ( )
  • Once the attribute is created copy “HashingPasswordFilter.dll” into C:\Windows
  • Import the registry key, “HashingPasswordFilter.reg”
  • You will also need a user to update the users in AD, we already had a user we used for our scripts, but you need Allow log on locally and log on as a batch job.
  • Edit ini file with login information, copy to “C:\Documents and Settings\All Users\Application Data”, make sure it is readable only by administrators
  • Copy “GoogleHashUpdater.exe” to the process path specified in “HashingPasswordFilter.ini”
  • Edit Group Policy under password policies to make sure Complex Passwords are enabled (this is required)
  • Reboot Controller.
  • You can confirm the install worked by Checking the log file “C:\Documents and Settings\All Users\Application Data\HashingPasswordFilter.log”
  • Also, you can check System Information to make sure the module is loaded.
Once a user changes their password it will update the “hashedPassword” attribute for that user. Also the GoogleHashUpdater should go update the user too. (We aren’t using that yet, a few bugs still with that)
Currently we are syncing passwords nightly, users login via Single Sign-on (CAS by Jasig) so passwords aren’t too important at the moment, only for IMAP and Mobile Syncing.

Install on all Domain Controllers or it won’t work properly.

Google Forum Thread


Google API Integration - Part 2

Working to integrate better with our portal and not worry about users passwords. I have used OAuth with PHP to create a channel between our portal and Google Apps.

First thing you need to do is setup OAuth Access on Google Apps.

1. Open Google Apps Control Panel
2. Click Advanced Tools
3. Click Manage OAuth Domain Key
4. Follow steps to provide you a OAuth Consumer Secret.

Integrating with PHP
Check out this site for example code to integrate into Google API’s with OAuth


Google API Integration

During this move to Google Apps to replace our current Email Solution, I started to dig into the API’s to see what kind of integration we could get to make it easier for staff.  One of the big things we could never do with FirstClass is the ability to use our Single Sign-on (CAS).  This abillity allows us to have our users login once and go straight to their Inbox from our portal. Using the Gmail API’s you can get can unread count of mail in the Inbox, and on top of that you can filter it by Labels using the following links
Unread Mail Feed
Unread Mail Feed, filtering by Label
Very cool stuff.  Also, you can embed your Google Calendar onto any website. If you goto calendar settings you can customize the calendar look and it will give you embedded code to put on your page. Below you can see our quick concepts on this.


Simplify Coding Projects

A couple of months ago, two of our programmers at work came across a great piece of code that helps simplify your data needs in future coding projects. Currently I am writing a new ticketing system at Bethel using this code. The code is called DHTMLx, it includes numerous plugins you can use and they all snap together. Head on over to DHTMLx

Here is a preview of said Ticketing System.