Académique Documents
Professionnel Documents
Culture Documents
A Detailed Review
Abstract
This white paper presents the EMC
Symmetrix
Symmetrix
Optimizer as one of a
family of information management software solutions offered by EMC to achieve performance tuning at
the disk device level
Introduction
This white paper is intended to provide the reader with an in-depth understanding and an under the
covers view of the Symmetrix Optimizer product. The following topics will be covered:
Product overview
Demonstration mode functionality
Supported environments
Configuration
DRVs (dynamic relocation volumes)
TimeFinder technology
Optimizer functional operation
Features and best practices
Troubleshooting
Audience
This white paper is designed for Technical Sales/Pre-sales and Symmetrix Champions.
What is Symmetrix Optimizer?
Symmetrix Optimizer improves array performance by continuously monitoring access patterns and
migrating devices (Symmetrix logical volumes) to achieve balance across the disks in the array. This
process is carried out automatically based on user-defined parameters and is completely transparent to end
users, hosts, and applications in the environment. Migration is performed with constant data availability
and consistent protection.
Symmetrix Optimizer can be utilized via either the EMC Symmetrix Management Console GUI or CLI,
where users can define the following:
Symmetrix devices to be optimized
Priority of those devices
Window of time that profiles the business workload
Window of time in which Optimizer is allowed to swap
Additional business rules
The pace of the Symmetrix Optimizer volume copy mechanism
After being initialized with the user-defined parameters, Symmetrix Optimizer operates totally
autonomously on the Symmetrix service processor to perform the following steps:
EMC Symmetrix Optimizer
A Detailed Review 5
1. Symmetrix Optimizer builds a database of device activity statistics on the Symmetrix back end.
2. Using the data collected, configuration information, and the user-defined parameters, the Optimizer
algorithm identifies busy and idle devices and their locations on the physical drives. The algorithm
tries to minimize average disk service time by balancing I/O activity across physical disks by locating
busy devices close to each other on the same disk, and/or by locating busy devices on faster areas of
the disks. This is done by taking into account the speed of the disk, the disk geometry, and the actuator
speed.
3. Once a solution for load balancing has been developed, the next phase is to carry out the Symmetrix
device swaps. This is done using established EMC TimeFinder
source (R1)
device. A BCV device can be RAID 1 or RDF protected, but it cannot be RAID-S protected.
The Optimizers DRV differs from a TimeFinder BCV in that it cannot be connected to a host, and it has no
need for mirror protection.
Potential interactions
Scenario 1: TimeFinders BCV is synchronized with a volume that Optimizer wants to swap.
If a BCV is already established to the volume selected by Optimizer to be swapped, Optimizer will reject
that swap pick and make the next best swap pairing. Optimizer will check for a significant performance
improvement before doing a swap. The final swap pick will be sent to SymmWin for swapping. This
behavior benefits the performance of the Symmetrix system, and does not present a problem.
But, if the volume that comes up at the top of the swap list is always paired with a BCV during the
Optimizer swap window, Optimizer will not be able to correct the performance issue. The Optimizer swap
window should not align exactly with the window for establishing BCVs.
Remember that a user may leave the BCV established to the STD volume for a long period of time. If this
is the case, there is a high probability the Optimizers swap selection will be affected by this interaction
scenario. The interaction can be eliminated by implementing one of the two solutions listed in the next
section, Solution sets.
Scenario 2: Optimizer is swapping a volume TimeFinder wants.
If Optimizer is swapping a volume that TimeFinder attempts to establish a BCV with, the TimeFinder
action will fail and give a return code error. The script needs to check the return code and one of the
following solutions is needed to correct the error.
The time of the Optimizer swap is approximately twice the length of time is takes to establish a BCV to a
standard. This is a relatively short period. The probability of this interaction scenario is small. But the
consequence to TimeFinder can be great, and every effort should be made to avoid this interaction. Again,
the interaction can be eliminated by implementing one of the two solutions listed in the next section.
EMC Symmetrix Optimizer
A Detailed Review 32
Solution sets
To ensure no interaction between Optimizer and TimeFinder, the customer can take one of the following
steps.
Solution 1: Exclude all the standard volumes that will be involved with TimeFinder so the Optimizer can
not swap them. This is done by marking the logical volume attributes for this set of volumes to no swap.
This will eliminate all the interaction scenarios. Optimizer will swap the remaining volumes to get to an
optimal configuration in the Symmetrix system. This may prevent Optimizer from providing the best-
performing configuration.
This is recommended when TimeFinders usage is limited to a set number of volumes or is not controlled
by scripts.
Solution 2: Separate the TimeFinder activity from the Optimizer activity. Scripts or jobs controlling the
TimeFinder activity should be set to complete prior to Optimizers swap time zone. Additionally, the
Optimizer swap time zones should be set to complete prior to TimeFinder activity taking place. This
should separate the dual-copy sessions, blocking the possibility of the conflicts. However, it is possible
that an Optimizer swap will be initiated during a swap time zone, but not complete until some time after the
time zone has ended. Therefore, it is important for TimeFinder scripts to gracefully handle TimeFinder
BCV establish and incremental reestablish command failuresdue to Optimizer still being in the process
of swapping volumes (script needs to wait for swap to complete, then attempt the establish). In 5X65, the
scripts also need to handle incremental reestablish command failuresdue to Optimizer having previously
swapped the primary volume (script needs to attempt a full establish).
Appendix B: Using Optimizer from the CLI
To start and stop the Optimizer process on the Symmetrix service processor, use the symoptmz enable
and symoptmz disable commands. Once disabled, the Optimizer process on the Symmetrix service
processor will still listen for Optimizer clients (SMC, EMC ControlCenter or SYMCLI), but it will not
collect statistics or initiate any swaps until it is enabled. To change any Optimizer parameters, Optimizer
must be stopped using the symoptmz disable command. The parameters are then set using a
command file and the preview, prepare, and commit options. For example, to commit the changes
specified in the command file opt_config.txt, issue the command:
symoptmz file opt_config.txt commit
The preview argument checks that the command file has correct syntax. The prepare argument also
checks syntax and, in addition, performs some range checks. The commit argument carries out the same
syntax and range checks, and then updates the Optimizer with the modified parameters. It is recommend
that a preview be run on your command files, and then any syntax errors corrected. A prepare should
then be run and any out-of-range figures should be corrected. Finally, a commit should be done. The
commit command will first do a preview and prepare before committing the settings in the command file.
General Optimizer parameters are set using the following commands and syntax in the control file:
set control_parms [start_mode=<AUTO | MANUAL>,]
[min_perf_period=<min_perf>,]
[workload_period=<workload>,]
[swap_mode=<AUTO | USER_OK>,]
[max_simult_swaps=<max_simult>,]
[swap_rate=<max_swaps>];
The following table describes each parameter.
EMC Symmetrix Optimizer
A Detailed Review 33
Table 1. Parameters in the control file
Parameter Description
start_mode Determines whether Optimizer is enabled or disabled whenever Optimizer is launched, such as
after the service processor is rebooted.
swap_mode Controls whether Optimizer should automatically swap volumes as soon as it finds swaps that
would improve performance. If Optimizer is enabled in AUTO swap mode, each day it will
make up to the number of swaps specified by the swap_rate parameter, under control of the
swap time window settings. If Optimizer is enabled in USER_OK swap mode, it will generate
lists of swap suggestions approximately once an hour, and then wait for the user to approve the
swap list before proceeding.
max_simult_swaps Controls how many swaps Optimizer can perform simultaneously (up to four). The actual value
should reflect the number of volumes that will be swapped simultaneously. The acceptable
values are from two (a single pair swapped) to eight (four pairs swapped) Optimizer swaps.
swap_rate Sets the maximum number of swaps that Optimizer is allowed to make in a single day. This
parameter is only relevant if swap_mode is set to AUTO. Note that reflects the total number of
volumes to be swapped in a day. A value of 24 would allow 12 pairs of volumes to be swapped
in a day.
min_perf_period Specifies the amount of samples required initially before a recommendation will be made. You
should make sure that the values you specify are long enough (usually a week) for Optimizer to
establish a good characterization of your typical workloads. This parameter is expressed in
hours. Keep in mind that the Optimizer statistics database holds about 14 days worth of data.
workload_period Specifies how far back in time Optimizer should consider when the optimization algorithm is
run. Be careful not to make this value too large or you may include data that is so old it is no
longer representative of your current workloads. This parameter is expressed in hours.
The following control file sets up Optimizer to analyze data from the previous seven days and to start
figuring out swap suggestions after three days of collecting data. It also sets Optimizer to User Approved
mode and sets the maximum number of simultaneous swaps to eight (four pairs of hypervolumes).
set control_parms start_mode=AUTO,
min_perf_period=72,
workload_period=168,
swap_mode=USER_OK,
max_simult_swaps=8,
swap_rate=50;
Setting User Approved mode
User Approved mode allows you to see what swaps will occur before they take place. To switch Optimizer
into User Approved mode, use the set control_parms swap_mode=USER_OK; line in the
command file. Once this is set, Optimizer recalculates a swap list about once every hour as long as samples
have been collected for the specified minimum performance period. At any time, the latest swap list can be
retrieved using the symoptmz show swap_list command. The swap list can then be approved or
declined using the following syntax in the command file:
set swap <APPROVE | DECLINE>
[begin_at=<time_val>,]
EMC Symmetrix Optimizer
A Detailed Review 34
TIMESTAMP=<time_val>;
The timestamp specified must be the timestamp returned by the last symoptmz show swap_list
command. If the command to approve or decline the swap list returns an error, the swap list is probably out
of date and a new one is available from the service processor. The latest swap list should then be retrieved
again with the symoptmz show swap_list command.
Setting performance time windows
To set the performance time windows, use the symoptmz command with the following syntax in the
command file:
set time_window id=<tw_id>,
type=<SWAP | PERF>,
flag=<INCLUDE | EXCLUDE>,
period=<ONCE | WEEKLY | WEEKLY_BY_DAY>,
starting=<date_time>, ending=<date_time>,
[days=<day_list>,start_time=<hh:mm>, end_time=<hh:mm>];
where <date_time> is in the form of MMDDYYYY:HHMMSS and <day_list> is any comma-separated
combination of MON, TUE, WED, THU, FRI, SAT, or SUN. For the case of WEEKLY, <day_list> must
begin with one of the following: MON_START, TUE_START, WED_START, THU_START,
FRI_START, SAT_START, or SUN_START, which identifies the first of a series of consecutive days to
which the time window applies. The next entry identifies the day of the week, which concludes the range of
days.
The WEEKLY_BY_DAY setting is equivalent to what the GUI calls Weekly and the days of the
week must be specified. The window applies to each day specified and each day has its own window.
The WEEKLY setting is equivalent to what the GUI calls Ranging. The starting parameter identifies
the first of a series of consecutive days that the recurring time period applies to, and the next day in the
list serves as the ending day of the week to which the time period applies.
Using the set time_window command in the command file erases any previously set time windows
(both swap and performance), so this command should be used with caution.
To list the performance time windows that have been set up, use the symoptmz show composite
command. The symoptmz show parms command will also list any time windows that have been set.
Setting swap priority
Use the following command to set the volume priority:
symoptmz set swap_priority <none|normal|high> [-range
[Startdevname]:[Enddevname]][-n NumDevs]
Use the following command to list the priority settings for all the volumes or a range of volumes:
symoptmz list [-range [Startdevname]:[Enddevname]][-n NumDevs]
Optimizer logs and swap history
To get a list of all swaps that have been completed, use the following command:
symoptmz show swap_hist
EMC Symmetrix Optimizer
A Detailed Review 35
To retrieve the Optimizer activity log, including swaps that have been completed, use the following
command:
symoptmz read log_type RUNTIME [-start <date_time>] [stop <date_time>]
To retrieve the Optimizer error log, use the command:
symoptmz read log_type ERROR [-start <date_time>] [stop <date_time>]
The log that is returned includes DOS line-feed characters that can be removed using sed or another text
editor:
cat opt_log.txt | sed s/^M$// > cleaned_opt_log.txt
In a UNIX shell, the ^M should be typed using CTRL-V CTRL-M.
The symoptmz read command can be used to identify why a swap was not performed.
VLUN migration
The symotmz CLI command can define and start a migration session, The source devices can be either
enumerated or identified by using an existing Solutions Enabler device group. The list of target disks can
be either enumerated or identified by using the existing SymmWin disk groups. SymmWin disk groups
usually define disk tiers and consist disks from the same type and speed.
For initiating a migration:
migrate
dev[s] <start_dev1>[:<end_dev1>]
[,<start_dev2>[:<end_dev2>],...]
TO disk[s] {disk1} [,{disk2},...]
[unmapped=TRUE] [unmasked=TRUE]
[begin_at=<time_val>];
migrate
device_group <dgname>
TO disk_group_num <disk_group_num>
[unmapped=TRUE] [unmasked=TRUE]
[begin_at=<time_val>];
migrate
device_group <dgname>
TO disk[s] {disk1} [,{disk2},...]
[unmapped=TRUE] [unmasked=TRUE]
[begin_at=<time_val>];
EMC Symmetrix Optimizer
A Detailed Review 36
migrate
dev[s] <start_dev1>[:<end_dev1>]
[,<start_dev2>[:<end_dev2>],...]
TO disk_group_num <disk_group_num>
[unmapped=TRUE] [unmasked=TRUE]
[begin_at=<time_val>];
{diskN} is of the form {DDD,I,T} where
DDD is the director Identifier,
I is the Director Interface, and
T is the Target ID
time_val is in the form of MMDDYYYY:HHMMSS.
Appendix C: Troubleshooting
The Symmetrix Optimizer is a client/server application where the server runs on the service processor and
the clients can run from either the SMC or EMC ControlCenter Console or CLI. Solutions Enabler provides
the infrastructure of communication between the different modules, and EMC ControlCenter provides the
infrastructure for the SymmAgent, server, and Console commands protocol.
Each component in the system has its own log (trace) file (console.trc, server.trc, egs.log,
sapi-date.log, and optdbg.log). When troubleshooting a problem, it is critical to first identify
whether the problem is on the server or the client side. This can be done by viewing the individual logs.
Common problems:
Communication with the service processor. Often, when the service processor is busy (or during a
configuration change session), the Optimizer server is not accessible to client applications. A 1591
error indicates a time-out trying to connect to the service processor. Solution: Retry when getting
this message.
Optimizer is not swapping. By default, swap time windows are defined as exclusion. Solution: Set
the swap times windows to allow swaps.
Check if Optimizer is running.
Check if the initial and workload analysis periods are set correctly. (Usually a few days for initial time
and one week for the workload period.)
If Optimizer was stopped for a few days and then restarted, it might take a while before it starts
swapping again. (Optimizer seeks for more than 50 percent coverage of performance data; refer to
Workload and Initial Analysis Period on page 21 for more detail.)
Apply button in ControlCenter is not active. Optimizer can accept changes only when it is stopped.
Solution: Stop the Optimizer before committing any change.
EMC Symmetrix Optimizer
A Detailed Review 37