Configuring parameters in backup environments

Configuring parameters in backup environments is described. A system outputs, via a user interface, a backup environment question. The system receives, via the user interface, an answer to the backup environment question. The system configures a backup environment parameter based on the answer to the backup environment question and based on information extracted from a corresponding backup environment.

BACKGROUND

A data object may be stored on a storage array, which is a disk storage system that includes multiple disk drives. Unlike a disk enclosure, a storage array has cache memory and advanced functionality, such as virtualization and Redundant Array of Independent Disks (RAID). A data protection administrator may manage a backup/restore application to create backups files of data objects and store the backup files of data objects on multiple storage arrays.

DETAILED DESCRIPTION

A backup application may output questions for a user of a client device to answer about backing up data on the client device. Such questions may ask the user about various requirements for datasets, networks, security, domains, and extended retention. The backup application may configure the parameters of the backup environment for the client device based on the user's answers to these questions. However, the configuration of these parameters may not be optimal for the process of backing up the client device's data. For example, the user's answers to dataset requirement questions may fail to take into account client device capabilities which enable the faster and more efficient creation of backup files for the client device. In another example, the user's answers to network requirement questions may fail to take into account historical network activity that impacts the transmission of backup files for the client device. In yet another example, the user's multiple answers to multiple security requirement questions may be inconsistent relative to each other, thereby resulting in the configuration of conflicting security parameters that result in the non-optimal backups of the client device.

Embodiments herein configure parameters in backup environments. A backup environment question is output via a user interface. An answer to the backup environment question is received via the user interface. A backup environment parameter is configured based on the answer to the backup environment question and based on information extracted from a corresponding backup environment.

For example, a parameter configurator outputs a dataset requirement question to a user who is registering to backup data on the user's server, and receives a dataset requirements answer from the user. The parameter configurator configures a dataset parameter for multi-channel processing based on the dataset requirement answer from the user and based on the server's multi-processing capabilities which were identified by the parameter configurator, and which remain unknown to the user of the server. Therefore, the parameter configurator overcomes the legacy problem of configuring parameters by extracting information from the backup environment which optimizes the configuration of parameters for the backup process.

FIG. 1illustrates a diagram of a system that implements configuring parameters in backup environments, under an embodiment. As shown inFIG. 1, a system100may illustrate a cloud computing environment in which data, applications, services, and other resources are stored and delivered through shared data-centers and appear as a single point of access for the users. The system100may also represent any other type of distributed computer network environment in which servers control the storage and distribution of resources and services for different client users.

In an embodiment, the system100represents a cloud computing system that includes a first client102, a second client104, and a third client106; and a server108and a storage array110that may be provided by a hosting company. AlthoughFIG. 1depicts the first client102as a laptop computer102, the second client104as a personal computer104, and the third client106as a server106, each of the clients102-106may be any type of computer. The storage array110includes a first disk112and a second disk114. The clients102-106, the server108, and the storage array110communicate via a network116. AlthoughFIG. 1depicts the system100with three clients102-106, one server108, one storage array110, two disks112-114, and one network116, the system100may include any number of clients102-106, any number of servers108, any number of storage arrays110, any number of disks112-114, and any number of networks116. The clients102-106and the server108may each be substantially similar to the system300depicted inFIG. 3and described below.

The server108includes a backup/restore application118that creates backup files of data objects for the clients102-106, and executes a rollback based on the backup files. The backup/restore application118provides centralized administration, such as scheduling, monitoring, and managing backup operations and backup files. The backup/restore application118enables the storing of backup operation schedules, client policies, and client configurations. The backup/restore application118provides a unique interface to the clients102-106during login, and assists the server108in authenticating and registering the clients102-106. The backup/restore application118sends backup/restore work orders to the clients102-106, which receive and process the work orders to start a backup or restore operation. The backup/restore application118maintains a local database of all processes that execute on the server108. The backup/restore application118executes server-side processes for a system administrator's graphical management console, which may enable the system administrator to use command line interface tools for queries. For example, a system administrator identifies the clients102-106registered with the server108.

The server108includes a parameter configurator120that optimizes the configuration of backup parameters based on user answers to backup environment questions and based on information which the parameter configurator120extracts from backup environments. The parameter configurator120may be a separate component from the backup/restore application118or an integrated module within the backup/restore application118. AlthoughFIG. 1depicts the backup/restore application118and the parameter configurator120residing completely on the server108, the backup/restore application118and the parameter configurator120may reside in any combination of partially on the server108and partially on the clients102-106. Even though the following paragraphs describe EMC Corporation's Avamar® backup/restore application and EMC Corporation's NetWorker® backup/restore application as examples of the backup/restore application118, the backup/restore application118may be any other backup/restore application which provides the backup/restore functionalities described in the Background section.

The backup/restore application118may be EMC Corporation's Avamar® backup/restore application, which provides fast, efficient backup and recovery through a complete software and hardware solution. Equipped with integrated variable-length deduplication technology, EMC Corporation's Avamar® backup/restore application facilitates fast, periodic full backups for virtual environments, remote offices, enterprise applications, network access servers, and desktops/laptops. Data deduplication significantly reduces backup time by only storing unique periodic changes, while always maintaining periodic full backups for immediate single-step restore. The transmission of deduplicated backup sends only changed blocks, reducing network traffic. EMC Corporation's Avamar® backup/restore application leverages existing local area network and wide area network bandwidth for enterprise-wide and remote/branch office backup and recovery. Every backup is a full backup, which makes it easy for users to browse, point, and click for a single-step recovery. EMC Corporation's Avamar® data store features redundant power and networking, redundant array of independent disks, and redundant array of inexpensive nodes technology to provide uninterrupted data accessibility. Periodic data systems checks ensure recoverability whenever needed. EMC Corporation's Avamar® systems can be deployed in an integrated solution with EMC Corporation's Data Domain® systems for high-speed backup and recovery of specific data types.

The backup/restore application118may be an EMC Corporation's NetWorker e backup/restore application, which is a suite of enterprise level data protection software that unifies and automates backup to tape, disk-based, and flash-based storage media across physical and virtual environments for granular and disaster recovery. Cross-platform support is provided for many environments, including Microsoft Windows®. A central NetWorker® server manages a data zone that contains backup clients and NetWorker® storage nodes that access the backup media. The NetWorker® management console software provides a graphic user interface for functions such as client configuration, policy settings, schedules, monitoring, reports, and daily operations for deduplicated and non-deduplicated backups. The core NetWorker® software backs up client file systems and operating system environments. Add-on database and application modules provide backup services for products such as Microsoft® Exchange Server. Client backup data can be sent to a remote NetWorker® storage node or stored on a locally attached device by the use of a dedicated storage node. EMC Corporation's NetWorker® modules for Microsoft® applications supports Microsoft® products such as Microsoft® Exchange, Microsoft® Sharepoint, Microsoft® SQL Server, and Microsoft® Hyper-V servers.

The parameter configurator120outputs a backup environment question to a user who is registering to backup data on the user's client device, receives a backup environment answer from the user, and configures a backup environment parameter based on the backup environment answer from the user. The parameter configurator120outputs a backup environment question in two scenarios. The first scenario occurs when a single use is registering to backup data on the single user's client device. The second scenario occurs when an enterprise's backup administrator is configuring the backup/restore application118for future use by multiple users associated with the enterprise. Optimization parameters which are global may be configured when the backup administrator configures the backup/restore application118, and parameters which are local to individual users' client devices may be configured when an individual user registers their client device. One example of a global parameter is a security parameter, as each enterprise may have specific security policies and apply these specific security policies to all client devices associated with the enterprise. One example of a local parameter is a network parameter, which different individual users may configure differently based on their differing local networks. The backup environment questions, answers, and parameters may be based on dataset requirements, network requirements, security requirements, domain requirements, and/or extended retention requirements.

Dataset requirements questions request information about what types of plugins and what type of retention policies will be used. Based on the dataset answers, the corresponding groups will be created with datasets assigned, and plugins selected for each dataset. An example of an answer to a dataset question is: “Will have SQL plugin, Oracle plugin, Retention for SQL is 60 days, and Replication is 1 quarter.”

An example of configuring dataset parameters based on information extracted from the corresponding backup environment is the parameter configurator120configuring a dataset parameter for multi-channel processing based on a dataset requirement answer from the user and based on a server's multi-processing capabilities which were identified by the parameter configurator120, and which remain unknown to the user of the server106. Other examples of configuring dataset parameters based on information extracted from the corresponding backup environment include configuring a device deduplication option based on a specific type of server being backed up, and configuring a backup optimization option for a significant number of unchanged files that are backed up on a regular basis. Yet another dataset parameter example is the parameter configurator120configuring the files per set parameter for large data files, for which a relatively low number of files per set, such as 1, provides maximum deduplication, and for which a relatively high number of files per set, such as 64, provides better throughput.

An example of configuring network parameters based on information extracted from the corresponding backup environment is the parameter configurator120configuring a network backup parameter based on a network requirement answer from the user and based on the corresponding network's historical data that was identified by the parameter configurator120, and which remain unknown to the user of the server106. Examples of network parameters are the sslbuffersize parameter and the tcpbuffersize parameter, which vary based on the latency and bandwidth available in the link between a client device and the backup server108. The bandwidth and the latency are automatically calculated using tools like pingb, which calculates the latency and the throughput available between a client network and a server network. So in the initial configuration the client network address will be collected via user input and based on that, the parameter configurator120will measure the throughput/latency and accordingly configure the sslbufsize network parameter and the tcpbufsize network parameter. Other examples of configuring network parameters based on information extracted from the corresponding backup environment include the parameter configurator120disabling paging if a network address translator is used, and the parameter configurator120configuring layers' buffer sizes based on wide area network information.

An example of configuring security parameters based on a user answer to a backup environment question is the parameter configurator120configuring the ciphers for a global storage area network based on a medium authentication answer from the user, configuring the login password complexity based on the same medium authentication answer from the user, and also configuring a parameter for a key manager service based on the same medium authentication answer from the user. The parameter configurator120configures multiple security parameters based on a single security answer from the user, thereby avoiding the possibility that conflicting security parameters are configured separately for the cipher, the login password complexity, and the key manager service based on conflicting security answers from the user. The security questions output to the user may also identify the ports that will be required so that the user can check if any of their firewalls will block access, and accordingly enable access to those ports.

An example of configuring domain parameters based on a user answer to a backup environment question is the parameter configurator120creating the domains under which the client106will register and also configuring the lightweight directory access protocol parameters based on the answer to the lightweight directory access protocol question for domain requirements from the user.

An example of configuring extended retention parameters based on a user answer to a backup environment question is the parameter configurator120configuring an export policy parameter, an export frequency parameter, a backup types parameter for export, an export browsing parameter, or a proxy server setup parameter. The export policy parameter identifies the media which stores the export. The export frequency parameter identifies when exports occur, such as based on regular intervals, specific weekdays, a specific day of each month, or on demand. The backup types parameter for export identify which types of files are exported, such as daily, weekly, monthly and yearly. The export browsing parameter identifies a client for an export, and a backup export range. The proxy server setup parameter identifies a proxy server for virtual machine backups.

FIG. 2is a flowchart that illustrates a method for configuring parameters in backup environments, under an embodiment. Flowchart200illustrates method acts illustrated as flowchart blocks for certain steps involved in and/or between the clients102-106and/or the server108ofFIG. 1.

A backup environment question is output via a user interface, block202. For example, the parameter configurator120outputs a dataset requirement question to a user who is registering to backup data on the user's server106.

An answer to a backup environment question is received via a user interface, block204. For example, the parameter configurator120receives a dataset requirements answer from the user.

A backup environment parameter is configured based on an answer to a backup environment question and based on information extracted from a corresponding backup environment, block206. For example, the parameter configurator120configures a dataset backup parameter for multi-channel processing based on the dataset requirement answer from the user and based on a server's multi-processing capabilities which were identified by the parameter configurator120, and which remain unknown to the user of the server106.

A backup environment question associated with security requirements is output via a user interface, block208. For example, the parameter configurator120outputs a security requirements question to the user, specifying options for high, medium, and low authentication.

One answer to a backup environment question associated with security requirements is received via a user interface, block210. For example, the parameter configurator120receives a selection of the medium authentication option from the user.

Multiple security parameters are configure based on one answer to a backup environment question associated with security requirements, block212. For example, the parameter configurator120configures the ciphers for a global storage area network based on a medium authentication answer from the user, configures the login password complexity based on the same medium authentication answer from the user, and also configures a parameter for a key manager service based on the same medium authentication answer from the user.

A backup environment question associated with domain requirements or extended retention requirements is output via a user interface, block214. For example, the parameter configurator120outputs a lightweight directory access protocol question for domain requirements to the user.

An answer to a backup environment question associated with domain requirements or extended retention requirements is received via a user interface, block216. For example, the parameter configurator120receives an answer to the lightweight directory access protocol question for domain requirements from the user.

A backup environment parameter associated with domain requirements or extended retention requirements is configured based on an answer to a backup environment question associated with domain requirements or extended retention requirements, block218. For example, the parameter configurator120creates the domains under which the client106will register and also configures the lightweight directory access protocol parameters based on the answer to the lightweight directory access protocol question for domain requirements from the user.

A backup process is analyzed in a corresponding backup environment, block220. For example, the parameter configurator120records backup failures, and determines that some of the failures are due to cipher mismatches.

A recommendation to reconfigure a backup environment parameter based on analysis of a backup process is output via a user interface, block222. For example, the parameter configurator120recommends lowering the cipher strength from high authentication to medium authentication.

A selection to reconfigure a backup environment parameter is received via a user interface, block224. For example, the parameter configurator120receives a recommended selection from the user to lower the cipher strength from high authentication to medium authentication.

AlthoughFIG. 2depicts the blocks202-226occurring in a specific order, the blocks202-226may occur in another order. In other implementations, each of the blocks202-226may also be executed in combination with other blocks and/or some blocks may be divided into a different set of blocks.

Having describing the subject matter in detail, an exemplary hardware device in which the subject matter may be implemented shall be described. Those of ordinary skill in the art will appreciate that the elements illustrated inFIG. 3may vary depending on the system implementation. With reference toFIG. 3, an exemplary system for implementing the subject matter disclosed herein includes a hardware device300, including a processing unit302, memory304, storage306, a data entry module308, a display adapter310, a communication interface312, and a bus314that couples the elements304-312to the processing unit302.

The bus314may comprise any type of bus architecture. Examples include a memory bus, a peripheral bus, a local bus, etc. The processing unit302is an instruction execution machine, apparatus, or device and may comprise a microprocessor, a digital signal processor, a graphics processing unit, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), etc. The processing unit302may be configured to execute program instructions stored in the memory304and/or the storage306and/or received via the data entry module308.

The memory304may include read only memory (ROM)316and random access memory (RAM)318. The memory304may be configured to store program instructions and data during operation of the hardware device300. In various embodiments, the memory304may include any of a variety of memory technologies such as static random access memory (SRAM) or dynamic RAM (DRAM), including variants such as dual data rate synchronous DRAM (DDR SDRAM), error correcting code synchronous DRAM (ECC SDRAM), or RAMBUS DRAM (RDRAM), for example. The memory304may also include nonvolatile memory technologies such as nonvolatile flash RAM (NVRAM) or ROM. In some embodiments, it is contemplated that the memory304may include a combination of technologies such as the foregoing, as well as other technologies not specifically mentioned. When the subject matter is implemented in a computer system, a basic input/output system (BIOS)320, containing the basic routines that help to transfer information between elements within the computer system, such as during start-up, is stored in the ROM316.

The storage306may include a flash memory data storage device for reading from and writing to flash memory, a hard disk drive for reading from and writing to a hard disk, a magnetic disk drive for reading from or writing to a removable magnetic disk, and/or an optical disk drive for reading from or writing to a removable optical disk such as a CD ROM, DVD or other optical media. The drives and their associated computer-readable media provide nonvolatile storage of computer readable instructions, data structures, program modules and other data for the hardware device300.

It is noted that the methods described herein can be embodied in executable instructions stored in a computer readable medium for use by or in connection with an instruction execution machine, apparatus, or device, such as a computer-based or processor-containing machine, apparatus, or device. It will be appreciated by those skilled in the art that for some embodiments, other types of computer readable media may be used which can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, RAM, ROM, and the like may also be used in the exemplary operating environment. As used here, a “computer-readable medium” can include one or more of any suitable media for storing the executable instructions of a computer program in one or more of an electronic, magnetic, optical, and electromagnetic format, such that the instruction execution machine, system, apparatus, or device can read (or fetch) the instructions from the computer readable medium and execute the instructions for carrying out the described methods. A non-exhaustive list of conventional exemplary computer readable medium includes: a portable computer diskette; a RAM; a ROM; an erasable programmable read only memory (EPROM or flash memory); optical storage devices, including a portable compact disc (CD), a portable digital video disc (DVD), a high definition DVD (HD-DVD™), a BLU-RAY disc; and the like.

A number of program modules may be stored on the storage306, the ROM316or the RAM318, including an operating system322, one or more applications programs324, program data326, and other program modules328. A user may enter commands and information into the hardware device300through the data entry module308. The data entry module308may include mechanisms such as a keyboard, a touch screen, a pointing device, etc. Other external input devices (not shown) are connected to the hardware device300via an external data entry interface330. By way of example and not limitation, external input devices may include a microphone, joystick, game pad, satellite dish, scanner, or the like. In some embodiments, external input devices may include video or audio input devices such as a video camera, a still camera, etc. The data entry module308may be configured to receive input from one or more users of the hardware device300and to deliver such input to the processing unit302and/or the memory304via the bus314.

A display332is also connected to the bus314via the display adapter310. The display332may be configured to display output of the hardware device300to one or more users. In some embodiments, a given device such as a touch screen, for example, may function as both the data entry module308and the display332. External display devices may also be connected to the bus314via an external display interface334. Other peripheral output devices, not shown, such as speakers and printers, may be connected to the hardware device300.

The hardware device300may operate in a networked environment using logical connections to one or more remote nodes (not shown) via the communication interface312. The remote node may be another computer, a server, a router, a peer device or other common network node, and typically includes many or all of the elements described above relative to the hardware device300. The communication interface312may interface with a wireless network and/or a wired network. Examples of wireless networks include, for example, a BLUETOOTH network, a wireless personal area network, a wireless 802.11 local area network (LAN), and/or wireless telephony network (e.g., a cellular, PCS, or GSM network). Examples of wired networks include, for example, a LAN, a fiber optic network, a wired personal area network, a telephony network, and/or a wide area network (WAN). Such networking environments are commonplace in intranets, the Internet, offices, enterprise-wide computer networks and the like. In some embodiments, the communication interface312may include logic configured to support direct memory access (DMA) transfers between the memory304and other devices.

In a networked environment, program modules depicted relative to the hardware device300, or portions thereof, may be stored in a remote storage device, such as, for example, on a server. It will be appreciated that other hardware and/or software to establish a communications link between the hardware device300and other devices may be used.

It should be understood that the arrangement of the hardware device300illustrated inFIG. 3is but one possible implementation and that other arrangements are possible. It should also be understood that the various system components (and means) defined by the claims, described below, and illustrated in the various block diagrams represent logical components that are configured to perform the functionality described herein. For example, one or more of these system components (and means) can be realized, in whole or in part, by at least some of the components illustrated in the arrangement of the hardware device300.

In addition, while at least one of these components are implemented at least partially as an electronic hardware component, and therefore constitutes a machine, the other components may be implemented in software, hardware, or a combination of software and hardware. More particularly, at least one component defined by the claims is implemented at least partially as an electronic hardware component, such as an instruction execution machine (e.g., a processor-based or processor-containing machine) and/or as specialized circuits or circuitry (e.g., discrete logic gates interconnected to perform a specialized function), such as those illustrated inFIG. 3.

Other components may be implemented in software, hardware, or a combination of software and hardware. Moreover, some or all of these other components may be combined, some may be omitted altogether, and additional components can be added while still achieving the functionality described herein. Thus, the subject matter described herein can be embodied in many different variations, and all such variations are contemplated to be within the scope of what is claimed.