Trusted Platform Module (TPM) Supported Platforms

With the release of ONTAP 9.1 earlier this year it brought with it amongst many things NetApp Volume Encryption (NVE). This feature although offered $0 cost requires an additional license which needs to be generated by NetApp. On top of the NVE license NetApp also added a new license which is needed to enable the newly-integrated trusted platform modules (TPM). What is a TPM you may ask? By definition a TPM is, “A dedicated microcontroller designed to secure hardware by integrating cryptographic keys into devices”. When first reading about this I then wondered what platforms include the TPM module? Does every platform that support NVE have a TPM module? After a bit of digging I found that not every platform that supports NVE includes a TPM. The list below shows all platforms that currently have TPM modules integrated: ...

September 21, 2017 · 1 min · dburkland

How To Deploy Kubernetes With NetApp Trident Persistent Storage

As folks adopt DevOps principals they are using common applications to help them get there. One of those is Docker and usually in the same sentence Kubernetes is mentioned next. To review, Docker is essentially a wrapper for Linux containers (LXC), which similar to FreeBSD jails or Solaris Zones, provides a method for applications (and their dependencies) to be isolated in separate namespaces all while sharing the host system’s kernel. Docker containers are extremely portable as they just need the host server to have a LXC-compatible kernel and the Docker application installed. Kubernetes takes this concept to the next level by automating deployment, scaling, and management of containerized applications. It groups containers that make up an application into logical units for easy management and discovery. For a more detailed intro on what Kubernetes is check out the “Sources” section below. Now to the meat of the post, what is NetApp Trident and where does it fit in to the Docker/Kubernetes equation? Well according to NetApp Trident’s GitHub page, “Trident provides storage orchestration for Kubernetes, integrating with its Persistent Volume framework to act as an external provisioner for NetApp ONTAP, SolidFire, and E-Series systems. Additionally, through its REST interface, Trident can also provide storage orchestration for non-Kubernetes deployments.” In other words, Trident allows one to attach persistent storage from NetApp FAS, E-Series, or SolidFire system(s) to containers allowing applications such as databases to easily operate in a containerized environment. Below are the steps I compiled needed to not only stand up a small 3-node Kubernetes cluster but also to deploy the NetApp Trident plugin: ...

August 13, 2017 · 7 min · dburkland

How To Boot Clustered Data ONTAP Directly To Boot Menu Or Maintenance Mode

One new feature in 8.2.2+ that hasn’t been given much press (thanks to Curtis @ NetApp U) is the ability to boot directly into the boot menu or maintenance mode from the loader prompt. This feature will mainly be helpful for field personnel who frequently setup up and build out NetApp Clustered Data ONTAP systems. See below for a list of commands that are required to boot a cDOT system into each respective area. ...

March 31, 2015 · 1 min · dburkland

How To Setup Graphite To Visualize OnCommand Performance Manager Data

As you may well know OnCommand Performance Manager 1.1RC1 was recently released which added the ability to send data to an external system such as Graphite. I have created the following tutorial which explains how to setup a CentOS server and install the Graphite application on it. If you run into any issues with the tutorial please let me know in the comment section below. Provision a CentOS 6+ VM with the “Base” package group installed Install the “EPEL” mirror on the system rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm Install the appropriate RPM packages yum install graphite-web graphite-web-selinux mysql mysql-server MySQL-python python-carbon -y Start MySQL and enable the service to start at boot /etc/init.d/mysqld start chkconfig mysqld on Execute the “mysql_secure_installation” script and accept the defaults mysql_secure_installation Add the following lines underneath the “Database Configuration” section of the “/etc/graphite-web/local_settings.py” config file DATABASES = { 'default': { 'NAME': 'graphite', 'ENGINE': 'django.db.backends.mysql', 'USER': 'graphite', 'PASSWORD': 'netapp1-', 'HOST': 'localhost', 'PORT': '3306' } } Create the “graphite” MySQL user along with the appropriate permission entries mysql -e "CREATE USER 'graphite'@'localhost' IDENTIFIED BY 'netapp1-';" -u root -p mysql -e "GRANT ALL PRIVILEGES ON graphite.* TO 'graphite'@'localhost';" -u root -p mysql -e "CREATE DATABASE graphite;" -u root -p mysql -e 'FLUSH PRIVILEGES;' -u root -p Create the appropriate MySQL database and tables which will be used by graphite /usr/lib/python2.6/site-packages/graphite/manage.py syncdb Change the value for the “MAX_CREATES_PER_MINUTE” setting in the “/etc/carbon/carbon.conf” configuration file MAX_CREATES_PER_MINUTE = 200 Add the following lines to the “/etc/carbon/storage-schemas.conf” config file [OPM] pattern = ^netapp-performance\..* retentions = 5m:100d Create the “/etc/carbon/storage-aggregation.conf” file with the following content # Aggregation methods for whisper files. Entries are scanned in order, # and first match wins. This file is scanned for changes every 60 seconds # # [name] # pattern = <regex> # xFilesFactor = <float between 0 and 1> # aggregationMethod = <average|sum|last|max|min> # # name: Arbitrary unique name for the rule # pattern: Regex pattern to match against the metric name # xFilesFactor: Ratio of valid data points required for aggregation to the next retention to occur # aggregationMethod: function to apply to data points for aggregation # [min] pattern = \.min$ xFilesFactor = 0.1 aggregationMethod = min [max] pattern = \.max$ xFilesFactor = 0.1 aggregationMethod = max [sum] pattern = \.count$ xFilesFactor = 0 aggregationMethod = sum [default_average] pattern = .* xFilesFactor = 0.5 aggregationMethod = average Add the following line to the “/etc/httpd/conf.d/graphite-web.conf” configuration file underneath “Alias /media/” Alias /content/ "/usr/share/graphite/webapp/content/" Fix the following filesystem permission issues chmod 775 /var/log/graphite-web/ chmod 775 /var/lib/graphite-web/ Start the “carbon-cache” & “httpd" services and enable them to start at boot /etc/init.d/carbon-cache start chkconfig carbon-cache on /etc/init.d/carbon-aggregator start chkconfig carbon-aggregator on /etc/init.d/httpd start chkconfig httpd on Complete the “Configuring a connection from a Performance Manager server to an external data provider” steps outlined in the “OnCommand Performance Manager 1.1 Installation and Administration Guide For VMware Virtual Appliances” document found here. This will enable performance data to be sent from the OPM server to the new graphite server After waiting 5 or so minutes you should now see all of the appropriate OPM data points within Graphite under the “netapp-performance” folder

January 12, 2015 · 3 min · dburkland