This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/ozone-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new b5776715 [auto] Generated docs from Apache Ozone master 
752da2be72baeb832e60923136c826b6033cd960
b5776715 is described below

commit b57767155e338c61462a65c2f91f407eff1d94b3
Author: Github Actions <[email protected]>
AuthorDate: Wed Jun 11 12:46:42 2025 +0000

    [auto] Generated docs from Apache Ozone master 
752da2be72baeb832e60923136c826b6033cd960
---
 docs/edge/design/index.xml                 |   2 +-
 docs/edge/design/omprepare.html            |   6 +-
 docs/edge/design/upgrade-dev-primer.html   |   6 +-
 docs/edge/en/sitemap.xml                   |  12 +--
 docs/edge/index.xml                        |   2 +-
 docs/edge/interface/ofs.html               |   2 +-
 docs/edge/interface/reconapi.html          |  12 +--
 docs/edge/security/securingtde.html        | 161 +++++++++++++++++------------
 docs/edge/sitemap.xml                      |   4 +-
 docs/edge/start/index.xml                  |   2 +-
 docs/edge/start/ozone-recon.png            | Bin 0 -> 408165 bytes
 docs/edge/start/ozone-scm.png              | Bin 0 -> 322764 bytes
 docs/edge/start/startfromdockerhub.html    |  95 ++++++++++++-----
 docs/edge/swagger-resources/recon-api.yaml |  10 +-
 docs/edge/zh/interface/reconapi.html       |   6 +-
 docs/edge/zh/sitemap.xml                   |   2 +-
 16 files changed, 197 insertions(+), 125 deletions(-)

diff --git a/docs/edge/design/index.xml b/docs/edge/design/index.xml
index ab2a363a..d0424935 100644
--- a/docs/edge/design/index.xml
+++ b/docs/edge/design/index.xml
@@ -6,7 +6,7 @@
     <description>Recent content in Designs on Ozone</description>
     <generator>Hugo</generator>
     <language>en</language>
-    <lastBuildDate>Wed, 28 May 2025 10:07:28 +0530</lastBuildDate>
+    <lastBuildDate>Tue, 10 Jun 2025 11:04:13 -0700</lastBuildDate>
     <atom:link href="/design/index.xml" rel="self" type="application/rss+xml" 
/>
     <item>
       <title>Minimum free space configuration for datanode volumes</title>
diff --git a/docs/edge/design/omprepare.html b/docs/edge/design/omprepare.html
index 8a91018f..82383d11 100644
--- a/docs/edge/design/omprepare.html
+++ b/docs/edge/design/omprepare.html
@@ -516,13 +516,13 @@ Ratis snapshot (entire OM RocksDB) to get up to speed 
with the rest of the OMs a
 </ul>
 <h1 id="usage">Usage</h1>
 <h2 id="how-do-you-prepare-an-ozone-manager-quorum">How do you prepare an 
Ozone manager quorum</h2>
-<pre><code>ozone admin om -id=&lt;om-sevice-id&gt; prepare
+<pre><code>ozone admin om prepare -id=&lt;om-service-id&gt;
 </code></pre>
 <p>This leaves the Ozone manager in a state where it cannot accept new 
writes.</p>
 <h2 id="how-do-you-cancel-a-prepared-ozone-manager-quorum">How do you cancel a 
&ldquo;prepared&rdquo; Ozone manager quorum</h2>
 <p>In the case of a cancelled upgrade, the OM can be brought out off the
 prepared state by using the following command.</p>
-<pre><code>ozone admin om -id=&lt;om-sevice-id&gt; cancelprepare
+<pre><code>ozone admin om cancelprepare -id=&lt;om-service-id&gt;
 </code></pre>
 <h1 id="link">Link</h1>
 <p><a 
href="https://issues.apache.org/jira/secure/attachment/13015491/OM%20Prepare%20Upgrade.pdf";>https://issues.apache.org/jira/secure/attachment/13015491/OM%20Prepare%20Upgrade.pdf</a></p>
@@ -539,7 +539,7 @@ prepared state by using the following command.</p>
 <footer class="footer">
   <div class="container">
     <span class="small text-muted">
-      Version: 2.1.0-SNAPSHOT, Last Modified: April 13, 2021 <a 
class="hide-child link primary-color" 
href="https://github.com/apache/ozone/commit/6e027a1befda1004f81ff1d169ec25f98bd452e0";>6e027a1bef</a>
+      Version: 2.1.0-SNAPSHOT, Last Modified: June 10, 2025 <a 
class="hide-child link primary-color" 
href="https://github.com/apache/ozone/commit/5787135483c8539012c1e96a85cbc57e617c39aa";>5787135483</a>
     </span>
   </div>
 </footer>
diff --git a/docs/edge/design/upgrade-dev-primer.html 
b/docs/edge/design/upgrade-dev-primer.html
index 76d74ba2..5397bf17 100644
--- a/docs/edge/design/upgrade-dev-primer.html
+++ b/docs/edge/design/upgrade-dev-primer.html
@@ -559,10 +559,10 @@ This action will be run again if it fails partway 
through, and may be run again
 <h2 id="prepare-the-ozone-manager">‘Prepare’ the Ozone Manager</h2>
 <p>Used to flush all transactions to disk, take a DB snapshot, and purge the 
logs, leaving Ratis in a clean state without unapplied log entries. This 
prepares the OM for upgrades/downgrades so that no request in the log is 
applied to the database in the old version of the code in one OM, and the new 
version of the code in another OM.</p>
 <p>To prepare an OM quorum, run</p>
-<pre><code>ozone admin om -id=&lt;om-sevice-id&gt; prepare
+<pre><code>ozone admin om prepare -id=&lt;om-sevice-id&gt;
 </code></pre>
 <p>To cancel preparation of an OM quorum, run</p>
-<pre><code>ozone admin om -id=&lt;om-sevice-id&gt; cancelprepare
+<pre><code>ozone admin om cancelprepare -id=&lt;om-service-id&gt;
 </code></pre>
 <h2 id="when-do-you-bring-in-a-change-as-a-layout-feature">When do you bring 
in a change as a Layout feature?</h2>
 <p>By using the new feature, if it creates a change in disk layout (RocksDB, 
HDDS Volume etc) that is incompatible with the older version, then that 
qualifies as a layout feature.</p>
@@ -601,7 +601,7 @@ functionality.</li>
 <footer class="footer">
   <div class="container">
     <span class="small text-muted">
-      Version: 2.1.0-SNAPSHOT, Last Modified: April 28, 2021 <a 
class="hide-child link primary-color" 
href="https://github.com/apache/ozone/commit/5927bd26a61edf964c1ea429f61d27eec4713165";>5927bd26a6</a>
+      Version: 2.1.0-SNAPSHOT, Last Modified: June 10, 2025 <a 
class="hide-child link primary-color" 
href="https://github.com/apache/ozone/commit/5787135483c8539012c1e96a85cbc57e617c39aa";>5787135483</a>
     </span>
   </div>
 </footer>
diff --git a/docs/edge/en/sitemap.xml b/docs/edge/en/sitemap.xml
index 5c88b598..cc5cf0a9 100644
--- a/docs/edge/en/sitemap.xml
+++ b/docs/edge/en/sitemap.xml
@@ -126,7 +126,7 @@
     <lastmod>2024-02-27T17:33:44+05:30</lastmod>
   </url><url>
     <loc>/security/securingtde.html</loc>
-    <lastmod>2024-10-21T00:15:13+08:00</lastmod>
+    <lastmod>2025-06-10T18:50:54-07:00</lastmod>
     <xhtml:link
                 rel="alternate"
                 hreflang="zh"
@@ -330,7 +330,7 @@
     <lastmod>2025-01-11T09:27:26-08:00</lastmod>
   </url><url>
     <loc>/interface/reconapi.html</loc>
-    <lastmod>2024-08-11T21:33:21+05:30</lastmod>
+    <lastmod>2025-06-11T14:00:35+05:30</lastmod>
     <xhtml:link
                 rel="alternate"
                 hreflang="zh"
@@ -514,7 +514,7 @@
     <lastmod>2022-03-07T12:09:51-08:00</lastmod>
   </url><url>
     <loc>/start/startfromdockerhub.html</loc>
-    <lastmod>2022-04-01T22:17:32+02:00</lastmod>
+    <lastmod>2025-06-11T04:54:00-07:00</lastmod>
     <xhtml:link
                 rel="alternate"
                 hreflang="zh"
@@ -626,7 +626,7 @@
     <lastmod>2025-06-02T13:47:02+05:30</lastmod>
   </url><url>
     <loc>/design.html</loc>
-    <lastmod>2025-05-28T10:07:28+05:30</lastmod>
+    <lastmod>2025-06-10T11:04:13-07:00</lastmod>
   </url><url>
     <loc>/design/dn-min-space-configuration.html</loc>
     <lastmod>2025-05-28T10:07:28+05:30</lastmod>
@@ -669,10 +669,10 @@
     <lastmod>2021-04-06T09:41:12-07:00</lastmod>
   </url><url>
     <loc>/design/omprepare.html</loc>
-    <lastmod>2021-04-13T09:19:51-07:00</lastmod>
+    <lastmod>2025-06-10T11:04:13-07:00</lastmod>
   </url><url>
     <loc>/design/upgrade-dev-primer.html</loc>
-    <lastmod>2021-04-28T11:57:26-04:00</lastmod>
+    <lastmod>2025-06-10T11:04:13-07:00</lastmod>
   </url><url>
     <loc>/design/s3-performance.html</loc>
     <lastmod>2021-03-09T18:59:26+10:00</lastmod>
diff --git a/docs/edge/index.xml b/docs/edge/index.xml
index 09b05656..4fd4fece 100644
--- a/docs/edge/index.xml
+++ b/docs/edge/index.xml
@@ -299,7 +299,7 @@
       <link>/start/startfromdockerhub.html</link>
       <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
       <guid>/start/startfromdockerhub.html</guid>
-      <description>&lt;!---&#xA;  Licensed to the Apache Software Foundation 
(ASF) under one or more&#xA;  contributor license agreements.  See the NOTICE 
file distributed with&#xA;  this work for additional information regarding 
copyright ownership.&#xA;  The ASF licenses this file to You under the Apache 
License, Version 2.0&#xA;  (the &#34;License&#34;); you may not use this file 
except in compliance with&#xA;  the License.  You may obtain a copy of the 
License at&#xA;&#xA;      http: [...]
+      <description>&lt;!---&#xA;  Licensed to the Apache Software Foundation 
(ASF) under one or more&#xA;  contributor license agreements.  See the NOTICE 
file distributed with&#xA;  this work for additional information regarding 
copyright ownership.&#xA;  The ASF licenses this file to You under the Apache 
License, Version 2.0&#xA;  (the &#34;License&#34;); you may not use this file 
except in compliance with&#xA;  the License.  You may obtain a copy of the 
License at&#xA;&#xA;      http: [...]
     </item>
     <item>
       <title>Access Ozone using PyArrow (Docker Quickstart)</title>
diff --git a/docs/edge/interface/ofs.html b/docs/edge/interface/ofs.html
index 7fa10bd4..dfaf14e4 100644
--- a/docs/edge/interface/ofs.html
+++ b/docs/edge/interface/ofs.html
@@ -568,7 +568,7 @@ For example:</p>
 <p>Or use the put command to write a file to the bucket.</p>
 <div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-bash" data-lang="bash"><span style="display:flex;"><span>hdfs 
dfs -put /etc/hosts /volume1/bucket1/test</span></span></code></pre></div>
 <p>For more usage, see: <a 
href="https://issues.apache.org/jira/secure/attachment/12987636/Design%20ofs%20v1.pdf";>https://issues.apache.org/jira/secure/attachment/12987636/Design%20ofs%20v1.pdf</a></p>
-<h2 id="differences-from-o3fshahahugoshortcode100s5hbhb">Differences from <a 
href="../interface/o3fs.html">o3fs</a></h2>
+<h2 id="differences-from-o3fshahahugoshortcode98s5hbhb">Differences from <a 
href="../interface/o3fs.html">o3fs</a></h2>
 <h3 id="creating-files">Creating files</h3>
 <p>OFS doesn&rsquo;t allow creating keys(files) directly under root or volumes.
 Users will receive an error message when they try to do that:</p>
diff --git a/docs/edge/interface/reconapi.html 
b/docs/edge/interface/reconapi.html
index d5c46cd8..6daac723 100644
--- a/docs/edge/interface/reconapi.html
+++ b/docs/edge/interface/reconapi.html
@@ -1034,7 +1034,7 @@ of objects under the path.</p>
 </span></span><span style="display:flex;"><span>      <span 
style="color:#f92672">&#34;numKey&#34;</span>: <span 
style="color:#ae81ff">50</span>
 </span></span><span style="display:flex;"><span>    }
 </span></span></code></pre></div><p>If any <code>num</code> field is 
<code>-1</code>, the path request is not applicable to such an entity type.</p>
-<h3 id="get-apiv1namespacedu">GET /api/v1/namespace/du</h3>
+<h3 id="get-apiv1namespaceusage">GET /api/v1/namespace/usage</h3>
 <p><strong>Parameters</strong></p>
 <ul>
 <li>
@@ -1043,21 +1043,21 @@ of objects under the path.</p>
 </li>
 <li>
 <p>files (optional)</p>
-<p>A boolean with a default value of <code>false</code>. If set to 
<code>true</code>, computes disk usage for keys
+<p>A boolean with a default value of <code>false</code>. If set to 
<code>true</code>, computes namespace usage for keys
 under the path.</p>
 </li>
 <li>
 <p>replica (optional)</p>
-<p>A boolean with a default value of <code>false</code>. If set to 
<code>true</code>, computes disk usage with replicated
+<p>A boolean with a default value of <code>false</code>. If set to 
<code>true</code>, computes namespace usage with replicated
 size of keys.</p>
 </li>
 </ul>
 <p><strong>Returns</strong></p>
-<p>Returns disk usage of all sub-paths under the path. Normalizes 
<code>path</code> fields, returns
+<p>Returns the namespace usage of all sub-paths under the path. Normalizes 
<code>path</code> fields, returns
 total size of keys directly under the path as <code>sizeDirectKey</code>, and 
returns
 <code>size</code>/<code>sizeWithReplica</code> in number of bytes.</p>
 <p><code>status</code> is <code>OK</code> if path exists, 
<code>PATH_NOT_FOUND</code> otherwise.</p>
-<p>Example: 
/api/v1/namespace/du?path=/vol1/bucket1&amp;files=true&amp;replica=true</p>
+<p>Example: 
/api/v1/namespace/usage?path=/vol1/bucket1&amp;files=true&amp;replica=true</p>
 <div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-json" data-lang="json"><span style="display:flex;"><span>    {
 </span></span><span style="display:flex;"><span>      <span 
style="color:#f92672">&#34;status&#34;</span>: <span 
style="color:#960050;background-color:#1e0010">OK</span>,
 </span></span><span style="display:flex;"><span>      <span 
style="color:#f92672">&#34;path&#34;</span>: <span 
style="color:#e6db74">&#34;/vol1/bucket1&#34;</span>,
@@ -1466,7 +1466,7 @@ Example: 
/api/v1/metrics/query?query=ratis_leader_election_electionCount</p>
 <footer class="footer">
   <div class="container">
     <span class="small text-muted">
-      Version: 2.1.0-SNAPSHOT, Last Modified: August 11, 2024 <a 
class="hide-child link primary-color" 
href="https://github.com/apache/ozone/commit/b5bec1cd74b590e910832fa31e510cd3c8a8b25e";>b5bec1cd74</a>
+      Version: 2.1.0-SNAPSHOT, Last Modified: June 11, 2025 <a 
class="hide-child link primary-color" 
href="https://github.com/apache/ozone/commit/bbaf71e71e4d04397fb2d7013c30664028cd1241";>bbaf71e71e</a>
     </span>
   </div>
 </footer>
diff --git a/docs/edge/security/securingtde.html 
b/docs/edge/security/securingtde.html
index fae78b27..3581cff9 100644
--- a/docs/edge/security/securingtde.html
+++ b/docs/edge/security/securingtde.html
@@ -520,55 +520,59 @@ s=d.getElementsByTagName('script')[0];
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<p>Ozone TDE setup process and usage are very similar to HDFS TDE.
-The major difference is that Ozone TDE is enabled at Ozone bucket level
-when a bucket is created.</p>
-<h3 id="setting-up-the-key-management-server">Setting up the Key Management 
Server</h3>
-<p>To use TDE, admin must setup a Key Management Server and provide that URI to
-Ozone/HDFS. Since Ozone and HDFS can use the same Key Management Server, this
-configuration can be provided via <em>core-site.xml</em>.</p>
-<table>
-  <thead>
-      <tr>
-          <th>Property</th>
-          <th>Value</th>
-      </tr>
-  </thead>
-  <tbody>
-      <tr>
-          <td>hadoop.security.key.provider.path</td>
-          <td>KMS uri. <br> e.g. kms://http@kms-host:9600/kms</td>
-      </tr>
-  </tbody>
-</table>
-<h3 id="using-transparent-data-encryption">Using Transparent Data 
Encryption</h3>
-<p>If this is already configured for your cluster, then you can simply proceed
-to create the encryption key and enable encrypted buckets.</p>
-<p>To create an encrypted bucket, client need to:</p>
+<p>Ozone Transparent Data Encryption (TDE) enables you to encrypt data at 
rest. TDE is enabled at the bucket level when a bucket is created. To use TDE, 
an administrator must first configure a Key Management Server (KMS). Ozone can 
work with <strong>Hadoop KMS</strong> and <strong>Ranger KMS</strong>. The KMS 
URI needs to be provided to Ozone via the <code>core-site.xml</code> 
configuration file.</p>
+<p>Once the KMS is configured, users can create an encryption key and then 
create an encrypted bucket using that key. All data written to an encrypted 
bucket will be transparently encrypted on the server-side, and data read from 
the bucket will be transparently decrypted.</p>
+<h3 id="configuring-tde">Configuring TDE</h3>
+<ol>
+<li><strong>Set up a Key Management Server (KMS):</strong></li>
+</ol>
 <ul>
-<li>Create a bucket encryption key with hadoop key CLI, which is similar to
-how you would use HDFS encryption zones.</li>
+<li><strong>Hadoop KMS:</strong> Follow the instructions in the <a 
href="https://hadoop.apache.org/docs/r3.4.1/hadoop-kms/index.html";>Hadoop KMS 
documentation</a>.</li>
+<li><strong>Ranger KMS:</strong> Ranger KMS can also be used. For Ranger KMS, 
encryption keys can be managed via the Ranger KMS management console or its <a 
href="https://ranger.apache.org/kms/apidocs/index.html";>REST API</a>, in 
addition to the <code>hadoop key</code> command line interface.</li>
 </ul>
-<div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-bash" data-lang="bash"><span 
style="display:flex;"><span>hadoop key create enckey
-</span></span></code></pre></div><p>The above command creates an encryption 
key for the bucket you want to protect.
-Once the key is created, you can tell Ozone to use that key when you are
-reading and writing data into a bucket.</p>
-<ul>
-<li>Assign the encryption key to a bucket.</li>
+<ol start="2">
+<li>
+<p><strong>Configure Ozone:</strong>
+Add the following property to Ozone’s <code>core-site.xml</code>:</p>
+<pre><code>&lt;property&gt;
+  &lt;name&gt;hadoop.security.key.provider.path&lt;/name&gt;
+  &lt;value&gt;kms://http@kms-host:9600/kms&lt;/value&gt;
+&lt;/property&gt;
+</code></pre>
+<p>Replace <code>kms://http@kms-host:9600/kms</code> with the actual URI of 
your KMS. For example, <code>kms://[email protected]:9600/kms</code></p>
+</li>
+</ol>
+<h3 id="creating-an-encryption-key">Creating an Encryption Key</h3>
+<p>Use the <code>hadoop key create</code> command to create an encryption key 
in the configured KMS:</p>
+<div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-shell" data-lang="shell"><span style="display:flex;"><span>  
hadoop key create &lt;key_name&gt; <span style="color:#f92672">[</span>-size 
&lt;key_bit_length&gt;<span style="color:#f92672">]</span> <span 
style="color:#f92672">[</span>-cipher &lt;cipher_suite&gt;<span 
style="color:#f92672">]</span> <span style="color:#f92672">[</span>-descr [...]
+</span></span></code></pre></div><ul>
+<li><code>&lt;key_name&gt;</code>: The name of the encryption key.</li>
+<li><strong><code>-size &lt;key_bit_length&gt;</code> (Optional):</strong> 
Specifies the key bit length. The default is 128 bits (defined by 
<code>hadoop.security.key.default.bitlength</code>).
+Ranger KMS supports both 128 and 256 bits. Hadoop KMS is also commonly used 
with 128 and 256 bit keys; for specific version capabilities, consult the 
Hadoop KMS documentation. Valid AES key lengths are 128, 192, and 256 bits.</li>
+<li><strong><code>-cipher &lt;cipher_suite&gt;</code> (Optional):</strong> 
Specifies the cipher suite. Currently, only 
<strong><code>AES/CTR/NoPadding</code></strong> (the default) is supported.</li>
+<li><code>-description &lt;description&gt;</code> (Optional): A description 
for the key.</li>
 </ul>
-<div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-bash" data-lang="bash"><span style="display:flex;"><span>ozone 
sh bucket create -k enckey /vol/encryptedbucket
-</span></span></code></pre></div><p>After this command, all data written to 
the <em>encryptedbucket</em> will be encrypted
-via the enckey and while reading the clients will talk to Key Management
-Server and read the key and decrypt it. In other words, the data stored
-inside Ozone is always encrypted. The fact that data is encrypted at rest
-will be completely transparent to the clients and end users.</p>
+<p>For example:</p>
+<div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-shell" data-lang="shell"><span style="display:flex;"><span>  
hadoop key create enckey -size <span style="color:#ae81ff">256</span> -cipher 
AES/CTR/NoPadding -description <span style="color:#e6db74">&#34;Encryption key 
for my_bucket&#34;</span>
+</span></span></code></pre></div><h3 
id="creating-an-encrypted-bucket">Creating an Encrypted Bucket</h3>
+<p>Use the Ozone shell <code>ozone sh bucket create</code> command with the 
<code>-k</code> (or <code>--key</code>) option to specify the encryption 
key:</p>
+<div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-shell" data-lang="shell"><span style="display:flex;"><span>  
ozone sh bucket create --key &lt;key_name&gt; 
/&lt;volume_name&gt;/&lt;bucket_name&gt;
+</span></span></code></pre></div><p>For example:</p>
+<div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-shell" data-lang="shell"><span style="display:flex;"><span>  
ozone sh bucket create --key enckey /vol1/encrypted_bucket
+</span></span></code></pre></div><p>Now, all data written to 
<code>/vol1/encrypted_bucket</code> will be encrypted at rest. As long as the 
client is configured correctly to use the key, such encryption is completely 
transparent to the end users.</p>
 <h3 id="using-transparent-data-encryption-from-s3g">Using Transparent Data 
Encryption from S3G</h3>
-<p>There are two ways to create an encrypted bucket that can be accessed via 
S3 Gateway.</p>
-<h4 id="option-1-create-a-bucket-using-shell-under-s3v-volume">Option 1. 
Create a bucket using shell under &ldquo;/s3v&rdquo; volume</h4>
-<div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-bash" data-lang="bash"><span style="display:flex;"><span>ozone 
sh bucket create -k enckey --layout<span 
style="color:#f92672">=</span>OBJECT_STORE /s3v/encryptedbucket
-</span></span></code></pre></div><h4 
id="option-2-create-a-link-to-an-encrypted-bucket-under-s3v-volume">Option 2. 
Create a link to an encrypted bucket under &ldquo;/s3v&rdquo; volume</h4>
-<div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-bash" data-lang="bash"><span style="display:flex;"><span>ozone 
sh bucket create -k enckey --layout<span 
style="color:#f92672">=</span>OBJECT_STORE /vol/encryptedbucket
-</span></span><span style="display:flex;"><span>ozone sh bucket link 
/vol/encryptedbucket /s3v/linkencryptedbucket
+<p>Ozone’s S3 Gateway (S3G) allows you to access encrypted buckets. However, 
it&rsquo;s important to note that <strong>Ozone does not support S3-SSE 
(Server-Side Encryption) or S3-CSE (Client-Side Encryption) in the way AWS S3 
does.</strong> That said, Ozone S3 buckets can be encrypted using Ranger KMS or 
Hadoop KMS to provide a guarantee similar to S3-SSE with client-supplied keys 
(SSE-C).</p>
+<p>When creating an encrypted bucket that will be accessed via S3G:</p>
+<ol>
+<li><strong>Create the bucket under the <code>/s3v</code> volume:</strong>
+The <code>/s3v</code> volume is the default volume for S3 buckets.</li>
+</ol>
+<div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-shell" data-lang="shell"><span style="display:flex;"><span>  
ozone sh bucket create --key &lt;key_name&gt; /s3v/&lt;bucket_name&gt; 
--layout<span style="color:#f92672">=</span>OBJECT_STORE
+</span></span></code></pre></div><ol start="2">
+<li><strong>Alternatively, create an encrypted bucket elsewhere and link 
it:</strong></li>
+</ol>
+<div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-shell" data-lang="shell"><span style="display:flex;"><span>  
ozone sh bucket create --key &lt;key_name&gt; 
/&lt;volume_name&gt;/&lt;bucket_name&gt; --layout<span 
style="color:#f92672">=</span>OBJECT_STORE
+</span></span><span style="display:flex;"><span>  ozone sh bucket link 
/&lt;volume_name&gt;/&lt;bucket_name&gt; /s3v/&lt;link_name&gt;
 </span></span></code></pre></div><p>Note 1: An encrypted bucket cannot be 
created via S3 APIs. It must be done using Ozone shell commands as shown above.
 After creating an encrypted bucket, all the keys added to this bucket using 
s3g will be encrypted.</p>
 <p>Note 2: <code>--layout=OBJECT_STORE</code> is specified in the above 
examples
@@ -576,44 +580,69 @@ for full compatibility with S3 (which is the default 
value for the <code>--layou
 argument, but explicitly added here to make a point).</p>
 <p>Bucket created with the <code>OBJECT_STORE</code> type will NOT be 
accessible via
 HCFS (ofs or o3fs) at all. And such access will be rejected. For instance:</p>
-<div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-bash" data-lang="bash"><span style="display:flex;"><span>$ 
ozone fs -ls ofs://ozone1/s3v/encryptedbucket/
-</span></span><span style="display:flex;"><span>-ls: Bucket: encryptedbucket 
has layout: OBJECT_STORE, which does not support file system semantics. Bucket 
Layout must be FILE_SYSTEM_OPTIMIZED or LEGACY.
-</span></span></code></pre></div><div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-bash" data-lang="bash"><span style="display:flex;"><span>$ 
ozone fs -ls o3fs://encryptedbucket.s3v.ozone1/
-</span></span><span style="display:flex;"><span>22/02/07 00:00:00 WARN 
fs.FileSystem: Failed to initialize fileystem 
o3fs://encryptedbucket.s3v.ozone1/: java.lang.IllegalArgumentException: Bucket: 
encryptedbucket has layout: OBJECT_STORE, which does not support file system 
semantics. Bucket Layout must be FILE_SYSTEM_OPTIMIZED or LEGACY.
-</span></span><span style="display:flex;"><span>-ls: Bucket: encryptedbucket 
has layout: OBJECT_STORE, which does not support file system semantics. Bucket 
Layout must be FILE_SYSTEM_OPTIMIZED or LEGACY.
+<div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-bash" data-lang="bash"><span style="display:flex;"><span>  $ 
ozone fs -ls ofs://ozone1/s3v/encryptedbucket/
+</span></span><span style="display:flex;"><span>  -ls: Bucket: encryptedbucket 
has layout: OBJECT_STORE, which does not support file system semantics. Bucket 
Layout must be FILE_SYSTEM_OPTIMIZED or LEGACY.
+</span></span></code></pre></div><div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-bash" data-lang="bash"><span style="display:flex;"><span>  $ 
ozone fs -ls o3fs://encryptedbucket.s3v.ozone1/
+</span></span><span style="display:flex;"><span>  22/02/07 00:00:00 WARN 
fs.FileSystem: Failed to initialize fileystem 
o3fs://encryptedbucket.s3v.ozone1/: java.lang.IllegalArgumentException: Bucket: 
encryptedbucket has layout: OBJECT_STORE, which does not support file system 
semantics. Bucket Layout must be FILE_SYSTEM_OPTIMIZED or LEGACY.
+</span></span><span style="display:flex;"><span>  -ls: Bucket: encryptedbucket 
has layout: OBJECT_STORE, which does not support file system semantics. Bucket 
Layout must be FILE_SYSTEM_OPTIMIZED or LEGACY.
 </span></span></code></pre></div><p>If one wants the bucket to be accessible 
from both S3G and HCFS (ofs and o3fs)
 at the same time, use <code>--layout=FILE_SYSTEM_OPTIMIZED</code> instead.</p>
 <p>However, in buckets with <code>FILE_SYSTEM_OPTIMIZED</code> layout, some 
irregular S3 key
 names may be rejected or normalized, which can be undesired.
 See <a href="../feature/prefixfso.html">Prefix based File System 
Optimization</a> for more information.</p>
-<p>In non-secure mode, the user running the S3Gateway daemon process is the 
proxy user,
-while in secure mode the S3Gateway Kerberos principal 
(ozone.s3g.kerberos.principal) is the proxy user.
-S3Gateway proxy&rsquo;s all the users accessing the encrypted buckets to 
decrypt the key.
-For this purpose on security enabled cluster, during S3Gateway server startup
-logins using configured
-<strong>ozone.s3g.kerberos.keytab.file</strong>  and 
<strong>ozone.s3g.kerberos.principal</strong>.</p>
-<p>The below two configurations must be added to the kms-site.xml to allow the 
S3Gateway principal to act as a proxy for other users. In this example, 
&ldquo;ozone.s3g.kerberos.principal&rdquo; is assumed to be 
&ldquo;s3g&rdquo;</p>
+<p>When accessing an S3G-enabled encrypted bucket:</p>
+<p>The below three configurations must be added to the kms-site.xml to allow 
the S3Gateway principal to act as a proxy for other users. In this example,
+<code>ozone.s3g.kerberos.principal</code> is assumed to be <code>s3g</code></p>
 <div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-xml" data-lang="xml"><span style="display:flex;"><span><span 
style="color:#f92672">&lt;property&gt;</span>
 </span></span><span style="display:flex;"><span>  <span 
style="color:#f92672">&lt;name&gt;</span>hadoop.kms.proxyuser.s3g.users<span 
style="color:#f92672">&lt;/name&gt;</span>
 </span></span><span style="display:flex;"><span>  <span 
style="color:#f92672">&lt;value&gt;</span>user1,user2,user3<span 
style="color:#f92672">&lt;/value&gt;</span>
 </span></span><span style="display:flex;"><span>  <span 
style="color:#f92672">&lt;description&gt;</span>
-</span></span><span style="display:flex;"><span>        Here the value can be 
all the S3G accesskey ids accessing Ozone S3 
-</span></span><span style="display:flex;"><span>        or set to &#39;*&#39; 
to allow all the accesskey ids.
+</span></span><span style="display:flex;"><span>    Specifies the list of 
users that the S3 Gateway (`s3g`) is allowed to impersonate when interacting 
with the KMS. Use `*` to allow all users.
+</span></span><span style="display:flex;"><span>  <span 
style="color:#f92672">&lt;/description&gt;</span>
+</span></span><span style="display:flex;"><span><span 
style="color:#f92672">&lt;/property&gt;</span>
+</span></span><span style="display:flex;"><span><span 
style="color:#f92672">&lt;property&gt;</span>
+</span></span><span style="display:flex;"><span>  <span 
style="color:#f92672">&lt;name&gt;</span>hadoop.kms.proxyuser.s3g.groups<span 
style="color:#f92672">&lt;/name&gt;</span>
+</span></span><span style="display:flex;"><span>  <span 
style="color:#f92672">&lt;value&gt;</span>group1,group2,group3<span 
style="color:#f92672">&lt;/value&gt;</span>
+</span></span><span style="display:flex;"><span>  <span 
style="color:#f92672">&lt;description&gt;</span>
+</span></span><span style="display:flex;"><span>    Specifies the list of 
groups whose members `s3g` is allowed to impersonate when making requests to 
the KMS. Use `*` to allow all groups.
 </span></span><span style="display:flex;"><span>  <span 
style="color:#f92672">&lt;/description&gt;</span>
 </span></span><span style="display:flex;"><span><span 
style="color:#f92672">&lt;/property&gt;</span>
-</span></span><span style="display:flex;"><span>
 </span></span><span style="display:flex;"><span><span 
style="color:#f92672">&lt;property&gt;</span>
 </span></span><span style="display:flex;"><span>  <span 
style="color:#f92672">&lt;name&gt;</span>hadoop.kms.proxyuser.s3g.hosts<span 
style="color:#f92672">&lt;/name&gt;</span>
 </span></span><span style="display:flex;"><span>  <span 
style="color:#f92672">&lt;value&gt;</span>s3g-host1.com<span 
style="color:#f92672">&lt;/value&gt;</span>
 </span></span><span style="display:flex;"><span>  <span 
style="color:#f92672">&lt;description&gt;</span>
-</span></span><span style="display:flex;"><span>         This is the host 
where the S3Gateway is running. Set this to &#39;*&#39; to allow
-</span></span><span style="display:flex;"><span>         requests from any 
hosts to be proxied.
+</span></span><span style="display:flex;"><span>    Specifies the hostnames or 
IPs from which `s3g` is permitted to send proxy requests to the KMS. Use `*` to 
allow all hosts.
 </span></span><span style="display:flex;"><span>  <span 
style="color:#f92672">&lt;/description&gt;</span>
 </span></span><span style="display:flex;"><span><span 
style="color:#f92672">&lt;/property&gt;</span>
 </span></span></code></pre></div><h3 id="kms-authorization">KMS 
Authorization</h3>
-<p>If Ranger authorization is enabled for KMS, then decrypt key permission 
should be given to
-access key id user(currently access key is kerberos principal) to decrypt the 
encrypted key
-to read/write a key in the encrypted bucket.</p>
+<p>Key Management Servers (KMS) may enforce key access authorization. 
<strong>Hadoop KMS supports ACLs (Access Control Lists) for fine-grained 
permission control, while Ranger KMS supports Ranger policies for encryption 
keys.</strong> Ensure that the appropriate users have the necessary permissions 
based on the KMS type in use.</p>
+<p>For example, when using Ranger KMS for authorization, to allow the user 
<code>om</code> (the Ozone Manager user) to access the key <code>enckey</code> 
and the user <code>hdfs</code> (a typical HDFS service user) to manage keys, 
you might have policies in Ranger KMS like:</p>
+<ul>
+<li><strong>Policy for <code>om</code> user (or the user running the Ozone 
Manager):</strong>
+<ul>
+<li>Resource: <code>keyname=enckey</code></li>
+<li>Permissions: <code>DECRYPT_EEK</code> (Decrypt Encrypted Encryption 
Key)</li>
+</ul>
+</li>
+<li><strong>Policy for S3 Gateway proxy user (e.g., the user specified in 
<code>ozone.s3g.kerberos.principal</code>, typically <code>s3g</code>):</strong>
+<ul>
+<li>Resource: <code>keyname=enckey</code> (or specific keys for S3 
buckets)</li>
+<li>Permissions: <code>DECRYPT_EEK</code></li>
+</ul>
+</li>
+<li><strong>Policy for administrative users (e.g., <code>hdfs</code> or a 
keyadmin group):</strong>
+<ul>
+<li>Resource: <code>keyname=*</code> (or specific keys)</li>
+<li>Permissions: <code>CREATE_KEY</code>, <code>DELETE_KEY</code>, 
<code>GET_KEYS</code>, <code>ROLL_NEW_VERSION</code></li>
+</ul>
+</li>
+</ul>
+<p>Refer to the Ranger documentation for detailed instructions on configuring 
KMS policies if you are using Ranger KMS. For Hadoop KMS, consult its <a 
href="https://hadoop.apache.org/docs/r3.4.1/hadoop-kms/index.html#ACLs_.28Access_Control_Lists.29";>Hadoop
 KMS documentation</a> for managing ACLs.</p>
+<h3 id="additional-references">Additional References</h3>
+<ul>
+<li>For more background on Transparent Data Encryption concepts, you can refer 
to the <a 
href="https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/TransparentEncryption.html";>Transparent
 Encryption in HDFS documentation</a>.</li>
+<li>For detailed information on Hadoop KMS, see the <a 
href="https://hadoop.apache.org/docs/r3.4.1/hadoop-kms/index.html";>Hadoop KMS 
documentation</a>.</li>
+</ul>
 
 
           
@@ -633,7 +662,7 @@ to read/write a key in the encrypted bucket.</p>
 <footer class="footer">
   <div class="container">
     <span class="small text-muted">
-      Version: 2.1.0-SNAPSHOT, Last Modified: October 21, 2024 <a 
class="hide-child link primary-color" 
href="https://github.com/apache/ozone/commit/8568075ddb75b4a6785cdb31b00b4a592058dc78";>8568075ddb</a>
+      Version: 2.1.0-SNAPSHOT, Last Modified: June 10, 2025 <a 
class="hide-child link primary-color" 
href="https://github.com/apache/ozone/commit/516bc9659b2d4d2567c7570e43d0eb012b666f5a";>516bc9659b</a>
     </span>
   </div>
 </footer>
diff --git a/docs/edge/sitemap.xml b/docs/edge/sitemap.xml
index 119f018c..9f2b3ed2 100644
--- a/docs/edge/sitemap.xml
+++ b/docs/edge/sitemap.xml
@@ -4,14 +4,14 @@
   <sitemap>
     <loc>/en/sitemap.xml</loc>
     
-      <lastmod>2025-06-09T12:50:19-07:00</lastmod>
+      <lastmod>2025-06-11T04:54:00-07:00</lastmod>
     
   </sitemap>
   
   <sitemap>
     <loc>/zh/sitemap.xml</loc>
     
-      <lastmod>2025-06-04T14:30:39+02:00</lastmod>
+      <lastmod>2025-06-11T14:00:35+05:30</lastmod>
     
   </sitemap>
   
diff --git a/docs/edge/start/index.xml b/docs/edge/start/index.xml
index fa38503a..f4204b42 100644
--- a/docs/edge/start/index.xml
+++ b/docs/edge/start/index.xml
@@ -12,7 +12,7 @@
       <link>/start/startfromdockerhub.html</link>
       <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
       <guid>/start/startfromdockerhub.html</guid>
-      <description>&lt;!---&#xA;  Licensed to the Apache Software Foundation 
(ASF) under one or more&#xA;  contributor license agreements.  See the NOTICE 
file distributed with&#xA;  this work for additional information regarding 
copyright ownership.&#xA;  The ASF licenses this file to You under the Apache 
License, Version 2.0&#xA;  (the &#34;License&#34;); you may not use this file 
except in compliance with&#xA;  the License.  You may obtain a copy of the 
License at&#xA;&#xA;      http: [...]
+      <description>&lt;!---&#xA;  Licensed to the Apache Software Foundation 
(ASF) under one or more&#xA;  contributor license agreements.  See the NOTICE 
file distributed with&#xA;  this work for additional information regarding 
copyright ownership.&#xA;  The ASF licenses this file to You under the Apache 
License, Version 2.0&#xA;  (the &#34;License&#34;); you may not use this file 
except in compliance with&#xA;  the License.  You may obtain a copy of the 
License at&#xA;&#xA;      http: [...]
     </item>
     <item>
       <title>Ozone On Premise Installation</title>
diff --git a/docs/edge/start/ozone-recon.png b/docs/edge/start/ozone-recon.png
new file mode 100644
index 00000000..813e0cda
Binary files /dev/null and b/docs/edge/start/ozone-recon.png differ
diff --git a/docs/edge/start/ozone-scm.png b/docs/edge/start/ozone-scm.png
new file mode 100644
index 00000000..930a1ce6
Binary files /dev/null and b/docs/edge/start/ozone-scm.png differ
diff --git a/docs/edge/start/startfromdockerhub.html 
b/docs/edge/start/startfromdockerhub.html
index de5ef837..b09ae039 100644
--- a/docs/edge/start/startfromdockerhub.html
+++ b/docs/edge/start/startfromdockerhub.html
@@ -532,34 +532,76 @@ s=d.getElementsByTagName('script')[0];
     </div>
 </div>
 
-<h1 id="ozone-in-a-single-container">Ozone in a Single Container</h1>
-<p>The easiest way to start up an all-in-one ozone container is to use the 
latest
-docker image from docker hub:</p>
-<div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-bash" data-lang="bash"><span 
style="display:flex;"><span>docker run -p 9878:9878 -p 9876:9876 apache/ozone
-</span></span></code></pre></div><p>This command will pull down the ozone 
image from docker hub and start all
-ozone services in a single container. <br>
-This container will run the required metadata servers (Ozone Manager, Storage
-Container Manager) one data node  and the S3 compatible REST server
-(S3 Gateway).</p>
 <h1 id="local-multi-container-cluster">Local multi-container cluster</h1>
-<p>If you would like to use a more realistic pseudo-cluster where each 
components
-run in own containers, you can start it with a docker-compose file.</p>
-<p>We have shipped a docker-compose and an environment file as part of the
-container image  that is uploaded to docker hub.</p>
-<p>The following commands can be used to extract these files from the image in 
the docker hub.</p>
-<div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-bash" data-lang="bash"><span 
style="display:flex;"><span>docker run apache/ozone cat docker-compose.yaml 
&gt; docker-compose.yaml
-</span></span><span style="display:flex;"><span>docker run apache/ozone cat 
docker-config &gt; docker-config
-</span></span></code></pre></div><p>Now you can start the cluster with 
docker-compose:</p>
-<div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-bash" data-lang="bash"><span 
style="display:flex;"><span>docker-compose up -d
-</span></span></code></pre></div><p>If you need multiple datanodes, we can 
just scale it up:</p>
-<div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-bash" data-lang="bash"><span 
style="display:flex;"><span>docker-compose up -d --scale datanode<span 
style="color:#f92672">=</span><span style="color:#ae81ff">3</span>
-</span></span></code></pre></div><h1 id="running-s3-clients">Running S3 
Clients</h1>
-<p>Once the cluster is booted up and ready, you can verify its status by
+<h2 id="obtain-the-docker-compose-configuration">Obtain the Docker Compose 
Configuration</h2>
+<p>First, obtain Ozone&rsquo;s sample Docker Compose configuration:</p>
+<div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-bash" data-lang="bash"><span style="display:flex;"><span><span 
style="color:#75715e"># Download the latest Docker Compose configuration 
file</span>
+</span></span><span style="display:flex;"><span>curl -O 
https://raw.githubusercontent.com/apache/ozone-docker/refs/heads/latest/docker-compose.yaml
+</span></span></code></pre></div><h2 id="start-the-cluster">Start the 
Cluster</h2>
+<p>Start your Ozone cluster with three Datanodes using the following 
command:</p>
+<div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-bash" data-lang="bash"><span 
style="display:flex;"><span>docker compose up -d --scale datanode<span 
style="color:#f92672">=</span><span style="color:#ae81ff">3</span>
+</span></span></code></pre></div><p>This command will:</p>
+<ul>
+<li>Automatically pull required images from Docker Hub</li>
+<li>Create a multi-node cluster with the core Ozone services</li>
+<li>Start all components in detached mode</li>
+</ul>
+<h2 id="verify-the-deployment">Verify the Deployment</h2>
+<p>Check the status of your Ozone cluster components:</p>
+<div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-bash" data-lang="bash"><span 
style="display:flex;"><span>docker compose ps
+</span></span></code></pre></div><p>You should see output similar to this:</p>
+<pre tabindex="0"><code>docker-datanode-1   apache/ozone:2.0.0   
&#34;/usr/local/bin/dumb…&#34;   datanode   14 seconds ago   Up 13 seconds   
0.0.0.0:32958-&gt;9864/tcp, :::32958-&gt;9864/tcp
+docker-datanode-2   apache/ozone:2.0.0   &#34;/usr/local/bin/dumb…&#34;   
datanode   14 seconds ago   Up 13 seconds   0.0.0.0:32957-&gt;9864/tcp, 
:::32957-&gt;9864/tcp
+docker-datanode-3   apache/ozone:2.0.0   &#34;/usr/local/bin/dumb…&#34;   
datanode   14 seconds ago   Up 12 seconds   0.0.0.0:32959-&gt;9864/tcp, 
:::32959-&gt;9864/tcp
+docker-om-1         apache/ozone:2.0.0   &#34;/usr/local/bin/dumb…&#34;   om   
      14 seconds ago   Up 13 seconds   0.0.0.0:9874-&gt;9874/tcp, 
:::9874-&gt;9874/tcp
+docker-recon-1      apache/ozone:2.0.0   &#34;/usr/local/bin/dumb…&#34;   
recon      14 seconds ago   Up 13 seconds   0.0.0.0:9888-&gt;9888/tcp, 
:::9888-&gt;9888/tcp
+docker-s3g-1        apache/ozone:2.0.0   &#34;/usr/local/bin/dumb…&#34;   s3g  
      14 seconds ago   Up 13 seconds   0.0.0.0:9878-&gt;9878/tcp, 
:::9878-&gt;9878/tcp
+docker-scm-1        apache/ozone:2.0.0   &#34;/usr/local/bin/dumb…&#34;   scm  
      14 seconds ago   Up 13 seconds   0.0.0.0:9876-&gt;9876/tcp, 
:::9876-&gt;9876/tcp
+</code></pre><h2 id="check-the-ozone-version">Check the Ozone version</h2>
+<div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-bash" data-lang="bash"><span 
style="display:flex;"><span>docker compose exec om ozone version
+</span></span></code></pre></div><p>Once the cluster is booted up and ready, 
you can verify its status by
 connecting to the SCM&rsquo;s UI at <a 
href="http://localhost:9876";>http://localhost:9876</a>.</p>
+<p>
+
+<img src="ozone-scm.png" alt='SCM UI Screenshot'  class="img-responsive" /></p>
+<p>Navigate to the Recon server home page. The Ozone Recon server is at <a 
href="http://localhost:9888";>http://localhost:9888</a>, which provides 
monitoring and management capabilities.</p>
+<p>
+
+<img src="ozone-recon.png" alt='Recon UI Screenshot'  class="img-responsive" 
/></p>
+<h2 id="other-commonly-used-commands">Other Commonly Used Commands</h2>
+<ul>
+<li><strong>View logs from the OM:</strong>
+<div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-bash" data-lang="bash"><span 
style="display:flex;"><span>docker compose logs om
+</span></span></code></pre></div></li>
+<li><strong>Stop and remove all containers:</strong>
+<div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-bash" data-lang="bash"><span 
style="display:flex;"><span>docker compose down
+</span></span></code></pre></div></li>
+</ul>
+<h2 id="configuration">Configuration</h2>
+<p>You can customize your Ozone deployment by modifying the configuration 
parameters in the <code>docker-compose.yaml</code> file:</p>
+<ul>
+<li><strong>Common Configurations:</strong> Located under the 
<code>x-common-config</code> section</li>
+<li><strong>Service-Specific Settings:</strong> Found under the 
<code>environment</code> section of individual services</li>
+</ul>
+<p>As an example, to update the port on which Recon listens to, append the 
following configuration:</p>
+<div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span 
style="color:#f92672">x-common-config</span>:
+</span></span><span style="display:flex;"><span>  <span 
style="color:#ae81ff">...</span>
+</span></span><span style="display:flex;"><span>  <span 
style="color:#f92672">OZONE-SITE.XML_ozone.recon.http-address</span>: <span 
style="color:#ae81ff">0.0.0.0</span>:<span style="color:#ae81ff">9090</span>
+</span></span></code></pre></div><p><strong>Note:</strong> If you change the 
port Recon listens on (e.g., 9090), you must also update the ports mapping in 
the recon service definition within the docker-compose.yaml file. For example, 
change:</p>
+<div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span 
style="color:#f92672">ports</span>:
+</span></span><span style="display:flex;"><span>  - <span 
style="color:#e6db74">&#34;9888:9888&#34;</span>
+</span></span></code></pre></div><p>to:</p>
+<div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span 
style="color:#f92672">ports</span>:
+</span></span><span style="display:flex;"><span>  - <span 
style="color:#e6db74">&#34;9090:9090&#34;</span>
+</span></span></code></pre></div><h1 id="running-s3-clients">Running S3 
Clients</h1>
 <p>The S3 gateway endpoint will be exposed at port 9878. You can use 
Ozone&rsquo;s S3
 support as if you are working against the real S3.  S3 buckets are stored under
 the <code>/s3v</code> volume.</p>
-<p>Here is how you create buckets from command line:</p>
+<p>First, let&rsquo;s configure AWS access key and secret key. Because the 
cluster is not secured,
+you can use any arbitrary access key and secret key. For example:</p>
+<div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-bash" data-lang="bash"><span 
style="display:flex;"><span>export AWS_ACCESS_KEY_ID<span 
style="color:#f92672">=</span>testuser/[email protected]
+</span></span><span style="display:flex;"><span>export 
AWS_SECRET_ACCESS_KEY<span 
style="color:#f92672">=</span>c261b6ecabf7d37d5f9ded654b1c724adac9bd9f13e247a235e567e8296d2999
+</span></span></code></pre></div><p>Here is how you create buckets from 
command line:</p>
 <div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-bash" data-lang="bash"><span style="display:flex;"><span>aws 
s3api --endpoint http://localhost:9878/ create-bucket --bucket<span 
style="color:#f92672">=</span>bucket1
 </span></span></code></pre></div><p>Only notable difference in the above 
command line is the fact that you have
 to tell the <em>endpoint</em> address to the aws s3api command.</p>
@@ -571,8 +613,9 @@ we can upload to Ozone. The next command actually uploads 
to Ozone&rsquo;s S3
 bucket using the standard aws s3 command line interface.</p>
 <div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-bash" data-lang="bash"><span style="display:flex;"><span>aws 
s3 --endpoint http://localhost:9878 cp --storage-class REDUCED_REDUNDANCY  
/tmp/testfile  s3://bucket1/testfile
 </span></span></code></pre></div><div class="alert alert-info" role="alert">
-Note: REDUCED_REDUNDANCY is required for the single container ozone, since it
- has a single datanode. </div>
+Note: Add --storage-class REDUCED_REDUNDANCY if only one DataNode is started.
+Since this example starts three DataNodes, this parameter is optional.
+</div>
 We can now verify that file got uploaded by running the list command against
 our bucket.
 <div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-bash" data-lang="bash"><span style="display:flex;"><span>aws 
s3 --endpoint http://localhost:9878 ls s3://bucket1/testfile
@@ -595,7 +638,7 @@ our bucket.
 <footer class="footer">
   <div class="container">
     <span class="small text-muted">
-      Version: 2.1.0-SNAPSHOT, Last Modified: April 1, 2022 <a 
class="hide-child link primary-color" 
href="https://github.com/apache/ozone/commit/0262c8ac3abefd3df45d908f8316f9594a06051c";>0262c8ac3a</a>
+      Version: 2.1.0-SNAPSHOT, Last Modified: June 11, 2025 <a 
class="hide-child link primary-color" 
href="https://github.com/apache/ozone/commit/8c32363072e7c1757946ffff7d0de6fb1f255fc0";>8c32363072</a>
     </span>
   </div>
 </footer>
diff --git a/docs/edge/swagger-resources/recon-api.yaml 
b/docs/edge/swagger-resources/recon-api.yaml
index f5209d63..964efb87 100644
--- a/docs/edge/swagger-resources/recon-api.yaml
+++ b/docs/edge/swagger-resources/recon-api.yaml
@@ -540,11 +540,11 @@ paths:
             application/json:
               schema:
                 $ref: '#/components/schemas/NamespaceMetadataResponse'
-  /namespace/du:
+  /namespace/usage:
     get:
       tags:
         - Namespace Metadata
-      summary: Returns disk usage of all sub-paths under the path.
+      summary: Returns namespace usage of all sub-paths under the path.
       operationId: getDiskUsage
       parameters:
         - name: path
@@ -556,14 +556,14 @@ paths:
             type: string
         - name: files
           in: query
-          description: This boolean has a default value of false. When set to 
true, it calculates the disk usage for keys within the specified path and also 
provides a list of their corresponding sub-paths.
+          description: This boolean has a default value of false. When set to 
true, it calculates the namespace usage for keys within the specified path and 
also provides a list of their corresponding sub-paths.
           example: true
           required: false
           schema:
             type: boolean
         - name: replica
           in: query
-          description: A boolean with a default value of false. If set to 
true, computes disk usage with replicated size of keys.
+          description: A boolean with a default value of false. If set to 
true, computes namespace usage with replicated size of keys.
           example: true
           required: false
           schema:
@@ -573,7 +573,7 @@ paths:
           description: |
             Successful operation<br>
             #### **Note**:
-            #### The below example response is for the sample endpoint: 
**namespace/du?path=/vol1/bucket1&files=true&replica=true**
+            #### The below example response is for the sample endpoint: 
**namespace/usage?path=/vol1/bucket1&files=true&replica=true**
             #### status can be either **OK** if path exists else 
**PATH_NOT_FOUND**
             #### If files is set to **false**, sub-path **/vol1/bucket1/key1-1 
is omitted**.
             #### If replica is set to **false**, **sizeWithReplica returns 
-1**.
diff --git a/docs/edge/zh/interface/reconapi.html 
b/docs/edge/zh/interface/reconapi.html
index cff2c55e..29f21114 100644
--- a/docs/edge/zh/interface/reconapi.html
+++ b/docs/edge/zh/interface/reconapi.html
@@ -911,7 +911,7 @@ s=d.getElementsByTagName('script')[0];
 </span></span><span style="display:flex;"><span>      <span 
style="color:#f92672">&#34;numKey&#34;</span>: <span 
style="color:#ae81ff">50</span>
 </span></span><span style="display:flex;"><span>    }
 </span></span></code></pre></div><p>如果任何 <code>num</code> 字段为 
<code>-1</code>,则该路径请求不适用于该实体类型。</p>
-<h3 id="get-apiv1namespacedu">GET /api/v1/namespace/du</h3>
+<h3 id="get-apiv1namespaceusage">GET /api/v1/namespace/usage</h3>
 <p><strong>参数</strong></p>
 <ul>
 <li>
@@ -931,7 +931,7 @@ s=d.getElementsByTagName('script')[0];
 <p>返回路径下所有子路径的磁盘使用情况。规范化 <code>path</code> 字段,返回路径下直接健的总大小作为
 <code>sizeDirectKey</code>,并以字节为单位返回 <code>size/sizeWithReplica</code>。</p>
 <p>如果路径存在,则 <code>status</code> 为 <code>OK</code>,否则为 
<code>PATH_NOT_FOUND</code>。</p>
-<p>示例: 
/api/v1/namespace/du?path=/vol1/bucket1&amp;files=true&amp;replica=true</p>
+<p>示例: 
/api/v1/namespace/usage?path=/vol1/bucket1&amp;files=true&amp;replica=true</p>
 <div class="highlight"><pre tabindex="0" 
style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code
 class="language-json" data-lang="json"><span style="display:flex;"><span>    {
 </span></span><span style="display:flex;"><span>      <span 
style="color:#f92672">&#34;status&#34;</span>: <span 
style="color:#960050;background-color:#1e0010">OK</span>,
 </span></span><span style="display:flex;"><span>      <span 
style="color:#f92672">&#34;path&#34;</span>: <span 
style="color:#e6db74">&#34;/vol1/bucket1&#34;</span>,
@@ -1294,7 +1294,7 @@ s=d.getElementsByTagName('script')[0];
 <footer class="footer">
   <div class="container">
     <span class="small text-muted">
-      Version: 2.1.0-SNAPSHOT, Last Modified: March 14, 2024 <a 
class="hide-child link primary-color" 
href="https://github.com/apache/ozone/commit/92221930844a9040122cf4c92ee69bc5b3d759fb";>9222193084</a>
+      Version: 2.1.0-SNAPSHOT, Last Modified: June 11, 2025 <a 
class="hide-child link primary-color" 
href="https://github.com/apache/ozone/commit/bbaf71e71e4d04397fb2d7013c30664028cd1241";>bbaf71e71e</a>
     </span>
   </div>
 </footer>
diff --git a/docs/edge/zh/sitemap.xml b/docs/edge/zh/sitemap.xml
index 4c5f32c2..6a2c97c8 100644
--- a/docs/edge/zh/sitemap.xml
+++ b/docs/edge/zh/sitemap.xml
@@ -328,7 +328,7 @@
                 />
   </url><url>
     <loc>/zh/interface/reconapi.html</loc>
-    <lastmod>2024-03-14T16:37:06+08:00</lastmod>
+    <lastmod>2025-06-11T14:00:35+05:30</lastmod>
     <xhtml:link
                 rel="alternate"
                 hreflang="en"


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to