September 14, 2012

Publish SSH Server through TMG

Yet another casual but useful post.

Here's how I did it.

If you have a look at all the protocols available in Forefront Threat Management Gateway Toolbox, SSH is there, but it is outbound.

TMG forwards only inbound protocols. So, You will have to create a new protocol definition with nay name you like, port 22 and "inbound". And then create a non-web server protocol publishing rule.

It seems dumb but ate my 10 minutes.

That's it.

Labels: , , , ,

August 12, 2012

RTNETLINK answers: File exists

If you've come across error "RTNETLINK answers: File exists" when using dhclient to renew IP address, here's how I did it:

root@SERVER02 :dhclient eth0 -r  
root@SERVER02 :dhclient eth0  

The -r option releases current configuration for the interface, allowing dhclient to create new config file.

Labels: , , ,

August 8, 2012

6 things you probably want to do after Solaris 10 installation

1. Set BASH as default shell for root:
This is first thing I really do! Because bash has multiple advantages for day to day use and scripting too, over other shells.
For this you can simply edit /etc/passwd file and change the shell from very first line.
By default it is /sbin/sh, you can change it to /bin/bash

2. Change the hostname from "unknown"
To change the hostname temporarily:
 hostname SERVER01  
To change the hostname so that it is persistent across reboots:
 echo SERVER01 > /etc/nodename  
However, the changed hostname is re-set when you run sys-unconfig command to reset the configuration of the system.

3. Disable GUI Login:
 /usr/dt/bin/dtconfig -d  
For more, see here about disabling and enabling GUI login in Solaris

4. Configure loghost:
You might get messages such as "loghost could not be resolved.". To be able to resolve loghost you must configure DNS Server or you can add entry in /etc/hosts such as "127.0.0.1  loghost".

5. Disable sendmail:
You can disable sendmail by issuing a simple command,
 svcadm disable sendmail  
Hmm... not everybody uses sendmail... 

6. Set PS1 variable (This is only for people using BASH):
It is solely user's choice to set this variable. Solaris has it as PS1='\s-\v\$ ' by default.
However, I set it as PS1="$LOGNAME@$HOSTNAME# " so that it will be displayed as:
 root@SERVER01# _  
For more information on PS1 environment variable check here and to make it look like Angelina Jolie :D check here.

Labels: , , ,

August 4, 2012

Solving basics hell out of vsftpd

Configuring vsftpd isn't a very hard thing. If you haven't read the docs, then its crucial to go.

I had a fresh installation of vsftpd on CentOS 6.2
I tweaked hardly one or two params in /etc/vsftpd/vsftpd.conf such as "anonymous_enable=NO"
Then created a new user using:

 #useradd -m -d /home/user1 -s /bin/bash user1  

Then I tried to connect to the server using our brand new user1.
Here's what I got:
500 OOPS: cannot change directory :/home/user1

After a bit digging on Google and thanks to this link, I was able to do it when I ran following command:

 /usr/sbin/setsebool -P ftp_home_dir 1  

This command takes a while to run, but it worked for me after that.
The setsebool sets boolean variables in SELinux.

Labels: , , , , , , ,

July 18, 2012

Find pid in Solaris 10


If you do not know the pid of a process, you can use "pidof" command in Linux. In case of Solaris, its not available.

Here's how you can find it:

 #ps -ef | grep nscd | grep -v grep | cut -c12-19
123

Here, it will find the pid of nscd. the cut command will cut characters from 12 to 19 from output of 'ps -ef' command.
or
 #ps -ef | grep nscd | grep -v grep | awk '{print $2}'
Here, we use awk to print second column of ps.

Labels: , , ,

Stopping OpenLDAP

This is most dumb but useful post. How to turn off slapd.

You know how to start the slapd:

 #/usr/local/libexec/slapd  [-option..]

however, pkill slapd is not the correct way to turn off slapd.

Here's how you turn it off:

 #kill -INT `cat /usr/local/var/slapd.pid`  

This will send appropriate signal to slapd process, and will store any cached data and close gracefully.

Labels: , , , , ,

July 17, 2012

OpenLDAP 2.4 on CentOS 6.2 Part 2

Continuing from Part 1.

Once you install OpenLDAP, it is yours.
Now you need to configure /usr/local/etc/openldap/slapd.conf
Note that, I have only changed

suffix          "dc=kaustubhghanekar,dc=com"  
rootdn         "cn=Manager,dc=kaustubhghanekar,dc=com"
Here's my slapd.conf:

 #  
 # See slapd.conf(5) for details on configuration options.  
 # This file should NOT be world readable.  
 #  
 include          /usr/local/etc/openldap/schema/core.schema  
 # Define global ACLs to disable default read access.  
 # Do not enable referrals until AFTER you have a working directory  
 # service AND an understanding of referrals.  
 #referral     ldap://root.openldap.org  
 pidfile          /usr/local/var/run/slapd.pid  
 argsfile     /usr/local/var/run/slapd.args  
 # Load dynamic backend modules:  
 # modulepath     /usr/local/libexec/openldap  
 # moduleload     back_bdb.la  
 # moduleload     back_hdb.la  
 # moduleload     back_ldap.la  
 # Sample security restrictions  
 #     Require integrity protection (prevent hijacking)  
 #     Require 112-bit (3DES or better) encryption for updates  
 #     Require 63-bit encryption for simple bind  
 # security ssf=1 update_ssf=112 simple_bind=64  
 # Sample access control policy:  
 #     Root DSE: allow anyone to read it  
 #     Subschema (sub)entry DSE: allow anyone to read it  
 #     Other DSEs:  
 #          Allow self write access  
 #          Allow authenticated users read access  
 #          Allow anonymous users to authenticate  
 #     Directives needed to implement policy:  
 # access to dn.base="" by * read  
 # access to dn.base="cn=Subschema" by * read  
 # access to *  
 #     by self write  
 #     by users read  
 #     by anonymous auth  
 #  
 # if no access controls are present, the default policy  
 # allows anyone and everyone to read anything but restricts  
 # updates to rootdn. (e.g., "access to * by * read")  
 #  
 # rootdn can always read and write EVERYTHING!  
 #######################################################################  
 # BDB database definitions  
 #######################################################################  
 database     bdb  
 suffix          "dc=kaustubhghanekar,dc=com"  
 rootdn          "cn=Manager,dc=kaustubhghanekar,dc=com"  
 # Cleartext passwords, especially for the rootdn, should  
 # be avoid. See slappasswd(8) and slapd.conf(5) for details.  
 # Use of strong authentication encouraged.  
 rootpw          secret  
 # The database directory MUST exist prior to running slapd AND   
 # should only be accessible by the slapd and slap tools.  
 # Mode 700 recommended.  
 directory     /usr/local/var/openldap-data  
 # Indices to maintain  
 index     objectClass     eq  

Then start slapd.
Before starting it, make sure that environment variables work perfect.
To check this, run following:


 # ldd /usr/local/libexec/slapd  
     linux-vdso.so.1 => (0x00007fffe01ff000)  
     libdb-5.3.so => /usr/local/BerkeleyDB.5.3/lib/libdb-5.3.so (0x00007fe2f743e000)  
     libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003fd1400000)  
     libresolv.so.2 => /lib64/libresolv.so.2 (0x0000003fd2c00000)  
     libc.so.6 => /lib64/libc.so.6 (0x0000003fd0c00000)  
     /lib64/ld-linux-x86-64.so.2 (0x0000003fd0800000)  


So now all the .so files are in place, we can start slapd.


 # /usr/local/libexec/slapd  

Verify all good status by running 'echo $?'


Sometimes when starting slapd after rebooting your server, may give error like this:


/usr/local/libexec/slapd: error while loading shared libraries: libdb-5.3.so: cannot open shared object file: No such file or directory


This is again problem with the environment variables. Make sure you have the variables CPPFLAGS, LDFLAGS, LD_LIBRARY_PATH are configured correctly as described in part1.


Now you can start populating server by adding objects.
For more on creating .ldif files and adding them using ldapadd, ldapmodify etc., look here.

Labels:

OpenLDAP 2.4 on CentOS 6.2 Part 1

It is painful when you have errors and somehow you aren't getting way around it.

Here's how I did my Installation:

Downloaded Latest release of OpenLDAP (2.4.31) from here.

Transferred the file to the CentOS 6.2 Server using Secure Copy (SCP). The directory on server can be any with sufficient space in it. I used /home.

The downloaded package was openldap-2.4.31.tgz.
Extract it.


 # tar -xvf openldap-2.4.31.tgz  

This will create a directory /home/openldap-2.4.31
cd to that Directory.

Here you will have some files including the "configure" script.
To check what options the script provides, perform following command


 #./configure --help  

It is always better to let the script decide what options are best for you. We will choose options later as required.


 #./configure

It will start to configure the build.

Here's first error I encountered:

configure: error: Unable to locate cc(1) or suitable replacement.  Check PATH or set CC.

Then I did


 yum install gcc

Which installed development tools, C compiler etc.

The next error, most common:

configure: error: MozNSS not found - please specify the location to the NSPR and NSS header files in CPPFLAGS and the location to the NSPR and NSS libraries in LDFLAGS (if not in the system location)

Location for NSPR and NSS Libraries and Headers varies with Operating System. However, I was unable to find that. I will update soon as soon as I find it.

I tried following option


 #./configure --with-tls=no  

This option bypassed the tls check.

WARNING: Your LDAP Server will then be unable to have TLS Data Protection.

The next error:
configure: error: BDB/HDB: BerkeleyDB not available

This made me download and install BerkeleyDB from here.
To install Berkeley DB see the documentation. I copied it to /home and installed it as follows:


 #tar -xvf db-5.3.21.gz  
 #cd db-5.3.21  
 #make  
 #make install  

Even after installing Berkely DB, it didn't let me proceed with same error. What was missing?
Well I set a few Variables, and I was off.


 CPPFLAGS="-I/usr/local/BerkeleyDB.5.3/include"  
 export CPPFLAGS  
 LDFLAGS="-L/usr/local/lib -L/usr/local/BerkeleyDB.5.3/lib -R/usr/local/BerkeleyDB.5.3/lib"  
 export LDFLAGS  
 LD_LIBRARY_PATH="/usr/local/BerkeleyDB.5.3/lib"  
 export LD_LIBRARY_PATH  

Make sure you put a capital "I" instead of "i" in CPPFLAGS or it may throw following error:


configure:5251: error: C compiler cannot create executables
See `config.log' for more details.

Then the harsh configure was done.
Next command, Run "make depend", then "make", then "make test" and last "make install"!

Continuing in Part 2, the configuration after installing OpenLDAP.

Labels: , , ,

July 3, 2012

Solving for error when installing Role Center and Enterprise Portal AX 2009

This error ate my head for many hours before I was able to solve it.
I had this error:

No .NET Business Connector session could be found.

When installing Role Center and Enterprise Portal. Make sure you have done following:
  1. AX Client and Business Proxy Connector accounts are pointing to appropriate AOS.
  2. If you have installed SP1 for AOS, then you need to have it installed for Client and BC Proxy also.
  3. Compile SysDevelopmentProxy class from Application Object Tree. If not possible, compile whole application.
Third step is solution for above problem. Very bad.
Also, thanks to Iulian Cordobin on dynamicsuser.net for the solution.

Labels: , ,

June 30, 2012

Swapping your droid device with your Friend's!


Ever wondered why Android devices are better than any apple devices running iOS? There are many reasons, I have got one more for you. You can easily swap your devices by just performing following procedure.

Checklist before swapping your phone/tablet with your friend's:
1. Make sure you backup all your SD Card data by connecting it to PC before performing any of the steps below.
2. Make sure you have at least 1 GB of free space on your SD Card.
3. Make sure you have >30% of battery remaining. Its better to keep on AC charging.

What is recommended?
1. To have your contacts synced up with your Google Account.
2. Root.
3. Clockworkmod Recovery.
4. Not all Phone apps work with Tabs and vice versa. Its better to swap a phone with a phone and tablet with a tablet.

What this article does not cover?
1. Understanding what is android.
2. What is root and how to do it?
3. What is Clockworkmod, how do I install it and who is Koush? (BTW he's the  developer of CWM)
4. Backing up your system settings like "Saved WiFi networks","Ringtone and Volume settings" etc. It is neither recommended and does not always work.

Here is a simple swap process:
1. Backup Device1, Device2.... Devicen using backup flowchart below.
2. Connect devices to computer. Copy all files from SD Card of each device to a folder on your PC.
3. WARNING! MAKE SURE YOU HAVE ALL YOUR DATA BACKED UP! Now Format your device. To do this, go to Settings => Privacy => Factory Data Reset. Make sure you also format the USB Storage.
4. Restore is simply inverted backup process. Just copy the data you have backed up to SD Card and then restore it using respective apps. That's it!
5. Make your iPhone friends jealous after buying me a chocolate.


Backup:


A:
Download and Install "Titanium Backup" from Google Play. Grant it root access  when it asks for. Then backup your apps using screens below.





Titanium Backup Creates a folder "/mnt/sdcard/Titanium Backup" and stores its backups in it. You can use Cloud Services to store your data too if you purchase the app.

B:
Contacts are backed up with Google Account automatically. If this is not happening with you, you must check sync options.
When you add any new contacts to the phone, they should be chosen to store on your "Google Account" and not "Phone" or "SIM". Also, the Contacts sync option must be checked in Settings=>Accounts and Sync to make sure they sync with Google Servers.
However, if you do not wish to sync contacts with Google, there are plenty other options available.
I recommend using "Super Backup" search for "com.idea.backup.smscontact" in Google Play.

C:
You can use "Super Backup" mentioned above to backup Call Logs too.
As other option, I've been using "Call Logs Backup and Restore" "com.riteshsahu.CallLogBackupRestore" since a Year and its good.

D:
You can use "Super Backup" mentioned above to backup SMS too. As other option, I've been using "SMS Backup and Restore" "com.riteshsahu.SMSBackupRestore" since a Year and its good.

E:
I am not pretty sure about backing up apps with data in non rooted phones. Use "MyBackup" "com.rerware.android.MyBackup" to backup apps. However I haven't tested it.

N:
Root process varies with devices. You can search Google simply like "root HTC One X". Still, If you are unable to find it, just drop me a comment below with device model, I would love to search it for you.

Restore:
Restoring is as simple as Backup. This is pretty straightforward, usually, every app that you used for backup, creates a folder with its name and its files and directories in it. You just have to copy them to respective device and restore it.

Labels: , , ,

June 5, 2012

Disabling default GUI Startup Solaris 10

Many of us may not want to use the Solaris 10 Default JAVA or KDE default GUI. To startup Solaris 10 default in command Line mode you can make use of one of following:

1. You can use dtconfig command:
To disable GUI:
#/usr/dt/bin/dtconfig -d
To enable GUI:
#/usr/dt/bin/dtconfig -e
2. Disable/enable Service that handles cde-login:
To disable GUI:
#svcadm disable svc:/application/graphical-login/cde-login:default
To enable GUI:
#svcadm disable svc:/application/graphical-login/cde-login:default

It is that simple. No defense.

Labels: , , ,

May 28, 2012

Solaris 10 Static IP Network configuration guide

This is pretty simple task. Although some find it difficult because it is different from other Linux distributions.

To configure Solaris 10 network interface in Local files mode, you must first remove the file /etc/dhcp.interface (for ex. /etc/dhcp.e1000g0), then you have to configure six files.

/etc/nodename
/etc/hostname.interface
/etc/inet/hosts
/etc/inet/ipnodes
/etc/defaultdomain
/etc/defaultrouter

In /etc/nodename, you must specify your name of the server/host.
Ex.

#cat /etc/nodename
solarisbox1

The interface names in solaris include ce, hme, bge, e1000g etc. So, if you have an interface called e1000g0 there should be a file named /etc/hostname.e1000g0 In this file, you must specify network configuration information such as IP address, netmask etc.
Ex.

#cat /etc/hostname.e1000g0
10.91.10.5 netmask 255.255.255.0
#cat /etc/hostname.qfe0
192.168.0.88 netmask 255.255.255.0

The /etc/inet/hosts file serves as local file name resolver. It resolves hostnames, log hosts etc. You can specify any number of hosts associted with IP addresses in it. You must specify hostname of you system in it.
Ex.

#cat /etc/inet/hosts
#
# Internet host table
#
::1          localhost
127.0.0.1    localhost loghost solarisbox1
10.91.10.5   solarisbox1
192.168.0.88 solarisbox1
10.91.10.6   solarisbox2

For Solaris 10 11/06 and earlier releases, you must keep /etc/inet/ipnodes updated.
Ex.

# vi /etc/inet/ipnodes
10.0.0.14 myhost

The /etc/defaultdomain file specifies nothing other than FQDN (Fully Qualified Domain Name) of the System.
Ex.

#cat /etc/defaultdomain
solarisbox1.solarisstudy.com

The /etc/defaultrouter file specifies your default router (or gateway) details.
Ex.

#touch /etc/defaultrouter
#echo 10.91.10.1 >> /etc/defaultrouter

This will help you progress towards basic interface configuration in Solaris 10.
This article refers Oracle Documentation and is made in simple format to help newbies to configure network interface quickly.
For more information see:
http://docs.oracle.com/cd/E19253-01/816-4554/ipconfig-1/index.html
Solaris 10 System Administration Guide: IP Services

Labels:

May 27, 2012

Installing 64 bit drivers on Windows 7 for Nexus S

Download Android SDK.

Using SDK manager, download Google USB Drivers. Take help from www.android.com for "How to do that?".

Right Click Computer -> Manage -> Device Manager -> Right click your Nexus -> Update Driver -> "Browse my Computer for Driver Software" -> Browse path "C:\Program Files (x86)\Android\android-sdk\extras\google\usb_driver" also tick "Include sub folders"

Install drivers.

You're good to go.

JDK Not Found android SDK installer...

This might seem a basic issue, indeed it is.
But I did not find solution easily.

I got error while running Android SDK Installer on my Win7 x64 System claiming JDK was not found.

After trying many solutions like registry fixes and everything, I came across one working simple solution.

Add following to your PATH system variable.

C:\Program Files\Java\jdk1.7.0_04\bin

Use appropriate path for appropriate version.

That's it!

May 13, 2012

Enabling Remote root login Solaris 10.

It is neither recommended nor suggested to allow remote root logins for security reasons.
For Test servers, Non-production servers or other servers, you may want to allow remote root login via SSH.

Usually you get "Access denied" errors when accessing a Solaris server as root when logging on remotely.

You just have to edit two entries in two files.

First:
/etc/default/login

Comment the following line in /etc/default/login by putting a # sign before the line.

 CONSOLE=/dev/console  

This will enable remote root logins to the system.

Second:
/etc/ssh/sshd_config

Comment the following line in /etc/ssh/sshd_config by putting a # sign before the line.

 PermitRootLogin no  

Then add the following line just below the above line.

 PermitRootLogin yes  

This will enable remote SSH and SCP Logins to the system.

Labels: , , , , ,

April 18, 2012

Print first column of passwd

The delimiter used to differentiate different fields in the /etc/passwd files is colon ' : ' . Therefore we need to look only after the semicolon.
To deal with column based files or formatted text the most commonly used command is awk.
Command below will print out the first column of /etc/passwd file:

 awk < /etc/passwd -F: '{ print $1 }'

Here

awk             is the text processor

< /etc/passwd    will serve as input file for awk

-F:             is a parameter for awk that specifies the delimiter. In our      
                           case is colon.

{ print $1 }    This will print the first line. You can put $2, $3 etc. to
                           print respective column.

My command produced following output:

 root  
 daemon  
 bin  
 sys  
 adm  
 lp  
 uucp  
 nuucp  
 smmsp  
 listen  
 gdm  
 webservd  
 postgres  
 svctag  
 nobody  
 noaccess  
 nobody4  

Labels: , , , , , ,

April 8, 2012

Quick Configure Subversion on Ubuntu 11.10 oneiric

Subversion is quiet good version control system, used by many developers across the world and is awesome!
I searched throughout Google to find a simple guide to deploy a least working subversion just to see it and was unable to.

(Note: use sudo whenever required.)
To install and get a simple up and running subversion on Ubuntu:
First install subversion packages

sudo apt-get install subversion libapache2-svn

After packages got installed, you need to create repositories.
To create a repository, I used my home directory.

mkdir /home/kaustubh/project1

Then create a repository

sudo svnadmin create /home/kaustubh/project1

Then open repository/conf/svnserve.conf (/home/kaustubh/project1/conf/svnserve.conf in my case) in your favorite text editor.
uncomment following parameters in the file. (Note: There should be no spaces before or after any parameter line. The svnserve will then be unable to read the config.) Most commonly made mistake.

auth-access = write
password-db = passwd

Then open repository/conf/passwd (/home/kaustubh/project1/conf/passwd in my case) in your favorite text editor.
Add lines below everything in following format

username = password

Its time to fire up the server
Enter following to start the server and after its started, use ctrl+c to kill the server.

svnserve -d --foreground -r /home/kaustubh

Here, -d means demon mode, --foreground means it will run in foreground, -r specifies path to repository.

Now you can easily connect to your repository using

svn://servername/project1

You will have to enter username and password mentiond in your repo/conf/passwd file.

Labels: , ,

April 7, 2012

Plugin Registration havoc, CRM 2011

It is very unfortunate that developers do their stuff without reading the proper or updated documentation from Microsoft.
This results in havoc.
:(
Recently one of our developer, had complete access to the CRM 2011 Server. To destroy the server's CRM (not intentionally) he used big spear tool "gacutil.exe".


What his problem was he was unable to register a CRM plugin from his workstation and was not succeeding. On some blog (like this one ;)) he found that he needs to register two dll files in GAC on CRM 2011 Server.


Microsoft.Xrm.Client.dll
Microsoft.Xrm.Sdk.dll


As soon as he did that, CRM stopped working. It started giving out following error:
 The Web Service plug-in failed in OrganizationId: d8c6077d-e52f-e111-b5ff-00155d000b01; SdkMessageProcessingStepId: e8af0b30-4bae-48a6-a5be-6e64af544ae1; EntityName: sitemap; Stage: 30; MessageName: RetrieveMultiple; AssemblyName: Microsoft.Crm.Extensibility.InternalOperationPlugin, Microsoft.Crm.ObjectModel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35; ClassName: Microsoft.Crm.Extensibility.InternalOperationPlugin; Exception: Unhandled Exception: System.MissingMethodException: Method not found: 'Void Microsoft.Xrm.Sdk.AliasedValue.set_NeedFormatting(Boolean)'.  
   at Microsoft.Crm.BusinessEntities.BusinessEntityToEntityConverter.HandleAliasing(Entity entity, IAttributeInfo attributeInfo)  
   at Microsoft.Crm.BusinessEntities.BusinessEntityToEntityConverter.Convert(ICrmConversionContext conversionContext, BusinessEntity businessEntity)  
   at Microsoft.Crm.BusinessEntities.BusinessEntityCollectionToEntityCollectionConverter.Convert(ICrmConversionContext conversionContext, BusinessEntityCollection inputCollection)  
   at Microsoft.Crm.BusinessEntities.BusinessEntityCollection.Converter.ConvertTo(ITypeDescriptorContext context, CultureInfo culture, Object value, Type destinationType)  
   at Microsoft.Crm.BusinessEntities.ConversionHelpers.Convert(ICrmConversionContext conversionContext, Object source, Type destinationType)  
   at Microsoft.Crm.Extensibility.DictionaryMapper.Map(PropertyBag inputs, ICrmConversionContext context)  
   at Microsoft.Crm.Extensibility.PropertyBagMapper.Map(PropertyBag source, ParameterCollection target, ICrmConversionContext context)  
   at Microsoft.Crm.Extensibility.V5PluginProxyStep.ExecuteInternal(PipelineExecutionContext context)  
   at Microsoft.Crm.Extensibility.VersionedPluginProxyStepBase.Execute(PipelineExecutionContext context)  


He showed me this screen and told me to re-install the whole CRM test setup and solve the error.


Then referring the following URL
http://social.microsoft.com/Forums/en/crm/thread/bc3edd6d-c692-424c-8042-cc2f97f7e442

I registered following dll files from Server/CRMWeb/bin into the Global Assembly Cache of CRM server.


Microsoft.Xrm.Sdk.dll
Microsoft.Crm.Extensibility.dll


And it started working again!

Labels:

March 31, 2012

Common Problems AX 2009 Client - Server connections.

Problems listed here are faced commonly with AX 2009. I will post here as soon as I find and solve them.
These are very basic steps, but will surely will help you remember small things.
Here's how to solve connection problems such as "Connection with the Application Object server could not be established."


Here's how to solve problems for "Logon error You are not a recognized user for Microsoft Dynamics AX" or any "Logon error" related issues.

Labels:

March 8, 2012

Understanding Storage Area Networks SAN, the easy way.

I've prepared a cartoon to make it easy to understand the Storage Area Network Concept. How do they work? Why they are used?...
This is thing according to my understanding, If anything is wrong or missing, or you have any questions please mention in comment.

February 9, 2012

Quick Configure RAID with IBM ServeRAID M5014

I recommend reading following before configuring RAID. If you know RAID concepts, you may continue.


Use this guide for detailed info about WebBIOS and Every other RAID Config:


Note: I was using IBM System x3650 M3 which has an in-built RAID Card. To install M5014 in x3650 M3, you need to remove the metal part that is attached to the Card.
After removing this, you need to Remove the inbuilt RAID card that is located right behind The hard disk bays inside the server. Remove the controller cables from the card, remove USB Hypervisor, Remove the card. Then install your brand new M5014, Plug the controller cables(Blue in my case) back into our new controller. Refer following for detailed diagrams:

http://download.boulder.ibm.com/ibmdl/pub/systems/support/system_x_pdf/00d3149.pdf

Make sure everything is in place. Check cables, check disks and then fire up your server. Let the server show POST messages, then it will ask if you need to open BIOS Setup Menu, let it go on. Then it will ask to press Ctrl + H for WebBIOS. Let the WebBIOS open.
Then you will be asked to choose your controller card. Obviously its going to be your brand new M5014.
Now that you must be looking at your disks, physical/logical view. Before configuring RAID, you must make sure that each of the disk you want include in RAID must be in "Unconfig-Good" state.
If you have a fresh server install, then you may open "Configuration Wizard" from Left menu, and then clear existing configuration.
Now, I had 3 disks in my Server, all in good "Unconfig-Good" state. Then I ran "Configuration Wizard" => "New Configuration" => "Manual Configuration" => Selected Disks => Add to DG => Accept DG => Next => Add DG to span => Selected RAID 5 (Note:- RAID 5 requires you to have at least three disks.) => Save config.
Your server is now configured with RAID 5. You need to configure VDs now to proceed before installing your OS.

January 25, 2012

mySQL: ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)


Installing mySQL isn't pain in ass like MSSQL. But, When installing it, I got following error that created havoc in my brains:

mySQL: ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)

I believe this happens because you have already uninstalled previous mySQL and reinstalling it but, during previous un-installation the following directories were not completely removed.

What I did, was:
Uninstall MySQL using Programs and Features/Add or Remove Programs
Remove %programfiles%\MySQL Directory.
Remove %programdata%\MySQL Directory.
Re-install MySQL.