Before I say anything, I shouldn’t need to say this, but I will. This is not supported. Now, on to the fun!
The current release of NexentaStor (v126.96.36.199) is made available as an OVA to make it easy to import into VMware environments. Currently this only “works” in full blown vSphere hosts and not Fusion/Workstation/Player (“works”, because with some fenagling, you can get it running in Fusion – don’t have access to Workstation/Player at the moment). Ok, already getting off track. This OVA comes with the following hardware configuration:
1 x 8GB Hard Drive (syspool)
– this is configured with a VMware Paravirtual controller
1 Virtual Nic
– this is configured as a VMXNET3 device
If you want to change the scsi controller to LSI Logic Parallel, you’ll be met with the following kernel panic in a boot loop:
When you first start, you can check which driver your VSA is using on your drive/controller by executing
Notice the ‘Attach’ column shows my VMware Paravirtual attached drive as well as a second MPT attached drive. This is a second VMDK on SCSI1:0 with an LSI Logic Parallel controller to show that it can be recognized and what it should look like to the system (mpt driver being used).
So, to change the controller type and still have a booting VSA:
- If you’ve switched the controller to LSI Logic Parallel already, change the controller type back to the default of Paravirtual
- Boot into the system as normal
- Log into NMC (console access, not the web interface) as root
- Create a checkpoint of the syspool so we can revert to it
setup appliance checkpoint create
- Determine the current checkpoint associated syspool dataset that is used for the root filesystem. (ie. syspool/rootfs-nmu-000) This will be listed as the “Current” and “Default” entry when you run the following:
show appliance checkpoint ROOTFS CREATION CHECKPOINT-TYPE CURRENT DEFAULT VERSION rootfs-nmu-001 Apr 25 11:58 2013 rollback No No 3.1.4 rootfs-nmu-000 Mar 28 5:40 2013 initial Yes Yes 3.1.4
- Shutdown and reboot into “Safe Mode” from the GRUB menu or boot from CDROM and choose “Recovery Console”
- If asked for a login, login as “root” with no password.
- Force import syspool.
zpool import -f syspool
- Create a mountpoint in /tmp and mount the previously noted checkpoint to it.
mkdir /tmp/a mount -F zfs syspool/rootfs-nmu-000 /tmp/a
- Remove all entries from /tmp/a/dev/[r]dsk
rm /tmp/a/dev/dsk/* rm /tmp/a/dev/rdsk/*
- Remove all entries from /tmp/a/dev/cfg
rm -rf /tmp/a/dev/cfg/*
- Remove the device ID Cache and the mdi_scsi_vhci Cache
rm /tmp/a/etc/devices/devid_cache rm /tmp/a/etc/devices/mdi_scsi_vhci_cache
- Put down a new device tree via devfsadm directed to the current checkpoint.
devfsadm -r /tmp/a
- Update the boot archive of the current checkpoint
bootadm update-archive -R /tmp/a
- Unmount the current checkpoint
- Power Off the VM
- Change the controller type to LSI Logic Parallel
- Boot the VM
- If the system fails to boot, you can change the controller back to VMware Paravirtual and boot into the checkpoint created in step 1 (root-fs-nmu-001).
If you have VMware Tools installed on a previous version or an upgraded VSA and you want to switch from the LSI Logic to the Paravirtual, just reverse the instructions and it should work.
Credit to Phil Wagstrom, Field Engineer at Nexenta for the device tree reset workflow. He’s a Solaris rockstar.