Monday, August 16, 2010

Blogger why doth you hate me?

So you write a blog, you decide you want a customer domain. Blogger then makes you life hell.

I have to give credit, where its due, but if you see

Another blog is already hosted at this address.

Then go and check out Shafar's blog post.

I have been recently phrasing question design (esp. web design) along the lines "What is Facebook designed X"... at least I could have had an amusing chat with people on the merits of Blogger versus Wordpress...

Friday, August 13, 2010

More lvm2 weirdness

I have just install lv,2 on my Ubuntu 9.10 instance on EC2. I go to create the logical volume and got the following

# lvcreate -L 1g -n data_vol data_vg
/proc/misc: No entry for device-mapper found
Is device-mapper driver missing from kernel?
Failure to communicate with kernel device-mapper driver.
/proc/misc: No entry for device-mapper found
Is device-mapper driver missing from kernel?
Failure to communicate with kernel device-mapper driver.
Incompatible libdevmapper 1.02.27 (2008-06-25)(compat) and kernel driver
striped: Required device-mapper target(s) not detected in your kernel
Run `lvcreate --help' for more information.

It turns out that after install some of the modules are not loaded, so you have to

# modprobe dm_mod
# modprobe dm_mirror
# modprobe dm_snapshot

After that the command executes correctly!

# lvcreate -L 1g -n data_vol data_vg
Logical volume "data_vol" created

Can't install lvm2 on Ubuntu 9.10 on EC2?

Welcome to planet weird, or should I say Linux-planet-weird.

I wanted to create a new logical volume based on an Amazon pair of EBS volumes.

So I get to the point of creating the Physical Volume

# pvcreate /dev/sdf1
The program 'pvcreate' is currently not installed. You can install it by typing:
apt-get install lvm2
pvcreate: command not found

That was unfortunate, so I then tried ti install LVM2

# apt-get install lvm2
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package lvm2 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package lvm2 has no installation candidate

After much, much banging of head against hard objects I found a solution

# apt-get update
[...]
# apt-get install lvm2
[...]

Now I have pvcreate on all the wonders from the lvm2 package!






Tuesday, May 4, 2010

MySQL ODBC drivers, Excel and Mac OS-X 10.6

What a nightmare!

So what started off as a simple problem (adding a query into a Microsoft Excel spreadsheet) turned out to be a nightmare!

This problem seemed to affect both Office 2004 and 2008, I had previously that them working in OS-X 10.5, however I just got a new machine, which is 64bit capable and running 10.6.

Looking on the MySQL download page, there were no build for 10.6, only 10.5. So I experimented.

Here's what I tried
  • MySQL ODBC Driver 5.1.6 x86 64 bit for 10.5
  • MySQL ODBC Driver 5.1.6 x86 32 bit for 10.5
From the Apple ODBC Manager, I could create a DSN, I could connect to my MySQL database just fine. Going into Excel and then Data > Get External Data > New Database Query brought up the iODBC ODBC Manager. However when I tried to connect to my database, I got the following message.

[iODBC][Driver Manager] Specified driver could not be loaded

Office 2008 (if I recall is a x86 built product), so I tried with Office 2004 which I knew was PowerPC. Still the same message.

Now what I did next is very weird but works, I installed the following
  • MySQL ODBC Driver 5.1.6 PowerPC 32 bit for 10.5
I had some issue trying to setup in the Apple ODBC Manager, so I hacked the .ini file in /Library/ODBC/odbc.ini. Here's a sample

[test]
Driver = /Develop/Developer/mysql-connector-odbc-5.1#377675/lib/libmyodbc5-5.1.6.so
PORT = 3306
DATABASE = testdb
PWD = notmyrealpassword
SERVER = db2.acme.com
UID = admin

So strike me down if this worked for Office 2004. For Office 2008 its even more weird, the PowerPC driver allows me to connect with Microsoft Query, but I need the x86 Driver to query from the spreadsheet. BUt you can't edit the query afterwards :-(

I just downgraded to Office 2004 for this, and will save the final conclusion for another day.

Tuesday, January 26, 2010

Expanding the root partition on Windows & Ubuntu

So I run out of space on my Windows XP and Ubuntu root partitions. Turns out that the same procedure works for both... its a two-for-one deal!

Step 1 - Cleanly shutdown the Virtual Machine

Step 2 - Resize the Virtual Disk
In Fusion for the Mac, this is just a question of going to the setting panel and adjusting the slide for the Disk capacity (Virtual Machines > Settings > Hard Disk).

If you are using one of the myriad of other VMWare products, one reliable way is to usevmware-vdiskmanager. This provides a mechanism to resize the virtual disk through the command line.

Step 3 - Re-partition the disk
You will need to download our use your favorite partitioning tool. I have used gparted successfully.

Using the gparted ISO disk image, its a simple task of mounting the image in the CD/DVD drive and then rebooting. Move the partitions around in order to utilize the free space in the virtual disk

Step 4 - Reboot
After you have created the free space for the O/S, reboot and you are away!

Tuesday, January 19, 2010

Fusion 3.0 slow down...fixed!

I had purchased Fusion 3, at a discount because I was part of the Beta program, but mostly because I brought into the fact that it was optimized for Snow Leopard and was faster. Was is there not to like about that.

Well, firstly, Fusion 3.0 just seemed to be much slower at taking snapshots and restoring VMs. Given that is what I'm doing 90% of the time that was a problem.

There seem to be two fixes that at least help, if not resolve the problem

1. Remove the VM directory from Spotlight indexing

Easy enough to do on System Preferences > Spotlight > Privacy

Click on the "+" and add your Virtual machine directory into the Privacy list.

2. Stop VMware for starting an index
Seems that VMWare causes a re-index scan to occur, so lets turn that off!

defaults write com.vmware.fusion PLLibrarySpotlightSearchDone -bool YES

Tuesday, January 5, 2010

Resizing a RHEL 4 & 5 LVM in a VMWare Guest

Nothing like starting the new year with an "out of space" problem.

So, I have a RHEL 5.3 image running under VMWare Fusion. I needed more space in order to install some more software... easy I thought until I tired it and with the help of several blogs and other posting, I thought I would put my recipe into words. So the challenge is to add and extra 2GB into the root filesystem

Step 1 - Cleanly shutdown your VMWare guest
Suggest that you shutdown cleanly as you can to ensure that all other steps go smoothly.

Step 2 - Remove your Snapshots of the Guest
VMWare Fusion on a Mac forces you to remove any snapshots before you can re-size the disk

Step 3 - Resize the disk
There are some command line tools for doing this, but in the 'Hardware Settings' for the guest you can resize a disk (in VMWare Fusion and above).

Step 4 - Restart your Guest
Restart you guest

Step 5 - Look at your disk space
If you look at the disk psace from your guest, you will see that it show no extra disk space! This is simply because the O/S has not seen the added space yet. Use "df" to take a look at the mounted volumes on your system.
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
3.8G 3.2G
427M 89% /
/dev/sda1 99M 12M 82M 13% /boot
tmpfs 506M 0 506M 0% /dev/shm
.host:/ 233G 173G 61G 74% /mnt/hgfs

As you can see, we have 427M if space left on the root file-system "/".

Step 6 - Make sure that there is free space
You can next check if the O/S can see the free space. Use the utility "parted" to view the partitions.
[root@localhost ~]# parted
GNU Parted 1.8.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)
print free

Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 8590MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number Start End Size Type File system Flags
1 32.3kB 107MB 107MB primary ext3 boot
2 107MB 6440MB 6333MB primary lvm
6440MB 8587MB 2147MB Free Space

(parted) quit
Step 7 - Make a new partition out of the free space
In the step above you can see the free space, which starts at 6440MB and ends at 8587MB. You now need to make a new partition, using "parted" again
[root@localhost ~]# parted
GNU Parted 1.8.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)
mkpart
Partition type? primary/extended?
primary
File system type? [ext2]?
ext3
Start?
6440
End?
8587

(parted)
print

Model: VMware, VMware Virtual S (scsi)
Disk
/dev/sda: 8590MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number Start End Size Type File system Flags
1 32.3kB 107MB 107MB primary ext3 boot
2 107MB 6440MB 6333MB primary lvm
3 6440MB 8587MB 2147MB primary

(parted)
quit
We have a new partition out of the free space... but we have not finished yet!

Step 8 - Create the Physical Volume from the Partition
Now that we have a partition on the disk we now create a physical volume using the "pvcreate" command.
[root@localhost ~]# pvcreate /dev/sda3
Physical volume "/dev/sda3" successfully created
The device name (/dev/sda3) came from Step 7, concatenating the device name (/dev/sda) with the partitions number (3) to get /dev/sda3.

Step 9 - Determine the Volume Group
Now that we have a partition, we need to add it into the Volume Group. First find the name of the volume group using the "vgscan" command.
[root@localhost ~]# vgscan
Reading all physical volumes. This may take a while...
Found volume group "
VolGroup00" using metadata type lvm2
Step 10 - Add the partition into the Volume Group
Now add the partition into the volume group using the "vgextend" command.
[root@localhost ~]# vgextend VolGroup00 /dev/sda3
Volume group "VolGroup00" successfully extended
Here's where we got the information from
  • VolGroup00 came from Step 8
  • /dev/sda3 came from Step 7, concatenating the device name (/dev/sda) with the partitions number (3) to get /dev/sda3
Step 11 - Extend the Logical Volume
Next we have to tell the Logival Volumn Manager (LVM) that we have an additional partition to add. We do this using the "lvextend" command.

[root@localhost ~]# lvextend -l +63 /dev/VolGroup00/LogVol00 /dev/sda3
Extending logical volume LogVol00 to 5.84 GB
Logical volume LogVol00 successfully resized
What the command says above is the following
  • Use partition /dev/sda3
  • On Volume /dev/VolGroup00/LogVol00 (the name comes from Step 5)
  • By 63 extents, this is roughly 2GB. There are other options that let you specific this in terms of GB, percentage free etc.
Step 12 - Now extend the filesystem
The the Logical Volume is just a collection of space. Typically you then take this space and create a file-system. Given that we have a file-system we want to extend it with the space we just added to the Logical Volume. We do this with the "resize2fs" command.

Step 12.1 - Redhat 4.x

localhost ~]# ext2online /dev/VolGroup00/LogVol00

Step 12.2 - Redhat 5.x
[root@localhost ~]# resize2fs /dev/VolGroup00/LogVol00
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/VolGroup00/LogVol00 is mounted on /; on-line resizing required
Performing an on-line resize of /dev/VolGroup00/LogVol00 to 1531904 (4k) blocks.
The filesystem on /dev/VolGroup00/LogVol00 is now 1531904 blocks long.
This command takes all the space we added to the Logical Volume... now the acid test, do we see the free space in the file-system?

Step 13 - Check for free space
Check for the free space, using the "df" command.
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
5.7G 3.2G 2.3G 59% /
/dev/sda1 99M 12M 82M 13% /boot
tmpfs 506M 0 506M 0% /dev/shm
.host:/ 233G 173G 61G 75% /mnt/hgfs

Success! You can see we now have an extra 2GB of free space! Go make yourself a cup of tea.