VMware SRM 6.5 and Nimble SRA PERL Error
Working at a customer recently we encountered a PERL error when installing the Nimble SRA where it would not load into a new VMware Site Recovery Manager (SRM) 6.5 installation. In addition both the Protected and Recovery Sites had the same error.
PERL Error Displayed
SRA command ‘queryInfo’ failed.
Cause:
Internal error: File::Spec version v48.44.56 required–this is only version v3.630.0 at E:/Program Files/VMware/VMware vCenter Site Recovery Manager/external/perl/perl/lib/File/Temp.pm line 12.
BEGIN failed–compilation aborted at E:/Program Files/VMware/VMware vCenter Site Recovery Manager/external/perl/perl/lib/File/Temp.pm line 12, <DATA> line 584.
Compilation failed in require at E:\Program Files\VMware\VMware vCenter Site Recovery Manager\storage\sra\Nimble Storage\command.pl line 34, <DATA> line 584.
BEGIN failed–compilation aborted at E:\Program Files\VMware\VMware vCenter Site Recovery Manager\storage\sra\Nimble Storage\command.pl line 34, <DATA> line 584.
Background
Both sites had Nimble-SRA-4.1.0.3 installed. We had previously tried Nimble-SRA-3.4.0.31 with the same result. We tried upgrading the firmware on the Nimble CS1000 Arrays but again this had no impact. To complicate matters the SRA was not yet certified by VMware Compatibility Guide but was on the Nimble support matrix.
Cause
The problem seemed to be with the vpp.pm file on the SRM servers in 6.5 running into a locale issue.
When the SRM Server guest OS (windows) is installed with locale such as Dutch (Netherlands), the windows config you can see is such that a decimal is seen as a comma and not a full stop.
error:
“v48.44.56”: translate 48, 44 and 46 to the ASCII representation of “0”, “,” and “8”. That would be”0,8″
The file: C:/Program Files/VMware/VMware vCenter Site Recovery Manager/external/perl/perl/lib/File/Temp.pm line 12 shows:
——————–
use File::Spec 0.8;
——————–
Installer expects: “0,8”
Therefore the error is:
” SRA command failed: (dr.storage.fault.CommandFailed) {
–> faultCause = (dr.fault.InternalError) {
–> faultCause = (vmodl.MethodFault) null,
–> faultMessage = <unset>,
–> reason = “File::Spec version v48.44.56 required–this is only
–> version v3.630.0 at C:/Program Files/VMware/VMware vCenter
Site Recovery Manager/external/perl/perl/lib/File/Temp.pm line 12.”
Resolution
Install a new guest OS with English US locale, and continue with fresh SRM install and SRA on top of it.
Another suggested solution that we didn’t test but suspect should work:
From the current SRM server, un-install SRM and SRA, change the locale to English (reboot needed) in the Administrative tab in the Region and Language, reinstall fresh SRM and SRA.
Conclusion
This was an issue as the perl library used is conflicting with the guest OS locale and as a result the SRA was making use of the SRM options.