In the last (5th part) of this blog series, we discussed how to install Ansible AWX / Tower in a docker container and Dell EMC Ansible modules inside the Ansible AWX / Tower container.
So first let’s get started with creating a Credential type for Dell EMC storage array. Login to your Ansible AWX / Tower console. In the navigation pane (on left) click on “Credential Types”. Then click on the green “+” icon on the right to add a new credential type.
Ansible AWX / Tower – Create New Credential 1
In the “New Credential Type” creation page enter below details and then click on Save
Once Credential type is created, click on the “Credentials” in AWX / Tower navigation pane. Then click green “+” button on right to create new Credential.
Ansible AWX / Tower – Create New Credential 3
In the “New Credentials” page enter below details.
Name – User Friendly Name to identify the storage array. In this example “Production PowerMax”
Description – Optional description
Organization – You can choose appropriate Organization as per your configuration. Note that Organization can help you to mask these credentials to few users. I have selected Default in my example
Credential Type – Choose “Dell EMC Storage”. This is the credential type we have created in earlier step. Credential type which we create earlier will be available on last few pages of the pop-up list. Alternatively you can search the same with “Dell EMC Storage”
Type Details
Array IP Address – Enter the management IP address of storage array
Array Username – Username (I suggest creating separate user for automation)
Array Password – Password for the entered username
Ansible AWX / Tower – Create New Credential 4
As per your environment you can create multiple credentials, each for one array.
Ansible AWX / Tower – Create New Credential 5
Once credentials are created you can now go ahead and create new Ansible AWX / Tower Templates using storage credentials we just created. In the playbook you can mention storage array credentials as variables (username and password). Using these variables you don’t have to mention array credentials as plain text in the playbooks.
Additionally, you can add other infrastructure / application credentials using the same process.
I hope this helps everyone. In next post I will take you through creating new Project and Template.
In the first part of this blog series, we discussed what is REST API and different usage options
Second part was about managing DellEMC PowerMax storage arrays using REST API
In this post, we will discuss how you can use manage DellEMC Unity storage using REST API. We will be using the Postman tool during the entire blog series. So let’s get started with automating the DellEMC Unity storage system.
The DellEMC Unity REST API Background
DellEMC Unity is of the most user-friendly storage systems. The most common management tools for Unity systems are
Unisphere UI (Embedded) – An HTML5 graphical user interface used to manage Dell EMC Unity systems
Unisphere Command Line Interface (UEMCLI) – UEMCLI allows a user to perform tasks on the storage system by typing commands instead of using the graphical user interface
The Dell EMC Unity includes complete REST API support, providing a developer-friendly way to manage Dell EMC Unity systems and automate various tasks.
Dell EMC Unity’s REST API fully supports all the management tasks that a user can perform in the Unisphere GUI. Dell EMC Unity’s REST API response formats all communication in JSON notation. Users can send REST API requests using their favorite REST API tools to manage Dell EMC Unity systems in their environment. This provides flexibility in management and opens possibilities for more complex operations.
DellEMC Unity Management Options
Assessing DellEMC Unity’s REST API
Once a Unity system is up and running, users can navigate to the following web addresses to get access to the REST API documentation:
REST API Programmer’s Guide –https://{{unisphere_management_address}}/apidocs/programmers-guide/index.html
REST API Reference Guide – https://{{unisphere_management_address}}/apidocs/index.html
DellEMC Unity’s REST API is available via Unisphere running on the array via the following Base URL.
https://{{unisphere_management_address}}/api
{{unisphere_management_address}} – Replace with IP Unisphere IP address or hostname
Supported DellEMC Unity REST APIOperations
DellEMC Unity’s REST API supports the following types of REST calls.
GET – Get information on objects. For example – Get Unity storage system’s details
POST – Create an Object. For example – Create new LUN/s
PUT – Making changes to an objects. For example – Change size of the existing LUN
DELETE – Remove an object. For example – Delete existing LUN/s
Usually the REST client (like Postman) can be used to help figure out what REST calls you want to run.
Building your REST API calls
Now let’s get started with creating REST API calls. In this example we will create sample REST API call to list all the available storage pools.
Before we get started make sure you’ve Postman installed and Unisphere is reachable.
Open Postman and click on New. Under new drop-down, select Request
DellEMC Unity REST API – Postman tool GUI – 1
In New Request pop-up enter Request name, Description (optional) and Name of the Collection. Then click on Save.
DellEMC Unity REST API – Postman tool GUI – 2
Click on the request type drop-down and select GET.
Please note that we are selecting GET because is this example we are creating sample REST API call to list all the available storage pools.
This option will be different based on type of REST API operation
DellEMC Unity REST API – Postman tool GUI – 3
Enter below Request URL
1.1.1.1 – Replace with Unisphere IP address/hostname
https://1.1.1.1/api/types/pool/instances
DellEMC Unity REST API – Postman tool GUI – 4
Click on the Authorization. Enter Unisphere Username and Password.
DellEMC Unity REST API – Postman tool GUI – 5
Note that Unity REST API GET request needs below 3 headers. Click on Headers and enter below header details as shown in the screenshot. Then click Send
Accept – application/json
Content-type – application/json
X-EMC-REST-CLIENT – true
DellEMC Unity REST API – Postman tool GUI – 5
In the Postman Response section you’ll see REST API response. In this case you’ll see list of all the storage pools in Unity array.
DellEMC Unity REST API – Postman tool GUI – 6
Additionally please note that POST/PUT/DELETE requests need one additional Header – EMC-CSRF-TOKEN. This token is generated using GET request.
So, let’s create one POST request for creating new LUN.
Follow above-listed GET request steps. Click on Headers under GET Response. Copy the EMC-CSRF-TOKEN from the Headers
DellEMC Unity REST API – Postman tool GUI – 7
Now click on New and Under new drop-down, select Request (screenshot in GET request steps)
In New Request pop-up enter Request name, Description (optional) and Name of the Collection. Then click on Save. (screenshot in GET request steps)
Click on the request type drop-down and select POST.
Please note that we are selecting POST because is this second example we are creating REST API call to create new LUN.
Click on the Authorization. Enter Unisphere Username and Password.
Under Params enter below details.
Name – Name of the LUN
Pool – Storage Pool in which LUN will be created
Size – LUN size
DellEMC Unity REST API – Postman tool GUI – 7
Click on Headers and enter below header details as shown in the screenshot. Then click Send
Accept – application/json
Content-type – application/json
X-EMC-REST-CLIENT – true
EMC-CSRF-TOKEN – Copied from GET response
DellEMC Unity REST API – Postman tool GUI – 8
Dell EMC and REST API – Way Forward
I hope this clarifies many basics for getting started with REST API and DellEMC Unity storage. You might also have understood that creating creating valid URLs is very important aspect of using REST API. Having this in mind we have created ready Postman collection for DellEMC Unity storage. Here’s the GitHub link to the repository. Feel free to download and share.
Below are the additional resources available for taking REST API usage to next level.
This blog post is 2nd part of REST API with DellEMC Storage blog series. In the first part of this blog series, we discussed what is REST API and different usage options. I highly encourage you to go through the first part before you get started with this post.
In this post, we will discuss how you can use manage DellEMC PowerMax storage using REST API. We will be using the Postman tool during the entire blog series. So let’s get started with automating the DellEMC PowerMax storage system.
The PowerMax REST API Background
There are many different ways to manage the PowerMax storage system. You can refer to this link for more details around each. Traditionally many customers using the VMAX family systems are using the Solutions Enabler tool. This is a comprehensive tool that allows storage administrators to automate many different storage tasks using scripting (Bash, Perl, Shell scripts, etc.).
PowerMax Unisphere GUI is HTML5 based management interface, it’s beautiful and functional and provides a web-based interactive experience for users. Unisphere has a lot of automation baked in, and it’s intuitive wizards eliminate complexity and can often provide the right amount of automation for organizations where there isn’t a lot of change. With Unisphere version 8 everything you can do in the GUI is supported using REST API.
DellEMC PowerMax Management Options
Assessing DellEMC PowerMax REST API
DellEMC PowerMax’s REST API is available via Unisphere (installed or embedded) running on the array via the following Base URL.
Click on the Authorization. Enter Unisphere Username and Password. Then click Send
DellEMC PowerMax REST API – Postman tool GUI – 5
In the Postman Response section you’ll see REST API response. In this case you’ll see list of all the SRPs in PowerMax array.
DellEMC PowerMax REST API – Postman tool GUI – 6
Dell EMC and REST API – Way Forward
I hope this clarifies many basics for getting started with REST API and DellEMC storage. You might also have understood that creating creating valid URLs is very important aspect of using REST API. Having this in mind we have created ready Postman collection for DellEMC PowerMax storage. Here’s the GitHub link to the repository. Feel free to download and share.
Below are the additional resources available for taking REST API usage to next level.
REST API client for Unisphere – This is simple GUI tool which allows you to to construct REST API calls. Best part of this tool is having a tree view of all resources on the Unisphere to which the users can navigate through to select the desired REST call.
DEllEMC’s XtremIO has simple, easy-to-use management. The XtremIO Management Server (XMS) delivers an HTML5 user interface that is a simple and easy-to-use interface for storage administrators. XMS allows storage administrators the ability to provisions storage with very little setup and planning.
Hope this post is helpful to all Oracle users trying to get best out of their XtremIO investments.
XtremIO is designed and optimized for databases and for DBAs, providing the following benefits.
Predictable Performance
XtremIO provides predictable and consistency low-latency performance
With XtremIO scale-up and scale-out architecture, year-to-year growth is easy. The initial investment is preserved and application performance is improved.
Performance is predictable and provides best response times regardless of the workload and environment – be it production, QA, test or development
Incredible Simplicity
With XtremIO, there is no need for planning and tuning the location and number of database files
All DBA tasks are fast and simple with 1 to 3 steps
Agility
The typical enterprise applications require multiple copies such as test/development, reporting or online analytics. DBAs and test/dev engineers often have to spend hours managing the DB creation and refreshing the environments while often being limited by capacity, performance, and the number of copies.
These copies can be repurposed for near real-time analytics, test/dev and any other use case- all with complete space efficiency.
Protection
Protecting the database is easy with XtremIO
There is no need for any design covering RAID type, data file capacity, load balancing, and tuning.
The data is protected with a proprietary flash-optimized algorithm called XtremIO Data Protection (XDP).
XDP is very different from RAID in several ways. Since XDP is always working within an all-flash storage array, several criteria were important in the design of this protection scheme. XDP benefits include ultra-low capacity overhead, high levels of data protection in case of double SSD failure, rapid rebuild times, flash endurance, and of course extreme performance
With XtremIO virtual copies it is easy to protect and recover from any operational and logical corruption; XVC’s allow the creation of frequent point-in-time copies (according to RPO intervals – seconds, minutes, hours) and use them to recover from any data corruption
An XVC can be kept in the system for as long as needed. Recovery using XtremIO virtual copy is instantaneous and does not impact system performance.
Irrespective of using any application/database with XtremIO storage array below listed general guidelines are common.
Keep consistent, duplex link speed on all paths between the host and the XtremIO cluster
To ensure continuous access to XtremIO storage during a cluster software upgrade, verify that minimum I/O timeout of 30 seconds is set on the HBAs of all hosts connected to the affected XtremIO cluster. Also, verify that a minimum timeout of 30 seconds is set for all applications that are using storage from the XtremIO cluster.
The HBA queue depth (also referred to as execution throttle) controls the amount of outstanding I/O requests per HBA port. The HBA queue depth should be set to the maximum value
The LUN queue depth controls the amount of outstanding I/O requests per single path. These settings are controlled in the driver module for the card at the OS level. When connecting Linux host to XtremIO, a LUN queue depth setting should retain its default values.
I/O scheduling controls how I/O operations are submitted to storage. Linux offers various I/O algorithms (also known as “I/O Elevators“) to accommodate the different workloads. When connecting a Linux host to XtremIO storage, set the I/O elevator to either noop or deadline. It is not recommended to use the cfq I/O elevator setting, as it’s less optimal for XtremIO storage.
It is HIGHLY RECOMMENDED to follow the latest “XtremIO Host Configuration Guide” for all operating system which will use storage from XtremIO
If DB is virtualized then make sure all Virtual Machine components are provisioned from XtremIO storage (OS, Application/Binary, Swap, Paging, etc.)
2. Oracle ASM
Oracle Automatic Storage Management (ASM) is Oracle’s recommended software for supporting Oracle database files.
For more information on ASM please refer this link
ASM General Recommendation
External redundancy is recommended for XtremIO
The XtremIO Storage Array natively provides flash-optimized data protection
Database Files Location in ASM Disk Groups
Best practices for storing Oracle DBMS file types in ASM disk groups are mentioned as below.
Oracle Database Files Location in ASM disk groups
Note: The second REDO data group (DG) is applicable if REDO logs are multiplexed.
Number of LUNs per Disk Group
Excellent cluster performance is achieved using an XtremIO Storage Array with just single LUN in a single disk group. However, in order to maximize performance from a single host, parallelism and adequate utilization of device queues are required.
The best practice to achieve this is by using a minimum of four LUNs for the data disk group. Doing this enables the hosts to use parallelism and ensures optimal performance without any bottlenecks.
The best practices for Disk group configuration and data placement are outlined in the below table.
Number of LUNs per disk group
512 verses 4K Advanced Format Considerations
The default setting for XtremIO volumes is 512 bytes. It is recommended to keep the default setting and not use 4K Advanced Format.
3. Multiblock I/O Request Sizes
Oracle Database performs I/O on data files in multiples of the database block size (db_block_size), which by default is 8KB. The default Oracle Database block size is optimal on XtremIO. XtremIO supports larger block sizes as well. In the case of multiblock I/O one should tune the Oracle Database initialization parameter db_file_multiblock_read_count to limit the requests to 128KB. This is derived with the following formula:
db_file_multiblock_read_count is db_file_multiblock_read_count = 128KB / db_block_size
Usually, Oracle DB is optimized to perform very large transfers to mitigate the seek cost due to multiblock reads on mechanical/spinning drives. In a seek-free storage environment, such as XtremIO, there is no need for such mitigation. Also, most modern FC HBAs require OS to segment large requests into multiple requests. For example, an application IO of 1MB is fragmented by Linux block I/O layer into two 512KB transfers to suit HBA max transfer size.
4. REDO Log Block Size
The default block size for REDO LOG is 512 bytes. I/O requests sent to the redo log files are in increments of the redo block size. This is the blocking factor Oracle uses within REDO LOG files and has nothing to do with the on-disk format of the XtremIO LUN.
XtremIO’s recommendation is to create REDO LOG files with 4K block size. For more details on this please check Oracle Support notes 1681266.1.
Note: For Oracle version prior to 12.2.0.1.0, you should set the parameter _disk_sector_size_override to TRUE when creating a redo log with 4K block size in the database instance.
Do not set the parameter _disk_sector_size_override in the ASM instance. Once the instance is running, simply add more redo logs with the BLOCKSIZE option set to 4KB and then drop any redo logs that have default 512B block size.
5. Grid Infrastructure Files – OCR/Voting
The block size for both Oracle Cluster Registry (OCR) and Cluster Synchronization Services (CSS) voting files are 512 bytes, hence I/O is therefore sized as multiple of 512 bytes. This is consistent with XtremIO’s best practices and hence no changes are needed in OCR/Voting files.
6. Oracle DB Level Compression & Encryption
XtremIO has inline data reduction (deduplication and compression) running all the time without the performance penalty and stores 100% of data in encrypted format using Data At Rest Encryption (D@RE). This makes Oracle DB level compression and encryption as redundant.
XtremIO data services work for all the data stored on arrays, unlike being selective like Oracle. Also XtremIO no not use host CPU for data services, which is an expensive resource in the Oracle environment.
With XtremIO it is a best practice to disable / not use application-level Compression and Encryption services.
XtremIO Advanced Services for Oracle
XtremIO offers a wide variety of use cases to simplify database environment workflow. XtremIO comes along with a tool called iCDM (Integrated Copy Data Management) which allows automating all Copy Data Management (CDM) tasks in DB environments.
Few use cases are mentioned below.
1. Modern Backup-to-Disk using XtremIO XVC
XtremIO XVCs (XtremIO Virtual Copy) are precise point-in-time copies of source volumes which basically are a collection of metadata pointers to the source volume blocks. Therefore, XVC consumes minimal physical capacity.
Executing XVCs is extremely fast and hence most efficient backup-to-disk methodology. The best part is this process does not utilize production/source server resources for creating backup-to-disk copy. Over time as source data is updated/changed, only unique data is stored on XtremIO in compressed format.
2. XtremIO XVC for Manual Continuous Data Protection (CDP)
XtremIO XVCs are so efficient that these can be used as part of a business continuity strategy. Below mentioned two options can be used for this.
Crash-Consistent (or “Restart-able” Image)
A crash-consistent or restartable image is a point-in-time image of the primary database on disk
This option involves taking XVC of the primary database while it is up and operational. The image that is captured is similar to the state of the primary database.
During the DB restart on the XVC, the DB automatically performs a recovery using the online logs.
All committed transactions are included and all uncommitted transactions are rolled back.
Application/DB-Consistent (“Recoverable” Image) –
A recoverable image is a point-in-time image of the primary database on disk
This option involves taking XVC of the primary DB while DB is in “Backup” mode
Highly recommended to have a backup file of the control file prior and after the completion of the XVC process.Unlike crash-consistent copy, data files can be rolled forward in time using logs – up to latest or desired SCN (captured in the control file)
3. XtremIO XVC for Cloning Primary Database (BCV Copy)
BCV / clones of the primary copies can be created using XtremIO XVCs. Methods for clone creation are as mentioned in “2. XtremIO XVC for Manual Continuous Data Protection (CDP)”
operating System Best Practices
When it comes to performance optimization operating system settings also play a major role. It is highly recommended to follow all the operating system best practices as listed in the “XtremIO Host Configuration Guide”.
The absence of host best practices might result in host-bound performance than XtremIO bound performance. In short, the host/operating system might become the bottleneck, because of the host/operating system level queuing.
Recently I got engaged with one of our customer who was trying to implement data warehouse using the Microsoft SQL 2017. But they were not able to implement the same into the production environment even after successful POC and testing. When we got engaged with customer DBA teams we used DellEMC’s iCDM functionality (with XtremIO X2 system) in some unique way to help them not just solve their problem but exceeding business SLA expectations. This blog covers the details around problem and solution along with learning.
Problem Statement
Customer has several mission-critical MS SQL 2016 databases which are running in 24×7 operation. These databases are supporting their business critical OLTP application.
Customer’s planned DWH approach
Business teams were pushing application and DBA teams to create singular reporting platform which will create reporting on data from multiple MSSQL source databases.
For this project DBA teams built MS SQL 2017 platform which will consolidate data from 3 source MS SQL databases. They created the test setup for feature testing before production roll-out, which worked as per their expectations. But when they implemented this feature in production DBA team realized that this is generating massive load on their source databases and causing performance issues for their business applications, which was completely unacceptable to business teams.
This forced DBA teams to stop fetching data from the network and restore the data from last backup instead. This was used as workaround because this meant that data in reporting server was more than 30 hours old, which was making reporting irrelevant.
DellEMC Solution
When DellEMC team got involved we started with collecting DB environment data collection and business expectation understanding. Once we understood the pain points and business requirement we mentioned to DBAs that traditional way of data management techniques won’t help them. We also mentioned that since they are exiting DellEMC customer they already have the solution with them, which they never implemented.
Every DellEMC All Flash storage solutions includes bundled copy data management software called Appsync.
On high level AppSync allows application and database administrators to create application workflows. These workflows allows them to create on demand or scheduled protection or re-purpose copies of databases. We also mentioned that using this software you can create your copies of source MS SQL 2016 DB copies and mount it to target MS SQL 2017 DB server, scheduled or on-demand. These workflows are based on DellEMC storage in back-end and hence can be executed during even the busiest times.
As usual customer DBA teams didn’t believe us and that’s where it comes to next section of this blog – Demonstration! 🙂
Demonstration of the Appsync
To demonstrate the functionality of DellEMC iCDM we installed the Appsync server on of the Windows server VM in customer environment. Below is the high level architecture
DellEMC’s proposed solution approach for DWH project
Once Appsync was installed we configured the same to communicate with source and target SQL servers and also DellEMC XtremIO storage. This allows Appsync to discover running databases and create the end to end database mapping.
Post initial configuration we created the SQL re-purpose copy schedule to create the MS SQL database copy every 6 hours. This schedule was then applied to all the 3 source databases.
Once the copy of multiple source database was created we used Appsync to mount the same into target MSSQL 2017 server. In our testing we mounted 3 source copies on single target MSSQL 2017 instance. Entire mounting operation completed within couple of minutes. This process allowed customer to save multiple days and help achieve business SLA.
Apart from solving their most critical problem in hand this solution helped them solve couple of major production issues
Database RPO – We reduced production DB RPO to 2 hours instead of 30+ hours
Agent-free backup – iCDM helped customer to mount DB production copy on off-host backup server. This helped them completely eliminate backup load from production server.
If you’re facing similar challenges in your DB environment then highly recommended to use iCDM approach instead of traditional methods.
I have created another blog post to elaborate more on iCDM and advantages of the same. You can go through the same using below link.
REST stands for Representational State Transfer. REST provides access to resources (DellEMC XtremIO resources in our case) on a tree-like structure. REST uses HTTP/S for communication and replies on HTTP’s CRUD operations, which are GET, POST, PUT, DELETE. REST is stateless, which means it does not store application state information. Since REST is stateless client responses are self-documenting. For this introduction post we will talk about XtremIO, but note that each storage system has different URNs.
REST enables each XtremIO resource (like volumes, initiator groups, etc) having its own URI (Uniform Resource Identifier). Typically REST response is received in JSON or XML format. In the case of XtremIO responses are in JSON format.
XtremIO REST API can be accessed using the below option
REST Clients – Like Postman
CLI – Using tools like CURL
Programming – Using Python, Ruby, etc.
Since XtremIO storage array is having API-first design, it allows all the operations using REST which can be done using CLI/GUI.
Connecting to XtremIO using REST API
XtremIO is a scale-out storage architecture and has out-of-band management server – aka XMS. You can refer to below high level diagram to check your connectivity.
DellEMC XtremIO REST API – High Level Connectivity
Below are the supported types of REST API with XtremIO.
XtremIO – Supported REST API commands
Below is the example and details of using XtremIO REST API using CURL
# curl -k --request GET https://<user>:<pass>@1.1.1.1/api/json/v2/types
-k – Allow insecure SSL connection. This is needed in case you’ve self-signed certificate.
In this blog we will talk about how DellEMC can help you to store you databases smartly and efficiently.
But firstly let’s talks about CDM and why it’s important. In the world of DBAs everyone’s always talking about performance, million IOPS and double/triple digit bandwidth with lowest possible latency. But the biggest question is whether performance is the only solution to all problems?
For example in one of the survey members of Independent Oracle User Group (IOUG) were asked what DB activities are taking up most of the time each week?
You can also see that performance troubleshooting is rated as second most time consuming activity, but the question is how to solve it. One of the ways people try to solve this is by upgrading their database stack. In below AWR example snippets you can see that how one of the customer has solved their performance issue by moving to DellEMC solution. Earlier they were having 92% User I/O wait time, which also means 92% of the time DB is waiting for database subsystem to respond.
But as I have mentioned earlier upgrading the stack will always give the benefits but it does not solve all the problems. Which also means most customer apply their older process and best practices to new stack which often is the culprit of the new problems. (another blog on this later)
But the real problem is what do you do with those databases and data? Most businesses today are trying to keep more data online. This allows them to understand the patterns and anomalies using AI/ML, which helps them taking right decisions or course correction. All this is driven using copy data, which means you need actual source production database instances to analyze, test, develop etc. Below picture is the great depiction of multiple use cases which needs source database.
Now think of all those use cases and start thinking of the approach DBAs will take to manage the show. Usually there’s no standard way of managing this. Processes to achieve the end goal depends on the experience of the DBA and also availability of the resources.
IDC has done some work on this problem area to understand the gravity of the situation and uncover some facts. IDC polled over 700 customers for this survey. Some of the interesting facts are –
Tools used for producing secondary data copies
As per the IDC survey most popular way is to rely on backup software but interestingly 53% of the respondents said that they use custom-written scripts to manage the CDM show.
How long does it take to refresh copies?
To which 62% of organizations, copies take ½ day or more to create (up to days). And this is very real as I have personally worked with one of my customer who used to take 2 ½ days to create single secondary copy starting weekend, on which 60 member developer team used to work.
At which frequency are copies of dev/test or analytics refreshed?
Copies are refreshed every few days by 32% of organizations, and weekly by 42%.
One of the most striking detail in this IDC document is – How many Database instances do you currently have in production in your data center environment? 77% customers said that they have more that 200 database instances and 82% said that they have more than 10 copies per database.
In simplified words this problem looks like the iceberg. People only count their production/primary database instances but secondary/re-purpose copies are usually taken for granted. If you do the quick math on IDC numbers you’ll quickly realize that this is one of the biggest operational issue in database environments.
For Example –
1 Production DB x 250GB DB size x 346 DB Instances = 87TB of Production data
14 Copies of each Production DB x 250GB DB size x 346 DB Instances = 1.2PB of Copy Sprawl
Now that we understand what copy data management issue is. Now let’s understand how DellEMC can help in simplifying the CDM problem
Integrated Copy Data Management (iCDM)
As per my personal experience below snippet is the best way to understand how iCDM functions. Providing self service to application/database teams with application integration. iCDM leverages advanced copy/snapshot function of the DellEMC storage system, which also means you need DellEMC storage in order to use iCDM 🙂
To simplify things even further – in most environments you follow 3 steps process for database copy creation.
Identify source database
Prepare database
Prepare instance
Details for these 3 steps are as below but on high level it lacks automation, it’s (very) time consuming and most importantly it lacks automation.
But with iCDM you can change this legacy process and adapt to something which is more modern and fits with today’s cloud native world. You can simply
Containers are everywhere and they are here to stay. They are great level-playing ground to break the infrastructure dependency and allow developers to release their code to any environment.
Containers also help customers to operate at greater scales with ability to quickly scaling up and down, patching with disruptions, withstand infrastructure component failures, moving easily from on-premises to public clouds, etc.
As per the survey from sysdig lifespan of containers and container images is also very short.
At this stage of the popularity of containers there are two thought processes in the container fan club – Persistent or Non-Persistent Containers
If you explore docker hub top downloads you’ll notice that 7/10 top downloads require data persistence (snippet below)
Let’s understand persistent containers in more details.
Prior to Container Storage Integration CSI, Kubernetes provided in-tree (ie as part of the core code) plugins to support volumes but that posed a problem in that storage vendors had to align to the Kubernetes release process to fix a bug or to release new features among other problems. This also means every storage vendor had their own process to present volumes to Kubernetes.
This heterogeneous non-standard integrations were one of the biggest reasons why CSI was created. CSI was developed as a standard for exposing block and file storage storage systems to containerized workloads on Container Orchestration Systems (COs) like Kubernetes. With the adoption of the Container Storage Interface (CSI), the Kubernetes volume layer becomes truly extensible. Using CSI, third-party storage providers like DellEMC can write and deploy plugins exposing new storage systems in Kubernetes without ever having to touch the core Kubernetes code. This gives Kubernetes users more options for storage and makes the system more secure and reliable. Also this approach makes sure that every vendor has standard way of interacting with Kubernetes.
With CSI Kubernetes supports Persistent Volumes (PV). PVs life-cycle independent of any Kubernetes POD. Kubernetes supports 2 ways to provision PVs
Static – Admin Pre-provisions / creates a number of PVs
Static PV provisioning
Dynamic – Cluster “automatically” provisions a volume
Dynamic PV provisioning
No matter which is the method of PV provisioning it can support varying properties such as performance, QOS, backup policies, etc. These properties are defined by StorageClass
There are 3 access modes which are supported on PV. Storage volume cannot be mounted simultaneously in more than one access mode.
ReadWriteOnce (RWO) – Volume can be mounted as ready-write by a single node
ReadOnlyMany (ROX) – Volume can be mounted read-only by many nodes
ReadWriteMany (RWX) – Volume can be mounted as read-write by many nodes
Below is the summary of persistence
DellEMC CSI Support
DellEMC understands that that Enterprise applications require persistent storage. As of now (Nov 2019) DellEMC supports CSI plugins for below storage arrays
In daily life of an administrator worst day is when you’ve to co-relate logs across the stack for performance troubleshooting or when you need to troubleshoot an issue which is not consistent. Usually for such issues you’ll need to enable continuous log collection and hope that issue will reappear during the log collection time. Phew!
But gone are those days where you were reactive in troubleshooting, now with CloudIQ you can be proactive.
CloudIQ is SaaS based monitoring application which is available to all DellEMC customers without any additional investment.
Though CloudIQ allows customers to have centralized monitoring of DellEMC storage products, proactive health score and predictive analytics, but this blog is about VMware monitoring with CloudIQ. With latest update of CloudIQ now it supports monitoring of entire VMware landscape (along with storage and Connectrix).
As I have already mentioned CloudIQ has integration with VMware for end-to-end monitoring for the virtualization environments. For enabling the CloudIQ to collect and report VMware data you need to download the CloudIQ collector, which can be downloaded directly from the CloudIQ portal (details below)
Once the collector is downloaded follow the steps (step 3 in above exhibit) listed on the CloudIQ collector download page.
Note that single instance of CloudIQ collector supports collecting data for upto 60000 virtual machines. Once collector is enabled it will take ~24 hours to populate the data on CloudIQ portal.
There are many details available on CloudIQ and more enhancements are getting added very frequently. You can refer to this CloudIQ whitepaper which has details around CloudIQ overview. In this blog post is to highlight few CloudIQ features which I personally like.
Storage LUN to Datastore to VM Mapping
From the CloudIQ you can see the list of all the virtual machines which running on particular datastore. This is great asset as you no more have to login to vCenter console for this.
Storage LUN –> VMware Datastore –> VM Mapping
Co-relate VM Performance With Anomaly Detection
You can view all required performance charts for virtual machine in single view. Additionally CloudIQ performance charts will highlight any performance anomalies during the last 24 hours. In below example you can see that for selected virtual machine storage response time was suddenly increased and went back to normal.
Co-relate VM Performance With Anomaly Detection
End to End Map
Customers who have tried to deploy monitoring tools understand that it’s very difficult to get the application/virtual machine footprint map in the data center. Usually this is very useful if you want to understand all the dependent infrastructure components which you application touches in the virtualization stack. CloudIQ gives you out of box functionality to provide virtual machine end-to-end map — from Virtual machine to storage volumes/LUNs
These are the top 3 VMware monitoring features which I personally like. Apart from this there are many features including but not limited to
Tracking configuration changes per VM level
Storage path details for each datastore
Also I would like to mention that CloudIQ can be accessed using
Web view using any device having connectivity to CloudIQ
Mobile application – Supported on Apple and Android devices