Juned Memon
Juned Memon Good for nothing

Fun with PXE boot Centos 6.3 and SuperMicro

Fun with PXE boot Centos 6.3 and SuperMicro

Recently at work we decided to upgrade our Hadoop capacity by adding new machines, the new machines bought were Supermicro X9DRL-7F.

I thought it would be pretty simple task to install OS on it as we already have the DHCP+TFTP setup followed by the Ansible role ( so piece of cake to install and provision machines ) and that too in production and in use for a while now.

 

To my surprise the new machine were able to get the the DHCP lease ip but kickstart was not able to download, and that started a a funny troubleshooting journey.

To cut story short eventually it turns out that

The  Supermicro -  X9DRL-7F is not compatible with Centos 6.3 , because the igb driver is pretty old in centos 6.3 kernel . ( surprisingly their OS compatibility chart doesn’t have this info )

To fix the issue I have to

Add the igb-4.3.0-1 support in the initial ramdisk of centos 6.3

That fixed the PXE issue, except during PXE installation it flags the unsupported hardware detected warning  but the server was  provisioned using PXE.

But .. after the OS load and reboot the server didn't had the networking :(

I have fixed that only in ramdisk only actual kernel that's installed still had older version of igb ( 3.2.10-k ). So I decided to recompile the kernel with this new igb driver.

But .. then I realized that I can create a RPM out of  igb 4.3.0 source. I quickly created a RPM out of it tested on one of the centos 6.3 machine and added that RPM to our repo.

Finally I fixed thee kickstart of Centos 6.3 and added a section to install igb-4.3.0 rpm as a final step.

viola that worked like a charm

quite a work by the way.

 

So if you are planning or have Supermicro X9DRL and facing issues with networking you know its igb driver that's playing naughty there.

 

Edit :

I didn't faced the issue during our older hadoop deploy since the older hardware was different ( SuperMicro X8DTL ) so do the network driver.