mc support diag

The mc support diag command generates a health report for a AIStor deployment.

For deployments registered with the AIStor subscription network (SUBNET), the command generates and uploads the health report for analysis. Optionally, automate generating and uploading the report every 24 hours by enabling callhome.

The resulting health report is intended for use by AIStor Engineering via SUBNET and may contain internal or private data points. Exercise caution before sending a health report to a third party or posting the health report in a public forum.

AIStor recommends that you run the health diagnostics when first provisioning the cluster and again at any failure scenario.

Use the mc support diag command to trigger the diagnostic test. For clusters registered with SUBNET, the command uploads the results as part of SUBNET Health reports.

For airgapped or firewalled environments, or other environments that prevent direct network access from the deployment, you can save the report locally with the --airgap flag. After saving, you can then upload the results of the test to SUBNET manually.

The report includes information such as:

  • System settings, services, and configurations that might impact performance
  • TLS certificate status, validity, expiration, and algorithm type information
  • CPU core count and information
  • Drive count, status, size, and available space
  • Information about data-containing partitions
  • Cluster size server count
  • File system type
  • Memory size and type
  • OS symmetry and Linux kernel version
  • Internode latency
  • Tiering configurations
  • NTP synchronization
  • Available resources
  • AIStor Server version

The resulting report is stored locally as a markdown-formatted file named diag-report-*.md, where * is a string that identifies the particular report.

Syntax

Parameters

ALIAS

Required

The alias of the AIStor deployment.

--airgap

Optional

Use in environments without network access to SUBNET (for example, airgapped, firewalled, or similar configuration). Generates the diagnostic report and saves it to the location where you ran the command.

You must manually upload the report to SUBNET.

For instructions, see the airgap example.

If the deployment is airgapped, but the local device where you are using the AIStor Client has network access, you do not need to use the --airgap flag.

--anonymize

Valid values are strict or standard. If not specified, log uploads use the standard mode that does not anonymize host names.

To anonymize all data, including host names, pass this parameter with the strict mode.

mc support diag minio --anonymize

--check

Specify one or more diagnostic checks to run as a comma-separated list. For example:

mc support diag minio --check=sys.drive,sys.mem

The client stores the report locally and does not upload the report to SUBNET.

The following table lists valid values.

Check Name Description
minio.buckets.max Buckets Maximum Recommended maximum number of buckets
minio.cluster.min Cluster Size Minimum Recommended minimum cluster size
minio.license.expiry License License is valid
minio.net.latency Internode Network Latency Internode Latency below 25ms
minio.net.tls.algo TLS Certs Algo TLS certificates use an optimal algorithm
minio.net.tls.status TLS Status TLS is enabled
minio.net.tls.valid TLS Certs Validity TLS certificates are valid
minio.process.args CLI Args AIStor CLI arguments are identical across the cluster
minio.process.rlimit Process Resource Limit AIStor has sufficiently large resource Limit
minio.process.user Process User AIStor running as non-root process
minio.version.consistency AIStor Consistency AIStor version is identical across the cluster
sys.cpu.consistency CPU Consistency CPU make, model and count are identical across the cluster
sys.cpu.cores.min CPU Cores Recommended minimum number of CPU cores
sys.cpu.extensions CPU Vector Extensions Performance features available on all CPUs
sys.cpu.governor CPU Governor CPU governor set to performance
sys.drive.consistency Drive Consistency Drives are identical across the cluster
sys.drive.status Drive Status Drives are online
sys.drive.usage Drive Usage Drive usage below 75%
sys.fs.consistency File System Consistency File system is identical on all Drives
sys.fs.inodes.free Inodes Free Sufficient free inodes
sys.fs.inodes.usage Inodes Usage Inodes usage in sync with drive usage
sys.fs.supported File System Supported Recommended file system
sys.fs.xfs.errors XFS Errors No continuous retries on XFS errors
sys.mem.consistency Memory Consistency Memory is identical across the Cluster
sys.mem.iommu IOMMU Configuration Input-Output Memory Management Unit configured correctly
sys.mem.swap Swap Memory Swap memory is not used
sys.mem.thp Transparent Huge Pages Configuration Transparent Huge Pages configured correctly
sys.net.eth.buffer Ethernet Ring Buffer Ethernet RX/TX ring buffer is optimal
sys.os.config OS Services No known performance-impacting OS services or configs
sys.os.consistency OS Consistency Operating systems are identical across the cluster
sys.os.kernel.min Kernel Version Recommended minimum kernel version
sys.os.kernel.unstable Kernel Unstable No unstable Kernel versions found
sys.os.ntp NTP System clocks are synchronized

--custom-header

Alias -i

Add an additional custom HTTP header to the request in key:value format.

--dtrace

Add an OpenTelemetry trace to the header.

Alternatively, set the MC_DTRACE environment variable.

--input

Alias -i

Run diagnostics on the specified file. The file must be of the format *.json.gz.

For example:

mc support diag myobjstore --input=myobjstore-health.json.gz

The report does not automatically upload to SUBNET.

--limit-download

Optional

Limit client-side download rates to no more than a specified rate in KiB/s, MiB/s, or GiB/s. This affects only the download to the local device running the AIStor client. Valid units include:

  • B for bytes
  • K for kilobytes
  • M for megabytes
  • G for gigabytes
  • T for terabytes
  • Ki for kibibytes
  • Mi for mibibytes
  • Gi for gibibytes
  • Ti for tebibytes

For example, to limit download rates to no more than 1 GiB/s, use the following:

--limit-download 1G

If not specified, AIStor uses an unlimited download rate.

--limit-upload

Optional

Limit client-side upload rates to no more than the specified rate in KiB/s, MiB/s, or GiB/s. This affects only the upload from the local device running the AIStor client. Valid units include:

  • B for bytes
  • K for kilobytes
  • M for megabytes
  • G for gigabytes
  • T for terabytes
  • Ki for kibibytes
  • Mi for mibibytes
  • Gi for gibibytes
  • Ti for tebibytes

For example, to limit upload rates to no more than 1 GiB/s, use the following:

--limit-upload 1G

If not specified, AIStor uses an unlimited upload rate.

Global Flags

This command supports any of the global flags.

Examples

Generate health data for an Object Store to upload manually

Generate a diagnostic report for an AIStor Object Store at alias minio2 and save it for manual upload to SUBNET:

mc support diag minio2 --airgap
  1. Run the command to generate and save the .gzip file of the health diagnostics
  2. Login to https://subnet.min.io and select the Deployments section
  3. Select the deployment for the report
  4. Select Upload
  5. Drag and drop the file or browse to the .gzip file location to upload it

Upload data to SUBNET with strict anonymization

Generate health data for an AIStor Object Store at alias myminio and anonymize all sensitive data, including host names.

mc support diag myminio --anonymize strict

Generate health data for drives and memory

Perform a diagnostic check on drives and memory for an AIStor Object Store at alias myminio.

mc support diag myminio --check=sys.drive,sys.mem

This command generates a report that includes all data types that begin with sys.drive.* and sys.mem.*.

Check the CPU governance and file system support

Perform a diagnostic check on the CPU governance performance and whether the file system is supported only for an object store at alias myminio.

mc support diag myminio --check=sys.cpu.governor,sys.fs.supported

Perform a diagnostic check on a file

Perform all available checks on the file at myminio-health.json.gz. The file should be in the current local working directory.

mc support diag myminio --input=myminio-health.json.gz

Behavior

Sample Output

● CPU Info ... ✔
● Disk Info ... ✔
● Net Info ... ✔
● Os Info ... ✔
● Mem Info ... ✔
● Process Info ... ✔
● Server Config ... ✔
● System Errors ... ✔
● System Services ... ✔
● System Config ... ✔
● Admin Info ... ✔
*********************************************************************************
                                WARNING!!
     ** THIS FILE MAY CONTAIN SENSITIVE INFORMATION ABOUT YOUR ENVIRONMENT **
     ** PLEASE INSPECT CONTENTS BEFORE SHARING IT ON ANY PUBLIC FORUM **
*********************************************************************************
mc: AIStor diagnostics report saved to myminio-health_20231111053323.json.gz

The gzipped output contains the requested health information.