What's New in Ozone
New features and functional updates for Ozone are introduced in Cloudera Runtime 7.3.2, its service packs and cumulative hotfixes.
Cloudera Runtime 7.3.2
Cloudera Runtime 7.3.2 introduces new features of Ozone and includes all service packs and cumulative hotfixes from 7.3.1.100 through 7.3.1.706. For a comprehensive record of all updates in Cloudera Runtime 7.3.1.x, see New Features.
- Cloudera Storage Optimizer
- Cloudera Storage Optimizer is an intelligent data lifecycle management feature that automatically reduces storage usage by converting infrequently accessed data from replicated storage (RATIS 3×) to space-efficient erasure coding (EC). It analyzes access patterns and applies configurable policies to identify and convert cold data, reducing the storage footprint by 45% to 60% while maintaining data durability and availability. The benefit is additional usable capacity for the same licensed capacity. For more information, see Cloudera Storage Optimizer documentation.
- Storage container reconciliation
- By design, container replicas are identical and contain the same data. Container reconciliation is a repair mechanism that allows administrators to detect and repair container replicas that are corrupted or have otherwise diverged from each other. The data within each replica is summarized as a single data checksum. If the replica data diverges, these checksums will differ. After reconciliation, the replicas will contain the same data with matching checksums. This data checksum remains constant even as data is deleted from the container in the background. For more information, see Storage container reconciliation documentation.
- Support for G1 Garbage Collector (G1GC) with JDK 17
- When running Ozone on JDK 17, all Ozone server processes now default to the G1 Garbage Collector (G1GC). No action is required for most deployments.
- Configuration Changes for the FIPS-compliant SASL Changes
- Cloudera supports DIGEST-SHA, a new SASL mechanism, to replace DIGEST-MD5. DIGEST-SHA uses SHA256 and AES instead of MD5 and DES for message digest and encryption, respectively. As a result, DIGEST-SHA is fully FIPS-compliant. For more information, see Step 1: Prepare hosts.
- Moved the port
ozone.prometheus.http-portfrom 9094 to 9096 - The port
ozone.prometheus.http-portis moved from 9094 to 9096 to avoid Ozone Prometheus port colliding with HBase thrift server if they are on the same host. - Added new Ozone canaries
-
To configure the threshold value, the following new Ozone canaries are added along with the relevant configuration property that can be used to disable them:
- Ozone SCM heap memory canary: ozone_scm_heap_canary_enabled
- Ozone OM heap memory canary: ozone_om_heap_canary_enabled
- Ozone Datanode failed volumes canary: ozone_datanode_failed_volume_canary_enabled
- Added role-specific Java options
-
Previously, Ozone Java options (
JAVA_OPTS) were configured through a single shared setting. This change introduces separate Java option parameters for each Ozone service role, allowing more granular configuration.The following role-specific parameters are now available:
- Storage Container Manager (SCM): ozone_scm_java_opts
- Ozone Manager (OM): ozone_om_java_opts
- Datanode (DN): ozone_dn_java_opts
- S3 Gateway (S3G): ozone_s3g_java_opts
- Recon: ozone_recon_java_opts
Each parameter applies only to its corresponding service and overrides the shared JAVA_OPTS configuration where applicable.
- Added Knox proxy user configuration for Ozone Recon
-
You can now restrict which hosts and groups Knox can impersonate when accessing Ozone Recon by using the following configuration properties:
- ozone.recon.http.auth.proxyuser.knox.hosts: Specifies the hosts from which Knox is allowed to impersonate users .
- ozone.recon.http.auth.proxyuser.knox.groups: Specifies the user groups that Knox is allowed to impersonate.
- Added new verifier for container states
- The ozone debug replicas verify command now includes
the
new
--container-stateverifier:.ozone debug replicas verify --container-state <volume/bucket/path> -o <output.json>This new verifier identifies keys mapped to problematic containers or replica states in SCM. It checks for the following states for every container in the replica:- Containers:
DELETEDorDELETING - Replicas:
DELETED,UNHEALTHY, orINVALID
The command generates a JSON file containing details on keys, blocks, and replicas, along with a pass or fail status for each check. It supports the following options:--all-results: Displays all verification outcomes-o: Specifies the output file path--container-cache-size: Sets the number of containers stored in the in-memory cache for the--container-statecheck.The default value is 1 million containers (approximately 43MB of memory). The value must be greater than zero, otherwise, the system uses the 1 million default.
- Containers:
- Enhanced volume health checks triggered by container scanner
- When a container scanner (background or on-demand, data or metadata) marks a container as unhealthy due to corruption, the system now automatically triggers an on-demand scan of the associated volume. This enhancement helps detect and address broader volume-level issues that might exist beyond the affected container, improving overall data integrity and reliability.
- New container health metrics
- In
Cloudera Base on premises 7.3.2.0
and
higher
releases,
Ozone Recon now exposes additional metrics for the Container Health Task to
improve observability of container state across the cluster. Recon tracks
the
number
of
containers in the following states:
- Missing
- Under-replicated
- Over-replicated
- Mis-replicated
- Increased default Ratis segment size for Ozone Manager (OM) and Storage Container Manager (SCM)
- To improve startup performance, the default values of
the
ozone.om.ratis.segment.size and
ozone.scm.ha.ratis.segment.size configurations are
increased from 4 MB to 64 MB.
- The
ozone.om.ratis.segment.sizeconfiguration sets the size of the raft segment used by Apache Ratis on OM. - The
ozone.scm.ha.ratis.segment.sizeconfiguration sets the size of the raft segment used by Apache Ratis on SCM.
- The
- Renaming all legacy HDFS configuration keys and the corresponding Java constants to HDDS
- All legacy configuration keys previously prefixed with
dfs.(used by HDFS) are updated to use thehdds.prefix, aligning them with the HDDS component. Backward compatibility is maintained. The system will continue to recognize the olddfs.keys, but they are now deprecated. Deprecation notices and mappings are handled internally by addingDeprecationDeltainOzoneConfiguration. - All deletion configurations are dynamically configurable without restart
- In
Cloudera Base on premises 7.3.2.0
and
higher
releases,
the following deletion configurations are dynamically reconfigurable without
requiring a restart:
- For Ozone Manager: ozone.thread.number.dir.deletion
- For
Datanode:
- ozone.block.deleting.service.interval
- ozone.block.deleting.service.timeout
- Support for callback on completed reconfiguration
- The reconfiguration framework now supports a
reconfiguration completedevent. Components can now register callbacks that trigger after all properties in a task are processed. This allows the system to validate and apply interdependent settings automatically. You can access the status and values of the reconfigured properties using theReconfigurableBase#getReconfigurationTaskStatusmethod within the callback. - Moved and enhanced Ratis Log Parsing command in Ozone
- The ozone debug ratislogparser command is moved under the new ozone debug ratis parse subcommand. The parse subcommand now supports parsing different Ratis files, providing a more general and extensible interface.
- Enhanced output for ozone debug replicas chunk-info command
- The ozone debug replicas chunk-info command now provides
detailed information about the chunks associated with a given key.
Previously, chunk-related details were only available when the
--verboseflag was used. With this update, the command includes theBlockDatainformation retrieved from thegetBlockcall, along with additional details about each replica. The JSON output structure is also improved for clarity. - Unified JSON output for ozone debug replicas verify command
- The ozone debug replicas verify command now outputs JSON information for each key and the checks performed on it. As new verification checks are added, their results are included in the same JSON objects. By default, the output is skipped for keys that pass all specified checks, reducing unnecessary output.
- Increased Ozone Manager (OM) default snapshot limit
- The default value for the ozone.om.fs.snapshot.max.limit Ozone Manager property is increased, allowing support for up to 10,000 snapshots by default (previously 1,000). This change enables you to create and manage a significantly larger number of snapshots without requiring manual configuration changes.
- Ozone Recon UI: Added new Cluster Health panel to the Grafana Dashboard
- A new Cluster Health panel is added to the existing Ozone - Overall Metrics Grafana dashboard. This panel displays the cluster growth rate, calculated dynamically using Prometheus metrics. By default, the panel displays the growth rate over the last 1 hour, but you can configure the time window as required.
- Renamed Ozone configuration property ozone.compaction.service.enabled
- The ozone.compaction.service.enabled configuration property is renamed to ozone.om.compaction.service.enabled. This change aligns with the Ozone configuration key conventions, as the property is used only by the Ozone Manager (OM).
- Added bucket layout flag to freon rk command
- Previously, the freon randomkeys (rk) command did not allow you to specify the bucket layout, always creating buckets with the default layout. With this improvement, a new option is introduced to set the bucket layout using the command, providing greater flexibility.
- Enhanced DataNode listing with usage-based sorting
- The ozone admin datanode list command now supports
the
new
--most-usedand--least-usedCLI options. These options enable you to sort Datanodes based on their usage. When used, the command output includes additional details such as used space, total capacity, and percentage of space used for each Datanode. This enhancement helps you identify the most and least used Datanodes in your Ozone cluster. - Updated the Ozone SCM container placement policy description
- The descriptions for the following Ozone configuration properties
are
corrected in the ozone-default.xml
file
to clarify that the default placement policy is
SCMContainerPlacementRackAware,
instead of
SCMContainerPlacementRandom:
- ozone.scm.container.placement.impl
- ozone.scm.container.placement.ec.impl
Additionally, if the ozone.scm.container.placement.impl property is left unset, the code fallback logic now uses the SCMContainerPlacementRackAware policy to match the default value in the ozone-default.xml file.
- Enhanced container creation command with replication options
- The ozone admin container create command
now
supports
additional replication configurations. Previously, containers
were
limited to a replication factor of
ONEand a replication type ofSTANDALONE. Administrators can now specify replication types (RATISandEC), replication factors, and algorithms when creating containers using the following parameters:ozone admin container create --replication=<replication> --replication-type=<type>
