XtremIO – Tagging via CLI

Whether you are new to XtremIO or a community expert, this guide is for you! With the introduction of 4.0 code, the EMC XtremIO team introduced a new concept to manage your inventory called tagging. For those with prior 4.0 code experience, this new tagging feature replaces the folders for management concept and provides for more robust inventory management and reporting.

I worked with a customer recently who has well over 200+ volumes that were not tagged or grouped in any way. The ask of me was, how do they tag in bulk via CLI to accomplish this? This is fairly easy, but it does require a bit of trial and error as the XtremIO CLI does not provide code syntax examples as you may be familiar with on the VNX or other EMC storage arrays.

First, we need to define what we want to tag (volumes, initiator groups, etc.) Next, we see how the CLI structure/syntax is for tagging by simply issuing the create-tag command.

xmcli (admin)> create-tag
Description: Creates a new Tag object.
Usage: create-tag property=value list

======== |========= |=========== |==================
entity |Yes |Entity |string
tag-name |Yes |Tag Name |full path tag name

Next, we need to see how do we declare a volume tag or an initiator group tag as the above shows us that the tag “entity” is a string value. To show you this, I did not complete the command and I used an incorrect string value of “volumes”.

xmcli (admin)> create-tag entity=”volumes”
Description: Creates a new Tag object.
Usage: create-tag property=value list

======== |========= |=========== |==================
entity |Yes |Entity |string
tag-name |Yes |Tag Name |full path tag name

** Error: Command Syntax Error: entity property must have one of the following values: [InfinibandSwitch, DAE, Initiator, BatteryBackupUnit, Scheduler, StorageController, DataProtectionGroup, X-Brick, Volume, Cluster, InitiatorGroup, SSD, SnapshotSet, ConsistencyGroup, Target]

Now, we are cooking with gas and have something work with here. I want to create a nested volume tag that is something like this: VMware ESXi Hosts > Production Cluster

The nested volume tag will help me to filter based on my VMware hosts to see all hosts and also I can group them by their VMware cluster name as well. The environment I am managing is a mixture of VMware ESXi, RHEL, and AIX so this nested tag is extremely helpful with this. Now, let’s create our tag.

xmcli (admin)> create-tag entity=”Volume” tag-name=”IBM AIX Hosts/Oracle”
Created Tag /Volume/IBM AIX Hosts/Oracle

xmcli (admin)> create-tag entity=”Volume” tag-name=”VMware ESXi Hosts/Boot LUNs”
Created Tag /Volume/VMware ESXi Hosts/Boot LUNs

Now, I am ready to tag my volumes in bulk. I took a show-volumes dump from the XtremIO CLI, saved it to a text file, and imported it into Excel as text data fixed width. Using the volumes column and some Excel CONCATENATE magic, I have my script ready to tag all my volumes in bulk.

tag-object entity=”Volume” entity-details=”ATLNNAVPESXIP01_BOOT” tag-id=”/Volume/VMware ESXi Hosts/Boot LUNs”

As you will find out, the CLI isn’t exactly helpful with how the syntax should be. Think of tags like folders within a unix directory (the XMS is centOS after all).


I hope this has proved to be somewhat useful to you as I noticed that XtremIO CLI syntax questions is often a hot topic within the EMC Communities forum.

VMware Migration of VMs and RDMs From VNX to XtremIO – Part 1

In today’s digital age with virtualization leading the way, you will often find yourself in a situation dealing with VMs and RDMs. RDMs are Raw Device Mappings and it is a way to present a physical LUN to a VM directly as if it was accessing direct-attached storage. Often what proves to be a daunting task is the ability to migration these RDMs that are attached to VMs. I’m going to discuss how to identify which VMs have RDMs, which storage array they belong to, and map it back to the physical LUN on that storage array.

  • The first thing you will want to do is to scan vCenter for VMs with RDMs
    • You will need read access to vCenter and you should have VMware powerCLI installed on your desktop
    • Connect to vCenter through powerCLI
      • Connect-VIServer yourvcenterhostname.domain.local
    • Run a get-VM script selecting the VM hostname, raw device, NAA ID, and hard disk number
      • Get-VM | Get-HardDisk -DiskType “RawPhysical”,”RawVirtual” | Select Parent,Name,DiskType,ScsiCanonicalName,DeviceName | format-table | Out-File –FilePath “out-file-location-on-your-terminal”
  • Once the script completes, you should have a text file that can be imported into excel as text data delimted or fixed width
  • Use the data filter and sort by NAA or SCSIcanonicalname
  • Use this and the source array collects or logs to compare and identify which pertain to your migration
    • In my example, I am migrating from a VNX to XtremIO. I will be using the SCSI Canonical Name and comparing that to the LUN UID/WWN from the SP collect



Once you have identified the VMs in the list that pertain to your migration, you are now ready to begin planning next steps. In my scenario, I am migrating VMs residing on a VNX to a XtremIO. There is a mixture of Virtual and Physical RDMs which means that along with Storage vMotion, I will be using SANcopy to create incremental sessions and pushing the physical RDMs to the XtremIO.

Other tools such as Open Migrator and PPME (if PowerPath is present) can be used as an alternative host-based migration approach, but each tool as its caveats and may still require a reboot to cut over. I will discuss SANcopy from VNX to XtremIO in a future post.

Performing a Physical to Virtual Migration – Hot Migration

In this article, I will attempt to explain to the best of my ability how to perform a physical to virtual migration.


  • Knowledge of vmWare vSphere 4 and Virtual Infrastructure Client

Before we proceed, you will need to head over to http://www.vmware.com/products/converter/ and download the free vCenter Converter.

  1. Launch vCenter Converter
  2. Click “Convert Machine” located at the top left menu
  3. Fill in the info for your remote powered on machine. IP address will be the physical machine you wish to convert. Supply your administrative credentials for the username and password. (DOMAIN/USERNAME for username).
  4. Click “View source details”
  5. Choose to “Automatically uninstall the files when the import succeeds”
  6. Once the conversion prep is complete, you will receive a pop-up displaying the information gathered from the physical machine. Click close on this window.
  7. Click next and you will be taken to the destination screen. This is where you will tell it to go to your Virtual Infrastructure. The “server name” will be your vCenter server. For username and password, supply your administrative credentials. (DOMAIN\USERNAME for username).
  8. Click next and you will be asked to name your newly created VM. I have a naming scheme in place for certain types of servers. (Example: SERVER_NAME_nfs for file servers and SERVER_NAME_bdc for domain controllers).
  9. Click next and select which Host in your Cluster you wish for this vm and also on the right hand side select which datastore you would like to use to store this VM.
  10. Click next and verify the settings for this VM. Make any needed adjustments here before proceeding. (Example: I needed to make a change on the diskspace on the last P2V I did. The physical machine C: drive was 279GB and I wanted it to be 250GB since I had a decent amount of space unused on the drive and don’t plan to go past 250GB with it anytime soon). Also make sure the number of vCPUs and amount of RAM is set to your liking.

  11. Click next then finish. The conversion task will begin so sit back, grab a cold soda and wait for it to complete!

Use Ubuntu as a Mac File Server or Time Machine Volume

Recently, I came across this amazing article that shows you how to turn your Ubuntu desktop/server into a Mac File Server or Time Machine volume. Not only does it allow you to share files between the two computers, but it will also automatically mount your Time Machine volume and begin the backup process. I have followed this article and am currently using this setup on my home network. If you have any questions about this article or need help, please post it in the comments.

Click here to read the article!

Editing List Columns for your Sharepoint Document Library

Recently, my company’s sharepoint administrator left her job and I was given the reins to sharepoint. Growing up with FaceBook, Myspace, and HTML knowledge, editing sharepoint became a piece of cake. It wasn’t until I was asked to edit our Document Library’s List Column that I ran into trouble. Editing the List Columns the traditional way by going into your Modify Site Settings didn’t seem to work so I found a workaround.

  • Edit your document library in the datasheet (Excel)
  • Right click the column you wish the change and choose edit
  • Add in any settings you’d like
  • Save and exit

I hope this helps!

Restricting users from receiving internet mail outside of your company

Blocking a user from receiving Internet based mail is much simpler in Exchange 2003 because our good friends at Microsoft included a simple checkbox, so here are the steps you can take:

  1. Open the properties for the user that you want to stop receiving Internet mail in Active Directory Users and Computers.
  2. Select the Exchange General tab, and then click on the Delivery Restrictions button, the Delivery Restrictions dialog box will now appear.
  3. Check the “From authenticated users only” checkbox in the Message Restrictions section.

Read the rest of the article here.

Wakeup 1.01

Note: This is most useful in a LAN (Local Area Network) where the computer you are trying to wakeup is on the same router as you are. Wakeup packets get squashed when hopping routers.

Scenario: You have a computer in the same building as you are in and you would like to wake it up (from shutdown, standby, or sleep) without actually walking over to it and pressing the power button. (Assuming that this computer is on the same network as you are and uses the same gateway/router)

First, you will need Wakeup 1.01 which you can download here. Within the ZIP file you will find wakeup.exe. Copy that to a new folder C:\wakeup101\ (which you will create).

Next, open up a command prompt (START -> RUN -> CMD). Change the directory to the wakeup folder by using this command chdir C:\wakeup101\

Your command line should now read C:\wakeup101>. In order to wake up a computer you will use this command:
C:\wakeup101>wakeup MACADDRESS

Refer to the picture below for how I issued this command!