Tours of the Black Prompt: NetApp FAS Service Processors

The Tours of the Black Prompt series so far:

Over the course of this series, we’ve focused on the command line interface available for the operating systems that run on NetApp FAS storage array controllers: Data ONTAP 7-mode and clustered Data ONTAP. In this post, we’ll focus on a CLI that is not part of the operating system: the Service Processor shell.


Service Processor Shell

NetApp FAS array controllers have had built-in out-of-band management for many years. Depending on the series, older FAS models have used either baseboard management controllers (BMC) or remote LAN management (RLM) ports for this functionality. The newer FAS models, including the 2200, 3200, 6200, and 8000 series, all use a service processor (SP) for out-of-band management. BMCs, RLMs, and SPs offer similar base functionality, but SPs provide the most capabilities and features. The SP CLI behavior described below is the same regardless of whether the controller connected to the SP is running 7-mode or clustered Data ONTAP.

Commands and Privilege Levels

Logging in via SSH (telnet is not supported) you are provided a simple administrative-level prompt:

SP>

The prompt is very minimal and only indicates that you are connected to a Service Processor (the “SP” in the prompt) at the normal administrative privilege level (the “>” in the prompt). This is of course very similar to the Data ONTAP shell prompts but without the cluster or hostname being designated.

From here, you can see the available command structure by simply typing either “?” or help followed by [Enter] :

SP> ?
 date - print date and time
 exit - exit from the SP command line interface
 events - print system events and event information
 help - print command help
 priv - show and set user mode
 sp - commands to control the SP
 rsa - commands for Remote Support Agent
 system - commands to control the system
 version - print Service Processor version
 
SP> help
 date - print date and time
 exit - exit from the SP command line interface
 events - print system events and event information
 help - print command help
 priv - show and set user mode
 sp - commands to control the SP
 rsa - commands for Remote Support Agent
 system - commands to control the system
 version - print Service Processor version

As you can see, there are far fewer commands available for the SP than there are for either version of Data ONTAP. The SP CLI is limited to functionality necessary or useful for situations that require out-of-band access.

For the vast majority of times that an administrator will be connecting to the Service Processor, they will be using it for the most basic functionality: serial console access using the system console command.

SP> system console
 Type Ctrl-D to exit.
 SP-login: admin
 Password:
 *****************************************************
 * This is a SP/RLM console session. Output from the *
 * serial console is also mirrored on this session.  *
 *****************************************************
cluster01::>

Connecting to the system console does require a secondary authentication. While the built-in admin or root user (depending on the version of Data ONTAP) are allowed to login to the SP by default, it is possible for other users to be configured for access to the SP who may or may not be allowed console access to Data ONTAP.

At this point, the SP session will be able to see all output visible to the physical serial port, as well as being able to provide any input to it. Access via system console is not restricted or limited in any way; access and capabilities are only limited by the configuration of the user.

While the SP console session and the physical serial console session do display some of the same information, they still have separate and independent shell environments. If, while an SP session is connected to the system console, there is a concurrent connection to the physical serial port, any input or output from that console session would be mirrored to the SP session. The inverse, however, is not true: any input or output initiated from the SP session will not be visible to the physical console session.

Pressing Ctrl+d from the SP session will end the system console access and return the administrator to the SP CLI prompt.

cluster1::> SP>

The SP itself can also be accessed from the physical serial port by pressing Ctrl+g. This is useful where an administrator is using either a console/terminal server for centralized out-of-band management, or when connected directly to the console (such as during initial setup). The administrator can then return to the serial console by pressing Ctrl+d.

cluster1::>

Switching console to Service Processor
Service Processor Login:
Password:
SP>

cluster1::>

Just like Data ONTAP, there are two additional privilege levels available: advanced and diag. You can change to these levels using the priv set command.

SP> priv set advanced
 Warning: These advanced commands are potentially dangerous; use them only when directed to do so by support personnel.
 
SP*>

The asterisk between the “SP” and “>” indicates that you are in either the advanced or diag privilege level.  There is unfortunately no visual distinction between these two levels, but you can run the priv command with no modifiers to display the current privilege level. This is again just like with Data ONTAP.

SP*> priv
 advanced

More commands are available within the higher privilege levels than in the normal admin level, though they are not necessarily obvious from the top-level output.

Advanced
SP*> ?
 date - print date and time
 exit - exit from the SP command line interface
 events - print system events and event information
 help - print command help
 priv - show and set user mode
 sp - commands to control the SP
 rsa - commands for Remote Support Agent
 system - commands to control the system
 version - print Service Processor version

There are several commands available in Advanced level that aren’t in the normal Admin level, with most being for the display of additional information:

  • sp log audit to display the command history of the SP
  • sp log debug to display the debug information of the SP
  • sp log messages to display the contents of the messages file for the SP
  • system battery auto_update status to display the current setting for the battery firmware automatic updates
  • system fru log show to display the history log related to FRU data

There are also several commands to modify or verify the SP configuration:

  • system battery auto_update [enable|disable] to configure the setting for the battery firmware automatic updates
  • system battery verify [URL] to compare the current battery firmware image with another image available at the specified URL
  • system nvram flash clear to erase the NVRAM flash content (only available when the system is powered on)
Diag
SP*> priv set diag
 Warning: These diagnostic commands are for use by support personnel only.
 
SP*> ?
 date - print date and time
 exit - exit from the SP command line interface
 events - print system events and event information
 gdb - commands to control GDB pass-through
 help - print command help
 priv - show and set user mode
 sp - commands to control the SP
 rsa - commands for Remote Support Agent
 system - commands to control the system
 version - print Service Processor version
 ping - send ICMP ECHO_REQUEST packets to network hosts
 ping6 - send ICMPv6 ECHO_REQUEST packets to network hosts
 traceroute - trace route to HOST
 nslookup - query the nameserver for the IP address of the given HOST optionally using a specified DNS server

The most useful commands at the diag privilege level may be the most basic for troubleshooting network connectivity:

  • ping and ping6
  • traceroute
  • nslookup

Command Syntax and Help

You can see the syntax for a given command by passing it the “-?” or “?” flag, or by using the help command:

SP> events ?
 events all - print all system events
 events info - print system event log information
 events newest - print newest system events
 events oldest - print oldest system events
 events search - search for and print system events
 
SP> events -?
 events all - print all system events
 events info - print system event log information
 events newest - print newest system events
 events oldest - print oldest system events
 events search - search for and print system events
 
SP> help events
 events all - print all system events
 events info - print system event log information
 events newest - print newest system events
 events oldest - print oldest system events
 events search - search for and print system events

The information available for the SP CLI commands is not as verbose and detailed as for Data ONTAP, and manual pages are unfortunately not available. The best source of more information for SP commands will be found in the System Administration Guide for the appropriate Data ONTAP release.

Command Completion

Tab completion is not available for the SP CLI, nor can you abbreviate commands. All commands must be fully entered in order for them to be recognized.

Navigation and Editing

Command-line editing and navigation utilizes the standard keystrokes and combination previously discussed in CLI Efficiency: Common Basics

You can navigate through your previously entered commands using the up and down arrows, or by using Ctrl+n and Ctrl+p, but there is no history command for the SP CLI. It is also worth noting that SP commands entered prior to accessing a system console session will not be displayed after returning to the SP CLI prompt.

Just like with Data ONTAP, you can enter multiple commands on the same command line by separating each command with a semi-colon. The commands will then be executed in order of entry.

SP*> priv; date
 diag
 
 Sun Nov  30 02:10:02 GMT 2014

As you’ll have noticed, the Service Processor shell has an interface similar to and consistent with the Data ONTAP 7-mode shell despite the different use cases for each.

In a future article, I’ll go into more details around SP setup, configuration and usage beyond the basics described in this post.

Tech Smorgasbord #4

An on-going reference series for interesting technology or projects which deserve further investigation, or for technical documentation (of one media format or another) that looks to be especially good reference material.


Duarte Diagrammer

Nancy Duarte and her firm Duarte, Inc. specialize in helping people communicate better through more effective presentations. She’s probably best known for the book Slide:ology: The Art and Science of Creating Great Presentations which is frequently recommended to both novice and more seasoned public speakers.

Duarte Diagrammer is “a visualization system” that provides ~4,000 customizable diagrams to illustrate relationships, hierarchy, and process, with all of these diagrams being available to download as Microsoft PowerPoint files. The site has a very easy and simple interface for browsing the diagrams through categories such as Flow, Join, Network, Segment, and Stack, and then specifying further by style and number of nodes.

The only downside is that each diagram is a separate file to download, and there doesn’t appear to be any consolidated or collected files for groups of related diagrams.  This minor quibble aside, this is a fantastic resource for anyone creating or delivering presentations.


CloudBolt Command and Control (C2)

CloudBolt are billing their product as a “next-generation Cloud Manager” capable of managing and automating the entire breadth of an enterprise infrastructure including virtual environments, physical components, and multiple/hybrid cloud options. CloudBolt are trying to appeal directly to the business, and not (just) to the techies, by highlighting an IT self-service catalog and portal, chargeback and showback cost accounting, software license management, a Cloud Supply Chain Validator, and a rapid time-to-value (20 minute installs and an interface so simple and intuitive that advanced skills and professional services are unnecessary).

The marketing claims that CloudBolt C2 supports and integrates with

  • multiple hypervisors: VMware vSphere, KVM, XenServer (but not Hyper-V, interestingly)
  • multiple cloud platforms: Amazon Web Services, Microsoft Azure,Verizon Terremark, Google Compute Engine, OpenStack, and Nebula
  • multiple configuration management tools: Puppet, Chef, Infoblox, ServiceNow, etc.
  • multiple provisioning technologies: HP server automation, Cobbler, IPMI
  • multiple orchestration products: VMware vCloud Orchestration (sic), HP Operations Orchestrations

Like several other products I’ve come across lately, the CloudBolt website is very light on technical details or content, and while their benefits white paper says “we have made C2 Virtualization Edition freely downloadable, and included a no-cost license to manage up to 100 VMs,” this edition does require request approval before download access is actually granted. (I’ve just submitted a request and am now waiting for approval.)

On the plus side, Gartner has apparently included them in its “2014 Cool Vendor in Cloud Management” report, and educational software powerhouse Blackboard is providing a public reference for CloudBolt (though only a Proof of Concept is specifically mentioned).

Jonathan Frappier has already started documenting his experiences with CloudBolt C2 with two articles available now, and hopefully even more on the way.


How I Taught Myself to Code in 8 Weeks

I’m quite far from being a software developer, but the need for even the staunchest of infrastructure admins and engineers to learn skills typically associated with development is quickly gaining steam. We see it in the growing DevOps movement, the expanding usage and sophistication of automation and orchestration tools, and in the emphasis on programmability and related familiarity with scripting languages included in the marketing tsunami that is Software-Defined Everything.

In this article David Sinsky does a good job laying out a plan to go from near-zero software development experience to producing a working application prototype in eight weekends. Clearly, you won’t become a professional software engineer in this amount of time, but you can rapidly increase yourskillset to the point of usefulness within that span, as David tries to show. Chock full of useful links, this is both a good collection of resources to bookmark and a good plan for learning programing – or at least a good plan for learning Python and Django.


 

Tours of the Black Prompt: Clustered NetApp Data ONTAP – Part 6

The Tours of the Black Prompt series so far:

In this entry in the series, we’ll take a brief look at the different shells available within clustered Data ONTAP.

Clustershell

Everything we’ve discussed in Part 1 through Part 5 of this series has been using the clustershell. This is the primary interface for cluster management from the command line, and it is expected that the vast majority of the administrator’s work in the CLI will be using this shell (95%+). The clustershell is what the administrator is automatically using when connecting to a cluster, regardless of whether that connection is to the cluster management interface, a node management interface, or a Storage Virtual Machine management interface. The clustershell manages objects and configurations for the entire cluster.

Nodeshell

The nodeshell is a more limited shell for commands that only effect an individual node. This shell is equivalent to the one used for Data ONTAP operating in 7-mode where each controller operated as an independent node despite being able to provide high-availability for its partner.

Nodeshell commands are accessible from the clustershell using the system node run command (or any of its abbreviated forms like node run, run, or even ru). We’ve shown several examples of this usage over the previous five parts of this series.

You can see what commands are available in the nodeshell using either “?” or the help command:

cdot_mba1::> run local -command ?
 ?                   file                partner             software           
 acpadmin            flexcache           passwd              source             
 aggr                fsecurity           ping6               sp                 
 backup              halt                pktt                stats              
 bmc                 help                priority            storage            
 cdpd                hostname            priv                sysconfig          
 cf                  ic                  qtree               sysstat            
 clone               ifconfig            quota               timezone           
 date                ifgrp               rdfile              ups                
 dcb                 ifstat              reallocate          uptime             
 df                  key_manager         restore             version            
 disk                keymgr              restore_backup      vlan               
 disk_fw_update      license             revert_to           vmservices         
 download            logger              rlm                 vol                
 dump                man                 route               wcc                
 echo                maxfiles            rshstat             wrfile             
 ems                 mt                  sasadmin            ypcat              
 environment         ndmpcopy            sasstat             ypgroup            
 fcadmin             netstat             sis                 ypmatch            
 fcp                 options             snap                ypwhich            
 fcstat             
 
 cdot_mba1::> run local -command help
 
 ?                   file                partner             software           
 acpadmin            flexcache           passwd              source             
 aggr                fsecurity           ping6               sp                 
 backup              halt                pktt                stats              
 bmc                 help                priority            storage            
 cdpd                hostname            priv                sysconfig          
 cf                  ic                  qtree               sysstat            
 clone               ifconfig            quota               timezone           
 date                ifgrp               rdfile              ups                
 dcb                 ifstat              reallocate          uptime             
 df                  key_manager         restore             version            
 disk                keymgr              restore_backup      vlan               
 disk_fw_update      license             revert_to           vmservices         
 download            logger              rlm                 vol                
 dump                man                 route               wcc                
 echo                maxfiles            rshstat             wrfile             
 ems                 mt                  sasadmin            ypcat              
 environment         ndmpcopy            sasstat             ypgroup            
 fcadmin             netstat             sis                 ypmatch            
 fcp                 options             snap                ypwhich            
 fcstat             

The help command can also be used to get more information about a specific command, or you can pass the “-?” parameter to the command:

cdot_mba1::> run local -command help acpadmin
 
 acpadmin             - Storage ACP administrator functions

cdot_mba1::> run local -command acpadmin -?
 Usage: acpadmin configure
        acpadmin list_all
        acpadmin stats

Running just a command without parameters will actually provide the same information as using the “-?” parameter:

cdot_mba1::> run local -command acpadmin
 Usage: acpadmin configure
        acpadmin list_all
        acpadmin stats

As you may have noticed from our examples in the earlier parts of the series, you don’t need to use the “-command” parameter at all but can just specify the command directly:

cdot_mba1::> run local acpadmin
 Usage: acpadmin configure
        acpadmin list_all
        acpadmin stats

This works even for the help command to show the available nodeshell commands, though you can’t use the “-?” in the same fashion as it’s evaluated for the run local context instead:

cdot_mba1::> run local help   
 
 ?                   file                partner             software           
 acpadmin            flexcache           passwd              source             
 aggr                fsecurity           ping6               sp                 
 backup              halt                pktt                stats              
 bmc                 help                priority            storage            
 cdpd                hostname            priv                sysconfig          
 cf                  ic                  qtree               sysstat            
 clone               ifconfig            quota               timezone           
 date                ifgrp               rdfile              ups                
 dcb                 ifstat              reallocate          uptime             
 df                  key_manager         restore             version            
 disk                keymgr              restore_backup      vlan               
 disk_fw_update      license             revert_to           vmservices         
 download            logger              rlm                 vol                
 dump                man                 route               wcc                
 echo                maxfiles            rshstat             wrfile             
 ems                 mt                  sasadmin            ypcat              
 environment         ndmpcopy            sasstat             ypgroup            
 fcadmin             netstat             sis                 ypmatch            
 fcp                 options             snap                ypwhich            
 fcstat             
 
 cdot_mba1::> run local -?
   { [[-command] <text>, ...]  Command to Run
   | [ -reset [true] ] }       Reset Existing Connection

The nodeshell can also be used interactively by using the run clustershell command without appending a particular nodeshell command to run.

cdot_mba1::> run local                     
 Type 'exit' or 'Ctrl-D' to return to the CLI
 cdot_mba1-01> ?
 ?                   file                passwd              software           
 acpadmin            flexcache           ping                source             
 aggr                fsecurity           ping6               sp                 
 arp                 halt                pktt                stats              
 backup              help                priority            storage            
 bmc                 hostname            priv                sysconfig          
 cdpd                ic                  qtree               sysstat            
 cf                  ifconfig            quota               timezone           
 clone               ifgrp               rdfile              traceroute         
 coredump            ifstat              reallocate          traceroute6        
 date                key_manager         restore             ups                
 dcb                 keymgr              restore_backup      uptime             
 df                  license             revert_to           version            
 disk                logger              rlm                 vlan               
 disk_fw_update      man                 route               vmservices         
 download            maxfiles            rshstat             vol                
 dump                mt                  sasadmin            wcc                
 echo                ndmpcopy            sasstat             wrfile             
 ems                 ndp                 savecore            ypcat              
 environment         netstat             shelfchk            ypgroup            
 fcadmin             options             sis                 ypmatch            
 fcp                 partner             snap                ypwhich            
 fcstat             
 cdot_mba1-01>

Notice that the prompt changes once you’ve entered the nodeshell, and uses the same format as the 7-mode prompt (nodename followed by “>”).

 cluster01> priv set advanced
 Warning: These advanced commands are potentially dangerous; use
          them only when directed to do so by NetApp
          personnel.
 cdot_mba1-01*>

The same privilege levels (admin, advanced, and diag) are still applicable within the nodeshell, and the same indicators are used (the presence of the “*” between the nodename and the “>” indicates that the administrator is in either advanced or diag privilege level).

You return to the clustershell by typing exit or pressing Ctrl+d.

cdot_mba1-01*> exit
 logout
 
 cdot_mba1::>

While in the above example we were connecting to the nodeshell of the local node (the node where the cluster management interface was currently located), the administrator can connect to any node in the cluster as needed:

cdot_mba1::> run -node cdot_mba1-02
 Type 'exit' or 'Ctrl-D' to return to the CLI
cdot_mba1-02>

If you are connecting via the cluster management interface, you can identify which node you are connected to by finding the current home of the interface:

cdot_mba1::*> net int show cluster_mgmt
   (network interface show)
             Logical    Status     Network            Current       Current Is
 Vserver     Interface  Admin/Oper Address/Mask       Node          Port    Home
 ----------- ---------- ---------- ------------------ ------------- ------- ----
 cdot_mba1
             cluster_mgmt up/up    172.16.213.10/24   cdot_mba1-01  e0d     false

But there’s also a much simpler way using a nodeshell command:

cdot_mba1::*> run local hostname
 
 cdot_mba1-01
One final note: just as with the 7-mode shell, tab completion will not work for nodeshell commands, even when run from the clustershell rather than interactively.

Systemshell

The systemshell is a lower-level shell that provides access to the underlying FreeBSD layer of Data ONTAP, and is meant only for diagnostic or troubleshooting purposes. The systemshell should only be used under the guidance of NetApp technical support, particularly for production systems.

The systemshell can only be accessed from the diag privilege level.

cdot_mba1::> systemshell
 
 Error: "systemshell" is not a recognized command
 
 cdot_mba1::> set -priv diag
 
 Warning: These diagnostic commands are for use by NetApp personnel only.
 Do you want to continue? {y|n}: y
 
 cdot_mba1::*> systemshell
   (system node systemshell)
 
 Data ONTAP/amd64 (cdot_mba1-01) (pts/2)
 
 login: admin
 Password:
 Error: Account not configured to connect in this manner.
 
 
 cdot_mba1::*>

The systemshell does require explicit re-authentication, and by default the admin user is not allowed access. You need to login as the diag user instead which needs to be given a password and unlocked before it is usable.

cdot_mba1::*> security login password -username diag 
 
 Enter a new password:
 Enter it again:
 
cdot_mba1::*> security login unlock diag
 
cdot_mba1::*> systemshell
   (system node systemshell)
 
 Data ONTAP/amd64 (cdot_mba1-01) (pts/2)
 
 login: diag
 Password:
 
 
 Warning:  The system shell provides access to low-level
 diagnostic tools that can cause irreparable damage to
 the system if not used properly.  Use this environment
 only when directed to do so by support personnel.
 
 cdot_mba1-01%
The systemshell does not provide the same level of friendliness as the other shells, as the “?” and “help” options are not supported, and neither is tab completion.
cdot_mba1-01% echo $SHELL
 /bin/csh
cdot_mba1-01% pwd
 /var/home/diag
cdot_mba1-01% ?
 ?: No match.
cdot_mba1-01% help
 help: Command not found.
cdot_mba1-01% exit
 logout
 
 cdot_mba1::*>

Again, the systemshell is only to be used under the supervision of NetApp technical support while performing troubleshooting or diagnostic operations.


There is in fact one more shell that an administrator will interact with, and it’s used with both clustered Data ONTAP and 7-mode. The Service Processor shell runs on an independent sub-processor used only for out-of-band management, and accessible via a dedicated Ethernet interface. We’ll discuss it in detail in an upcoming post.

 

 

Reflecting on Good Fortune

Thanksgiving Day has always been my favorite holiday. Even as a child, while I loved the sweets of Halloween and Easter, and the gifts of Christmas, Thanksgiving was the holiday that resonated more deeply with me.

Some of that appeal was fairly straight-forward: a four-day weekend focused on relaxation and good food, without the stress and hassle of gift-giving, and usually with fairly decent weather to enjoy. It was a final blanket of comfort to be enjoyed before the harshness and bleakness of winter truly set in. In that regard, there was also a bit of melancholy about Thanksgiving: living in the Northeastern US it would not get better than this for quite a while – it would be almost six more months before the weather truly improved. Even Spring, when it first arrives, is poor, damp, and unpleasant in comparison, far more promise than reality; the appeal of Spring is how it will be after rather than during. Thanksgiving was the opposite: it was a celebration of the goodness of the present time, and of the success of the past, with a temporary blindness towards the future.

In more modern times, of course, that focus has shifted: Thanksgiving Day isn’t even over before many of us are rushing off to a future of crowds, chaos, and consumption. Black Friday is a boon for the economy but it’s equally a blight on everything that Thanksgiving should represent: enjoying what we have and being thankful for our good fortune in having it.

It’s sad on many levels: we are so oblivious to what we have and so focused on what we want next that we need to set aside a day to be reminded of how lucky we are, rather than having a constant awareness of it. And we only want to set aside just one day – we’re all busy people, and it doesn’t pay to be too grateful, after all. Then we even eat into that tiny sliver of time (one-quarter of one percent of the year) with an immediate and vicious return to the pursuit of the next thing.


In an effort to be more mindful of my good fortune, I want to publicly express my gratitude for so many things in my life (in no particular order):

I’m grateful for my health. It’s usually the part of our lives we most take for granted right up until it’s gone, and then it’s the part that we most desperately miss. I’ve seen, particularly of late, how quickly and surprisingly someone’s health can change, and how little control they may have over it. Good health is a blessing, and not something to be taken for granted.

I’m grateful for my home. I know how it is to not like where you’re living, and I know how it is lose your home. I like where I’m living now better than anywhere I’ve ever lived, and even more than I thought I would before we moved here. Our new house is better and nicer than any we’ve had before, and just feels right. This isn’t somewhere I’m just living – this is my home.

I’m grateful for my career. I fell into the IT/computing industry after having no initial interest or background, and it turned into a life far better than I had imagined. In IT I found something I truly enjoyed, that I’m good at, and at which I’ve been very successful. In a different part of the world, a different time, or a slightly different set of circumstances, my life would have been a completely different, and poorer, experience.

I’m grateful for my family and friends. When bad things have happened over the years, it’s been overwhelming to see the support they’ve provided, often without even being asked. They say that reality is that which doesn’t go away even when you stop believing in it, but in many ways I think that’s just as apropos of family – and friends are just a subset of family.

I’m grateful for my wife. Despite the statistics, we’ve been together through thick and thin, for better and for worse, for over twenty years, and are happier together now than we were at the beginning. She’s supported me always and without hesitation, and most importantly has pushed me whenever I needed it – even, especially, when I didn’t want it – and she’s always been right to do so. Anything I’ve accomplished in my life is a direct result of her unwavering support and persistence.

So to my wife, my friends, my family, and to my colleagues both past and present – thank you.

Cisco Champions 2015

I’m very grateful and proud to find myself and several other members of the NetApp family designated as Cisco Champions for 2015. Cisco Champion(s) is a program similar to the VMware vExpert program in recognizing and rewarding the pursuit of relevant technical achievement and, even more importantly, active participation within the technical community. There can be many areas for that involvement to occur – Twitter, Facebook, Cisco Communities, blogs, and much more – but it’s centered around passion, collaboration, support, and “spreading the wealth” by sharing the knowledge that you’ve gained with other people.

The program is now starting its second year (membership is designated annually) and it’s great to see a good size contingent from the NetApp family as Cisco Champions:

  • Michael Cade (@MichaelCade1 and vzilla.co.uk) of Avnet Technology Solutions: Senior Technical Consultant and a NetApp A-Team member
  • Dave Cain (@thedavecain) of NetApp: Technical Marketing Engineer for Integrated Infrastructures
  • David Klem (@davidklem and davidklem.com) of NetApp: Principal Architect on the FlexPod team and a VMware vExpert
  • Jarett Kulm (@JK47theweapon and jk-47.com) of HA Storage Systems: Principal Technologist and a NetApp A-Team member
  • Ed Morgan (@mo6020 and edmorgan.info) of ANS Group: Technical Consultant and a NetApp A-Team member
  • Melissa Palmer (@vmiss33 and vmiss.net) of NetApp: Systems Engineer, and a VMware vExpert
  • Henry Vail of NetApp: Senior Architect for Integrated Infrastructures
  • Emad Younis (@Emad_Younis and emadyounis.com) of General Datatech: Network Systems Engineer, a VMware vExpert, and a NetApp A-Team member

If I’ve managed to miss anyone from this list, please just let me know and I’ll be happy to update it.

Congratulations to everyone who was chosen as a Cisco Champion this year: communities are defined by their members, and a great community depends on having great people actively involved.  And a special congratulations to my friend Bob Elwertowski (@BElwertowski) of SMP for also being recognized this year as both Cisco Champion and VMware vExpert – and likely a third on its way.

Huge thanks and gratitude to Rachel Bakker (@RBakker), Amy Lewis (@CommsNinja) and the rest of the social media team at Cisco, without whom this program wouldn’t exist.

 

CiscoChampion200PX