Pages

Wednesday, December 9, 2015

List of all "advanced" DRS options

/*
      9  * drmOptions.h --
     10  *
     11  *    List of all "advanced" DRS options. These are configurable via the
     12  *    advanced settings dialog in the VC UI, or via the drmoptions config
     13  *    file supplied to the dummy test harness.
     14  *
     15  *    There are currently three types of options:
     16  *    1. string options (DrmStringOption),
     17  *    2. integer options (DrmIntOption),
     18  *    3. enum options (DrmEnumOptions).
     19  *    New options can be added to any list following the format as described
     20  *    below.
     21  *
     22  *    DrmStringOption
     23  *      SOPT(<ID>, <Key>, <Description>, <Default>)
     24  *
     25  *    DrmIntOption
     26  *      IOPT(<ID>, <Key>, <Description>, <Min>, <Max>, <Default>)
     27  *
     28  *      <Minimum>, <Maximum>
     29  *      - Specify the range for the option.
     30  *
     31  *    DrmEnumOption
     32  *      EOPT(<ID>, <Key>, <Description>,
     33  *           EOPTN(<id>, <val1) EOPTN(<id>, <val2>) ..., <Default>)
     34  */
     35 
     36 #include <vmomi/array.h>
     37 #include <array>
     38 #include "vpxDrmPublicTypes.h"
     39 
     40 namespace Vim {
     41    namespace Option {
     42       class OptionValue;
     43    }
     44 }
     45 
     46 #ifdef DRM_APPS
     47 #define DRM_OPT_DUMP_DIR_DEFAULT "drmdump"
     48 #else
     49 #define DRM_OPT_DUMP_DIR_DEFAULT ""
     50 #endif
     51 
     52 #ifdef VMX86_DEBUG
     53 #define DRM_OPT_DUMP_SPACE_DEFAULT 100
     54 #define DRM_OPT_COMPRESS_DRMDUMP_FILES_DEFAULT 0
     55 #define DRM_OPT_DUMP_RES_ACTION_DEFAULT 1
     56 #define DRM_OPT_DUMP_MAP_VM_DEFAULT 1
     57 #else
     58 #define DRM_OPT_DUMP_SPACE_DEFAULT 20
     59 #define DRM_OPT_COMPRESS_DRMDUMP_FILES_DEFAULT 1
     60 #define DRM_OPT_DUMP_RES_ACTION_DEFAULT 0
     61 #define DRM_OPT_DUMP_MAP_VM_DEFAULT 0
     62 #endif
     63 
     64 #define DRM_OPT_MIN_PWR_CPU_DEFAULT 1
     65 #define DRM_OPT_MIN_PWR_MEM_DEFAULT 1
     66 
     67 // Default host boot time in seconds for hosts that do not return it.
     68 #define DRM_OPT_DEFAULT_HOST_BOOT_TIME 300
     69 // Default shut down time for ESX hosts.
     70 #define DRM_OPT_DEFAULT_HOST_SHUT_DOWN_TIME 100
     71 
     72 /*
     73  * Various levels of enforcing correlation for fixing anti-affinity
     74  * rules.
     75  */
     76 
     77 // Correlations have no effect to fix anti-affinity rule violations.
     78 #define NO_CORRELATION    0
     79 
     80 /*
     81  * Try fixing anti-affinity with correlations first. In case this is
     82  * not possible, drop all correlations and try again.
     83  */
     84 #define SOFT_CORRELATION  1
     85 
     86 /*
     87  * Correlations are strictly enforced while fixing anti-affinity rule
     88  * violations.
     89  */
     90 #define HARD_CORRELATION  2
     91 
     92 #define DRM_CONFIG_ENUM_OPTS                                                  \
     93                                                                               \
     94    EOPT(GOODNESS_METRIC, "GoodnessMetric",                                    \
     95         "Goodness metric for evaluating migration decisions",                 \
     96         EOPTN(JAIN) EOPTN(STDEV) EOPTN(FREE), STDEV)                          \
     97                                                                               \
     98    EOPT(ENABLE_VM_ACTIVE_ADJUST, "EnableVmActiveAdjust",                      \
     99         "Enable Adjustment of VM Cpu Active",                                 \
    100         EOPTN(DISABLE) EOPTN(ALWAYS) EOPTN(NEWERBUILDS), DISABLE)             \
    101                                                                               \
    102    EOPT(SEVERE_IMBALANCE_RELAX_COST_BENEFIT,                                  \
    103         "SevereImbalanceRelaxCostBenefit",                                    \
    104         "Retry correcting severe load imbalance with relaxed costBenefit "    \
    105         "and downTime filters",                                               \
    106         EOPTN(DISABLE) EOPTN(RELAX_CB) EOPTN(RELAX_DOWNTIME)                  \
    107         EOPTN(RELAX_CB_DOWNTIME), RELAX_CB_DOWNTIME)                          \
    108                                                                               \
    109    EOPT(INFRA_UPDATE_HA_MAINTENANCE_MODE_VSAN_DECOMMISSION_MODE,              \
    110         "InfraUpdateHaMaintenanceModeVsanDecommissionMode",                   \
    111         "VSAN decommission mode for host maintenance mode task",              \
    112         EOPTN(NO_ACTION) EOPTN(ENSURE_OBJECT_ACCESSIBILITY)                   \
    113         EOPTN(EVACUATE_ALL_DATA), ENSURE_OBJECT_ACCESSIBILITY)                \
    114 
    115 #define DRM_CONFIG_INT_OPTS                                                   \
    116                                                                               \
    117    IOPT(GOODNESS_PER_STAR, "GoodnessPerStar",                                 \
    118         "Maximum goodness in 1/1000 required for a 1-star recommendation",    \
    119         1, 1000, 100)                                                         \
    120    IOPT(MIN_GOODNESS, "MinGoodness",                                          \
    121         "Minimum goodness in 1/1000 required for any balance recommendation; "\
    122         "if <=0, min set to abs value; if >0, min set to lessor of option & " \
    123         "value set proportionate to running VMs, hosts, & rebal resources",   \
    124         -1000, 1000, 5)                                                       \
    125    IOPT(MIN_IMBALANCE, "MinImbalance",                                        \
    126         "Minimum cluster imbalance in 1/1000 required for any "               \
    127         "recommendations",                                                    \
    128         0, 1000, 50)                                                          \
    129    IOPT(RELOCATE_THRESH, "RelocateThresh",                                    \
    130         "Threshold in stars for relocation",                                  \
    131         0, 5, 1)                                                              \
    132    IOPT(SECONDARY_METRIC_WEIGHT, "SecondaryMetricWeight",                     \
    133         "Weight for secondary metric in overall metric",                      \
    134         0, 50, 25)                                                            \
    135    IOPT(IDLE_TAX, "IdleTax",                                                  \
    136         "Idle tax percentage. When set to 0, idle tax is completely disabled.",\
    137         0, 99, 75)                                                            \
    138    IOPT(AVG_STAT_PERIOD, "AvgStatPeriod",                                     \
    139         "Statistical sampling period in minutes",                             \
    140         1, 15, 5)                                                             \
    141    IOPT(DUMP_SPACE, "DumpSpace",                                              \
    142         "Disk space limit in megabytes for dumping module and domain state, " \
    143         "set to 0 to disable dumping, set to -1 for unlimited space",         \
    144         -1, MAX_INT32, DRM_OPT_DUMP_SPACE_DEFAULT)                            \
    145    IOPT(FAKE_VM_ACTIVE_CPU_PCT, "PowerOnFakeActiveCpuPct",                    \
    146         "Fake active CPU percentage to use for initial share allocation",     \
    147         0, 100, 100)                                                          \
    148    IOPT(FAKE_VM_ACTIVE_MEM_PCT, "PowerOnFakeActiveMemPct",                    \
    149         "Fake active memory percentage to use for initial share allocation",  \
    150         0, 100, 100)                                                          \
    151    IOPT(CPU_ACTIVE_PCT_THRESH, "CpuActivePctThresh",                          \
    152         "Active percentage threshold above which the VM's CPU entitlement "   \
    153         "cap is increased to cluster maximum Mhz. Set it to 125 to disable "  \
    154         "this feature.",                                                      \
    155         80, 125, 125)                                                         \
    156    IOPT(MAX_MOVES_PER_HOST, "MaxMovesPerHost",                                \
    157         "Max number moves per host returned in each invocation; 0->unlimited "\
    158         "if <0, max set to abs value; if >0, max set to greater of option & " \
    159         "value set wrt avg migration time, num simultaneous moves per host, " \
    160         "& DRS polling interval",                                             \
    161         MIN_INT32, MAX_INT32, 8)                                              \
    162    IOPT(EWMA_WEIGHT, "EwmaWeight",                                            \
    163         "Weight for newer samples in exponential weighted moving average"     \
    164         "in 1/100's",                                                         \
    165         0, 100, 50)                                                           \
    166    IOPT(UTIL_RATIO_TARGET, "DemandCapacityRatioTarget",                       \
    167         "DPM: utilization target",                                            \
    168         40, 200, 63)                                                          \
    169    IOPT(UTIL_RATIO_TOLERANCE_HOST, "DemandCapacityRatioToleranceHost",        \
    170         "DPM: Compare host demand/capacity ratio with "                       \
    171         "DemandCapacityRatioTarget-/+DemandCapacityRatioToleranceHost; if "   \
    172         "below, consider powering hosts off; if above, consider powering "    \
    173         "hosts on",                                                           \
    174         10, 40, 18)                                                           \
    175    IOPT(VM_DEMAND_HISTORY_SECS_HOST_ON, "VmDemandHistorySecsHostOn",          \
    176         "DPM: Consider recent demand history over this period in making host "\
    177         "power on decisions",                                                 \
    178         0, 3600, 300)                                                         \
    179    IOPT(VM_DEMAND_HISTORY_SECS_HOST_OFF, "VmDemandHistorySecsHostOff",        \
    180         "DPM: Consider recent demand history over this period in making host "\
    181         "power off decisions",                                                \
    182         0, 3600, 2400)                                                        \
    183    IOPT(VM_DEMAND_HISTORY_NUM_STDDEV, "VmDemandHistoryNumStdDevAboveAve",     \
    184         "DPM: Compute demand for history period as mean plus this many "      \
    185         "standard deviations, capped at maximum demand observed",             \
    186         0, 5, 2)                                                              \
    187    IOPT(IGNORE_DOWN_TIME, "IgnoreDownTimeLessThan",                           \
    188         "Ignore down time less than this value in seconds",                   \
    189         0, 100, 1)                                                            \
    190    IOPT(NUM_UNRESERVED_SLOTS, "NumUnreservedSlots",                           \
    191         "Number of unreserved capacity slots to maintain",                    \
    192         0, 1024, 2)                                                           \
    193    IOPT(MEM_OVERHEAD_GROWTH, "MemOverheadGrowth",                             \
    194         "default memory overhead growth in MB per minute",                    \
    195         1, 50, 4)                                                             \
    196    IOPT(MEM_OVERHEAD_GROWTH_MAX, "MemOverheadGrowthCap",                      \
    197         "memory overhead growth cap in MB per minute",                        \
    198         0, 50, 20)                                                            \
    199    IOPT(MEM_OVERHEAD_GROWTH_MIN, "MemOverheadGrowthMin",                      \
    200         "default memory overhead growth min in MB per minute",                \
    201         0, 50, 2)                                                             \
    202    IOPT(MAX_FT_VMS, "MaxFtVmsPerHost",                                        \
    203         "Maximum number of FT VMs supported on a host",                       \
    204         -1, 512, 4)                                                           \
    205    IOPT(MAX_RECURSION_DEPTH, "MaxRecursionDepth",                             \
    206         "Maximum depth in the recursive algorithm for forced placement",      \
    207         0, 5, 1)                                                              \
    208    IOPT(POWER_STAR_THRESHOLD, "PowerStarThreshold",                           \
    209         "[OBSOLETE] DPM: Specify star threshold for power recommendations",   \
    210         1, 5, DPM_REC_RATING_DEFAULT)                                         \
    211    IOPT(POWER_PERFORMANCE_RATIO, "PowerPerformanceRatio",                     \
    212         "DPM: Set Power Performance ratio",                                   \
    213         0, 500, 40)                                                           \
    214    IOPT(POWER_PERFORMANCE_PERCENTILE_MULT,                                    \
    215         "PowerPerformancePercentileMultiplier",                               \
    216         "DPM: Set percentile for stable time for power performance",          \
    217         0, 100, 10)                                                           \
    218    IOPT(POWER_PERFORMANCE_VM_DEMAND_HISTORY_NUM_STDDEV,                       \
    219         "PowerPerformanceVmDemandHistoryNumStdDev",                           \
    220         "DPM/DRS: Compute demand for history period as mean plus this many "  \
    221         "standard deviations, capped at maximum demand observed",             \
    222         0, 5, 3)                                                              \
    223    IOPT(POWER_PERFORMANCE_HISTORY_SECS, "PowerPerformanceHistorySecs",        \
    224         "DPM/DRS: Consider recent demand history over this period for DPM "   \
    225         "power performance & DRS cost performance decisions",                 \
    226         0, 3600, 3600)                                                        \
    227    IOPT(VM_RELOCATION_SECS, "VmRelocationSecs",                               \
    228         "DPM: Amount of time it takes to relocate a VM",                      \
    229         0, 100, 6)                                                            \
    230    IOPT(MIN_POWERED_ON_CPU_CAPACITY, "MinPoweredOnCpuCapacity",               \
    231         "DPM: min cpu capacity in MHz comprised by powered on hosts",         \
    232         0, MAX_INT32, DRM_OPT_MIN_PWR_CPU_DEFAULT)                            \
    233    IOPT(MIN_POWERED_ON_MEM_CAPACITY, "MinPoweredOnMemCapacity",               \
    234         "DPM: min mem capacity in MB comprised by powered on hosts",          \
    235         0, MAX_INT32, DRM_OPT_MIN_PWR_MEM_DEFAULT)                            \
    236    IOPT(HOSTS_MIN_UPTIME_SECS, "HostsMinUptimeSecs",                          \
    237         "DPM: min uptime in secs of all hosts before DPM will consider any "  \
    238         "host as power-off candidate",                                        \
    239         0, MAX_INT32, 600)                                                    \
    240    IOPT(MIN_STARS_FOR_MAND_MOVES, "MinStarsForMandMoves",                     \
    241         "Minimum star rating for mandatory recommendations",                  \
    242         1, 5, 3)                                                              \
    243    IOPT(RAW_CAP_DIFF_PERCENT, "RawCapDiffPercent",                            \
    244         "Percent by which RawCapacity values need to differ to be signicant", \
    245         0, 100, 5)                                                            \
    246    IOPT(MAX_VCPUS_PER_CORE, "MaxVcpusPerCore",                                \
    247         "Maximum number of vcpus per physical core. This will apply only to " \
    248         "ESX5.x hosts and above",                                             \
    249         4, 2048, 2048)                                                        \
    250    IOPT(MAX_HOST_MEM_OVERCOMMIT_PCT, "MaxHostMemOvercommitPct",               \
    251         "Maximum percentage of memory overcommitment allowed per host",       \
    252         -1, 500, -1)                                                          \
    253    IOPT(MAX_VCPUS_PER_CLUSTER_PCT, "MaxVcpusPerClusterPct",                   \
    254         "Maximum ratio of cluster vcpus to pcpus, expressed as a percent",    \
    255         -1, 500, -1)                                                          \
    256    IOPT(MAX_CLUSTER_MEM_OVERCOMMIT_PCT, "MaxClusterMemOvercommitPct",         \
    257         "Maximum memory overcommit percent at cluster level",                 \
    258         -1, 500, -1)                                                          \
    259    IOPT(NUM_AGENT_VMS_REQUIRED, "NumAgentVmsRequired",                        \
    260         "Number agent (per-host pinned service) VMs required on each host",   \
    261         0, 1024, 0)                                                           \
    262    IOPT(VM_MAX_DOWNTIME_FT, "VmMaxDownTimeFT",                                \
    263         "Reject the moves if the predicted downTime will exceed the max (in " \
    264         "Secs) for FT VM",                                                    \
    265         0, 150, 5)                                                            \
    266    IOPT(VM_MAX_DOWNTIME, "VmMaxDownTime",                                     \
    267         "Reject the moves if the predicted downTime will exceed the max (in " \
    268         "secs) for non-FT VM",                                                \
    269         0, 150, 50)                                                           \
    270    IOPT(VM_DEMAND_HISTORY_SECS_SOFT_RULES, "VmDemandHistorySecsSoftRules",    \
    271         "Consider recent demand history over this period in making decisions "\
    272         "to drop soft rules",                                                 \
    273         0, 3600, 300)                                                         \
    274    IOPT(MIN_SPACE_UTILIZATION_DIFFERENCE, "MinSpaceUtilizationDifference",    \
    275         "Threshold below which space load balancing will not kick in",        \
    276         0, 100, 5)                                                            \
    277    IOPT(IO_LB_IMBL_THRESHOLD, "IoLoadBalancingImblThreshold",                 \
    278         "Threshold below which IO load balancing will not kick in",           \
    279         0, 100, 4)                                                            \
    280    IOPT(IO_LB_LAT_THRESHOLD, "IoLoadBalancingLatThreshold",                   \
    281         "Lat Threshold below which IO load balancing will not kick in",       \
    282         5, 100, 10)                                                           \
    283    IOPT(SPACE_LB_IMBL_THRESHOLD, "SpaceLoadBalancingImblThreshold",           \
    284         "Threshold below which Space load balancing will not kick in",        \
    285         0, 100, 80)                                                           \
    286    IOPT(MAX_IO_MODIFICATIONS, "IoLoadBalancingMaxMovesPerHost",               \
    287         "Maximum number of moves from or to a datastore per round",           \
    288         0, 10, 3)                                                             \
    289    IOPT(MIN_IO_HIST_SECS, "IoLoadBalancingMinHistSecs",                       \
    290         "Minimum number of seconds that should have passed before using "     \
    291         "current stats",                                                      \
    292         0, MAX_INT32, 43200)                                                  \
    293    IOPT(DEFAULT_MIGRATION_TIME, "DefaultMigrationTime",                       \
    294         "Migration time (secs) to use for VMs without history "               \
    295         "(-1 -> unspecified)",                                                \
    296         -1, MAX_INT32, -1)                                                    \
    297    IOPT(DEFAULT_DOWN_TIME, "DefaultDownTime",                                 \
    298         "Down time (millisecs) to use for VMs without history "               \
    299         "(-1 -> unspecified)",                                                \
    300         -1, MAX_INT32, -1)                                                    \
    301    IOPT(SPACE_GROWTH_SECS, "SpaceGrowthSecs",                                 \
    302         "The length of time to consider in the space growth risk analysis. "  \
    303         "Should be an order of magnitude longer than the typical storage "    \
    304         "vmotion time.",                                                      \
    305         0, 604800, 108000)                                                    \
    306    IOPT(DEFAULT_SIO_CAPACITY_IOPS, "DefaultSioCapacityInIOPS",                \
    307         "Default peak IOPS to be used for datastore with zero slope",         \
    308         200, 100000, 1000)                                                    \
    309    IOPT(DEFAULT_SIO_DEVICE_INTERCEPT, "DefaultSioDeviceIntercept",            \
    310         "Default intercept parameter in device model for SDRS in x1000",      \
    311         1, 100000, 5000)                                                      \
    312    IOPT(BASE_GOODNESS_FOR_SPACE_VIOLATION, "SetBaseGoodnessForSpaceViolation",\
    313         "-1*Goodness value added for a move exceeding space threshold on "    \
    314         "destination",                                                        \
    315         -100, 0, -2)                                                          \
    316    IOPT(IO_LOADBAL_PERCENTILE, "IoLoadBalancingPercentile",                   \
    317         "IO Load balancing default percentile to use ",                       \
    318         50, 100, 90)                                                          \
    319    IOPT(SECONDARY_METRIC_WEIGHT_MULTIPLIER, "SecondaryMetricWeightMult",      \
    320         "Weight multiplier for secondary metric in overall metric",           \
    321         0, 100, 100)                                                          \
    322    IOPT(IO_STABLE_TIME_SECS, "IOLBStableTimeSecs",                            \
    323         "Stable Time to consider in IO Load Balancing cost benefit",          \
    324         0, 2629743, 86400)                                                    \
    325    IOPT(CORRELATION_FOR_AFFINITY, "EnforceCorrelationForAffinity",            \
    326         "Use datastore correlations while fixing anti-affinity rules "        \
    327         "(0 = disabled, 1 = soft enforcement, 2 = hard enforcement)",         \
    328         0, 2, 1)                                                              \
    329    IOPT(SDRS_MAX_NUM_VMX_FILES_ON_DATASTORE, "SdrsMaxNumVmxFilesOnDatastore", \
    330         "Max num VMX files allowed on datastore (respected by SDRS)",         \
    331         0, MAX_INT32, 2048)                                                   \
    332    IOPT(LOG_DRS_LB_FAULTS, "LogDrsLbFaults",                                  \
    333         "Log faults encountered during DRS LB; 0: never, [default] 1: only "  \
    334         "in case of severe imbalance, 2: in case of regular and severe "      \
    335         "imbalance", 0, 2, 1)                                                 \
    336    IOPT(LIMIT_VMS_PER_ESX_HOST, "LimitVMsPerESXHost",                         \
    337         "Limit on number of VMs DRS will place/move to any host in cluster; " \
    338         "0 means no limit",                                                   \
    339         0, MAX_INT32, 0)                                                      \
    340    /* See PR 860033 for more details */                                       \
    341    IOPT(MAX_LB_PASSES, "MaxLBPasses",                                         \
    342         "Maximum number of passes before breaking out of the main loop of "   \
    343         "the DRS LB algorithm",                                               \
    344         0, MAX_INT32, 500)                                                    \
    345    IOPT(LIMIT_VMS_PER_ESX_HOST_PERCENT, "LimitVMsPerESXHostPercent",          \
    346         "Limit number of VMs DRS will place/move to any host in cluster to "  \
    347         "(number of VMs)/(number of ESX hosts) + "                            \
    348         "(number of VMs)/(number of hosts) * "                                \
    349         "(1 + LimitVMsPerESXHostPercent/100 ",                                \
    350         0, MAX_INT32, MAX_INT32)                                              \
    351    IOPT(PERCENT_IDLE_MB_IN_MEM_DEMAND, "PercentIdleMBInMemDemand",            \
    352         "Percentage of idle MB to be included as part of memory demand "      \
    353         "DRS option: percentage is of idle (consumed but not active) memory ",\
    354         0, 100, 25)                                                           \
    355    IOPT(PERCENT_IDLE_MB_IN_SPACE_DEMAND, "PercentIdleMBInSpaceDemand",        \
    356         "Percentage of idle MB to be included as part of space demand "       \
    357         "SDRS option: percentage is of idle (uncommitted) space ",            \
    358         0, 100, 25)                                                           \
    359    IOPT(MAX_DRS_ALGO_THREADS, "MaxDrsCalcThreads",                            \
    360         "Maximum number of threads DRS algorithm should use ",                \
    361         1, 128, 4)                                                            \
    362    IOPT(CALC_PER_THREAD, "DrsCalcPerThread",                                  \
    363         "Number of moves to be evaluated per thread ",                        \
    364         1, MAX_INT32, 4000)                                                   \
    365    IOPT(CLUSTER_POWER_CAP, "DrmClusterPowerCap",                              \
    366         "By default DrmClusterPowerCap is set as -1, which means no power "   \
    367         "cap for the cluster.  If this option is set, DrmClusterPowerCap "    \
    368         "will instead be as the power cap of the cluster",                    \
    369         -1, MAX_INT32, -1)                                                    \
    370    IOPT(MAX_FT_VCPUS, "MaxFtVcpusPerHost",                                    \
    371         "Maximum number of FT vCPUs supported on a host",                     \
    372         -1, 512, 8)                                                           \
    373    IOPT(SPACE_FREE_THRESHOLD_GB, "SpaceLoadBalancingFreeThreshold",           \
    374         "Threshold in GB below which Space load balancing will kick in",      \
    375         0, MAX_INT32, 0)                                                      \
    376    IOPT(CPU_DEMAND_PERCENTILE_IN_XDRS, "CpuDemandPercentileInXdrs",           \
    377         "Percentile of CPU active demand used in XDRS placement",             \
    378         0, NUM_PERCENTILES-1, DRM_PERCENTILE_90)                              \
    379    IOPT(MEM_DEMAND_PERCENTILE_IN_XDRS, "MemDemandPercentileInXdrs",           \
    380         "Percentile of memory active demand used in XDRS placement",          \
    381         0, NUM_PERCENTILES-1, DRM_PERCENTILE_90)                              \
    382    IOPT(MAX_IO_MOVES, "MaxConcurrentIOMoves",                                 \
    383         "Maximum number of SDRS storage vmotions per datastore",              \
    384         1, INT_MAX, 3)                                                        \
    385    IOPT(AGGRESSIVE_CPU_ACTIVE, "AggressiveCPUActive",                         \
    386         "Set to 1 to use the larger of these two values to predict the CPU "  \
    387         "demand of VMs in the DRS cluster: "                                  \
    388         "1. The 5-minute average value of CPU active "                        \
    389         "2. The 80th percentile (second largest) of the last five 1-minute "  \
    390         "   average values of CPU active",                                    \
    391         0, 1, 0)                                                              \
    392    IOPT(VM_DEMAND_PERIOD, "AvgDemandForVM",                                   \
    393         "Statistical sampling period in minutes for VM Demand",               \
    394         1, 120, 15)                                                           \
    395    IOPT(ENFORCE_STORAGE_PROFILES, "EnforceStorageProfiles",                   \
    396         "If set to 1, storage profile requirements are enforced during "      \
    397         "initial placement and IO load-balancing. If set to 2, profiles "     \
    398         "are strictly enforced. If set to 0, no enforcement takes place.",    \
    399         0, 2, 0)                                                              \
    400    IOPT(INFRA_UPDATE_HA_MAINTENANCE_MODE_TIMEOUT,                             \
    401         "InfraUpdateHaMaintenanceModeTimeout",                                \
    402         "Timeout value for host maintenance mode task",                       \
    403         0, 3600, 1800)                                                        \
    404 
    405 #define DRM_CONFIG_BOOL_OPTS                                                  \
    406                                                                               \
    407    BOPT(FORCE_AFFINE_POWERON, "ForceAffinePoweron",                           \
    408         "Only allow power-on on hosts with affine virtual machines",          \
    409         0)                                                                    \
    410    BOPT(COST_BENEFIT, "CostBenefit",                                          \
    411         "Enable/disable the use of cost benefit metric for filtering moves",  \
    412         1)                                                                    \
    413    BOPT(DOWN_TIME, "UseDownTime",                                             \
    414         "Enable/disable the use of downtime in cost benefit metric",          \
    415         1)                                                                    \
    416    BOPT(POWER, "Power",                                                       \
    417         "Enable DPM",                                                         \
    418         0)                                                                    \
    419    BOPT(ENABLE_POWER_PERFORMANCE, "EnablePowerPerformance",                   \
    420         "DPM: Enable Power Performance metric",                               \
    421         1)                                                                    \
    422    BOPT(ENABLE_MINIMAL_DUMPING, "EnableMinimalDumping",                       \
    423         "Enable or Disable minimal dumping",                                  \
    424         0)                                                                    \
    425    BOPT(COMPRESS_DRMDUMP_FILES, "CompressDrmdumpFiles",                       \
    426         "Set to 1 to compress drmdump files & to 0 to not compress them",     \
    427         DRM_OPT_COMPRESS_DRMDUMP_FILES_DEFAULT)                               \
    428    BOPT(NETWORK_RESERVATION_RULES, "NetworkReservationRules",                 \
    429         "Set to 1 to consider fixing Vm network reservation violations &"     \
    430         "to 0 to not do so ",                                                 \
    431         1)                                                                    \
    432    BOPT(IO_ALWAYS_USE_CURRENT, "IoLoadBalancingAlwaysUseCurrent",             \
    433         "Always use current stats for IO load balancing",                     \
    434         1)                                                                    \
    435    BOPT(ENABLE_IO_LB, "EnableIoLoadBalancing",                                \
    436         "Enable IO load balancing",                                           \
    437         1)                                                                    \
    438    BOPT(CAP_RP_RESERVATION, "CapRpReservationAtDemand",                       \
    439         "Caps the RP entitled reservation at demand during reservation "      \
    440         "divvying",                                                           \
    441         1)                                                                    \
    442    BOPT(USE_PEAK_IOPS, "UsePeakIOPSCapacity",                                 \
    443         "Use peak IOPS as the capacity of a datastore",                       \
    444         0)                                                                    \
    445    BOPT(USE_IO_SHARES_FOR_ENT, "UseIoSharesForEntitlement",                   \
    446         "Use vmdk IO shares for entitlement computation",                     \
    447         1)                                                                    \
    448    BOPT(IGNORE_AFFINITY_FOR_MAINT, "IgnoreAffinityRulesForMaintenance",       \
    449         "Ignore affinity rules for datastore maintenance mode",               \
    450         0)                                                                    \
    451    BOPT(DISABLE_IO_LB_INTERNAL, "DisableIoLoadBalancingInternal",             \
    452         "Disable IO load balancing internally irrespective of user-set value",\
    453         0)                                                                    \
    454    BOPT(CLEAR_IO_STATS, "ClearIoStatsOnSdrsRun",                              \
    455         "Clear datastore and Vmdk IO stats each time SDRS is invoked",        \
    456         0)                                                                    \
    457    BOPT(DISABLE_IO_FILTERS, "DisableIOLBFilters",                             \
    458         "Disable IO filters comparing source, destination latency and load",  \
    459         0)                                                                    \
    460    BOPT(FORCE_RUN_DRS_SDRS_FAIL, "ForceRunDrsSdrsFail",                       \
    461         "Force Run Drs/Sdrs to report failure; used to test failure handling",\
    462         0)                                                                    \
    463    BOPT(DROP_SOFT_VM_HOST_RULES_OVERUTILIZED,                                 \
    464         "DropSoftVmHostRulesOverutilized",                                    \
    465         "Set to 1 to if soft Vm/Host affinity/anti-affinity rules should be " \
    466         "dropped if respecting them increases the amount of host utilization "\
    467         "above 100% (default); set to 0 if such rules should not be dropped " \
    468         "if respecting them increases the amount of host utilization >100%",  \
    469         1)                                                                    \
    470    BOPT(SEVERE_IMBALANCE_RELAX_MIN_GOODNESS,                                  \
    471         "SevereImbalanceRelaxMinGoodness",                                    \
    472         "Retry correcting severe load imbalance with minGoodness set to 0 ",  \
    473         1)                                                                    \
    474    BOPT(SEVERE_IMBALANCE_DROP_COST_BENEFIT, "SevereImbalanceDropCostBenefit", \
    475         "Retry correcting severe load imbalance with costBenefit set to 0",   \
    476         0)                                                                    \
    477    BOPT(FIX_SEVERE_IMBALANCE_ONLY, "FixSevereImbalanceOnly",                  \
    478         "Be conservative while handling severe load imbalance and only "      \
    479         "perform LB moves till the cluster is out of severe imbalance.",      \
    480         1)                                                                    \
    481    BOPT(PLACE_VM_ON_REGISTERED_HOST, "PlaceVmOnRegisteredHost",               \
    482         "If =1 and VM's registered host is a placement choice, make it top "  \
    483         "choice even if it will contribute to significant imbalance. If =0, " \
    484         "order choices using preference for registered host if it will not "  \
    485         "introduce significant imbalance relative to another choice",         \
    486         0)                                                                    \
    487    BOPT(DRM_DIAGNOSE_DYNAMIC_ENTITLEMENT, "DrmDiagnoseDynamicEntitlement",    \
    488         "By default DrmDiagnose targets static entitlement.  If this option " \
    489         "is set, DrmDiagnose will instead target dynamic entitlement",        \
    490         0)                                                                    \
    491    BOPT(NETWORK_RESERVATION_CORRECTION, "NetworkReservationCorrection",       \
    492         "Set to 1 to consider fixing VM network reservation violations & "    \
    493         "to 0 to not do so ",                                                 \
    494         1)                                                                    \
    495    BOPT(ALLOW_UNLIMITED_CPUMAX, "AllowUnlimitedCpuLimitForVms",               \
    496         "If set to 1, VMs are not capped at num vCPUs * core MHz during "     \
    497         "Limit divvying for CPU.",                                            \
    498         0)                                                                    \
    499    BOPT(ENFORCE_IO_RESERVATIONS, "EnforceIOReservations",                     \
    500         "If set to 1, IO reservation settings are strictly enforced "         \
    501         "during initial placement and IO load-balancing.",                    \
    502         0)                                                                    \
    503    BOPT(VUM_DPM_CALL, "VUMDPMCall",                                           \
    504         "If set to 1, aggressive DPM is used to provide VUM remediation "     \
    505         "recommendations.",                                                   \
    506         0)                                                                    \
    507    BOPT(DRMDUMP_RES_ACTIONS, "DrmdumpResActions",                             \
    508         "If set to 1, drmdump includes resActions.",                          \
    509         DRM_OPT_DUMP_RES_ACTION_DEFAULT)                                      \
    510    BOPT(DRMDUMP_MAP_VM, "DrmdumpMapVm",                                       \
    511         "If set to 1, drmdump includes mapVm.",                               \
    512         DRM_OPT_DUMP_MAP_VM_DEFAULT)                                          \
    513    BOPT(NETWORK_AWARE_DRS, "NetworkAwareDrs",                                 \
    514         "If set to 1 DRS considers host network utilization ",                \
    515         1)                                                                    \
    516    BOPT(NETWORK_AWARE_LOAD_BALANCING, "NetworkAwareLoadBalancing",            \
    517         "If set to 1 DRS considers host network utilization"                  \
    518         "in load balancing.",                                                 \
    519         0)                                                                    \
    520    BOPT(INFRA_UPDATE_HA_MAINTENANCE_MODE_REREGISTER_POWERED_OFF_VMS,          \
    521         "InfraUpdateHaMaintenanceModeReregisterPoweredOffVms",                \
    522         "If set to 1, powered off vms will be reregistered for host "         \
    523         "maintenance mode task",                                              \
    524         1)

No comments:

Post a Comment