vCSA Postgres Database Repair – PANIC: checksum mismatch

You are confronted with various database errors in the /var/log/vmware/vpx/vpxd.log and you also have various errors in /storage/db/vpostgres/pg_log

Similar in theme to:

error ‘Default’ opID=HB-host-8637@82541-3778684f] [VdbStatement] SQLError was thrown: “ODBC error: (00000) – ” is returned when executing SQL statement

error ‘Default’ opID=HB-host-8637@82541-3778684f] An unrecoverable problem has occurred, stopping the VMware VirtualCenter service. Error: Error[VdbODBCError] (-1) “ODBC error: (00000) – ” is returned when executing SQL statement

PANIC: checksum mismatch: disk has 0x4addc132, should be 0x7cb3b932
filename base/16385/24461, BlockNum 37, block specifier 1663/16385/24461/0/37

Cause:

The root cause is you likely lost power, but the larger problem is obviously that the VMware vCSA is built using one of the most un-user friendly databases in this galaxy (Postgres).  With that said, let’s get this hunk of garbage beautiful piece of modern infrastructure management back online.

Solutions:

Repair vPostgres Indexes:

If you have Index errors in the log file (anything mentioning issues with *idx), you will need to regenerate the particular index in the Postgres database.    To accomplish this:

  1. Get your postgres password:  cat /etc/vmware-vpx/embedded_db.cfg | grep PASSWORD
  2. You will need to add a shell to the postgres user:  type:  ‘vipw’, locate the postgres user, change the shell from /bin/false to /bin/bash, save the file (:wq!)       It will look this when you are done:  postgres:x:1000:100::/var/vmware/vpostgres/9.0:/bin/bash
  3. su postgres
  4. /opt/vmware/vpostgres/9.0/bin/psql VCDB
  5. REINDEX DATABASE;
  6. Optional and recommended:  VACUUM FULL; (this will recover disk space and will recreate all of your tables)

Repair vPostgres Data:

If you have errors in your logs that complain about invalid checksums, you will need to force Postgres to fix these.   There is no MySQL type command to automatically repair all databases (glorious!).  You will need repair each issue manually.   There will likely only be one that is preventing vCenter from fully starting.

Your error message will look like this:

PANIC: checksum mismatch: disk has 0x4addc132, should be 0x7cb3b932
filename base/16385/24461, BlockNum 37, block specifier 1663/16385/24461/0/37

filename base/16385/54431780, BlockNum 102, block specifier 1663/16385/54431780/0/102

To fix these errors (there might be more than one):

  1. service vmware-vpxd stop ; service vmware-vpostgres stop
  2. Get your postgres password:  cat /etc/vmware-vpx/embedded_db.cfg | grep PASSWORD
  3. You will need to add a shell to the postgres user:  type:  ‘vipw’, locate the postgres user, change the shell from /bin/false to /bin/bash, save the file (:wq!)
  4. su postgres
  5. /opt/vmware/vpostgres/9.0/bin/postgres -D /storage/db/vpostgres -c fix_block_checksum=”1663/16385/54431780/0/102″   [Note: this last section is just a copy and paste of the “block specifier from the log file”.]

 

FreeBSD – Upgrade Perl Version

To upgrade the version of Perl installed on a FreeBSD server:

vi /etc/make.conf

Add this line (adjust for Perl version):

DEFAULT_VERSIONS+=perl5=5.22

Execute on command line (adjust for Perl version):

pkg set -o lang/perl5.16:lang/perl5.22

Execute on command line (adjust for Perl version):

portupgrade -o lang/perl5.22 -f perl-5.16.\*

Execute on command line:

portupgrade -rf perl*

Interspire Email Marketer Can’t Login

You all of the sudden cannot login to Interspire Email Marketer.

You are entering the correct password and the login screen refreshes when you enter the correct login details but will not allow access to the admin panel.

Your problem is the session cannot be saved.

Check your php.ini file to ensure the location for sessions is writable/exists.

Also check /var/lib/php/sessions (CentOS)

Once your sessions can be written to disk, you will be able to login.

XymonQV – Xymon Android App

Upon purchasing a new phone, I discovered that XymonQV was no longer in the Google Play store and the link on GitHub was 404.

I was able to export the installed app from an old phone.

If you need the XymonQV Android App, you download it here:   XymonQV Android App

This is a copy of the app that was installed from the Google Play store and has not been modified in any way.

 

 

SSHD mm_request_send: write: Broken pipe

You are attempting to login to a Linux machine (probably CentOS) and your SSH sessions are instantly disconnected.

/var/log/secure shows various Signal 15 crashes and this error:

mm_request_send:  write:  Broken pipe

Your box has been hacked.    Format and Reinstall.

Be sure to run “yum update” at frequent intervals to keep your servers/VMs up-to-date!!

 

 

 

Connect Error (2000) mysqld cannot connect to MySQL 4.1+ using old authentication ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol refused

You are receiving these errors:

Connect Error (2000) mysqld cannot connect to MySQL 4.1+ using old authentication
ERROR 1275 (HY000): Server is running in –secure-auth mode, but ‘dbname’@’localhost’ has a password in the old format; please change the password to the new format
ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)
ERROR 1372 (HY000): Password hash should be a 16-digit hexadecimal number

Your system is definitely storing passwords in the new format.     You are going crazy because your database is offline.

UPDATE mysql.user SET Password = PASSWORD(‘cheese’) WHERE User = ‘test’ AND Host = ‘localhost’;
UPDATE mysql.user SET plugin = ‘mysql_native_password’ WHERE User = ‘test’ AND Host = ‘localhost’;
flush privileges;

pfSense Transparent Bridge Firewall + VMware ESXi

You have setup pfSense as a VM via the OVA.

Your VM that you want to filter its traffic is on a portgroup on a vSwitch with no uplink.

pfSense has 2 NICs – 1. WAN – Using a portgroup that has internet access 2. LAN – Using the same portgroup/vswitch as your VM that needs its traffic filtered.

Turn on promiscuous mode on all vSwitches being used by pfSense and the VM.

Traffic will not pass without promiscuous mode!

Disable VR (vSphere Replication) on VM

You have long removed SRM/vSphere replication.

You discovered a VM still had vSphere Replication enabled.

system has paused replication disk added to vm

Manually remove vSphere replication from vCenter

1. In a webbrowser go to: http://YOUR-vCenter Server/mob
2. Remove this extensions: “com.vmware.vcHms”

More information about MOB, and removing plugins from vCenter, here: http://www.viktorious.nl/2012/05/06/vcenter-howto-remove-a-plugin-from-the-plugin-manager/

Remove vSphere replication from the affected VM
1. vim-cmd vmsvc/getallvms |grep “NAME OF THE VM” <- You are merely looking for the VM’s ID # 2. vim-cmd hbrsvc/vmreplica.disable [VM #] More hbrsvc commands can be found here: http://www.virtuallyghetto.com/2011/07/hbr-host-based-replication-cli-for-srm.html

Are you looking for VMware Hosting that offers cross-site vSphere Replication?  Contact VMDK Hosting