white paper How to Evaluate the ROI of Your Data Protection Infrastructure WHITE PAPER Introduction How to Evaluate the ROI of Your Data Protection Infrastructure | 2 In today’s economic climate, information technology (IT) budgets are under severe pressure, while ironically service level requirements are on the increase. Explosive data growth is stressing many legacy IT processes to the breaking point, driving IT managers to look for new and innovative ways to address the challenges that are arising. Storage is one of the areas hardest hit by explosive data growth. As both primary and secondary storage requirements increase, driven by not only explosive data growth but also by business and regulatory mandates driving much longer retention periods for archival storage, the past method of just throwing storage capacity at the problem is becoming increasingly untenable. And it’s not just budget pressures that are making this approach problematic; the sheer volume of data, approaching tens and even hundreds of terabytes for many companies in the near future, are leading to skyrocketing storage costs and making legacy approaches and architectures obsolete. In storage, ensuring that data is recoverable has always been a strong focus. But from a business point of view, the compelling value that computing infrastructures deliver is based around application services. While recovering data is a critical part of that, data in and of itself has little value to the business if it is not accurate and accessible. Recovery plans must take that into account, delivering a multi-faceted capability that supports the recovery of application services, ensures that the underlying data is accurate and up to date, and meets the recovery performance metrics required by the business. These recovery plans must meet not only local data and application requirements, but also remote recovery requirements so that business operations can be quickly recovered in the wake of catastrophic disasters that may shut down or destroy an entire data center. Targeted at a business audience, this white paper will discuss the major cost factors associated with legacy recovery architectures, providing a framework against which the return on investment (ROI) of newer approaches can be evaluated. Legacy recovery infrastructures can impose significant costs, many of which are hidden and may not be well understood. The paper concludes with a short discussion of how next generation data protection technologies address these shortcomings and can result in recovery solutions that have a significantly lower overall cost of ownership and ROI than legacy approaches. Baseline Recovery Capabilities As you begin the ROI evaluation process, it is important to understand what application environments and recovery metrics are most important to you. Without a defined set of needs, put into place with a good understanding of how recovery needs to operate for you, it will be hard to accurately evaluate the ROI of any given solution. The set of common recovery metrics, which is generally applicable to all open systems servers, operating systems, storage, storage architectures, and applications, used to evaluate capabilities draws from the following list: •Impacts of data protection operations on business processes. These impacts can range from the performance degradation of production applications that can affect business operations to an outright shutdown of application services directly supporting business processes for periods of time. •Data loss on recovery. Often referred to with the acronym RPO (which stands for recovery point objective), this metric limits how much data you expect to lose for the average recovery operation. An RPO target of 1 hour means that you have a recovery capability that will limit any data loss on recovery to no more than the most recent 1 hour of changes. If data is not recoverable, then in certain cases it can be re-created by referring to paper records, a process that is very manually intensive and significantly lengthens recovery times. In some cases, data cannot be WHITE PAPER How to Evaluate the ROI of Your Data Protection Infrastructure re-created, and it is just lost to the business. Depending on the business you’re in, this can be a minor annoyance (e.g. if you’re a small business handling pet boarding and grooming) or a catastrophic loss (e.g. if you’re running a trading floor for the New York Stock Exchange). •Recovery times. Often referred to with the acronym RTO (which stands for recovery time objective), this metric defines the maximum amount of time it should take to recover from an “incident”. An RTO target of 1 hour means that you can recover in no more than 1 hour from an incident. Different RTOs may apply to different types of incidents. An RTO of 1 hour may apply in the case of a few lost files, while an RTO of 1 day or longer may apply when an entire site has been lost and application environments and data must be recovered at a remote facility. •Recovery reliability. Analyst reports indicate that, when tape is used as the data recovery media, data cannot be recovered in up to 20% of the time or more. This is not necessarily always because a tape drive has failed or a tape has broken. Tapes may be lost or misplaced, many recoveries require data to be retrieved from multiple tapes – all of which may not be available – and sometimes corrupt data has been written to a tape or a backup job did not complete as expected, causing the recovery to fail. Recovery reliability can have a significant impact on both RPO and RTO as well, since if recovery fails from a certain recovery point, you must then go back to the next most recent point (which, if you’re using daily backups, can result in another 24 hours of lost data) and perform the same lengthy recovery process. •The extent of manual vs automated processes in recovery operations. Operations that require human intervention contain inherent risk, whereas operations that can be automated can be proven reliable through testing and incrementally improved or evolved over time. In any complex manual operation, the skill of the administrator performing that operation generally becomes a predictor in the speed and reliability with which that operation can be completed. When recovery operations can be automated, they become less dependent on the skill of the administrator and generally become faster and more reliable. •Cost efficiency. Generally, there are multiple approaches which can be used to solve any IT problem, each of which has its own unique pros and cons. Functional capabilities aside, there may also be significant cost differences between approaches. Budgets can be stretched the farthest when the lowest cost solution to meet the requirements is implemented. | 3 Evaluating The Costs of Legacy Recovery Approaches The six baseline recovery capabilities will apply regardless of whether you are evaluating local (i.e. backup-oriented) or remote (i.e. disaster recovery-oriented) recovery capabilities. Let’s take a closer look at the hard and soft costs of the major recovery challenges, discussing each in more detail. Impacts to Production Operations When tape backups first were used, application environments were shut down while backups were performed. When used for backup purposes, tapes are relatively slow, inefficient devices, and as most businesses moved to 24x7 operations, applications could no longer be shut down to perform backups. Most enterprise applications were enabled for on-line backups, but on-line backup operations degraded the performance of production applications, often as much as 20% or more for write-intensive environments. Performance impacts like this can impede revenue generation, impact customer service, and in general slow the overall pace of business that can be conducted during backup operations. With the worldwide 24x7 operations required by most businesses, there is never a time that can be chosen for backups that will not have negative impacts on operations in one or more time zones. If you’re running on-line backups, do you know how long these take and what the performance impact is? Given the size of the data sets for most companies, on-line backups can take up to several hours or more. In some cases, impacts may not affect business operations noticeably, while in others there may be a severe impact. If the impacts are to a non-critical business process, then the actual cost to the business may again be negligible, but if they are to a mission-critical application that directly impacts processes like revenue generation and customer service, then you may want to quantify them. Be thorough as you consider the impacts so as not to miss indirect costs that do have a negative, long term effect on the business. An example of such a process might be any data collection or business that is being performed using automated web processes, where a 10% or 20% performance impact may slow operations to the point where potential customers become frustrated and do not complete a transaction. Data Loss On Recovery While it may be hard to quantify the costs of lost data from a financial point of view, the frustration that it can entail is something that has at one time or another impacted us all. If an employee has just completed 5 hours of work on a particular project, and that data is lost and cannot be recovered, then that work must be re-done, effectively doubling the cost of that portion of the project. If the “project” was data entry WHITE PAPER How to Evaluate the ROI of Your Data Protection Infrastructure performed by an underutilized resource, then the additional cost may be negligible, but suppose that it was a project that required a very highly paid financial or legal resource, or the fix to a severity 1 technical support problem that required architect-level resources for resolution – all of this work must be re-created, effectively doubling the cost to the company. In cases like these latter, the data loss generates additional expense and is a pain, but it can be re-done, but what if the lost data was 5 hours of financial transactions for a bank, credit union, or e-commerce site where backing paper records are not available? The business may re-contact the customer, requesting that they re-perform the transaction, but regardless of the response, the loss of data that cannot be recovered imposes costs on businesses. Understand how these costs vary with the RPO you have defined for various application environments. If you are performing backups once a day, you can expect on average to lose 12 hours of “work” for every recovery event. How much does it cost to potentially re-create 12 hours of work? If you implement a recovery technology that drops your RPO to 4 hours, you have now cut your potential re-work costs by 66%. Long Recovery Times The impact of long recovery times can be easier to quantify than the impact of lost data. Many companies, particularly those in the financial, e-commerce, and manufacturing areas where hourly revenue generation and/or production can be reliably forecasted, know how much they lose per hour when critical processes are down. To quantify the costs of long recovery times, you need to know not only your cost per hour of downtime, but also how many recovery events you expect each year. If a certain business knows that, for Application Environment A, if they are down for an hour between peak operation hours, they lose $10,000 per hour, and they currently have an RTO of between 4 and 8 hours, then they know that, on average, they will likely lose around $60,000 for each recovery event. If their past track record indicates they have two recovery events of this magnitude on average each year, then it is easy to determine the ROI for an investment that would drop their RTO to between 1 and 2 hours. There may be multiple inputs to the cost per hour of downtime. Revenue generation can clearly be one, but what about the cost of idled human resources during the outage? For an increasing number of companies, messaging applications like Microsoft Exchange and Lotus Notes are the way business is transacted, with the use of telephones a distant second. Have you ever been at a company where, when informed by IT that e-mail will be down for the remainder of the day, many employees go home? This is such a commonplace concern that many companies pay the price and administrative premium of installing shared-disk availability clustering software to keep | 4 downtime to under an hour or so in the event of an e-mail outage. An even more indirect, but potentially large cost may be associated with lost opportunities. Particularly in the financial and healthcare industries, timing can be everything, and outages can have huge impacts in terms of profit opportunities and patient care. In healthcare and emergency services, the impact of outages can in certain cases even extend to life-ordeath circumstances. Unfortunately, good data concerning the cost for downtime in various industries is generally not publicly available. Most companies, if they do know this information, do not like to publicize it. For that reason, it’s difficult for any vendor to build an ROI story using recovery times, but those companies with a good understanding of their costs can certainly do this, and quite easily (as demonstrated above). Additionally, service level agreement (SLA) commitments, driven by either business or regulatory mandates, can also impose costs in certain cases if they are not met. As part of contractual agreements with certain customers, you may have committed to meet “do not exceed” recovery times or overall uptime percentages for services which can result in fees being imposed or lost revenue if they are not met. Likewise, in certain regulated industries, having a DR plan is a requirement and non-compliance may lead to fines or even jail time in certain extreme instances. Because your data is likely growing at a very rapid rate, recovery plans that you put in place several years ago may no longer be able to meet SLA commitments to which you’ve agreed. In order to ensure compliance and avoid unnecessary costs, a review of these types of contractual commitments and an understanding of the costs of non-compliance may be in order. Recovery Reliability Recovery reliability can affect costs in several ways. First, if a recovery attempt from one recovery point, for example the most recent backup, fails, then you must go back to the next most recent available recovery point. If you’re doing daily backups, this means that, even if you can recover, you are now losing an additional 24 hours of data. You’ve likely already evaluated the costs associated with lost data when determining RPO requirements, and those will apply here as well. They include not only the cost to re-create lost data (if that is feasible) but potentially an inability to re-create the data, and of course the manual overhead involved with the additional recovery steps required. Poor recovery reliability impacts RPO as well as RTO. Even if data can be recovered, in certain cases it may be corrupt, and this imposes additional costs as well. For example, if you were able to recover from the most recent backup, but determined that a database table had been backed up in a corrupted state, you would need to go to the next most recent backup. Again, if you’re doing daily backups, this will mean WHITE PAPER How to Evaluate the ROI of Your Data Protection Infrastructure an additional 24 hours of data loss for the corrupted data. If database corruption has occurred, there are additional costs not related to recovery that must be incurred to diagnose and resolve the problem, but the data corruption problem is mentioned here because of its relation to both RPO and RTO issues. Recovering corrupt data effectively results in the same outcome as not being able to recover the data at all: you’ll need to perform another recovery operation from another backup, leading to more data loss and lengthening recovery times. Recovery technologies that support very stringent RPO and RTO requirements can minimize the impacts of recovery reliability issues, in addition to the advantages they may provide in other areas. What Are The True Costs Of Tape-Based Recovery Infrastructure? Tape-based infrastructures comprise the lion’s share of legacy recovery approaches (both local and remote), so we’ll focus on the costs associated with those environments. With tape-based recovery approaches, tape is used as the media for initial backups and the source for most data recovery, regardless of whether that recovery is local (backup-oriented) or remote (DR-oriented). Once a day, data is backed up to tape, and copies of those backup tapes are retained locally to meet daily recovery requirements for lost files, database tables, etc. Copies of some of those tapes (generally, a weekly or monthly full backup) were periodically shipped to one or more remote locations where they can potentially be stored for years. This off-site storage ensures that data is available for recovery purposes even in the event of catastrophic disasters, such as floods, earthquakes, or widespread power outages, that may entirely shut down primary site locations. If business operations needed to be re-started in some location other than the primary one, the necessary tapes at these remote locations would be identified, shipped to a new “primary” location, application environments would be manually rebuilt, the data would be loaded onto the new servers, and business operations would be brought back on-line. While tape-based backup operations are often thought to be inexpensive, this is a misnomer. While the cost of the tape media, a consumable resource that needs to be regularly renewed, is quite low on a $/GB basis, there are a lot of other costs that need to be considered as well. Because many of these costs are soft or indirect costs, it is often hard to quantify them. If you’re using tape-based recovery infrastructure, you may be aware that costs are back-loaded and tend to have more operational (manual involvement) and soft cost (long backup windows, extensive data loss, lengthy recovery times, and poor recovery reliability) components. For most installations of this type, costs will be apportioned as follows: | 5 Tape drive infrastructure. Whether you’re using small tape cartridge auto loaders or high end robotic tape libraries, drive acquisition costs may appear low relative to supportable capacities. Tape’s single biggest advantage is its low $/GB costs (when its acquisition costs are divided by the amount of potentially supportable capacity). Because tape is a removable media, a particular tape drive may be represented as having infinite capacity, assuming that enough tape media is purchased. Tape media costs. Physical tapes have a finite life, and using them in activities like backup that generates a lot of start/stop (i.e. shoe-shining) activity with a tape drive shortens that life. Tape media acquisition costs can be low, and compression technologies can lower that by up to 50% in certain cases. But tape media must be managed; it must be loaded, labeled, stored, retrieved, and tracked so that, as older tapes reach the end of their life cycles, they are replaced by newer tapes before the older tapes can cause undue reliability problems. Some aspects of tape management can be automated if large robotic tape libraries are used, but much of the activity is manual. Tape handling costs. These are the costs incurred due to the manual involvement, by backup administrators, to load tapes into tape drives for daily backups, remove and store old tapes, create tape copies for shipment to off-site locations, and to manage the life cycle of tape media. For even small companies, these activities can take up to an hour a day or more, assuming they have sophisticated backup administrative resources available. When tapes must be handled in remote office environments, where sophisticated administrative resources are not likely to exist, it can be worse than just a manual labor issue. Unsophisticated resources tasked with handling tapes at remote locations may not understand the process and can be lax in following procedures – issues that quite often lead to misplaced or mistracked tapes and other reliability problems. And let’s not forget the costs of storing tapes off-site. Backup window costs. Tape-based infrastructure supports comparatively low backup performance, a fact which lengthens backup windows and therefore the period of time that production applications are impacted during backup operations. Don’t let tape vendors get away with quoting high tape drive streaming speeds; regardless of the speed at which a tape drive can write backup data, it will only write it as fast as that data is available. Networks generally can’t deliver data to tape drives fast enough to keep them streaming, which is what results in all the starting, stopping, and repositioning activities known as “shoe shining”. Make sure you understand actual backup windows in your environment – don’t just divide a tape drive’s streaming speed into the amount of data that must be backed up on a regular basis to determine the length of the backup windows. A shoe shining tape drive may operate at 20% of its rated speed or less, depending on the ability of your infrastruc- WHITE PAPER How to Evaluate the ROI of Your Data Protection Infrastructure ture (networks, disks, applications, etc.) to deliver backup data to it. A shoe shining tape drive operating at 20% of its rated performance increases the size of the backup window by 5x. And don’t let tape or backup software vendors push incremental or differential backups or multiplexing as a way to reduce backup windows without understanding what the impact on recovery times and reliability is. It is true that these approaches can shorten backup times, but they significantly complicate recovery and increase recovery reliability risks. That is because to recover data that has been backed up using one of these approaches, a backup administrator is very likely to require multiple physical tapes to complete the restore. Statistics dictate that a backup operation that only requires one tape to complete is more reliable than one that requires two. And performing recoveries using tapes that have been differentially or incrementally backed up, or multiplexed as they were written to tape, will take longer, not only lengthening recovery times but also increasing manual labor costs associated with those recoveries. Finally, because the use of tape means by definition that backups are performed as a discrete operation, there is a direct relationship between your backup performance and your peak available network bandwidth. Almost all backups these days are performed across networks, and networks are generally sized to provide some headroom to allow for peak usage. Few operational tasks consume bandwidth like backups do. Even if your other business operations do not require very much network bandwidth, you may be forced to overprovision your network bandwidth just to meet certain recovery requirements. In that case, a large percentage of your network bandwidth may lie idle most of the time. If you don’t have this excess network capacity, then it means that all other applications that are transferring data across that network while backups are occurring will be impacted as well, not just the application being backed up. RPO. When tape is the recovery media, then backup is a discrete operation: there is no other option. Your RPO will be driven directly by your frequency of backups. One backup per day has a higher RPO than two backups per day, performed 12 hours apart. More lost data means more time attempting to re-create that data or just – more lost data. The cost of lost data may be hard to quantify, but the cost of the re-work to re-create that data may be more quantifiable since it’s directly related to the hourly cost of the human resource required to re-do it. When data loss leads directly to lost business, particularly the loss of a large transaction such as a new construction contract, a huge one-time deal, or the landing of a major new client, the cost of data loss may be all out of proportion to any sort of mathematical calculation. These types of costs are difficult to forecast, although measures put in place to keep RPOs low can clearly be viewed as an insurance policy against such events. | 6 Of all data protection approaches (other than completely manual re-creation of the data because no backups are being done), tape offers the worst RPO, although much of this is because when tapes are used, it is impractical to do more than one backup per day (and sometimes even that is impractical). RTO. To recover data locally, recovering it from tape is a multi-step operation. Assuming you are using a full backup to perform the recovery, you’ll need to find the relevant tape, manually load it into a tape drive, fast forward to the data you’re looking for (assuming that you’re doing the much more frequent “object level” type of recovery as opposed to a full system recovery), restore that data to disk to get it into a format readable by production applications (most production applications cannot read data directly from tape), find the specific object or objects that need to be recovered (by viewing the backup through the production application which must often be installed on a server separate from the production one to minimize the production impacts of recovery operations), and copy that object over to the production server. If incremental or differential backups are used (instead of full backups), then multiple tapes will be required to assemble the data you’re looking for before it can be restored to disk, adding additional time and risk to the recovery process. The use of “synthetic full backups” may minimize the manual tape handling aspects of this, but even with that capability additional time and risk is introduced into the recovery process as a result of having to touch multiple tapes to perform a restore. If you are recovering data from a remote site, you have to add the additional time up front to locate the tapes and ship them back to the location where the recovery will be performed. Local recoveries from tape can easily take hours, whereas remote recoveries from tape can easily take days or even up to a week or more. If a critical application is down and directly impacting business operations, the long recovery times required by tape can be a real problem. If you know the cost of downtime per hour for your critical applications, you can easily calculate the ROI of approaches which shorten RTO in your environment. Recovery Reliability. Recovering from tape is a lengthy process, and if the recovery fails, then you will need to go back to your next most recent backup and perform the same lengthy recovery process over again. High recovery reliability leads to less recovery re-work, whereas poor recovery reliability leads to more. Your backup administrators may keep records of how often recoveries fail in your environment. If so, this is invaluable data in calculating the cost of poor recovery reliability. If they are not tracking it, it is a good idea to start. License fee and maintenance costs. If tape is being used, conventional backup software is being used as well. In those environments, every server that needs to be backed up must WHITE PAPER How to Evaluate the ROI of Your Data Protection Infrastructure have a backup agent installed on it. These backup agents communicate with one or more backup servers, which host the backup software, periodically gathering up all changes since the last backup and sending them across a network to backup servers which will then write that data to tape. Backup agents can often cost $500 - $2000 or more per server, and backup agent costs can become onerous as the number of servers to be backed up increases. In addition, backup software often includes complex functionality which requires patching and software updates to accommodate new releases of application software, operating system software, and hardware. These updates generally require that servers have to be rebooted, further impacting the availability of application services above and beyond when backups have to be performed. How Can Recovery ROI Be Improved? The costs discussed in the previous section may be familiar, although you may not have considered them all at once to understand the significant costs that tape-based recovery plans impose. The “hidden” costs of tape-based recovery infrastructures are huge. Next generation recovery technologies like continuous data protection (CDP), asynchronous replication, application failover/failback, and WAN optimization leverage automation and disk-based recovery infrastructures to address almost all of these problems. Because of their compelling advantages, disk-based recovery approaches are supported by almost all backup software vendors (as an alternative to tape), but many companies may not have seriously considered them because much of the cost of these solutions is incurred in the up-front purchase price (which does not compare favorably on a $/GB basis to the up-front purchase price of tape-based infrastructure). It should be clear now, after having taken a more in-depth look at the soft costs associated with tape-based infrastructure in terms of backup windows, RPO, RTO, recovery reliability, tape handling, license fees, and maintenance impacts, that purchase price is just the tip of the iceberg when it comes to the costs associated with tape-based recovery infrastructure. Disk-based approaches will result in significant soft cost savings by mitigating the impact of backup operations on business operations and supporting better, more reliable recovery. But just replacing tape-based backup targets with disk-based targets and continuing to use your existing backup software as you have in the past leaves a lot of costs still on the table. The real way to maximize ROI on your investments to support both local and remote recovery would be to do the following: | 7 •Move away from backup as a discrete operation that impacts business operations and towards a more “continuous” approach to collecting changes that effectively makes backup transparent and removes peak network bandwidth requirements during backup operations •Adopt an approach which makes your data recoverable the moment it is created instead of the moment that it is backed up, supporting near zero RPOs •Completely change the paradigm of recovery granularity being dependent on periodic backups, a change that will minimize the RPO impacts of failed recoveries •Combine technologies that meet the above requirements with a disk-based recovery infrastructure to reap the benefits of disk’s short RTOs and excellent recovery reliability •Automate as many of your data protection and recovery operations as possible, moving away from manually intensive tasks such as tape handling, shipping tapes by truck, manually rebuilding servers, and recovering applications by hand At this point, it may not surprise you to know that InMage Systems, the author of this white paper, provides an application and data recovery solution that does these five things. What may surprise you is the low entry price point and the fact that it can be used in a complementary manner with your existing servers, storage, applications, and backup software to completely eliminate backups as a discrete operation, achieve near-zero RPO, shorten recovery times to minutes (even for recoveries from remote locations), and minimize or eliminate tape handling at many or all of your sites. It will allow you to remove backup agents from most of your servers, lowering licensing costs and maintenance operations across your infrastructure. However, the point of this white paper is not InMage – it is making sure you understand the full impacts that tape-based recovery infrastructures are having in your environment. If you’re interested in finding out a little bit more about what we offer and reading case studies which detail how our customers have solved their local and remote (DR) recovery requirements with a single, integrated solution, please visit us on the web at www.inmage.com. How to Evaluate the ROI of Your Data Protection Infrastructure | 8 Conclusion About InMage Systems Using tape-based recovery infrastructure to meet local backup and/or remote DR requirements has significant hidden costs which over time make it a very expensive undertaking in terms of business impacts, administrative overhead, and poor recovery capabilities. In addition to tape drive costs, these costs include: InMage is the leading independent software vendor in developing and delivering comprehensive, disk-based and scalable business application recovery solutions that allow companies to meet stringent disaster recovery requirements, eliminate the impacts of local backups, and manage application uptime to meet high availability needs. Targeting mid tier and larger enterprises, InMage solutions provide solid data protection for high growth data environments while eliminating backups, minimizing data loss on recovery, shortening recovery times, and increasing recovery reliability in heterogeneous environments. InMage uniquely offers a low impact hybrid recovery technology and the use of AppShots to further support its customers’ remote disaster recovery, local backup, and high application availability requirements. •Tape media replacement and handling costs over time •Impacts to production operations and business processes •Re-work and other costs that are incurred when data cannot be recovered •Long recovery times that impact business operations while applications and/or data are not available •Retries and other costs associated with poor recovery reliability •The administrative costs and other risks associated with physical tape handling •Onerous licensing costs and maintenance impacts of having a backup agent on every server Next generation data protection solutions that leverage technologies like disk-based recovery infrastructures, CDP, asynchronous replication, application failover/failback, WAN optimization, and recovery automation can address all of these problems, significantly lowering costs over time while meeting recovery performance metrics that cannot be met with tape. 100 Century Center Court, #705, San Jose, CA 95112 | p: 1.800.646.3617 | p: 408.200.3840 | f: 408.588.1590 Web: www.inmage.com Copyright 2012, InMage Systems, Inc. All Rights Reserved. This document is provided for information purposes only, and the contents hereof are subject to change without notice. The information contained herein is the proprietary and confdential information of InMage and may not be reproduced or transmitted in any form for any purpose without InMage’s prior written permission. InMage is a registered trademark of InMage Systems, Inc. 2012V1 Email: [email protected] |
© Copyright 2024