Flying in India is a bit different than in other countries I’ve flown. All processes are more strict than at least southeast Asia, Europe, and the US. Some of the differences include the amount of documentation required. Continue reading
Hiring an Auto in Bangalore
Over the past week I’ve spent in Bangalore, I’ve come to appreciate the humble auto rickshaw, or ‘auto’ for short. For the uninitiated they are similar to a Tuk Tuk in other countreies. That is to say they are small three-wheeled covered vehicles used to ferry two to three passengers around busy streets and through traffic. This is half due to their diminutive size and the other half due to their driver’s propensity for disregarding both traffic laws and courtesy to their fellow road-sharers. Bangalore has the busiest (and narrowest) streets in India, and the auto drivers are notorious for trying to take advantage of knowledgeable customers.
That said, they’re an excellent way to access the city. They’re affordable, readily available, and their open-air nature really allows one to take in the spectacles, cacophony, and (sometimes) smells of the city.
One of the perils of being a westerner in India (or really anybody that one can identify as not being born and raised locally) is that often others will try to take advantage of you. This certainly isn’t restricted to auto drivers either, as this will also happen on the street, in shopping malls, at the airport, and generally everywhere.
I’ve jotted down a few notes about hiring an auto to hopefully save the reader a bit of time (and money) when attempting to hire an auto in Bangalore.
- Hiring an auto already pulled over on the street is usually a bad idea. These guys like to hang out where they know Westerners will be exiting buildings, approaching them and offering rides, usually with the phrases ‘auto?’ or ‘auto sir?’. These autos are generally to be avoided as they will rarely ever use a meter, and will not even demand to negotiate price upfront, instead delivering his passengers to their destination then telling them his exorbitant fee. If one must hire one of these autos, it would be prudent to negotiate the rate beforehand. Due to recent police decree, all businesses in Bangalore must begin shutting by 11, which means auto drivers will have the advantage over nearly-stranded travelers. I’ve been charged 500 INR for a simple ride to an adjacent part of town, and even then the auto driver didn’t know where Residency Road was!
- The best way to hire an honest auto is by either flagging one down (same as a taxi) from the street, or approaching one as the previous occupants leave. This has the highest probability of the auto driver activating his meter without persuasion.
- Often times auto drivers will not know the exact destination given to him if it is the exact address of an establishment or the name of an establishment. Street addresses in India are not as defined and standardized as in many other parts of the world, and as such are rarely listed in a visible place. Therefore using them as indicators is a futile effort. Instead, try telling the auto driver which neighboorhood to go, then drill down to more accuate directions. For example my hotel would be ‘Jayanagar, 4th block, 9th main, 40th cross’. This will let the auto driver know which direction he should be headed, then when he gets there the directions will culminate to a very close approximation to the destination. Tell the driver the name of the destination and help him look for the signage. Once found merely point at the destination. This is an ideal scenario however, since not many neighboorhoods seem to advertise their blocks, mains, and crosses as well as Jayanagar. When this method is not employable try a nearby landmark.
- My favorite landmark to use is a hospital, since drivers are often sentimental people it will also make it more likely they will use a meter. My conference was at the NIMHANS Hospital Convention Center, therefore every day between my hotel and conference I hired an auto, and all but two days they used a meter AND took a direct route! This requires a bit of forethought as an understanding of the surrounding area and where the destination is in relation to the landmark needs to be known.
- It is possible to rent an auto for a certain preiod of time (minimum is usually an hour). This allows ‘tour rides’ in autos, which can be a great way to experience the city.
Modern push notifications with Weechat and NMA
After notifo seemingly stopped pushing notifications to my devices, I began to look for an alternative that more transparently used Google’s C2DM service for notifications. It didn’t take me long to find NMA, short for NotifyMyAndroid. This is a very simple http(s) API to push notifications to one/many devices. I’ve broken this down into a few easy steps.
- Sign up for an account on www.notifymyandroid.com. Log in, click on ‘My Account‘, then ‘Generate New Key’
- Install the NMA Android app (around $3 USD) onto your android device. Launch the app and login
- Install pynma.py and nma.py to $HOME/.weechat/python.
- (Optional) Symlink nma.py to $HOME/.weechat/python/autoload
- In weechat:
/python load python/nma.py /set plugins.var.python.nma.apikey "$myapikey"
- (Optional) To inly send notifications when detached from the screen: install and load the screen_away.py, then
/python load python/screen_away.py /set plugins.var.python.nma.only_away on
Now you too can be harassed by inane IRC highlights no matter where in the world you are! Thankfully, the NMA Android app has a ‘quiet hours’ in case you’d rather not be woken up in the middle of the night.
Running 512 containers on a laptop
As an exercise on how lightweight and extensible LXC can be I decided to create a large installation of LXC containers on my laptop. I wanted to see if LXC would allow me to create large-scale testing environments often needed for testing software with several moving parts.
IRSSI Push notifications to GNOME desktop and Android device
Several people have asked me recently how I forward IRSSI notifications to my desktop and Android devices. The solution could be basically described as follows:
IRSSI configuration
Install these scripts into $HOME/.irssi/scripts (and symlink it in $HOME/.irssi/scripts/autorun) to have them autoloaded when IRSSI starts.
Android configuration
Sign up for a notifo account, download the android app, and sign in with it. Make note of the username and API key, as you’ll be configuring irssi to use them.
You’ll be loading the scripts in IRSSI and setting 2 notifo parameters:
/script load screen_away.pl
/script load socketnotify.pl
/script load notifonotify.pl
/set notifo_username $USER_NAME
/set notifo_api_secret $API_KEY
Now receiving highlights while you’re away (detached from the screen) will send them to your android device.
Desktop configuration
Add an entry similar to this in your $HOME/.ssh/config file (creating it if it doesn’t exist yet). This will forward your traffic being received by the IRC server (on localhost) on port 4443 to your SSH client on port 4443 (IE: your laptop):
Host irc.myshellserver.org
ControlMaster Yes
ControlPath $HOME/.ssh/irc.control
RemoteForward 4443 localhost:4443
Now all we need is a daemon running on your client to listen on localhost:4443 and receive the messages, then insert them into some sort of notification service. My method for doing this is to have a script in $HOME/bin run in a screen and display them using pynotify.
I’ve written a script that I call notifywatch that does exactly that. Save it to $HOME/bin/notifywatch.py and mark it executable.
Add screen -d -m $HOME/bin/notifywatch into your startup scripts, and desktop notifications should work as well (even while connected to your IRSSI screen)!
Ganeti, dealing with node failure
This morning at Mozilla, we had out first ganeti node failure, which meant we got to learn how to deal with a node failure! So far all of our ganeti clusters have been 2 node clusters, so while relatively simple, it meant an extra quirk in bringing everything up. Thankfully we used the iallocator so as to not overallocate nodes on the cluster. Here’s how the process went.
- Get paged
- Stop panicking
- Be sure to log into the broken node to verify it actually died. If the VMs are still running correctly on it, and it’s simply a networking problem, if you proceed to bring them up again you will encounter a bad state known as ‘Split Brain’. This is difficult to recover from, so please verify the dead node is truly dead.
- If there is more than 1 node left, try logging into the cluster IP (kvm.infra.scl1.mozilla.com vs kvm1.infra.scl1.mozilla.com)
- If there is only 1 remaining node, voting won’t work, so ganeti-masterd will have to be started by hand:
root@vm1-1:~# ganet-masterd --no-voting
Once your master node is online, we need to set the failed node to Offline mode.
root@vm1-1:~# gnt-node modify --offline yes vm1-2
Fri Apr 22 07:44:13 2011 - WARNING: Communication failure to node vm1-2.labs.sjc1.mozilla.com: Connection failed (113: No route to host)
Modified node vm1-2
- offline -> True
- master_candidate -> auto-demotion due to offline
Afterwards, assess the situation by running gnt-cluster verify, you should see it throw MANY warnings about instances being offline:
root@vm1-1:~# gnt-cluster verify
Fri Apr 22 07:44:42 2011 * Verifying global settings
Fri Apr 22 07:44:42 2011 * Gathering data (2 nodes)
Fri Apr 22 07:44:42 2011 * Verifying node status
Fri Apr 22 07:44:42 2011 - ERROR: node vm1-1.labs.sjc1.mozilla.com: drbd minor 0 of instance vm1.vm1.labs.sjc1.mozilla.com is not active
Fri Apr 22 07:44:42 2011 - ERROR: node vm1-1.labs.sjc1.mozilla.com: drbd minor 1 of instance vm2.vm1.labs.sjc1.mozilla.com is not active
Fri Apr 22 07:44:42 2011 - ERROR: node vm1-1.labs.sjc1.mozilla.com: drbd minor 2 of instance vm3.vm1.labs.sjc1.mozilla.com is not active
Fri Apr 22 07:44:42 2011 - ERROR: node vm1-1.labs.sjc1.mozilla.com: drbd minor 3 of instance vm4.vm1.labs.sjc1.mozilla.com is not active
Fri Apr 22 07:44:42 2011 - ERROR: node vm1-1.labs.sjc1.mozilla.com: drbd minor 4 of instance vm5.vm1.labs.sjc1.mozilla.com is not active
Fri Apr 22 07:44:42 2011 - ERROR: node vm1-1.labs.sjc1.mozilla.com: drbd minor 5 of instance vm6.vm1.labs.sjc1.mozilla.com is not active
Fri Apr 22 07:44:42 2011 - ERROR: node vm1-1.labs.sjc1.mozilla.com: drbd minor 6 of instance vm7.vm1.labs.sjc1.mozilla.com is not active
Fri Apr 22 07:44:42 2011 - ERROR: node vm1-1.labs.sjc1.mozilla.com: drbd minor 8 of instance vm8.vm1.labs.sjc1.mozilla.com is not active
Fri Apr 22 07:44:42 2011 - ERROR: node vm1-1.labs.sjc1.mozilla.com: drbd minor 9 of instance vm9.vm1.labs.sjc1.mozilla.com is not active
Fri Apr 22 07:44:42 2011 - ERROR: node vm1-1.labs.sjc1.mozilla.com: drbd minor 10 of instance vm10.vm1.labs.sjc1.mozilla.com is not active
Fri Apr 22 07:44:42 2011 - ERROR: node vm1-1.labs.sjc1.mozilla.com: drbd minor 12 of instance vm11.vm1.labs.sjc1.mozilla.com is not active
Fri Apr 22 07:44:42 2011 - ERROR: node vm1-1.labs.sjc1.mozilla.com: drbd minor 13 of instance vm12.vm1.labs.sjc1.mozilla.com is not active
Fri Apr 22 07:44:42 2011 - ERROR: node vm1-1.labs.sjc1.mozilla.com: drbd minor 14 of instance vm13.vm1.labs.sjc1.mozilla.com is not active
Fri Apr 22 07:44:42 2011 - ERROR: node vm1-1.labs.sjc1.mozilla.com: drbd minor 15 of instance vm14.vm1.labs.sjc1.mozilla.com is not active
Fri Apr 22 07:44:42 2011 - ERROR: node vm1-1.labs.sjc1.mozilla.com: drbd minor 16 of instance vm15.vm1.labs.sjc1.mozilla.com is not active
Fri Apr 22 07:44:42 2011 - ERROR: node vm1-1.labs.sjc1.mozilla.com: drbd minor 17 of instance vm16.vm1.labs.sjc1.mozilla.com is not active
Fri Apr 22 07:44:42 2011 - ERROR: node vm1-1.labs.sjc1.mozilla.com: drbd minor 18 of instance vm17.vm1.labs.sjc1.mozilla.com is not active
Fri Apr 22 07:44:42 2011 - ERROR: node vm1-1.labs.sjc1.mozilla.com: drbd minor 19 of instance vm18.vm1.labs.sjc1.mozilla.com is not active
Fri Apr 22 07:44:42 2011 - ERROR: node vm1-1.labs.sjc1.mozilla.com: drbd minor 20 of instance vm19.vm1.labs.sjc1.mozilla.com is not active
Fri Apr 22 07:44:42 2011 - ERROR: node vm1-1.labs.sjc1.mozilla.com: drbd minor 21 of instance vm20.vm1.labs.sjc1.mozilla.com is not active
Fri Apr 22 07:44:42 2011 - ERROR: node vm1-1.labs.sjc1.mozilla.com: drbd minor 22 of instance vm21.vm1.labs.sjc1.mozilla.com is not active
Fri Apr 22 07:44:42 2011 - ERROR: node vm1-1.labs.sjc1.mozilla.com: drbd minor 23 of instance vm22.vm1.labs.sjc1.mozilla.com is not active
Fri Apr 22 07:44:42 2011 - ERROR: node vm1-1.labs.sjc1.mozilla.com: drbd minor 24 of instance vm23.vm1.labs.sjc1.mozilla.com is not active
Fri Apr 22 07:44:42 2011 - ERROR: node vm1-1.labs.sjc1.mozilla.com: drbd minor 25 of instance vm24.vm1.labs.sjc1.mozilla.com is not active
Fri Apr 22 07:44:42 2011 * Verifying instance status
Fri Apr 22 07:44:42 2011 - ERROR: instance vm1.vm1.labs.sjc1.mozilla.com: instance lives on offline node(s) vm1-2.labs.sjc1.mozilla.com
Fri Apr 22 07:44:42 2011 - ERROR: instance vm2.vm1.labs.sjc1.mozilla.com: instance lives on offline node(s) vm1-2.labs.sjc1.mozilla.com
Fri Apr 22 07:44:42 2011 - ERROR: instance vm3.vm1.labs.sjc1.mozilla.com: instance lives on offline node(s) vm1-2.labs.sjc1.mozilla.com
Fri Apr 22 07:44:42 2011 - ERROR: instance vm4.vm1.labs.sjc1.mozilla.com: instance lives on offline node(s) vm1-2.labs.sjc1.mozilla.com
Fri Apr 22 07:44:42 2011 - ERROR: instance vm5.vm1.labs.sjc1.mozilla.com: instance lives on offline node(s) vm1-2.labs.sjc1.mozilla.com
Fri Apr 22 07:44:42 2011 - ERROR: instance vm6.vm1.labs.sjc1.mozilla.com: instance lives on offline node(s) vm1-2.labs.sjc1.mozilla.com
Fri Apr 22 07:44:42 2011 - ERROR: instance vm7.vm1.labs.sjc1.mozilla.com: instance lives on offline node(s) vm1-2.labs.sjc1.mozilla.com
Fri Apr 22 07:44:42 2011 - ERROR: instance vm8.vm1.labs.sjc1.mozilla.com: instance lives on offline node(s) vm1-2.labs.sjc1.mozilla.com
Fri Apr 22 07:44:42 2011 - ERROR: instance vm9.vm1.labs.sjc1.mozilla.com: instance lives on offline node(s) vm1-2.labs.sjc1.mozilla.com
Fri Apr 22 07:44:42 2011 - ERROR: instance vm10.vm1.labs.sjc1.mozilla.com: instance lives on offline node(s) vm1-2.labs.sjc1.mozilla.com
Fri Apr 22 07:44:42 2011 - ERROR: instance vm11.vm1.labs.sjc1.mozilla.com: instance lives on offline node(s) vm1-2.labs.sjc1.mozilla.com
Fri Apr 22 07:44:42 2011 - ERROR: instance vm12.vm1.labs.sjc1.mozilla.com: instance lives on offline node(s) vm1-2.labs.sjc1.mozilla.com
Fri Apr 22 07:44:42 2011 - ERROR: instance vm13.vm1.labs.sjc1.mozilla.com: instance lives on offline node(s) vm1-2.labs.sjc1.mozilla.com
Fri Apr 22 07:44:42 2011 - ERROR: instance vm14.vm1.labs.sjc1.mozilla.com: instance lives on offline node(s) vm1-2.labs.sjc1.mozilla.com
Fri Apr 22 07:44:42 2011 - ERROR: instance vm15.vm1.labs.sjc1.mozilla.com: instance lives on offline node(s) vm1-2.labs.sjc1.mozilla.com
Fri Apr 22 07:44:42 2011 - ERROR: instance vm16.vm1.labs.sjc1.mozilla.com: instance not running on its primary node vm1-1.labs.sjc1.mozilla.com
Fri Apr 22 07:44:42 2011 - ERROR: instance vm17.vm1.labs.sjc1.mozilla.com: instance lives on offline node(s) vm1-2.labs.sjc1.mozilla.com
Fri Apr 22 07:44:42 2011 - ERROR: instance vm18.vm1.labs.sjc1.mozilla.com: instance lives on offline node(s) vm1-2.labs.sjc1.mozilla.com
Fri Apr 22 07:44:42 2011 - ERROR: instance vm19.vm1.labs.sjc1.mozilla.com: instance lives on offline node(s) vm1-2.labs.sjc1.mozilla.com
Fri Apr 22 07:44:42 2011 - ERROR: instance vm20.vm1.labs.sjc1.mozilla.com: instance lives on offline node(s) vm1-2.labs.sjc1.mozilla.com
Fri Apr 22 07:44:42 2011 - ERROR: instance vm21.vm1.labs.sjc1.mozilla.com: instance lives on offline node(s) vm1-2.labs.sjc1.mozilla.com
Fri Apr 22 07:44:42 2011 - ERROR: instance vm22.vm1.labs.sjc1.mozilla.com: instance lives on offline node(s) vm1-2.labs.sjc1.mozilla.com
Fri Apr 22 07:44:42 2011 - ERROR: instance vm23.vm1.labs.sjc1.mozilla.com: instance lives on offline node(s) vm1-2.labs.sjc1.mozilla.com
Fri Apr 22 07:44:42 2011 - ERROR: instance vm24.vm1.labs.sjc1.mozilla.com: instance lives on offline node(s) vm1-2.labs.sjc1.mozilla.com
Fri Apr 22 07:44:42 2011 - ERROR: instance vm25.vm1.labs.sjc1.mozilla.com: instance lives on offline node(s) vm1-2.labs.sjc1.mozilla.com
Fri Apr 22 07:44:42 2011 - ERROR: instance vm26.vm1.labs.sjc1.mozilla.com: instance lives on offline node(s) vm1-2.labs.sjc1.mozilla.com
Fri Apr 22 07:44:42 2011 - ERROR: instance vm27.vm1.labs.sjc1.mozilla.com: instance lives on offline node(s) vm1-2.labs.sjc1.mozilla.com
Fri Apr 22 07:44:42 2011 * Verifying orphan volumes
Fri Apr 22 07:44:42 2011 * Verifying orphan instances
Fri Apr 22 07:44:42 2011 * Verifying N+1 Memory redundancy
Fri Apr 22 07:44:42 2011 - ERROR: node vm1-2.labs.sjc1.mozilla.com: not enough memory on to accommodate failovers should peer node vm1-1.labs.sjc1.mozilla.com fail
Fri Apr 22 07:44:42 2011 * Other Notes
Fri Apr 22 07:44:42 2011 - NOTICE: 1 offline node(s) found.
Fri Apr 22 07:44:42 2011 * Hooks Results
Great. It looks pissed, because Mister Ganeti’s left arm just got cut off. Let’s get a more concise look at the state of things:
root@vm1-1:~# gnt-instance list
Instance Hypervisor OS Primary_node Status Memory
vm1.vm1.labs.sjc1.mozilla.com kvm image+lucid_django vm1-1.labs.sjc1.mozilla.com running 512M
vm2.vm1.labs.sjc1.mozilla.com kvm image+lucid_django vm1-2.labs.sjc1.mozilla.com ERROR_nodeoffline (node down)
vm3.vm1.labs.sjc1.mozilla.com kvm image+lucid_django vm1-2.labs.sjc1.mozilla.com ERROR_nodeoffline (node down)
vm4.vm1.labs.sjc1.mozilla.com kvm image+lucid_django vm1-2.labs.sjc1.mozilla.com ERROR_nodeoffline (node down)
vm5.vm1.labs.sjc1.mozilla.com kvm image+lucid_django vm1-2.labs.sjc1.mozilla.com ERROR_nodeoffline (node down)
vm6.vm1.labs.sjc1.mozilla.com kvm image+lucid_django vm1-2.labs.sjc1.mozilla.com ERROR_nodeoffline (node down)
vm7.vm1.labs.sjc1.mozilla.com kvm image+lucid_django vm1-2.labs.sjc1.mozilla.com ERROR_nodeoffline (node down)
vm8.vm1.labs.sjc1.mozilla.com kvm image+lucid_lpk vm1-2.labs.sjc1.mozilla.com ERROR_nodeoffline (node down)
vm9.vm1.labs.sjc1.mozilla.com kvm debootstrap+default vm1-2.labs.sjc1.mozilla.com ERROR_nodeoffline (node down)
vm10.vm1.labs.sjc1.mozilla.com kvm image+lucid_lpk vm1-2.labs.sjc1.mozilla.com ERROR_nodeoffline (node down)
vm11.vm1.labs.sjc1.mozilla.com kvm image+lucid_lpk vm1-2.labs.sjc1.mozilla.com ERROR_nodeoffline (node down)
vm12.vm1.labs.sjc1.mozilla.com kvm image+lucid_lpk vm1-2.labs.sjc1.mozilla.com ERROR_nodeoffline (node down)
vm13.vm1.labs.sjc1.mozilla.com kvm image+lucid_lpk vm1-1.labs.sjc1.mozilla.com ADMIN_down -
vm14.vm1.labs.sjc1.mozilla.com kvm debootstrap+default vm1-1.labs.sjc1.mozilla.com ADMIN_down -
vm15.vm1.labs.sjc1.mozilla.com kvm image+lucid_lpk vm1-2.labs.sjc1.mozilla.com ERROR_nodeoffline (node down)
vm16.vm1.labs.sjc1.mozilla.com kvm image+lucid_lpk vm1-1.labs.sjc1.mozilla.com ERROR_down -
vm17.vm1.labs.sjc1.mozilla.com kvm image+lucid_lpk vm1-2.labs.sjc1.mozilla.com ERROR_nodeoffline (node down)
vm18.vm1.labs.sjc1.mozilla.com kvm image+lucid_lpk vm1-2.labs.sjc1.mozilla.com ERROR_nodeoffline (node down)
vm19.vm1.labs.sjc1.mozilla.com kvm image+lucid_lpk vm1-2.labs.sjc1.mozilla.com ERROR_nodeoffline (node down)
vm20.vm1.labs.sjc1.mozilla.com kvm image+lucid_lpk vm1-2.labs.sjc1.mozilla.com ERROR_nodeoffline (node down)
vm21.vm1.labs.sjc1.mozilla.com kvm image+lucid_lpk vm1-2.labs.sjc1.mozilla.com ERROR_nodeoffline (node down)
vm22.vm1.labs.sjc1.mozilla.com kvm image+lucid_lpk vm1-2.labs.sjc1.mozilla.com ERROR_nodeoffline (node down)
vm23.vm1.labs.sjc1.mozilla.com kvm image+lucid_lpk vm1-2.labs.sjc1.mozilla.com ERROR_nodeoffline (node down)
vm24.vm1.labs.sjc1.mozilla.com kvm image+lucid_lpk vm1-2.labs.sjc1.mozilla.com ERROR_nodeoffline (node down)
vm25.vm1.labs.sjc1.mozilla.com kvm image+lucid_lpk vm1-2.labs.sjc1.mozilla.com ERROR_nodeoffline (node down)
vm26.vm1.labs.sjc1.mozilla.com kvm image+lucid_lamp vm1-2.labs.sjc1.mozilla.com ERROR_nodeoffline (node down)
We can bring up one instance at a time, like this:
root@vm1-1:~# gnt-instance failover --ignore-consistency vm26
Failover will happen to image vm26. This requires a shutdown of the
instance. Continue?
y/[n]/?: y
Fri Apr 22 07:47:18 2011 * checking disk consistency between source and target
Fri Apr 22 07:47:18 2011 - WARNING: Can't find disk on node vm1-1.labs.sjc1.mozilla.com
Fri Apr 22 07:47:18 2011 * shutting down instance on source node
Fri Apr 22 07:47:18 2011 - WARNING: Could not shutdown instance www1.vm1.labs.sjc1.mozilla.com on node vm1-2.labs.sjc1.mozilla.com. Proceeding anyway. Please make sure node vm1-2.labs.sjc1.mozilla.com is down. Error details: Node is marked offline
Fri Apr 22 07:47:18 2011 * deactivating the instance's disks on source node
Fri Apr 22 07:47:18 2011 - WARNING: Could not shutdown block device disk/0 on node vm1-2.labs.sjc1.mozilla.com: Node is marked offline
Fri Apr 22 07:47:18 2011 * activating the instance's disks on target node
Fri Apr 22 07:47:18 2011 - WARNING: Could not prepare block device disk/0 on node vm1-2.labs.sjc1.mozilla.com (is_primary=False, pass=1): Node is marked offline
Fri Apr 22 07:47:19 2011 * starting the instance on the target node
But doing that for each node would be horrifically slow, so we’ll write a quick and dirty BASH for loop:
root@vm1-1:~# for i in $(gnt-instance list|grep ERROR_nodeoffline|cut -f1 --delimiter= ); do gnt-instance failover --ignore-consistency -f $i; done
Fri Apr 22 07:49:04 2011 * checking disk consistency between source and target
Fri Apr 22 07:49:04 2011 - WARNING: Can't find disk on node vm1-1.labs.sjc1.mozilla.com
Fri Apr 22 07:49:04 2011 * shutting down instance on source node
Fri Apr 22 07:49:04 2011 - WARNING: Could not shutdown instance vm2.vm1.labs.sjc1.mozilla.com on node vm1-2.labs.sjc1.mozilla.com. Proceeding anyway. Please make sure node vm1-2.labs.sjc1.mozilla.com is down. Error details: Node is marked offline
Fri Apr 22 07:49:04 2011 * deactivating the instance's disks on source node
Fri Apr 22 07:49:04 2011 - WARNING: Could not shutdown block device disk/0 on node vm1-2.labs.sjc1.mozilla.com: Node is marked offline
Fri Apr 22 07:49:04 2011 * activating the instance's disks on target node
Fri Apr 22 07:49:05 2011 - WARNING: Could not prepare block device disk/0 on node vm1-2.labs.sjc1.mozilla.com (is_primary=False, pass=1): Node is marked offline
Fri Apr 22 07:49:05 2011 * starting the instance on the target node
All your instances should be running now!
Sharp Netwalker, new Lucid Image
Updated mirror for Netwalker Lucid Image
Some folks in the comments section told me that the download did not work for them, so I added several mirrors. Please see the below post to find the links.
Additionally, I will be adding the Maverick images as soon as I’ve uploaded it, and have an updated Lucid image to improve stability.
Sharp Netwalker Ubuntu Lucid Image
I recently bought a Sharp Netwalker netbook for daily use in class and on the go. One of the parts that I didn’t like was the crusty old Ubuntu 9.04 install that came with it. Thankfully that’s not the only option available to me. I read some reports online that booting from the MicroSD card is possible. I also found a really cool tool in Ubuntu called rootstock. There’s even an android port for it.
I wanted a recent Ubuntu distribution though, which I couldn’t find provided for me online. So I rolled my own, and am reasonably pleased with the results. All of the hardware works, although there are some annoyances, such as no battery meter in the GNOME notification area, and the wireless card isn’t supported by NetworkManager, although still works with iwconfig and wpasupplicant. Additionally, the hotkeys on the top are not bound to any programs.
So here it is.
UPDATE: Commenters brought it to my attention that the link I posted may not work for some people. If that is the case, please try downloading from here, or here. Thank you.
To install this guy, format an SD card with one big ext3 partition and untar the tarball to it.
$ wget http://files.blueheaven.ws/netwalker/netwalker-lucid-0.1.tar.bz2
$ sudo fdisk /dev/mmcblk0 # Make a big partition
$ sudo mkfs.ext3 /dev/mmcblk0p1
$ sudo mount /dev/mmcblk0p1 /mnt
$ cd /mnt
$ sudo tar xvjpf ~/netwalker-lucid.0.1.tar.bz2
$ cd ~
$ sudo umount /mnt
Afterwards, eject it and insert it into the Netwalker(unless you’re doing all this FROM the netwalker). Then shut the system completely off. To boot off of the MicroSD card, hold both mouse buttons down, then press and hold the power button for 2 seconds. Continue holding the mouse buttons down until black text bleeds through the white ‘SHARP’ splash screen. The first boot should take noticeably longer than other boots. The default username and password are both ‘ubuntu’.
I’m currently updating the image to use Ubuntu Maverick, and will publish a new post once I have a working image.
Routerstation Pro Backfire Nightlies!
That’s right boys and girls. I’ve started compiling RouterStation Pro OpenWRT nightly builds for all punks who like to live on the edge. From my testing these images are rather stable, and aren’t prone to consistent or serious issues. Since this changes nightly your mileage may vary.
Go get your nightly builds here.