Archive for ‘January, 2009’

Notes on installing Rocks Cluster Software…..

datePosted on 16:37, January 27th, 2009 by Many Ayromlou

– Front-end machine is a Dell 2950 with 2 x 1 GigE Broadcom ports onboard and one myricom 10GigE card.
– Broadcom port #2 is disabled in BIOS
– Broadcom port #1 is enabled and configured for external network (Internet)
– Myricom 10 GigE card is hooked into a Foundry 8x10GigE switch that uplinks into our private Class B network. We own a portion of this network aa.bb.cc.130-190. Netmask is 255.255.255.192. The Foundry also downlinks to a Force10 48port Gig switch (with optional 10GigE port). This is where the cluster compute nodes are connected at 1 GigE (soon to be bonded 4GigE).
– Rocks install on front-end machine likes to bringup broadcom #1 port (External) as eth0 and myri is not installed by default. So when prompted during install I configure it as per normal (eth0 for inside and eth1 for external) as far as IP addresses are concerned. This will keep the config files sane!!!
– Then I have to install the myri10g device driver from their site
– Now eth0 and 1 are backwards. Rocks wants eth0 to be private and eth1 to be public. To swap them we have to tell the kernel to swap the devices via udev rules. Edit /etc/udev/rules.d/11-local.rules and insert the following line inside:
KERNEL=="eth*",SYSFS{address}=="00:60:dd:47:75:a6",NAME="eth0"
This will force nic with mac address 00:60:dd:47:75:a6 to come up as eth0. Now we also have to change ifcfg-eth0 and ifcfg-eth1 files in /etc/sysconfig/network-scripts to make sure the right IP goes with the right interface/MAC address.
– Lastly we have to add “modprobe myri10ge” and “route add -net aa.bb.cc.0/26 gw aa.bb.cc.129 dev eth0” to /etc/rc.d/rc.local to shoehorn the driver and the route.

This should bring up a sane frontend machine.

– Before doing insert-ethers on the frontend, we have to edit /opt/rocks/lib/python2.4/site-packages/rocks/commands/sync/dns/plugin_dns.py since we have a portion of a larger subnet as our private address space. The Python file assumes a private class C address/mask which is not the case for me. We have to make the small change to make the file look like this (Thanks to Scott Hamilton for his post):

def reverseIP(self, addr, mask):
"Reverses the elements of a dot-decimal address."

if type(addr) != types.ListType:
addr = string.split(addr,".")

addr.reverse()

clip = mask/8
if (mask % 8):
clip += 1
# I added this section to fix a bug that breaks the dns configuration when
# isntalling on subnets smaller than 255.255.255.0
if (clip == 4):
clip = 3
# Only show the host portion of the address.
addr = addr[:-clip]
reversed = addr[0] for i in addr[1:]:
reversed = "%s.%s" % (reversed, i)

return reversed

– This gets insert-ethers going but there is still the problem of being able to tell the program that you don’t want to start at 190 (which is the end of my address space) and count down whenever there is a new compute node online. I want to start at 180 and count down (180-190 space I want to reserve for admin stuff for the Xserve raids). So the command to issue is:
insert-ethers --baseip=aa.bb.cc.180
– Now I can power the computer nodes which have four interfaces (2 broadcom onboard plus 2 extra intel gige cards) each, making sure that broadcom 1 port is hooked up to the switch on all the machines. This is default PXE port for the Dell 1950 III’s. If everything is groovy insert-ethers will detect the machine and hand it aa.bb.cc.179 as IP address.
– At this point once the install is done on compute-0-0 (first machine you turn on) you can check /etc/dhcpd.conf on the frontend and notice that all the interface instances have the same IP. This is something we have to change once we bond the interfaces (maybe not….not sure yet).
– If during insert-ethers on frontend something screws up you can get a listing using “rocks list host” or “rocks list host interface”. Once you find the offending node you can “rocks remove compute-0-0” for example, followed by “rocks sync config” and “rocks sync dns”.
– I initially ran into a problem where Ganglia would not update the nodes info. This I think was caused because ganglia uses multicast to pass info between clients (compute nodes) and server (frontend machine). I changed the /etc/gmond.conf file on the compute nodes to be as follows (only portion shown here):

/* UDP Channels for Send and Recv */

udp_recv_channel {
port = 8649
}

udp_send_channel {
host = aa.bb.cc.130
port = 8649
}

This way the listening portion of ganglia can communicate with itself on port 8649 on each of the compute nodes and the collected stats can then be sent to aa.bb.cc.130 which is my frontend machine. Similarly on the frontend machine I modified /etc/gmond.conf to look like:

/* UDP Channels for Send and Recv */

udp_recv_channel {
/* mcast_join = 236.149.78.5 */
port = 8649
}

udp_send_channel {
/* mcast_join = 236.149.78.5 */
host = aa.bb.cc.130
port = 8649
}

Note the commented multicast address which is not in use anymore. This way all the clients (compute nodes) send their info to the server (frontend), who’s listening on port 8649. The Server itself also sends it’s own information to it’s own IP address (snakke eating it’s own tail kinda thing). Once this is done I do a “/etc/init.d/gmond restart” on all the machines (compute nodes and frontend). Now the website for ganglia should be happy and full of info about the nodes.

More later…..

TPMG visits Toronto Zoo…or…How I busted my camera shutter…

datePosted on 12:16, January 26th, 2009 by Many Ayromlou
_MG_0111

Well it finally happened yesterday. I busted the shutter curtain on my faithful Canon 1DMKII. Took a trip to Toronto Zoo and about an hour into the trip the shutter literally ripped (Damn Orangutans, I think one of them jinxed the camera :-)). I think the cooling (-15C outside) and heating (+25C inside) might have had something to do with it, plus the fact I was firing off at 8 frames/s. Anyways, I did get to fire off the couple of shots before camera went nuclear on me….

_F6K6972
_F6K7032
_F6K6926

More on flickr.

ACDC Rocks Toronto…..

datePosted on 12:08, January 26th, 2009 by Many Ayromlou
IMG_0399

This is a bit of old news I guess, since it happened almost 2 weeks ago. But it was a fantastic concert and I finally got around to checking out the pictures I took. Gotta admit the Canon G9 did a decent job for a $400 semi-slr camera.

IMG_0298

More pics from the concert can be viewed on flickr.

I have to admit I have not touched DSS in a while, but the instructions below are generic enough that you should be able to alter it for your Darwin Streaming Server. For the purpose of this exercise I assume your Axis camera is setup for mpeg4 video and aac audio. I also further assume that you have a reachable IP address on the camera and know how to login to the web interface. First thing we want to do is make sure you have the uptodate firmware. As of this writing the newest firmware is 4.40.1. So make sure you have atleast that version as well.

1) We need to login and change the RTSP daemon’s timeout value. If we don’t do this the server will stop sending packets out after 60 seconds (default). To do this you open your browser and type the following command in the browsers Address field:
http://IP-Address-of-Axis-Cam/admin-bin/editcgi.cgi?file=/etc/rtspd/rtspd.conf

This will bring up a screen (like above) that will let you edit the file. Find the timeout value (should be 60 by default) and change it to 0 (zero basically means no timeout). Save the file by pressing the “Save file” button.

2) Now power cycle the camera just to make sure the new value is loaded.
3) Once the camera is functional again go to the web interface and make sure you can use LiveView to watch the video and audio.
4) On your Streaming server (QTSS or DSS) setup a relay. I’m including three pictures below from my Quicktime Streaming Server running on OSX Server 10.5.

On the above screen you want to add a Relay by clicking the small + sign on the bottom left. This will enable the streaming server to login to your camera and grab a copy of the stream. The screenshot below shows you how you set it up.

So on the relay screen you give your relay a meaningful name, change the relay type to “Request Incomign Stream” and fill in the rest of the information. The Source IP is the IP address of your camera. The Path is basically what I have there (just copy it). User Name and Password are from the Axis camera interface (you should know this already).

Next you want to setup the destination of your relay. Here is the tricky part (easy, but tricky). Depending on how you setup your destination, the Streaming server will either Reflect or Relay the stream. We want to reflect the stream so we click the + sign on the bottom right and fill it in like the image below.

On this screen it is important that the destination be 127.0.0.1. This will basically tell the server to Relay the output of the Axis camera to itself, effectively reflecting it. Destination type is announced UDP. This will automatically create the SDP file for us. Mount point is simply the name of the SDP file which will describe the stream specifics to our quicktime player (It’s justa text file, see further down). This file will be created automatically on your server under /Library/QuickTimeStreaming/Movies/ which is the default media directory for quicktime streaming server (yours might defer). Username and password are the id and password of a active user on your streaming server that can write to the media directory (/Library/QuickTimeStreaming/Movies/).

So once all this is done, you can use a workstation to launch quicktime and point it at the following URL:rtsp://IP-Address-of-streaming-server:554/axis.sdp
Note that axis.sdp is the name of the file I chose. You might have a different filename specified when you filled in the relay destination fields on the streaming server.

If everything goes right, you should see the output of the Axis camera in quicktime, being streamed (reflected) through your QTSS/DSS server.

UPDATE: Please note that the whole reflecting game will NOT work if youŕe behind a Firewall and/or a NAT (including home routers). If anyone knows of a trick to do this please let us know…..

How to turn Spotlight OFF (and ON Again)….Leopard Solution

datePosted on 20:01, January 14th, 2009 by Many Ayromlou

A number of people mentioned that the previous tip on how to turn spotlight on/off does not work with Leopard. Now that I’ve had a bit of time, I’ve confirmed this and found a way around it (it’s even easier in Leopard). Here are the details specifically for OSX 10.5+ (Leopard).

  • To turn off Spotlight service temporarily
  • % sudo launchctl unload /System/Library/LaunchDaemons/com.apple.metadata.mds.plist

  • To turn off Spotlight service permanently (no worries, you can turn it on again)
  • % sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist

  • To turn on Spotlight service temporarily
  • % sudo launchctl load /System/Library/LaunchDaemons/com.apple.metadata.mds.plist

  • To turn on Spotlight service permanently
  • % sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist

Have fun….

Bug Labs Linux based Hardware gets major update….

datePosted on 19:21, January 11th, 2009 by Many Ayromlou

Bug Labs announced five new BUGmodules at the 2009 Consumer Electronics Show in Las Vegas. At the Bug Labs Test Kitchen the team showcased several innovative new BUG applications which fully demonstrate the endless possibilities of BUG, the open source modular consumer electronics platform. Each BUGmodule represents a specific gadget function (e.g. a camera, a keyboard, a video output, etc.) that can be snapped to the BUGbase, a programmable Linux-based mini-computer with four available BUGmodule slots.

The five new BUGmodules are:

  • BUGprojector, a mini pico-projector module, incorporating DLP® Pico™ technology from Texas Instruments. With a native resolution of 480×320 pixels, stereo playback and a brightness of 9 lumens, users can project videos, photos and presentations on the go.
  •  BUGsound, an audio module, providing a flush-mount 20-mm speaker and omnidirectional microphone with hardware stereo codecs and four 3.5-mm stereo jacks for third-party inputs, outputs, headphones and microphones. Use BUG as a portable music player, speakerphone, audio processor or more.
  • BUG3g GSM, a 3G mobile radio with SIM card input, enabling BUGs to connect to any high-speed GSM network. Users can place calls, send and receive SMSes or transmit data, opening a world of possibilities for mobile and telephony applications.
  • BUGwifi, a dual-function 802.11b/g wi-fi and Bluetooth™ 2.0 + EDR radio, offering yet another wireless data connectivity option for the BUGbase, while providing a gateway to a variety of peripherals such as keyboards, mice, headsets and more.
  • BUGbee, a low-powered 802.15.4 radio, enabling BUG developers to create short-range personal area network (PAN) applications for home automation, sensor networks, automotive and more.

These five modules complement the initial batch of BUGmodules, including BUGlocate (GPS), BUGcam2MP (digital camera), BUGmotion (motion sensor and accelerometer) and BUGview (touchscreen LCD). And with the recent addition of BUGvonHippel, a breadboard module enabling users to add virtually any interface to their BUGbase, developers are given more control in making BUG the center of their device universe. 

Toronto Strobist Group Meetup #7….

datePosted on 19:13, January 11th, 2009 by Many Ayromlou
_MG_0481 
_MG_0446

After a two month hibernation, the TSG (Toronto Strobist Group) had their meetup at Ryerson University again. I was not really participating completely (didn’t have my lights). But I did put on the PW’s and fired some shots using other members gear. Here is a sample of the shots. Complete set can be found on flickr as usual.

Super Ubuntu save you time….

datePosted on 19:02, January 11th, 2009 by Many Ayromlou

If you’ve ever installed Ubuntu and started cursing right after because some piece of software you thought was in there wasn’t, then Super Ubuntu might be for you. It’s basically Ubuntu with a bunch of useful applications pre-installed. You even update through the standard Ubuntu methods. The only downside is that the distro is 32-bit only for now. Below you’ll find a list of pre-installed additional software you get with Super Ubuntu:

So head on over and grab the ISO file.

Energize your Mac’s Safari browser….

datePosted on 18:48, January 11th, 2009 by Many Ayromlou

If you’ve been wanting some of the newer features of the “other” browsers in Safari, Glims might just be the right thing for you. Glims is a Safari plugin (OSX only) that gives you a lot of new features:

  • Adds thumbnails to Google.com search results
  • Adds thumbnails to Yahoo.com search results
  • Adds search engines to the default Google search tab
  • Adds full-screen browsing capability
  • Adds Favicons to tab labels
  • Adds keyword search from address bar
  • Undo “Close Tab” (cmd-z)
  • Re-opens last session when Safari starts
  • Auto-Closes download window
  • Focus last selected tab
  • Always open links in a new tab
  • Type-ahead support (auto cmd-f)
  • Sets the focus on the search field when opening a new window
  • Adds Amazon’s information banner on Google.com search results
  • Adds Amazon’s information banner on Yahoo.com search results
  • Adds a “Max Window Size” menu item to resize the Safari window
  • Forms autocomplete always on
  • Dated download folders

The plugin is still in beta stage, but very usable.