About Martino

Dutch. Married. Dad. Living in Italy. Apple fan. Owner of ZenaConsult

VMware ESXi – expand RAID and resize VMFS datastore – also on non-HP server hardware

Recently, I extended my RAID 5 array with 2 extra disks from 3x 146GB to 5x 146GB, creating thus a logical RAID 5 volume of (5x 146 – 146=) 584GB. Since I didn’t want to move my VM’s to another box and reformat the datastore, I gathered all the info on the internet and made this manual.

Notes:

    * All the instructions are executed on a whitebox (i7 3770) and a SmartArray P400 controller.
    * I already modified the HP ESXi tools to be able to run on non-HP hardware.
    * It is highly recommended that you backup all your VM’s before executing a single command.
    Everything worked fine for me but one error in a command could lead to a complete data loss of everything!
    * To see the rebuilding status, HP has a tool called hpacucli which allows you to control the array and see the status of it out of the ESXi console.
    * I’m NOT responsible for YOUR mistakes. See note 3.

This is my old situation:

The steps:

– Add disks to your RAID array using ACU (offline boot CD)
hpacuoffline-9.10-22.0.iso

Explaining how to add disks is beyond the scope of this guide.

If you’re using non-HP server, get these modified HP tools:
hpacucli-9.10-22.0-esxi_mod.vib
hpbootcfg-01-01.02-esxi_mod.vib
hponcfg-04-00.10-esxi_mod.vib
char-hpilo-500.9.0.0.9-esxi_mod.vib

– Install HP tools on your non-HP ESXi server

scp *.vib root@esxserver:/tmp/
ssh root@esxserver
esxcli software vib install -f -v /tmp/hpacucli-9.10-22.0-esxi_mod.vib
esxcli software vib install -f -v /tmp/hpbootcfg-01-01.02-esxi_mod.vib
esxcli software vib install -f -v /tmp/hponcfg-04-00.10-esxi_mod.vib
esxcli software vib install -f -v /tmp/char-hpilo-500.9.0.0.9-1OEM.500.0.0.434156.x86_64-esxi_mod.vib

OR

– Get HP’s ESXi5 Offline Utilities
hp-HPUtil-esxi5.0-bundle-1.3-6.zip

– Install HP tools on your HP ESXi server
scp hp-HPUtil-esxi5.0-bundle-1.3-6.zip root@esxserver:/tmp/
ssh root@esxserver
esxcli software vib install -d /tmp/hp-HPUtil-esxi5.0-bundle-1.1-38.zip

After installing the tools, reboot ESXi server. Login again on your ESXi server using SSH or console.

– Check and expand logical drive to max
/opt/hp/hpacucli/bin/hpacucli controller slot=18 show config
/opt/hp/hpacucli/bin/hpacucli controller slot=18 array all show detail
/opt/hp/hpacucli/bin/hpacucli controller slot=18 logicaldrive 1 modify size=max
/opt/hp/hpacucli/bin/hpacucli controller slot=18 array all show detail
If you don’t know your controller slot number, use
/opt/hp/hpacucli/bin/hpacucli controller all show config

Reboot ESXi server. Login again on your ESXi server using SSH or console.

– Get the ID of your VMFS datastore
vmkfstools -P “/vmfs/volumes/datastore-nameIn my case:
Partitions spanned (on “lvm”):
mpx.vmhba1:C0:T0:L0:3

– Get the starting sector size of the VMFS partition
partedUtil getptbl “/vmfs/devices/disks/mpx.vmhba1:C0:T0:L0″

In my case:
3 10229760 573367046 AA31E02A400F11DB9590000C2911D1B8 vmfs 0

– Find usable sectors (free space)
partedUtil getUsableSectors “/vmfs/devices/disks/mpx.vmhba1:C0:T0:L0

In my case:
1146733318

– Resize VMFS partition
partedUtil resize “/vmfs/devices/disks/mpx.vmhba1:C0:T0:L03 10229760 1146733318

– Grow VMFS partition
vmkfstools –growfs “/vmfs/devices/disks/mpx.vmhba1:C0:T0:L0:3” “/vmfs/devices/disks/mpx.vmhba1:C0:T0:L0:3

Yes, you need to specify twice the same partition.

– Refresh the datastore in vSphere

New situation:

Done.

Windows 2008 R2 Server & Windows 7 Pro: Unidentified network unchangeable

After installing Windows 2008 R2 inside VMware, I changed the network driver from E1000 to VMNET3. No problem, Windows 2008 R2 recognized the new adapters after a reboot. I only had to change the DHCP IP address to fixed IP. And then the problems started: apparently Windows 2008 (or Windows 7) won’t let you change the network location as soon as it has put the network in the ‘Unidentified network’ category. Trying ‘to fix’ this problem using the Windows ‘Diagnose’ tool just removed the fixed IP address and put it back on DHCP (and strangely, now the network category is Public).

This, of course, sucks.

However, this little trick should work:

1. Start –> run –> MMC –> press enter

2. In MMC console , from menu file select Add/Remove Snap-in

3. Select Group Policy Object editor –> Press Add –> select Local computer –> press OK –>press OK

4. Open Computer configration –>Windows Settings –>Security Settings –>select Network list manager policies

5. Double click –>Unidentified networks

Then you can select the option to consider the Unidentified networks as private.

This worked for me !

Synology DSM 4.1’s VideoStation and DVB-T channels list fix

Tried to get my EyeTV Diversity DVB-T USB stick to work with my Synology DS-1512 and the VideoStation program.
DSM recognises the USB stick but when I tried a channel scan (selecting Country: Italy and Region: Italy), nothing came up.

So, it must be a faulty channel list then. DSM VideoStation uses this list:

/volume1/@appstore/VideoStation/etc/synodvb_t/Italy

and this contains:

# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy

### VHF - Band III ###
# 5
T 177500000 7MHz 2/3 NONE QAM64 8k 1/32 NONE
# 6
T 184500000 7MHz 2/3 NONE QAM64 8k 1/32 NONE
# 7
T 191500000 7MHz 2/3 NONE QAM64 8k 1/32 NONE
# 8
T 198500000 7MHz 2/3 NONE QAM64 8k 1/32 NONE
# 9
T 205500000 7MHz 2/3 NONE QAM64 8k 1/32 NONE
# 10
T 212500000 7MHz 2/3 NONE QAM64 8k 1/32 NONE
# 11
T 219500000 7MHz 2/3 NONE QAM64 8k 1/32 NONE
# 12
T 226500000 7MHz 2/3 NONE QAM64 8k 1/32 NONE

… etcetera, etcetera. Using this (Italian) channel site http://www.dgtvi.it/copertura.php, I looked up the stations that are available in my are (Monte Fasce) and put them manually in a new file called ‘My Region’:

/volume1/@appstore/VideoStation/etc/synodvb_t/My Region
T 682000000 8MHz AUTO AUTO AUTO AUTO AUTO NONE
T 786000000 8MHz AUTO AUTO AUTO AUTO AUTO NONE
T 642000000 8MHz AUTO AUTO AUTO AUTO AUTO NONE
T 674000000 8MHz AUTO AUTO AUTO AUTO AUTO NONE
T 546000000 8MHz AUTO AUTO AUTO AUTO AUTO NONE
T 514000000 8MHz AUTO AUTO AUTO AUTO AUTO NONE
T 626000000 8MHz AUTO AUTO AUTO AUTO AUTO NONE
T 722000000 8MHz AUTO AUTO AUTO AUTO AUTO NONE
T 594000000 8MHz AUTO AUTO AUTO AUTO AUTO NONE
T 698000000 8MHz AUTO AUTO AUTO AUTO AUTO NONE
T 758000000 8MHz AUTO AUTO AUTO AUTO AUTO NONE

Now, turning back to VideoStation, I was able to select this new region file and WOW: it’s working!
VideoStation is now happily scanning for channels.

HP Smart Array RAID management on ESXi 5 – hpacucli

I’ve got a nice ESXi 5 whitebox with a HP P400 RAID controller wich I would like to configure and monitor. But, HP won’t let you install there software if the Hardware Vendor ID is not from HP. You’ll get errors like this when try to install:

/tmp # esxcli software vib install -f -v /tmp/hpacucli-9.10-22.0.vib
[NoMatchError]
BIOS vendor HP is required but host BIOS vendor is To Be Filled By O.E.M.
BIOS vendor Hewlett-Packard Company is required but host BIOS vendor is To Be Filled By O.E.M.
BIOS vendor Hewlett-Packard is required but host BIOS vendor is To Be Filled By O.E.M.
BIOS vendor hp is required but host BIOS vendor is To Be Filled By O.E.M.
id = (Updated) ESXi-5.0.0-20120302001-standard
Please refer to the log file for more details.

There are tips on the internet where you can download the software, un-7Zip the .vib, modify the descriptor.xml by removing any hardware reference to HP, recreate the .deb package, move it to the ESXi server, renaming it to .vib and voilà, a lot of work later you installed the tool.

Or just get my pre-modified package and install 🙂

Download, scp to your server, ssh into your server and run:

esxcli software vib install -f -v /tmp/hpacucli-9.10-22.0-esxi_mod.vib

Mac OSX 10.7 on ESXi and ‘root device uuid is xxx.xxx’ error

I moved my (fully working) OSX 10.7.4 installation from my old ESXi 5 white-box (with an Intel i5 720) to a new one (with an Intel i7 3770). And guess what: OSX didn’t boot.

Just some lines and this last output:

Root device UUID is xxxx.xxx.xx.xxxx

Crap. Google just came back with two (2 !) search results, neither of them giving me a solution. But wait, I’ve found it anyway:

– edit the VM settings with the VM powered off
– click on the Options tab
– click on the CPUID Mask menu item
– click Advanced
– scroll to the bottom of the window on the Virtual Machine Default tab
– under “Level 1” set “eax” to 0000:0000:0000:0001:0000:0110:1010:0101.

After clicking OK and OK, boot up the VM and voilà, your OSX installation is running again!

Yahoo!

VMware ESXi 5 and LSI1068E controller crap

Had lots of problems using my IBM BR10i and Dell SAS 5I/r controllers; performance under ESXi 5 was terrible.
Just 3.5 MB/s on write. Under Linux, write performance was around 110-120 MB/s. So WTF ?

I thought that all this was needed (disable Interrupt Routing):

# esxcli system settings kernel list -o iovDisableIR
# esxcfg-advcfg -k TRUE iovDisableIR (just the above command wasn't enough)
# auto-backup.sh
# auto-backup.sh (yes, twice!)
# reboot

Check:

# esxcfg-advcfg -j iovDisableIR
# esxcli system settings kernel list -o iovDisableIR


But in the end, this wasn’t it. Seems that LSI1068E based controllers disable all disk caching built into the drives by default.

If the server has battery backup you can enable basic drive caching on the Logical Volumes without risk (or, without a battery, WITH risk).

Goto www.LSI.com (The controller is made by LSI) and download and install MegaRAID Storage Manager. In short, install the VIB on your ESXi machine, the Manager on a Windows or Linux machine, sync their host names and enable all ports on the ESXi firewall for incoming TCP traffic.

Highlight the Virtual Raid Volume, right click, properties. Enable Cache and save. You have to do this on every logical raid volume.

Your performance difference is incredible.

And I just lost a day of looking for the solution. Crap.

Publish the Daily Garfield on Facebook shell script

For years now, I’m posting the daily Garfield and Dilbert comic on my Facebook page.

This is the (clumsy) script that does that:

#!/bin/sh
URLBASE="http://comics.kamens.brookline.ma.us/cgi-bin/comics?which=specified&Garfield=include&specified=Garfield&numdays=1&width=&height=&noheaders=on&reload=reload"
wget -O page.html -erobots=off ${URLBASE}/
IMGURL=`grep "assets.amuniversal.com" page.html | awk -F'"' '{print $8}' | head -1`
wget -O garfield.gif ${IMGURL}
./mail.pl garfield.gif your-mobile-FB-emailaddress "Daily Garfield"
rm -rf page.html && rm -rf garfield.gif

Since I don’t want to use Mutt or sendmail, I’m using perl and Mail::Sender:

Mail.pl:

#!/usr/bin/perl -w
# Usage: ./mail.pl attachment to-address subject
my $file = $ARGV[0];
my $tolist = $ARGV[1];
my $subject = $ARGV[2];
my $datum= `date "+%d-%m-%Y"`; # optional
use Mail::Sender;
$sender = new Mail::Sender;if ($sender->MailFile({ 
smtp => 'localhost', 
from => 'fromuser@domain.com', 
to => "$tolist", 
subject => "$subject - $datum", 
msg => " ", 
file => "$file", 
}) < 0) { 
die "$Mail::Sender::Error\n"; 
} 
print "Mail sent OK.\n";

As always, YMMV.

CouchPotato and beta.nzbs.org fix!

Crap, for some weeks I wasn’t able to get CouchPotato use Nzbs.org for searching the NZB’s in the queue. Seems that CouchPotato can’t use the new beta version of nzbs.org and/or can communicate using the new api.

NOTE: this is a fix fot the ORIGINAL version of CouchPotato, not the new V2 / CouchPotatoServer.

To fix this, replace 3 files in your (Linux) CouchPotato installation folder; in this example I’m using my folder structure:

nzbs.py in /opt/couchpotato/app/lib/provider/yarr/sources/
base.py in /opt/couchpotato/app/lib/provider/yarr/
rss.py in /opt/couchpotato/app/lib/provider/

Now, fill in your beta access info (you can find that using the RSS page: http://beta.nzbs.org/rss) into the Provider page of CouchPotato.
The ID and code are NOT the same as the ones you can find in the ‘classic’ pages!

For example: &i=4672&r=2d42343723487fea49a3aa4745b80ae810

Save and restart CouchPotato! All should be ok now!

Download Absinthe 2.0 for Windows, Mac & Linux / Ubuntu [Mirrored SkyDrive links]

Download Absinthe 2.0 for Windows, Mac & Linux / Ubuntu [Mirrored links]

Much awaited untethered 5.1.1 jailbreak has finally been released. You can now download Absinthe 2.0 (Win, Mac & Linux / Ubuntu) versions using the mirrored download links given at the end of the post. Absinthe lets you jailbreak iOS 5.1.1 untethered on following devices:

Absinthe 2.0 Compatible Devices

iPhone 4S, 4, 3GS
iPad 3, iPad 2 and iPad 1
iPod 4G & 3G
Apple TV 2

The only device that is not supported is Apple TV3. It’s the first jailbreak tool that lets you jailbreak iPad 3 iOS 5.1.1. So, the new iPad users can finally rejoice and get their hands on jailbreak goodness. Users with older devices were already able to get tethered jailbreak on iOS 5.1.1, thanks to geohot’s Limera1n exploit. Now when Absinthe 2.0 has been released, you will not need to boot tethered, which is a relief.
Greenpois0n Absinthe is fairly easy to use. We’ll be posting a step by step guide shortly. Stay tuned!

Download Absinthe 2.0 from SkyDrive

OS X: Absinthe-mac-2.0.dmg
Windows: Absinthe-win-2.0.zip
Linux / Ubuntu: Absinthe-linux-2.0.tar.bz2

ClamAV as a service on Windows with Kerio Connect / Mailserver

Do you know how hard it is to install ClamAV as a service, together with Kerio Connect / Mailserver ? I do. Very annoying but since you don’t want to pay for the extra AV option within Kerio Connect / Mailserver, ClamAV could be a nice option. But how. Well, it’s a mix of a bundle of tools. Let me get you started. NOTE: this is NOT the perfect way to install, but it worked for me so YMMV.

1. Install ClamWin Free Antivirus (this doesn’t install the service but it’s an easy way to get the database updates…). Use this path when installing: C:\ClamAV.

2. Download ClamAV for Windows and extract it to C:\ClamAV

3. Create these extra folders:

C:\ClamAV\tmp
C:\ClamAV\db

4. Modify the Antivirus Database download folder in ClamWin Free Antivirus to point it to C:\ClamAV\db and update the DB.

 

 

 

 

 

 

 

5. Paste the Kerio Connect / Mailserver ClamAV config to C:\ClamAV\clamd.conf

PidFile C:\ClamAV\clamd.pid
LogFile C:\ClamAV\clamd.log
DatabaseDirectory C:\ClamAV\db
TemporaryDirectory C:\ClamAV\tmp
TCPSocket 3310
TCPAddr 127.0.0.1
DetectPUA yes
DetectBrokenExecutables yes
HeuristicScanPrecedence yes
ArchiveBlockEncrypted yes
StreamMaxLength 30M

6. Now for the tricky part: running clamd.exe as a service (clamd.exe –install didn’t work for me). You’ll need the Windows Resource kit for your server; mine is a Windows 2003 box. Get it here : Windows Server 2003 Resource Kit Tools and copy / move instsrv.exe and srvany.exe in the same directory of ClamAV (C:\ClamAV).

6. Goto DOS prompt (cmd) and go to C:\ClamAV. Enter:

instsrv.exe clamD c:\ClamAV\srvany.exe

7. Now edit the registry to let clamd.exe run using it’s clamd.conf file when started as a service.

NOTE: It is dangerous to edit the registry, follow carefully

  • Navigate to HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\clamD
  • Right click on clamd and create a new Key called Parameters
  • Right click on Parameters and create a new String Value called Application
  • Edit the new Application REG_SZ and add c:\ClamAV\clamd.exe -c c:\ClamAV\clamd.conf

8. Then you can start and stop clamD in Services or manually:

net start clamD

You can check if clamav is listening at the right port:

netstat -a | findstr 3310

9. Time to tell Kerio Connect / Mailserver that we have a running ClamAV daemon, ready to answer all AV questions:

  1. Open the Kerio Connect’s Administration
  2. Go to Configuration->Content Filter->Antivirus
  3. Enable option “Use external antivirus” (near the top)
  4. Choose “Clam Antivirus”
  5. Click “Apply” (near the bottom) to save settings

And that’s it !