Skip navigation

It was recently brought to my attention competitors were referencing our whitepaper, "Hitachi Content Platform Architecture Fundamentals", and spreading FUD as it relates to the resiliency of HCP. Below are two statements competitors are attempting to leverage against us with rebuttals for each:

 

  • Page 21, Flash Optimized Option, ‘G series… configured in a RAID-1 mirror’, then in S-node we said to use eraser code. Competitor claim if G-node failed, then there will be risk. We are not 100% eraser code.
    • This claim appears to conflate two unrelated topics; Flash Optimized Option and user storage data protection. The Flash Optimized Option refers to the use of a pair of mirrored SSDs for the purpose of accelerating database performance of the content-addressable hash index. There is no user data on the mirrored
      SSDs.  There is no recommendation or assertion that RAID-1 be used to protect user data.  A minimal HCP system consists of a minimum of four G-nodes with a RAID-6 group (4D+2P) for user storage for each node. The cluster will operate at DPL2 ensuring two copies of all data and metadata exist in the cluster on two separate nodes. The loss of a single G node in the cluster will not impact the data or access to the data.

 

  • Page 22, Storage Nodes (S10, S30), ‘all HCP S nodes feature two independent x86 controllers…’.  Competitor challenges if more than two node/controller failed for critical S node, then whole HCP will be out of service.
    • If we are running a single S node system and lost both controllers on the S node we would lose access to that data. If we were replicating to a second site or in a geodistributed EC topology the loss of a single S node wouldn’t result in loss of data or loss of data access for the HCP system. Generally speaking, dual redundant components is standard for enterprise data centers and would be consistent with anything offered by our competitors.

HCP chargeback reports contain valuable information that is useful toward understanding HCP utilization and workloads. The problem is that the data can be overwhelming. Trying to understand this data in it's tabular form is not humanly possible. What we need to understand this data is visual representation, but building charts and graphs is time consuming isn't it? Actually no, you can visualize chargeback report data in under 5 minutes using the PivotChart features in Excel. Read on to find out how.

 

In the HCP System Management Console go to the Monitoring => Chargeback page. Select the range of dates you would like to report and choose Hour or Day reporting interval. Hour is recommended if you would like to be able to identify time of day peaks in application activity.

Click the Download Report button and open the downloaded report.csv file in Excel. The example shown uses Microsoft Excel 2016, but the pivot chart features have existed since at least 2008.  Save the file as an xls/xlsx file, csv format is not capable of saving the changes you will be making.

 

Click anywhere inside the data in you spreadsheet and then, in the Insert menu, select PivotChart.

On the Create PivotChart dialog, your data has automatically been fully selected, and it will default to placing your PivotChart in a new sheet. Accept the defaults and click OK.

Excel will create a new sheet in your workbook, into which it will insert a new PivotTable (green) and a new PivotChart (red). Both Pivot objects are empty because we have not added anything to them just yet. If you do not see a dialog window titled "PivotChart Fields" just click anywhere inside the PivotChart area1.
1If you still do not see it right click in the PivotChart area and select "Show field list".

In the PivotChart Fields dialog you will select the fields from the data that you want to visualize, and how you want to represent and filter that data. Typically you will want to be able to filter by tenantName and namespaceName, so go ahead and drag those fields into the 'Filters' section. We also typically like to display the activity in these reports over time, so go ahead and drag startTime into the 'Axis (Categories)' section. Finally you need to decide what data values you want to visualize, for our first chart lets visualize the number of read and write operations, so we will drag reads and writes into the 'Values' section.

pivot_select.gif

Notice that after we drop the fields in the Values section that the text changes to "Sum of <field>", this is because we have to specify field aggregation rules. We need these rules if, for example, we decide to roll our results up by month instead of day or hour. In some cases we may wish to show the sum of the values (default), or the average, or perhaps the min or the max. To change aggregation rules for the field click the down arrow next to the field in the Values section and click "Value Field Settings...", select your aggregation rule. For now we are going to leave our aggregation at Sum.

If you have been following along you should now see something like what you see below. Your PivotTable (green) now has data in it as does your PivotChart (red). The first thing you may notice is that your nice daily or hourly chargeback data has been rolled  up by month. And you may also notice that the numbers shown are much higher than what the system is actually doing. Let's start by addressing the inflated numbers.

Because of the way chargeback reports roll up the data by tenant (tenant not blank, namespace blank) and by system (tenant and namespace blank), if you aggregate the whole report you will be triple counting values: once in the namespace, once in the tenant rollup, and a third time in the system rollup. For our example let's just look at system numbers, so we will filter on tenantName=blank. In the upper left corner of your PivotChart click on tenantName.

And in the selection dialog select '(blank)' and click OK.

Now that we are not double counting data, let's fix the time rollup issue. In the PivotTable right click on any month value, 'Nov' in the example below.

Select 'Group' from the context menu, and in the Grouping dialog box select Hours, Days, and Months and click OK.

Now you will see your data reported by hour.

It may be difficult to digest as a bar chart, you can convert to a different chart type. In the PivotChart Tools Design menu click "Change Chart Type".

In the Change Chart Type dialog box, choose line and click OK.

 

You now know enough to get started and to quickly visualize HCP workload information. You can see from the examples above that you can quickly choose different field values to visualize, filter the data by tenant or namespace, and choose the right chart type to graphically represent your data.

The Hitachi Content Platform is a great object platform. It provides all the advantage of traditional cloud providers in your datacenter. This article will describe how to perform several tasks via PowerShell in order to automate similar tasks.

 

Connect to HCP via PowerShell

Generating Secure Access Keys and Secret Keys for the HCP Platform with Microsoft .Net for C# and PowerShell

The Hitachi Content Platform is a great Object Storage for your Datacenter. In order to use it programmatically you need to have a Access and Secret Key just like with every other object storage. This quick blog post will show you how to create those keys with PowerShell or C#

 

 

 

#################################################################

#################################################################

#                                                               #

# Name: Get-HS3AccessKey.ps1                                    #

# Author: Carlos Vargas                                         #

# Version : 1.0                                                 #

# Contact : carlos dot vargas at hds dot com                               #

# Note: Script to convert information for HS3 API for HCP       #

#                                                               #

#################################################################

#################################################################

 

# Intro

cls

Write-Host "HCP HS3 Access Key Convertion Tool"

Write-Host ""

Write-Host ""

 

# Function to Convert to Account name to Base64

function ConvertTo-Base64($string) {

   $bytes  = [System.Text.Encoding]::UTF8.GetBytes($string);

   $encoded = [System.Convert]::ToBase64String($bytes);

 

   return $encoded;

}

 

# Function to convert Password to MD5

Function Get-StringHash([String] $String,$HashName = "MD5")

{

$StringBuilder = New-Object System.Text.StringBuilder

[System.Security.Cryptography.HashAlgorithm]::Create($HashName).ComputeHash([System.Text.Encoding]::UTF8.GetBytes($String))|%{

[Void]$StringBuilder.Append($_.ToString("x2"))

}

$StringBuilder.ToString()

}

 

 

# Get Tenenat Account Name and Password

$accesskey = Read-host  "Type the HCP Tenant Account Name"

$SecretKey = Read-host  "Type the HCP Tenant Account Password" -AsSecureString

 

# Convert Secret to plain text

$BSTR = `

    [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecretKey)

$PlainPassword = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)

 

# Send values to formulas

$aktemp =  ConvertTo-Base64($accesskey)

$sktemp =  Get-StringHash($PlainPassword)

 

# Output values

Write-Host ""

Write-host "The HS3 Access Key for $accesskey is: " $aktemp -ForegroundColor Yellow

Write-host "The HS3 Secret Key for $accesskey is: " $sktemp -ForegroundColor Green

Write-Host ""

Write-Host ""

 

pause

 

 

HCPS3Keys1.png

This is a quick blog to help all PowerShell Developers and Administrators to leverage the power of HCP via PowerShell

 

1. Install the Hitachi Storage Adapter for Microsoft Windows PowerShell

HitachiPowerShellAdapter.png

 

2. Open a Windows PowerShell ISE Window.

HitachiPowerShellAdapter2.png

 

3. In order to Add the HDS PowerShell SnapIn to your PowerShell Session follow the following steps.

# Add Hitachi Data System PowerShell SnapIn

Write-Host ""

Write-Host "-------------Importing Hitachi Data System PowerShell Module --------------" -BackgroundColor White -ForegroundColor Black

Add-PSSnapin "Hitachi.Storage.Management.Powershell2.Admin"

Add-PSSnapin "Hitachi.Storage.Management.Powershell.Admin.HCP"

 

HitachiPowerShellAdapter3.png

 

 

4. Next let us add a function to convert the password into the correct format needed to authenticate against HCP.

# Functions

 

function ConvertFrom-SecureToPlain {

 

    param( [Parameter(Mandatory=$true)][System.Security.SecureString] $SecurePassword)

 

    # Create a "password pointer"

    $PasswordPointer = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecurePassword)

 

    # Get the plain text version of the password

    $PlainTextPassword = [Runtime.InteropServices.Marshal]::PtrToStringAuto($PasswordPointer)

 

    # Free the pointer

    [Runtime.InteropServices.Marshal]::ZeroFreeBSTR($PasswordPointer)

 

    # Return the plain text password

    $PlainTextPassword

 

}

HitachiPowerShellAdapter4.png

 

5. Now let us add a couple of variables for the HCP System name, Username and Password

# Variables

$HCPFQDN = Read-Host "Please Type the FQDN or DNS Name of your HCP System. Ex. hcp.example.com"

$HCPAdminUser = Read-Host "Please type your administrator acccount username for the HCP System"

# Capture the Password in Encrypted AES form and so it can be secured

$HCPAdminPass = Read-Host "Please type your administrator acccount password for the HCP System" -AsSecureString

HitachiPowerShellAdapter5.png

 

6. Let's call the ConvertFrom-SecureToPlain Function and then connect to the HCP

# Convert Password from AES to Appropiate Format

$HCPAdminPassUnEncrypted = ConvertFrom-SecureToPlain($HCPAdminPass)

 

# Connect to HCP

$ConnectToHCP = Add-HCP -HCPSystem $HCPFQDN -UserID $HCPAdminUser -Password $HCPAdminPassUnEncrypted

HitachiPowerShellAdapter6.png

 

7. Now let's connect to the HCP System and store the information in a variable called $HCP

# HCP Details to HCP

$HCP = Get-HCP

$HCP

HitachiPowerShellAdapter7.png

 

8. Now we can execute our script and connect to the HCP System and get some basic information like the current tenants in the HCP.

HitachiPowerShellAdapter8.png

HitachiPowerShellAdapter9.png

 

Hope this has been helpful and that you can use the code to create great scripts.