Tuesday, May 26, 2009

Flock 2.5 - Browser for Social Networking.

Flocks, I have found a new browser dedicated for social networking, Flock 2.5, powered by the reliable and secure Mozilla Application Framework. Right now I am posting this blog from the Flock interface. Its the best browser for hardcore networking flocks.


Blogged with the Flock Browser

Sunday, May 24, 2009

Network Usage from console Max / Cur / Avg.

Here is a small shell script which I have used to monitor the Maximum, Current and average usage of a network interface.

#!/bin/bash
IFACE=bond0
oldbyt=(0 0);
cnt=1;
ORXB=0
OTXB=0
MAXRXB=0
MAXTXB=0
while : ; do
byte=($(/sbin/ifconfig $IFACE | \
sed -e 's/:/ /g'|awk '$2 ~ /bytes/ {print $3,$8}'));
if [ ${oldbyt[0]} -ne 0 ] && [ ${oldbyt[1]} -ne 0 ]; then
RXB="$(((${byte[0]}-${oldbyt[0]})/1024))"
TXB="$(((${byte[1]}-${oldbyt[1]})/1024))"
ORXB=$(($RXB+$ORXB))
OTXB=$((TXB+$OTXB))
[ $MAXRXB -lt $RXB ] && MAXRXB=$RXB
[ $MAXTXB -lt $TXB ] && MAXTXB=$TXB
echo -e "\fCUR RX : $RXB\tTX : $TXB\nAVG RX : $(($ORXB/$cnt))\tTX : $(($OTXB/$cnt))\nMAX RX : $MAXRXB \tTX : $MAXTXB"
cnt=$(($cnt+1))
fi
oldbyt=(${byte[@]});
sleep 1
done


I know I can do the same thing using some stock utilities like ntop or iftop, but this was a production environment and I don't want to install any thing unless it is absolute necessity.

Friday, May 22, 2009

Mozilla Prism

Good news from Mozilla, they have released the beta version of Prism - formerly webrunner. I have always thought of a browser like that, and I think I have tested webrunner before.

Using Prism you can directly run you favourite web application from your desktop. As Mozilla folks says "a distraction free browser", free from all the clutter that a browser has.

Currently I am doing some test on my Kubuntu laptop. Will post results as the test progress. You can also get the latest version from this link.

Thursday, May 21, 2009

SAMBA + Tortoise SVN Issue

Today we found a weird issue with our development environment. The SVN repository is built using FSFS and is served using svnserv. The developers are using samba share to keep their working copy on windows systems.

The issue started appearing after upgrading the tortoise SVN to a new version. Each time the working copy is updated, we got an error saying that "Access denied on Y:/xxx/.svn/tmp/entries".

We definetly knew that it is not an SVN issue, but could be SAMBA.

After some research on Google it turned out to neither SVN nor SAMBA, but a special case where UNIX file ownership prevents changing file permissions, and DOS semantics prevent deletion of a read only file.

Luckly we found the following work around from tortoisesvn.tigris.org

After upgrading to TortoiseSVN 1.5.x or later, you get a lot of "Access denied" errors for most of the Subversion commands if your working copy is stored on a SAMBA share.

Some users reported that the problem went away after they upgraded SAMBA to the latest version. If that does not help or you can't upgrade, allow readonly files to be deleted in the SAMBA config file:

[global]
delete readonly = yes
For older versions, try:
[global]
create mask = 0644
force create mode = 0600
security mask = 0555
force security mode = 0600

Setting up YUM Repository

Click here to read a very good tutorial on how to setup your own YUM Repository. Thanks to Sabarish

March of the terminators: Robot warriors (www.dailymail.co.uk)

A few minutes before nine in the morning, and the young soldiers have no idea of the horror that is about to strike them. They are taking part in a massive military training exercise, involving 5,000 troops, and are about to showcase the latest in robotic weapons technology. The MK5 anti-aircraft system, with two huge 35mm cannons, is essentially a vast robotic weapon, controlled by a computer.

But while it's one thing when your laptop freezes up, it's quite another when it is controlling an auto-loading magazine containing 500 high-explosive rounds.

As the display begins, the South African troops sense quickly that something is terribly wrong. The system appears to jam - but what happens next is truly chilling. Read more...

Five-Dimensional Data Storage (www.technologyreview.com)

A new light-responsive material could lead to discs the size of today's DVDs that store four orders of magnitude more data. Traditional DVDs and CDs store data on their surface in two dimensions, and holographic discs can store it in three. Now researchers have for the first time demonstrated what they call a five-dimensional optical material. It can record data in three spatial dimensions and in response to different wavelengths and polarizations of laser light. more...

Tuesday, May 12, 2009

VMware vSphere

Today the guys from GBM gave us a good introduction about the VMware vSphere and the new IBM blade server HS22.

VMware vSphere seems to be a very good mash up of the existing technology, which has brought the cloud computing to the enterprise. It can better utilize the existing hardware in the data center and dramatically reduce the IT hardware spending. more on this can be found here

Monday, May 11, 2009

OCFS2 Setup.

Hardware Requirement.

  • Shared Storage, accessible over SAN between cluster nodes.
  • HBA for Fiber SAN on each node.
  • Network Connectivity for hearbeat between servers.

OS Installation.

Regular installation of RHEL 5.x. 64 bit with the following configuration.
  1. SELinux must be disabled.
  2. Time Zone - Saudi Time. (GMT +3)
Packages
  1. Gnome for Graphics desktop.
  2. Development libraries
  3. Internet tools - GUI and text based
  4. Editors - GUI and text based
Partitioning the HDD
  1. 200 MB for /boot partition
  2. 5 GB for /var partition
  3. 5 GB for /tmp partition
  4. Rest of the space to / partition.
The server should be up to date with the latest patches from RedHat Network.

Installation of OCFS2 Kernel Module and Tools

OCFS2 Kernel modules and tools can be downloaded from the Oracle web sites.

OCFS2 Kernel Module:

http://oss.oracle.com/projects/ocfs2/files/RedHat/RHEL5/x86_64/1.4.1-1/2.6.18-128.1.1.el5

Note that 2.6.18-128.1.1.el5 should match the current running kernel on the server. A new OCFS2 Kernel package should be downloaded and installed each time the kernel is updated to a new version.

OCFS2 Tools:

http://oss.oracle.com/projects/ocfs2-tools/dist/files/RedHat/RHEL5/x86_64/1.4.1-1/ocfs2-tools-1.4.1-1.el5.x86_64.rpm

OCFS2 Console:

http://oss.oracle.com/projects/ocfs2-tools/dist/files/RedHat/RHEL5/x86_64/1.4.1-1/ocfs2console-1.4.1-1.el5.x86_64.rpm

OCFS2 Tools and Console depends on several other packages which are normally available on a default RedHat Linux installation, except for VTE (A terminal emulator) package.

So in order to satisfy the dependencies of OCFS2 you have to install the vte package using

yum install vte

After completing the VTE installation start the OCFS2 installation using regular RPM installation procedure.

rpm -ivh ocfs2-2.6.18-92.128.1.1.el5-1.4.1-1.el5.x86_64.rpm \
ocfs2console-1.4.1-1.el5.x86_64.rpm \
ocfs2-tools-1.4.1-1.el5.x86_64.rpm


This will copy the necessary files to its corresponding locations.

Following are the important tools and files that are used frequently

/etc/init.d/o2cb
/sbin/mkfs.ext2
/etc/ocfs2/cluster.conf (Need to create this Folder and file manually)

OCFS2 Configuration.

It is assumed that the shared SAN storage is connected to the cluster nodes and is available as /dev/sdb. This document will cover installation of only two node (node1 and node2) ocfs2 cluster.

Following are the steps required to configure the cluster nodes.

Create the folder /etc/ocfs2

mkdir /etc/ocfs2

Create the cluster configuration file /etc/ocfs2/cluster.conf and add the following condents.

node:
ip_port = 7777
ip_address = 10.10.163.65
number = 1
name = node1
cluster = ocfs2

node:
ip_port = 7777
ip_address = 10.10.163.66
number = 2
name = node2
cluster = ocfs2

cluster:
node_count = 2
name = ocfs2


Note that the:
  • Node name should match the "hostname" of corresponding server.
  • Node number should be unique for each member.
  • Cluster name for each node should match the "name" field in "cluster:" section.
  • "node_count" field in "cluster:" section should match the number of nodes.

O2CB cluster service configuration.

The o2cb cluster service can be configured using:

/etc/init.d/o2cb configure (This command will show the following dialogs)

Configuring the O2CB driver.


This will configure the on-boot properties of the O2CB driver.
The following questions will determine whether the driver is loaded onboot.
The current values will be shown in brackets ('[]').
Hitting without typing an answer will keep that current value.
Ctrl-C will abort.

Load O2CB driver on boot (y/n) [n]: y

Cluster stack backing O2CB [o2cb]:

Cluster to start on boot (Enter "none" to clear) [ocfs2]: ocfs2

Specify heartbeat dead threshold (>=7) [31]:

Specify network idle timeout in ms (>=5000) [30000]:

Specify network keepalive delay in ms (>=1000) [2000]:

Specify network reconnect delay in ms (>=2000) [2000]:

Writing O2CB configuration: OK

Loading filesystem "ocfs2_dlmfs": OK

Mounting ocfs2_dlmfs filesystem at /dlm: OK

Starting O2CB cluster ocfs2: OK


Note that the driver should be loaded while booting and the "Cluster to start" should match the cluster name, in our case "ocfs2".

As a best practice it is adviced to reboot the server after successfully completing the above configuration.

Formating and Mounting the shared file system.

Before we can start using the shared filesystem, we have to format the shared device using OCFS2 filesystem. Following command will format the filesystem with ocfs2 and will set some additional features.

mkfs.ocfs2 -T mail -L ocfs-mnt --fs-features=backup-super,sparse,unwritten -M cluster /dev/sdb

Where :

-T mail

Specify how the filesystem is going to be used, so that mkfs.ocfs2 can chose optimal filesystem parameters for that use.

"mail" option is a ppropriate for file systems which will have many meta data updates. Creates a larger journal.

-L ocfs-mnt

Sets the volume label for the filesystem. It will used instead of device named to identify the block device in /etc/fstab

--fs-features=backup-super,sparse,unwritten

Turn specific file system features on or off.
backup-super
Create backup super blocks for this volume
sparse
Enable support for sparse files. With this, OCFS2 can avoid allocating (and zeroing) data to fill holes
unwritten
Enable unwritten extents support. With this turned on, an application can request that a range of clusters be pre-allo-cated within a file.

-M cluster

Defines if the filesystem is local or clustered. Cluster is used by default.

/dev/sdb

Block device that need to be formated.

Note: The default mkfs.ocfs2 option covers only 4 node cluster. In case if you have more nodes you have to specify number of node slots using -N number-of-node-slots.

We are ready to mount the new filesystem once the format operation is completed successfully.

You may mount the new filesystem using the following command. It is assumed that the mount point (/mnt) exists already.

mount /dev/sdb /mnt

If the mount operation was successfully completed you can add the following entry to /etc/fstab for automatic mounting during the bootup process.

LABEL=ocfs-mnt /mnt ocfs2 rw,_netdev,heartbeat=local 0 0

Test the newly added fstab entry by rebooting the server. The server should mount /dev/sdb automatically to /mnt. You can verify this using " df " command after reboot.

My First Blog

Even though late, I am starting my first blog. I hope I can fill this space with useful information for others, just like I find others blogs useful to me.