Saturday 5 September 2020

memory errors on X3650 M2, "Memory Logging limit reached for Memory Device x on subsystem System Memory.

I have a colleague who has had advice to change the BIOS setting to do with "Thermal" but IBM is saying this is only for blades, not my X Series.  They have pointed me to new IMM code which fixes problems with dealing with memory:

VZZ25: Firmware: "recommended firmware update sequence is IMM followed by EUFI"

Name
Installed Version
New Version
Install
Order
IBM uEFI Flash Update
1.08 (D6E148B)
1.14 (D6E156B)
1
Suggested
Required
IBM Dynamic System Analysis (DSA) 4.0x - Preboot Embedded
1.14 (D6YT29A)
4.01 (DSYT92O)
3
Suggested
Required
Online Broadcom NetXtreme and NetXtreme II Firmware Utility for Linux
4.6.4
ESX4.1 NIC Driver: 000:011:00.0 14e4:1639 1014:03a9 vmkernel vmnic0
6.2.0
4
(last)


b9c1 (#1)
Suggested
Required
Integrated Management Module Update
1.14 (YUOO73M)
1.32 (YUOOD4G)
2
Suggested
Not Required

Firmware Best Practices

UpdateXpress System Packs published quarterly and recommendation for patch schedule are:



  • Quarterly updates are recommended for dynamic environments 
and those using new hardware or operating systems.

  • Semiannual updates are recommended for most customer environments."


Sign up for Notifications


Note: Because the IMM is running a full operating system, it takes time to initialize. Once the
IMM’s operating system is up and running, the IMM starts the services and interfaces required to
monitor the server.  The IMM then brings up the rest of the internal services and external
interfaces such as the web interface.  Because of this, after updating the IMM, you must wait up
to 17 minutes (depending on the update method and system configuration) for the IMM to be
ready before initiating any further firmware updates. This initialization timeframe may be
unexpected to those unfamiliar with the new IMM technology.


Friday 19 February 2016

I'm not gonna lie, this was difficult.  I've tried the exam before in a previous version...And failed it.  This time I had a much more methodical plan and I studied about an hour at least three evenings a week for several months.  It paid off, as I'm happy to brag that I got 95% scoring 473 out of 500.  I'm so happy!




Wednesday 20 January 2016

disable Diagnostics & Usage

everywhere I find online says it's somewhere else.  So I'm posting where I found it on my iPhone 5.

It's under "Settings" and Privacy. There's where I found "Diagnostics & Usage"


Saturday 26 December 2015

ChromeCast Audio




Christmas!  Got a cool gadget to play with--lucky me.  Wrote about it--lucky you!

I was intrigued by the setup.  This tiny device would be fine once it's connected to my home WiFi, but how to get it to that point?  Following the setup, the Chromecast started by acting as a WiFi hotspot transmitting rather than a receiving connections like it would do later.  I was instructed to connect (I was setting up from my laptop) to the WiFi point that was temporarily broadcasting only long enough to do the setup.  After doing that, I was able to put in the info of my own home WiFi (SSID, username, password) which was passed to the Chromecast.  Then it rebooted and ta-da!  Ready to roll.  I thought that was pretty cool way to do the setup.


    


Android
My Android seemed well suited as it has an option in the Chromecast app to set any audio coming from the phone to Chromecast.   So, I tested to see what would happen if a phonecall comes in while you're 'casting all audio.  My test showed that in incoming call causes the 'cast to automatically fade out.  But the ringing call doesn't 'cast to your speakers.  You can hear the ringing on the phone, but not 'cast on your speakers.  Unfortunately the inbuilt limitations of Spotify mobile meant I could only skip a certain amount of songs over a time period.  So, mobile 'casting has it's strengths and weaknesses--though the weaknesses I ran up against were due to Spotify, not Google.  Speaking of which, Youtube and Google Play (music) works great.


   

OSX
Whereas using this cool device from OSX was actually more limited than Android.  The only way to 'cast rom OSX is from a chrome browser extension.  That meant I couldn't 'cast Spotify via their OSX App.  I had to login to their website via Chrome and 'cast that browser tab.  Google Play (music) worked fine here too, although the first time I tried it I had a huge amount of cut-outs, like every few seconds for at least an entire songs.  I closed lots of unused apps and unused browser tabs, but nothing helped.  The next time I closed and reopened Chromecast on OSX it was fine and I haven't had any problems since.

ChromeOS
Now this is getting a little confusing. Kinda like running ESX hypervisor inside VMware Workstation.  Russian Dolls and virtual lans running on virtual machines with virutal luns and virtual volumes and virtual disks.  Anyway, to connect my ChromeBook, all I had to do was install the ChromeCast Chrome Browser plug-in and then it worked just like on OSX.  Same advantaged and same disadvantages.

Windows
The setup page linked above says the way to use the Chromecast on Windows is the same as OSX:  install Chrome browser.  So, I'm keen to try this on my son's Nokia/Microsoft Windows phone.  Seems there's a Chrome browser for Windows, but I couldn't find Chrome or Chromecast on the Windows mobile app store.

parting thoughts. 
I'm happy with this home entertainment gadget, and only £30--it's great.

'cast battles
You can take-over from another browser tab on your own computer as you switch from Youtube to Google Play, Spotify, NetFlix or whatever.  You aren't prompted to release your connection when another connection is requested, so it makes for a great game of 'cast "fights".  You could even annoy someone by 'casting something confusing or annoying from another part of your house.

lag between video and audio
I guess it makes sense if your video it on your local device, yet the audio is being routed through your WiFi to a speaker somewhere else, so there'll be a lag.  But we are in the habit of plugging our laptop into our speaker with a 3.5 inch cable so our NetFlix viewings have a good sound quality.  This won't work with the Chromecast audio as the lag is several seconds.  Guess I want a ChromeCast--the proper one for video

Friday 4 December 2015

VPLEX CPU/Mem info

unzipping and untarring the VPLEX collect-diagnostics and found what looks a lot like a linux file:

cpuMeminfo/36/cpuinfo
cpuMeminfo/35/cpuinfo
cpuMeminfo/36/meminfo
cpuMeminfo/35/meminfo
cpuMeminfo/68/meminfo
cpuMeminfo/68/cpuinfo
cpuMeminfo/67/meminfo
cpuMeminfo/67/cpuinfo

as an example, one of the files follows:

$ cat cpuMeminfo/36/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 23
model name      : Intel(R) Xeon(R) CPU           L5410  @ 2.33GHz
stepping        : 10
microcode       : 2571
cpu MHz         : 2333.246
cache size      : 6144 KB
physical id     : 0
siblings        : 4
core id         : 0
cpu cores       : 4
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 xsave lahf_lm dtherm tpr_shadow vnmi flexpriority
bogomips        : 4666.49
clflush size    : 64
cache_alignment : 64
address sizes   : 38 bits physical, 48 bits virtual
power management:

and then repeats til all 8 processors are listed.

So, 8 sockets and 4 cores, or is it the other way around?

Memory is 3 Gbytes, or 3 Gb x 4:

$ cat cpuMeminfo/36/meminfo
MemTotal:       32458856 kB
MemFree:          239876 kB


VPLEX extent, volume or device "no longer exists" after renamed via GUI





Is the device/lun/volume healthy?

ll /**/*SAP*                                                      
/clusters/cluster-1/storage-elements/extents/extent_01_01_02_103_SAP_DB_01:
Name                           Value
-----------------------------  ------------------------------------------------
application-consistent         false
block-count                    131072000
block-offset                   0
block-size                     4K
capacity                       500G
description                    -
health-indications             []
health-state                   ok

So that seems fine.

plus checking the relationships between the files via the CLI shows it's all fine:

---------------------------------------------
     View Name:   Col_Linux-Oracle-vApps
     View Status: ok
---------------------------------------------
LUN-43: SAP_DB_01 (VPD83T3:6000144000000010a0245b40d0473e23)
        ==> SAP_DB_01 (distributed raid-1)
        cluster-1:
            ==> device_SAP_DB_01_12014Jun03_1115252014Jun03_151326 (raid-0)
                ==> extent_UAT_SAP_DB_01
                    ==> VPD83T3:6006016060d02c001b4a0bf204ebe311
                        ==> EMC~CLARiiON~CKM00112400948 (EMC~CLARiiON)
        cluster-2:
            ==> device_SAP_DB_01_1 (raid-0)
                ==> extent_SAP_DB_01
                    ==> VPD83T3:600601608e503000a18d671a05ebe311
                        ==> EMC~CLARiiON~CKM00112101396 (EMC~CLARiiON)


---------------------------------------------
sudo /etc/init.d/VPlexManagementConsole stop

cd to /var/log/VPlex/cli/ and locate the file GUI cache file persistentstore.xml and rename it with "mv" command.

sudo /etc/init.d/VPlexManagementConsole start

Then verify that the GUI cache file has been recreated when the service restarted.

We had no loss of service, or alerts when we did this, but the GUI error wasn't resolved either.

Guess what the answer from the vendor is now?  Bug fixed in newer release of the code.  Ha! 

Do you have any experience or understanding of this error? 

Monday 9 November 2015

Networker script reporting disabled backups

We want to be notified if we have any backups that aren't scheduled, specifically any new ones besides our existing list of test jobs.  We need to check for backup clients as well as the backup groups they are part of.  EMC tells me this isn't possible without spending a lot of money on a very expensive reporting tool (i.e. DPA).  We can't spend that kinda money, so that's where scripting comes in.

First we dump the entire Networker database to a file:


create a text file with the nsradmin commands:

PS F:\Program Files\Legato\nsr\scripts> type .\nsradmin_collect_config.txt
option hidden
print
quit
PS F:\Program Files\Legato\nsr\scripts>

and this command creates a text file with all your backup config, including the backup groups and clients and all their settings (i.e. whether enabled, disabled)


F:\"program files"\Legato\nsr\bin\nsradmin -i ..\script\nsradmin_collect_config.txt > ..\scripts\Networker-Config.txt


Now comes the PowerShell script:

______________________________________________

$Networker_Config = 'c:\delete\PowerShell\Networker-Config-Export.txt'

$client_names= Select-String "type: NSR client;" $Networker_Config -Context 6 | % {$_.Context.PostContext}  | select-string '   name: ' | foreach{$_.tostring().split(":")[1].trimstart(" ").trimend(":")}

write-host "Schedule         Client Name"
write-host "========        ==============="

foreach ($client_name in $client_names)

{

   $scheduled_backup= Select-String "name: $client_name" $Networker_Config -Context 6 | % {$_.Context.PostContext}  | select-string 'scheduled backup' | foreach{$_.tostring().split(":")[1].trimstart(" ").trimend(":")}

if ( $scheduled_backup -like '*isable*' ) 
   {
   $scheduled_backup = "Disabled"
   write-host "$scheduled_backup         $client_name"
   }

}

$group_names= Select-String "type: NSR group" $Networker_Config -Context 10 | % {$_.Context.PostContext}  | select-string 'name:' | foreach{$_.tostring().split(":")[1].trimstart(" ").trimend(";")}
write-host "


"
write-host "Schedule        Networker Group"
write-host "========        ==============="

foreach ($group_name in $group_names)

{

#write-host $group_name is a group

$auto_start = Select-String "type: NSR group" $Networker_Config -Context 10 | % {$_.Context.PostContext} | select-string " $group_name;" -Context 0,3 | % {$_.Context.PostContext} | select-string autostart | foreach{$_.tostring().split(":")[1].trimstart(" ").trimend(";")} 

if ( $auto_start -like '*isable*' ) 


{

write-host "$auto_start        $group_name "



}  
______________________________________________


This was a great excused for me to learn "Select-String" and how PowerShell does the equivalent of Linux "grep", "split" in place of "cut", etc.

I'm plan to add the code for comparing this output to an existing list so only an alert email is sent if there's any differences to the list.  And I plan to write the script so you can run it with a "reset" parameter to copy a new baseline list so the email alert isn't sent when approved changes to the list of disabled backups is made.

Linux/Cygwin version:


as I'm still learning PowerShell, I wrote most of the script using Cygwin/Bash first:

______________________________________________
#!/bin/sh
infile=/cygdrive/m/Networker-Config-Export.txt

echo "reporting disabled groups in Networker backup schedule...."

#loop through each backup group name:
group_name=`grep  -A 10 "    type: NSR group" ${infile} | grep "  name: " | grep -v packsize | awk '{print $2}' | tr -d ';' | sort | sort -u`

echo "Autostart Nextstart       Group_Name"
for group_n in `echo $group_name`

do
autostart=`grep -A 10 "name: ${group_n};" ${infile} | grep autostart | awk '{print $2}'`
nextstart=`grep -A 10 "name: ${group_n};" ${infile} | grep "next start" | awk '{print $3}'`

   if [ "${autostart}" = "Disabled;" ] ; then
      echo "${autostart}        ${nextstart}    ${group_n}"
   fi
done
#loop thru all clients, look for disabled:

client_name=`grep -A 6 "    type: NSR client;" ${infile} | grep "   name: " | cut -d: -f2 | tr -d ';' | sort`

echo "reporting disabled client in Networker backup schedule...."
echo
echo "Scheduled       Client Name       Group_Name"

for client_n in `echo $client_name`
do
   scheduled_backup=`grep -A 6 "name: ${client_n}" ${infile} | grep "scheduled backup" | cut -d: -f2 | tr -d ';'`
   client_g=`grep -A 22 "name: ${client_n}" ${infile} | grep "  group:" | cut -d: -f2 | tr -d ';'`


      if [ "${scheduled_backup}" = " Disabled" ] ; then

         echo "${scheduled_backup}      ${client_n}     ${client_g}"
      fi
done

______________________________________________

Example output is:


Schedule         Client Name
========        ===============
Disabled         server1;

Disabled         server11;


Schedule        Networker Group
========        ===============
Disabled        SiteA_Files_test 
Disabled        SiteB_VM_Image_Troubleshoot 

Friday 21 August 2015

PowerCLI to check cross-connect active path correct for VPLEX

Usually hosts set their active path correctly from the disk nearest to the host, but sometimes they need help.  This script will email any paths on any hosts that are wrong.

Assumptions are that you have Site1 and Site2 in the hostnames.  PowerPath is the default path selection method, and it reports CL1 for cluster1 and CL2 for cluster2.   Hostname pattern is near script (I couldn't get it passed as a variable, let me know if you see how to fix that for us all).  
________________________________________________________________

Add-PSSnapin VMware.VimAutomation.Core
Connect-VIServer vSphere -User DOM\powercli -Password password -Force
#
#disConnect-VIServer vSphere -confirm:$false
#
#
#SiteA
#SiteA runs on AMP Element MgrA and checks for CL1
$bldghost = "SiteA*"

$correctcluster = "CL2"
$correctcluster = "CL1"

#SiteB
#SiteB runs on AMP Element MgrB and checks for CL2
###$bldghost = "SiteB*"
###$correctcluster = "CL2"

$allhosts = Get-VMHost "SiteA*"

foreach ($esx in Get-VMHost "SiteA*")


{

#write-host "$esx is esxhost"
### PowerPath command rpowermt , then grabbing asb:prox and CL1 or CL2
$wrongpath = rpowermt username=root password=password host=$esx display dev=all | out-string -stream | select-string "asb:prox" | out-string -stream | select-string $correctcluster

### if this variable exists, then it means we have a problem & need an email alert
if ($wrongpath) 

{

#write-host $wrongpath is wrongpath

#write-host vBlock cross connect path wrong for $esx as $bldghost asb:proxy needs to be set to
#$wrongpath

$wrongpathandesx = "
$esx host
=================================================================================
$wrongpath

"
$errormail += $wrongpathandesx

$errorcheck += $wrongpath

}

else 

{

write-host "cluster $correctcluster for active path is correct for asb:proxy cross-connect VPLEX luns on $esx"

}

}

### get Email info from vCenter
$vCenterSettings = Get-View -Id 'OptionManager-VpxSettings'
$MailSender1 = $env:computername+'.uk01.apmn.org'
$MailSender = "vBlock_AMP_ArrayMgr@$MailSender1"
$MailSmtpServer = ($vCenterSettings.Setting | Where-Object { $_.Key -eq "mail.smtp.server"}).Value
$MailSendingTo = "email@email.com"


#write-host $MailSender1 is MailSender1 and $MailSender is MailSender

if ($errorcheck) 

{

#$mailtext = $errormail | Format-List

$emailbody2 = "RDP to $MailSender1 as these active paths should be set to $correctcluster and need the rpowermt set path_latency_monitor and set autostandby=reinitialize commands ran from CLI after sVMotioning to the host to create traffic

$errormail"

$emailbody0 = '<pre>{0}</pre>' -f [System.Net.WebUtility]::HtmlEncode($emailbody2) 


Send-MailMessage -from $MailSender -to $MailSendingTo -subject "alert: VPLEX cross-connect active paths wrong" -body $emailbody0 -BodyAsHtml -smtpServer $MailSmtpServer


}

else

{


$emailbody2 = "cluster $correctcluster for active path is correct for asb:proxy cross-connect VPLEX luns for $bldghost hosts:

$allhosts"

write-host $emailbody2

Send-MailMessage -from $MailSender -to $MailSendingTo -subject "ok: VPLEX cross-connect active paths good" -body $emailbody2 -smtpServer $MailSmtpServer

}

disConnect-VIServer vSphere -confirm:$false

Report Changes to DRS/HA settings

Do your vCenter settings get changed when they shouldn't?  This script will email an alert when anything has changed.  

First you need to run once and it'll create "E:\scripts\PowerCLI\logs\HA-DRS-GetCluster-File.txt" and copy that file to "E:\scripts\PowerCLI\logs\HA-DRS-GetCluster-Baseline.txt".

From then on each time the script runs (schedule in Windows Task Scheduler), a new GetCluster-File is created and compared to the baseline file.

___________________________________________________________________

# created by KC on 2015/06/04
#
#
#pre-reqs are:
# 1.  set vCenter server for Connect command
# 2.  verify/create directory/file
# E:\scripts\PowerCLI\logs\HA-DRS-GetCluster-Baseline.txt (Cam)
# F:\scripts\PowerCLI\logs\HA-DRS-GetCluster-Baseline.txt(Basel)
#
#
Add-PSSnapin VMware.VimAutomation.Core
Connect-VIServer vSphere
#
# after valid change to HA/DRS settings in vSphere, copy
# E:\scripts\PowerCLI\logs\HA-DRS-GetCluster-File.txt
# overwriting and replacing:
# E:\scripts\PowerCLI\logs\HA-DRS-GetCluster-Baseline.txt
# to prevent alerts by this script
#
#get email variables from vCenter 
#
$vCenterSettings = Get-View -Id 'OptionManager-VpxSettings'
$emailFrom = ($vCenterSettings.Setting | Where-Object { $_.Key -eq "mail.sender"}).Value
$smtpServer = ($vCenterSettings.Setting | Where-Object { $_.Key -eq "mail.smtp.server"}).Value
#set email variables manaully
$emailRcpt = "email@email.com"

$MailSendingTo = "email@email.com"
#
#set variables for baseline file and new cluster-file
#
$GetClusterFile =  'E:\scripts\PowerCLI\logs\HA-DRS-GetCluster-File.txt'
$GetClusterBaseline = 'E:\scripts\PowerCLI\logs\HA-DRS-GetCluster-Baseline.txt'
$GetClusterMail = 'E:\scripts\PowerCLI\logs\HA-DRS-GetClusterMail.txt'
#
#
#collect cluster config info and send to screen
#
Get-Cluster | Sort-Object -Property Name | 
Select-Object -Property Name,HAEnabled,HAAdmissionControlEnabled,
@{N="AdmissionControlPolicy";E={$_.ExtensionData.Configuration.Dasconfig.AdmissionControlPolicy.GetType().Name}},
DrsEnabled,DrsMode,DrsAutomationLevel
#
#
#collect cluster config info and send to file
#
Get-Cluster | Sort-Object -Property Name | 
Select-Object -Property Name,HAEnabled,HAAdmissionControlEnabled,
@{N="AdmissionControlPolicy";E={$_.ExtensionData.Configuration.Dasconfig.AdmissionControlPolicy.GetType().Name}},
DrsEnabled,DrsMode,DrsAutomationLevel | out-file $GetClusterFile
#
# Get remaining cluster info, send to screen
#
Get-Cluster | Select-Object -Property Name,
@{N="CpuFailoverResourcesPercentage";E={$_.ExtensionData.Configuration.DasConfig.AdmissionControlPolicy.CpuFailoverResourcesPercent}},
@{N="MemoryFailoverResourcesPercentage";E={$_.ExtensionData.Configuration.DasConfig.AdmissionControlPolicy.MemoryFailoverResourcesPercent}} 

#
# Get remaining cluster info, appending to file
#
Get-Cluster | Select-Object -Property Name,
@{N="CpuFailoverResourcesPercentage";E={$_.ExtensionData.Configuration.DasConfig.AdmissionControlPolicy.CpuFailoverResourcesPercent}},
@{N="MemoryFailoverResourcesPercentage";E={$_.ExtensionData.Configuration.DasConfig.AdmissionControlPolicy.MemoryFailoverResourcesPercent}} >> $GetClusterFile
#
# load GetCluster info into variable for email later
$hadrs_getclusterfile = Get-Content $GetClusterFile
#$hadrs_baselinefile = Get-Content $GetClusterBaseline
#
#
$Report = Compare-Object -Ref (Get-Content $GetClusterFile) -Diff (Get-Content $GetClusterBaseline) -Verbose | Out-String 

write-output $Report $hadrs_getclusterfile > $GetClusterMail
#
$Same_Or_Diff = Compare-Object -Ref (Get-Content $GetClusterFile) -Diff (Get-Content $GetClusterBaseline) | Measure | select Count
#
#
$z = $Same_Or_Diff.Count
if ( $z -eq 0)
{
write-host $Same_Or_Diff 
write-host "is Same_Or_Diff"
write-host $z 
write-host "is Count of differences, should be equal to 0" 
write-host "which means no change to HA/DRS config at" 

#$Report = "$MailSender HA/DRS config is unchanged, no action needed for $MailSender"
$MailSender 

$Report = (Get-Content $GetClusterFile | out-string)

#commented email so we only get alerts for problems
#email results
#Send-MailMessage -from $emailFrom -to $emailRcpt -subject "HA/DRS Config Alert OK - not changed" -body $Report -smtpServer $SmtpServer
}
#
else
#
{
#
write-host $Same_Or_Diff 
write-host "is Same_Or_Diff"
write-host $z 
write-host "is Count of differences, should not be equal to 0" 
write-host "A change to HA/DRS config at" $MailSender "needs investigation" >> $GetClusterMail
write-host $Report
write-host is email body
#
#
#email results

$Report = (Get-Content $GetClusterMail | out-string)

#Send-MailMessage -from $MailSender -to kevin.cade@napp.co.uk -subject "Alert: HA/DRS Change Config Change Changed" -body $Report -smtpServer $MailSmtpServer

#prepare email
$emailSubject = "Alert: HA/DRS Change Config Changed!" 
$msgBody = $Report
$smtp = New-Object Net.Mail.SmtpClient -arg $smtpServer
#send email
$smtp.Send($emailFrom,$emailRcpt,$emailSubject,$msgBody)

Send-MailMessage -from $emailFrom -to $emailRcpt -subject "HA/DRS Config Alert changed!" -body $Report -smtpServer $SmtpServer


}

disConnect-VIServer vSphere -confirm:$false

PowerCLI VM Host & DataStore affinity

We name our datastores with a three letter prefix which is the same three first letters of our hosts.  Folks who create VMs often forget to create the DRS rules so this script can be scheduled to run via Task Scheduler to alert us of VMs that need fixing:

____________________________________



### add snapin so PowerShell runs with PoweCLI features
Add-PSSnapin VMware.VimAutomation.Core
Connect-VIServer vSphere
#
$vms = Get-View -ViewType VirtualMachine -Property Name,Datastore,"Runtime.Host",  "Runtime.PowerState" 
### exclude Microsoft SQL Cluster VMs with RDMs that report disks from both sites 
$emailbody = foreach($vm in $vms){ 
    if ($vm.Name -ne "ClusterVM1" -and $vm.Name -ne "ClusterVM2") 
    {
### only report on VMs that are powered on
       if ($vm.Runtime.PowerState -eq "poweredOn") 
       {
### exclude hosts as needed
        $esx = Get-View $vm.Runtime.Host -Property Name
        if ($esx.Name.Split('.')[0] -ne "vh99" )
        {
            $ds = Get-View $vm.Datastore -Property Name
### report those datastores that don't match first three letters of hostname with first three letters of datastore name
            if ($ds | where {$_.Name.Substring(0,2) -notmatch $esx.Name.Substring(0,2)})
            
            {
                      
                       $vm | Select Name,
                        @{N="Host";E={$esx.Name.Split('.')[0]}},
                        @{N="DataStore";E={[string]::Join(',',($ds | %{$_.Name}))}} | out-string
               
            }
        }
        }
    }

### for email alert, get mail info from vCenter database
$vCenterSettings = Get-View -Id 'OptionManager-VpxSettings'
$MailSender = ($vCenterSettings.Setting | Where-Object { $_.Key -eq "mail.sender"}).Value
$MailSmtpServer = ($vCenterSettings.Setting | Where-Object { $_.Key -eq "mail.smtp.server"}).Value
$MailSendingTo = "email@email.com"

### test for VMs with running on wrong host according to datastore
if ($emailbody) 

{

write-host "These VMs are misconfigured and will fail during an outage of either data center, and they will fail with an outage of the link between data centres.  Fix the VMware DRS rule on $MailSender so these VMs run on host and disks in the same data center.  These VMs with disks and hosts spanning two locations are at risk of needless loss of service to our customers:

$emailbody"

$emailbody2 = "These VMs are misconfigured and will fail during an outage of either data center, and they will fail with an outage of the link between data centres.  Fix the VMware DRS rule on $MailSender so these VMs run on host and disks in the same data center.  These VMs with disks and hosts spanning two locations are at risk of needless loss of service to our customers:

$emailbody"

Send-MailMessage -from $MailSender -to $MailSendingTo -subject "alert: VM Host/Disk affinity violations" -body $emailbody2 -smtpServer $MailSmtpServer

}

else


write-host "ok: host/datastore affinity is correct for all VMs in $MailSender" 

$emailbody2 = "host/datastore affinity is correct for all VMs in $MailSender"

Send-MailMessage -from $MailSender -to $MailSendingTo -subject "ok: no VM Host/Disk affinity violations" -body $emailbody2 -smtpServer $MailSmtpServer

}

disConnect-VIServer vSphere -confirm:$false

________________________________________________

Thanks to LucD for doing the real work of this script.

Friday 10 April 2015

Chromebook review

You know those friends who aren't the most technical?  The ones who you give free IT support because you're the techie friend/family member?  Maybe it's your parent or and older neighbour or family friend.   Over the years I've built plenty of computers, installing AVG free antivirus software and making registry changes to improve security.  I've spent a lot of time re-installing to get rid of bloatware and to try to work around some of Windows flaws that are easiest to circumvent.

Last month it was time to recommend a replacement laptop for one of these friends.  Lyn tells me her bulky Windows machine sometimes takes 30 minutes to boot and doesn't last even that long on battery--even though it's only a few years old!  I started explaining the benefits of Apple, with my personal stories of genius bar appointments where I walk away with my software/hardware problem solved, either through tuition, software or hardware repair, or even full hardware replacement!  I couldn't promise the hardware would last longer than Windows equipment, but I thought the support that you get with Apple products might justify the significantly higher price.  But these days there are more choices than bloated Windows or expensive Apple.  Ultimately she bought the third choice, the first time I've recommended a Chromebook.



For this comparison, we're not really trying to compete with a high spec laptop.  There's no DVD player and not a lot of memory or storage space.  But this is a middle ground option--below a less expensive laptop, and above a tablet.  Think a tablet with a physical keyboard and USB ports added--although this Chromebook is cheaper than an iPad or iPad Mini.  Although my testing has taught me that it's not quite a tablet either.  The only Apps that will install seem to be those that run in the Chrome browser, which I'll discuss more later.

Like some laptops, the Chromebook has SD storage instead of spinning disk drive.

I read reviews of this Toshiba Chrombeook and someone complained of a bug where it looses connection to WiFi routers that transmit dual SSIDs, but it's working fine for me.


Ecosystem: If you are a big user of Google for email and especially Google Docs (drive.google.com) and/or an android phone, then you'll connect easily into the Google ecosystem.  Similarly, if you are an Apple user then you are likely to try their other products and you'll know they are the best at tempting customers to take advantage of benefits of their ecosystem (Apple iTunes for music/movies, App store purchases, etc.).  I bought Apple's office productivity software for one computer and can use it on all my other Apple computers--a different pricing model than anyone else (Microsoft) offers.  Microsoft's ecosystem isn't as far reaching but they are trying.  Their phones are the weakest link in their product chain.  But back to the ecosystem.  If you're a Chrome user, and unless you've reduced your security, it's great when you first log into a Chromebook as your usernames (and passwords if you've opted in) are right there remembered for you.  As are your URL history, helping you by suggesting the websites before you finish typing their names.  Great!


Price:  The idea has always been that you have to pay premium price to get the top Apple experience. and that Microsoft is cheaper.  But there are so many hardware choices, and my comparison Dell option is more expensive than a Macbook Air with the same amount of SSD storage--though the difference can be explained in part because Dell has twice memory.   But, I just noticed the Dell Lattitude option includes the cost of £130 (for Home edition) or £230 (for Office Edition) of Microsoft Office alone!  £1290/1400 total.  Worth considering you can buy a Chromebook and get working for about the same price as Microsoft Office software alone.  This is very complicated.  For example, if you buy an HP Pavillion 11 inch from PC World, you can get office for £80.


Security:  ChromeOS is based on Linux and gives hardened operating system featuring auto-updating and sandboxing that Google says will reduce malware exposure.  Chromebook is designed in a way that means far less security issues.  If you don't have any "deal breaker" software locally installed on your laptop, then a Chromebook might be right for you.  The only way software is added to a Chromebook is via the Google Play Store, which is more controlled than Apple OSX and Microsoft Windows.  It's a balancing act between strengthening security by limiting software versus expanding choices but opening up security risks.  At the moment Chromebook is stronger on security by limiting Apps that can be installed to only those that run in the Chrome browser.  This may change as they allow Apps from the Google Play app store, as insinuated in the Pixel video clip above.  I predict the apps available will increase, which is good for function, but it might be a good idea to allow companies to have lock-down options or security levels to limit/allow this depending on whether security or flexibility are their priority.


Speed & Ease of Setup:  I'm writing this sentence less than 5 minutes after turning on the Toshiba CB30-104 for the first time. I connected to WiFi and gave a Google login username/password.  That's all--ready to go.  I'm ready to work.

Chromebook wasn't designed to run high-end software like Adobe Photoshop, but is meant to compete with lower spec netbooks.  However, a quick look at Gimp (the open source Photoshop clone), shows a rich feature set.  Seems to work fine, just a little slower as it runs over the internet.

Still, comparing apples and oranges, this Chromebook powered up in 8 seconds, login and loading my 10 browser tabs took longer, an additional 40 seconds.  My high-spec work laptop took 14 seconds to boot to Windows and 30 seconds to login and bring up the same browser sessions.


Hardware & Build Quality:  Keyboard & Mouse feels fine at first.  The plastic case feels noticeably cheaper than what I'm used to from Apple and Dell, but so far it's working very nicely and it's not bad.  After a while I miss my premium keyboard on my Mac and I do have some frustrations with the mouse getting a bit confused and slowing me down a bit.   I'd use that external mouse if I was working for more than an hour or so--easy workaround.   I carried the device for about 15 minutes and noticed a few ways of carrying it the plastic case gave a little, but I wouldn't expect it to crack unless I was really careless.














The battery reports over six hours of life, and I got 5 hours of light to moderate use and still had 39% and 3 1/2 hours remaining!  That's very good in my view.



Working Offline:  Apple is either annoying or brave to be the first to reduce and remove ports, floppy drives, DVD drives from their Mac devices. Similarly the concept of a Chromebook limits you to do everything on your web browser, which means you can't do much without internet access.   That's may seem silly but I think it's a brave idea. Of course, we still want to work offline.  The best solution is to buy your Chromebook with a 3G plan so it can connect like your smartphone does when no WiFi is available.  Alternatively, I've tethered my Chromebook with my phone's 3G in about a minute and I'm typing this now using the 3G connection just fine.



Microsoft Office Offline

Office365


Office was a huge failure offline.  The official Office 365 blurb says you need a PC or Mac and the client software installed.  Then offline it claims to give three days worth of items, or 150 messages, which ever is larger.  Attachments do not open while offline and up to 20 folders are sync'ed.   Search is not supported either.

Again, with the free versions, Word, Excel and Powerpoint gave an error message indicating loss of connection to the server not long after disconnecting WiFi on the Chromebook and froze.


The web software was useless and I couldn't make changes or more around the software at all.  The only exception was OneNote collaborative software which I'd never noticed, definitely not heard of anyone using..




Google Mail

I created a few Gmail test emails while offline.  Then searched and viewed some fairly old emails too.  Plus sent an email while offline and can confirm it was automatically sent once Chromebook reconnected to WiFi.


I've not put a lot of time into testing this because I usually have internet at home or the office or a cafe or the airport (and can even get it on a plane these days).

It's easy to find out how to change things or learn about settings on your Chromebook.  Printing is easy enough to setup at home too.  It took less than 2 minutes.


Pros'
Setup and ready to use faster than any computer I've used.
I plugged in the nearest mouse and keyboard, and it's working without a missing a beat (no popups about installing drivers, just plugged and played).

Websites I've tested to make sure Flash/Silverlight works ok:
Netflix, Amazon Prime Instant Video, YouTube, Google Play, Google Play Music

Con's
No Visio, though Outlook, Word, Excel, PowerPoint and OneNote are all there via OneDrive online.

HDMI port for external display, rather than the usual 15 pin VGA or the newer standard I'm seeing on Dell and Mac.

No Skype!  I use it on my Apple OSX, IOS devices as well as Windows PCs and Window Lumia smartphones, so this is really unfortunate.  Of course you can use Google hangouts, but to give your granny a Chromebook then tell her she needs to convince her grand-kids to change from Skype is unfortunate.

There's plenty of advanced settings that you have to live without that super users take for granted on Mac/PC tablet, but they're really not that important.  If you can't do without things like controlling what your laptop does when you close the screen (power-save mode is default), how long it runs before automatically sleeping, etc., then you need a more expensive laptop rather than this web and app launcher.


Screen Display:  Here's a few photos of images displayed on the screens of a £170 Chromebook on the right and a £800 MacBook Air on the left.  Can you see the difference?  Is the difference worth the cost?  I did a non scientific experiment posting this on Facebook and the few people who voted seemed to notice a small advantage on the more expensive Macbook, but even my son who has a very good eye for this kind of thing had to admit the difference wasn't large.




Chromebook
Toshiba
CB30-104
Windows
Dell Lattitude
14-7000
Apple OSX
MacBook Air
price£169£1290£850
securitybestviruses2nd best
featuresandroid
app store
touchscreen
bloatware
runs most
software
premier
ecosystemGoogle
best for
G-Drive/Gmail
Microsoft
best for
Office/Outlook
Apple
Office Suite
or MS Office
best for iPhone
build
quality
depends
on price
depends
on price
depends
on price
screen13.31413.3
SSD
storage
16 Gb
+128 Gb
via SD
256 Gb128 Gb
RAM4 Gb8 Gb4 Gb
remote
working

fair
integration
with
Windows

best
integration
with Windows

2nd best
integration
withWindows

Windows  You can install anything you can think of from small business finance software to video and audio editing to code compilers for students learning computer programming at university. Mac offers all of these categories, but sometimes not as many choices.  Windows is strongest in workplaces (Microsoft Office) and gaming and it's always been a safe bet for most computing needs.  Lately the viruses and bloatware forced on users as a way to push advertising or try to sell software has become a high price to pay to reduce the initial cost of the laptop. This along with virus and antivirus hassles are both big reasons to consider ChromeBook.

The Mac can install most kinds of software that Windows offers, but doesn't give the options for the serious gamer or a few other niche users.  Not everyone knows how to use a Mac, but people who try them usually are more than happy with the differences.  Although opinions differ, Mac is the Mercedes/BMW/Cadillac of personal computing. Plenty of people really cherish their Apple products.  They are designed to be things of beauty instead of inexpensive tools.  Mac has always been the strongest presence in the creative pursuits: music creation, film making, graphics design, photography, publishing, etc.  Note that you can still buy Microsoft Office for Mac and I can attest that it works great on Mac.

Chromebook is taking advantage of a fairly fundamental change that's happening right now in the way we do computing.  For example, a small charity I know used to install SAGE finance accounting software on a Windows computer but now has switched to a service which hosts a better solution on their website.  It links to our bank account and even guesses which budget code to assign each expense based on what's been assigned already.  Plus it does much better reports than the old software installed on our PCs did.  So this is an ideal example of when a Chromebook wins.  We can run all of our charity's finances from a web browser, so we just use an inexpensive Chromebook!   No software to install, license, configure, backup, upgrade, etc.  Same with email.  No need for MS Outlook client to be installed or configured, just use the web interface for Gmail (Google) or Hotmail (Microsoft) or Yahoo, or your choice.  Same with word processing, spreadsheets or presentation software like PowerPoint. If you can do what you need with the online version (Microsoft or Google) then you don't need to install it, and might not need that old fashioned PC at all. The benefit is quicker setup, easier and cheaper to maintain and support.

As more and more of our computing is done in the cloud, a beefier Chromebook like the Chrome Pixel makes sense aimed at users of high end laptop like the MacBook Air.




Sample Screenshots































































Summary:  As usual, whether this is right for you depends on what you need.  The cost savings and security of a Chromebook are perfect for someone who doesn't use their computer for advanced or niche purposes.  Employees might be able to use a Chromebook if enough of the software is located on servers or a remote solution like VDI is available.  As time goes by more and more laptop users will be able to work with an inexpensive device that boots super quick and is very simple, secure and less expensive to maintain.