You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ozone.apache.org by GitBox <gi...@apache.org> on 2020/07/29 07:25:16 UTC

[GitHub] [hadoop-ozone] elek opened a new pull request #1269: HDDS-4042. Update documentation for the GA release

elek opened a new pull request #1269:
URL: https://github.com/apache/hadoop-ozone/pull/1269


   ## What changes were proposed in this pull request?
   
   Review and update the documentation.
   
   ## What is the link to the Apache JIRA
   
   https://issues.apache.org/jira/browse/HDDS-4042
   
   ## How was this patch tested?
   
   `hugo serve` from `hadoop-hdds/docs`


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: ozone-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: ozone-issues-help@hadoop.apache.org


[GitHub] [hadoop-ozone] xiaoyuyao merged pull request #1269: HDDS-4042. Update documentation for the GA release

Posted by GitBox <gi...@apache.org>.
xiaoyuyao merged pull request #1269:
URL: https://github.com/apache/hadoop-ozone/pull/1269


   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: ozone-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: ozone-issues-help@hadoop.apache.org


[GitHub] [hadoop-ozone] adoroszlai commented on a change in pull request #1269: HDDS-4042. Update documentation for the GA release

Posted by GitBox <gi...@apache.org>.
adoroszlai commented on a change in pull request #1269:
URL: https://github.com/apache/hadoop-ozone/pull/1269#discussion_r463447507



##########
File path: hadoop-hdds/docs/content/interface/Cli.md
##########
@@ -0,0 +1,209 @@
+---
+title: Command Line Interface
+weight: 4
+menu:
+   main:
+      parent: "Client Interfaces"
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+
+ Ozone  shell is the primary interface to interact with Ozone. It provides a command shell interface to work against Ozone. It uses the [Java API]({{< ref "interface/JavaApi.md">}}).
+ 
+ There are some functionality which couldn't be accessed without using `ozone sh` commands. For example:
+ 
+  1. Creating volumes with quota
+  2. Managing internal ACLs
+  3. Creating buckets with encryption key
+  
+All of these are one-time, administration tasks. Applications can use Ozone without this CLI using other interface like Hadoop Compatible File System (o3fs or ofs) or S3 interface.
+
+
+Ozone shell help can be invoked at _object_ level or at _action_ level.
+
+For example:
+
+```bash
+ozone sh volume --help
+```
+
+This will show all possible actions for volumes.
+
+or it can be invoked to explain a specific action like
+
+```bash
+ozone sh volume create --help
+```
+
+This command will give you command line options of the create command.
+
+## General Command Format
+
+The Ozone shell commands take the following format.
+
+> _ozone sh object action url_
+
+**ozone** script is used to invoke all Ozone sub-commands. The ozone shell is
+invoked via ```sh``` command.
+
+The object can be a volume, bucket or a key. The action is various verbs like

Review comment:
       ```suggestion
   Object can be volume, bucket or key. Actions are various verbs like
   ```

##########
File path: hadoop-hdds/docs/content/interface/Cli.md
##########
@@ -0,0 +1,209 @@
+---
+title: Command Line Interface
+weight: 4
+menu:
+   main:
+      parent: "Client Interfaces"
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+
+ Ozone  shell is the primary interface to interact with Ozone. It provides a command shell interface to work against Ozone. It uses the [Java API]({{< ref "interface/JavaApi.md">}}).

Review comment:
       ```suggestion
   Ozone shell is the primary interface to interact with Ozone from the command line. Behind the scenes it uses the [Java API]({{< ref "interface/JavaApi.md">}}).
   ```

##########
File path: hadoop-hdds/docs/content/interface/Cli.md
##########
@@ -0,0 +1,209 @@
+---
+title: Command Line Interface
+weight: 4
+menu:
+   main:
+      parent: "Client Interfaces"
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+
+ Ozone  shell is the primary interface to interact with Ozone. It provides a command shell interface to work against Ozone. It uses the [Java API]({{< ref "interface/JavaApi.md">}}).
+ 
+ There are some functionality which couldn't be accessed without using `ozone sh` commands. For example:
+ 
+  1. Creating volumes with quota
+  2. Managing internal ACLs
+  3. Creating buckets with encryption key
+  
+All of these are one-time, administration tasks. Applications can use Ozone without this CLI using other interface like Hadoop Compatible File System (o3fs or ofs) or S3 interface.
+
+
+Ozone shell help can be invoked at _object_ level or at _action_ level.
+
+For example:
+
+```bash
+ozone sh volume --help
+```
+
+This will show all possible actions for volumes.
+
+or it can be invoked to explain a specific action like
+
+```bash
+ozone sh volume create --help
+```
+
+This command will give you command line options of the create command.
+
+## General Command Format
+
+The Ozone shell commands take the following format.
+
+> _ozone sh object action url_
+
+**ozone** script is used to invoke all Ozone sub-commands. The ozone shell is
+invoked via ```sh``` command.
+
+The object can be a volume, bucket or a key. The action is various verbs like
+create, list, delete etc.
+
+Ozone URL can point to a volume, bucket or keys in the following format:
+
+_\[schema\]\[server:port\]/volume/bucket/key_
+
+
+Where,
+
+1. **Schema** - This should be `o3` which is the native RPC protocol to access
+  Ozone API. The usage of the schema is optional.
+
+2. **Server:Port** - This is the address of the Ozone Manager. If the port is
+omitted the default port from ozone-site.xml will be used.
+
+Depending on the call, the volume/bucket/key names will be part of the URL.
+Please see volume commands, bucket commands, and key commands section for more
+detail.
+
+## Volume operation
+
+Volume is the top level element of the hierarchy and supposed to managed only by the administrators. Quota and the owner user can be defined.
+
+Example commands:
+
+```shell
+> ozone sh volume create /vol1
+```
+
+```shell
+bash-4.2$ ozone sh volume info /vol1
+{
+  "metadata" : { },
+  "name" : "vol1",
+  "admin" : "hadoop",
+  "owner" : "hadoop",
+  "creationTime" : "2020-07-28T12:31:50.112Z",
+  "modificationTime" : "2020-07-28T12:31:50.112Z",
+  "acls" : [ {
+    "type" : "USER",
+    "name" : "hadoop",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  }, {
+    "type" : "GROUP",
+    "name" : "users",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  } ],
+  "quota" : 1152921504606846976
+}
+```
+
+```shell
+ozone sh volume list /

Review comment:
       ```suggestion
   $ ozone sh volume list /
   ```

##########
File path: hadoop-hdds/docs/content/interface/Cli.md
##########
@@ -0,0 +1,209 @@
+---
+title: Command Line Interface
+weight: 4
+menu:
+   main:
+      parent: "Client Interfaces"
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+
+ Ozone  shell is the primary interface to interact with Ozone. It provides a command shell interface to work against Ozone. It uses the [Java API]({{< ref "interface/JavaApi.md">}}).
+ 
+ There are some functionality which couldn't be accessed without using `ozone sh` commands. For example:
+ 
+  1. Creating volumes with quota
+  2. Managing internal ACLs
+  3. Creating buckets with encryption key
+  
+All of these are one-time, administration tasks. Applications can use Ozone without this CLI using other interface like Hadoop Compatible File System (o3fs or ofs) or S3 interface.
+
+
+Ozone shell help can be invoked at _object_ level or at _action_ level.
+
+For example:
+
+```bash
+ozone sh volume --help
+```
+
+This will show all possible actions for volumes.
+
+or it can be invoked to explain a specific action like

Review comment:
       ```suggestion
   will show all possible actions for volumes.
   
   Or it can be invoked to explain a specific action like:
   ```

##########
File path: hadoop-hdds/docs/content/interface/Cli.md
##########
@@ -0,0 +1,209 @@
+---
+title: Command Line Interface
+weight: 4
+menu:
+   main:
+      parent: "Client Interfaces"
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+
+ Ozone  shell is the primary interface to interact with Ozone. It provides a command shell interface to work against Ozone. It uses the [Java API]({{< ref "interface/JavaApi.md">}}).
+ 
+ There are some functionality which couldn't be accessed without using `ozone sh` commands. For example:
+ 
+  1. Creating volumes with quota
+  2. Managing internal ACLs
+  3. Creating buckets with encryption key
+  
+All of these are one-time, administration tasks. Applications can use Ozone without this CLI using other interface like Hadoop Compatible File System (o3fs or ofs) or S3 interface.
+
+
+Ozone shell help can be invoked at _object_ level or at _action_ level.
+
+For example:
+
+```bash
+ozone sh volume --help
+```
+
+This will show all possible actions for volumes.
+
+or it can be invoked to explain a specific action like
+
+```bash
+ozone sh volume create --help
+```
+
+This command will give you command line options of the create command.

Review comment:
       ```suggestion
   which will print the command line options of the `create` command for volumes.
   ```

##########
File path: hadoop-hdds/docs/content/interface/Cli.md
##########
@@ -0,0 +1,209 @@
+---
+title: Command Line Interface
+weight: 4
+menu:
+   main:
+      parent: "Client Interfaces"
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+
+ Ozone  shell is the primary interface to interact with Ozone. It provides a command shell interface to work against Ozone. It uses the [Java API]({{< ref "interface/JavaApi.md">}}).
+ 
+ There are some functionality which couldn't be accessed without using `ozone sh` commands. For example:
+ 
+  1. Creating volumes with quota
+  2. Managing internal ACLs
+  3. Creating buckets with encryption key
+  
+All of these are one-time, administration tasks. Applications can use Ozone without this CLI using other interface like Hadoop Compatible File System (o3fs or ofs) or S3 interface.
+
+
+Ozone shell help can be invoked at _object_ level or at _action_ level.
+
+For example:
+
+```bash
+ozone sh volume --help
+```
+
+This will show all possible actions for volumes.
+
+or it can be invoked to explain a specific action like
+
+```bash
+ozone sh volume create --help
+```
+
+This command will give you command line options of the create command.
+
+## General Command Format
+
+The Ozone shell commands take the following format.
+
+> _ozone sh object action url_
+
+**ozone** script is used to invoke all Ozone sub-commands. The ozone shell is
+invoked via ```sh``` command.
+
+The object can be a volume, bucket or a key. The action is various verbs like
+create, list, delete etc.
+
+Ozone URL can point to a volume, bucket or keys in the following format:
+
+_\[schema\]\[server:port\]/volume/bucket/key_
+
+
+Where,
+
+1. **Schema** - This should be `o3` which is the native RPC protocol to access
+  Ozone API. The usage of the schema is optional.
+
+2. **Server:Port** - This is the address of the Ozone Manager. If the port is
+omitted the default port from ozone-site.xml will be used.
+
+Depending on the call, the volume/bucket/key names will be part of the URL.
+Please see volume commands, bucket commands, and key commands section for more
+detail.
+
+## Volume operation
+
+Volume is the top level element of the hierarchy and supposed to managed only by the administrators. Quota and the owner user can be defined.

Review comment:
       ```suggestion
   Volume is the top level element of the hierarchy, managed only by administrators. Optionally, quota and the owner user can be specified.
   ```

##########
File path: hadoop-hdds/docs/content/interface/Cli.md
##########
@@ -0,0 +1,209 @@
+---
+title: Command Line Interface
+weight: 4
+menu:
+   main:
+      parent: "Client Interfaces"
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+
+ Ozone  shell is the primary interface to interact with Ozone. It provides a command shell interface to work against Ozone. It uses the [Java API]({{< ref "interface/JavaApi.md">}}).
+ 
+ There are some functionality which couldn't be accessed without using `ozone sh` commands. For example:
+ 
+  1. Creating volumes with quota
+  2. Managing internal ACLs
+  3. Creating buckets with encryption key
+  
+All of these are one-time, administration tasks. Applications can use Ozone without this CLI using other interface like Hadoop Compatible File System (o3fs or ofs) or S3 interface.
+
+
+Ozone shell help can be invoked at _object_ level or at _action_ level.
+
+For example:
+
+```bash
+ozone sh volume --help
+```
+
+This will show all possible actions for volumes.
+
+or it can be invoked to explain a specific action like
+
+```bash
+ozone sh volume create --help
+```
+
+This command will give you command line options of the create command.
+
+## General Command Format
+
+The Ozone shell commands take the following format.
+
+> _ozone sh object action url_
+
+**ozone** script is used to invoke all Ozone sub-commands. The ozone shell is
+invoked via ```sh``` command.
+
+The object can be a volume, bucket or a key. The action is various verbs like
+create, list, delete etc.
+
+Ozone URL can point to a volume, bucket or keys in the following format:
+
+_\[schema\]\[server:port\]/volume/bucket/key_
+
+
+Where,
+
+1. **Schema** - This should be `o3` which is the native RPC protocol to access
+  Ozone API. The usage of the schema is optional.
+
+2. **Server:Port** - This is the address of the Ozone Manager. If the port is
+omitted the default port from ozone-site.xml will be used.
+
+Depending on the call, the volume/bucket/key names will be part of the URL.
+Please see volume commands, bucket commands, and key commands section for more
+detail.
+
+## Volume operation
+
+Volume is the top level element of the hierarchy and supposed to managed only by the administrators. Quota and the owner user can be defined.
+
+Example commands:
+
+```shell
+> ozone sh volume create /vol1
+```
+
+```shell
+bash-4.2$ ozone sh volume info /vol1
+{
+  "metadata" : { },
+  "name" : "vol1",
+  "admin" : "hadoop",
+  "owner" : "hadoop",
+  "creationTime" : "2020-07-28T12:31:50.112Z",
+  "modificationTime" : "2020-07-28T12:31:50.112Z",
+  "acls" : [ {
+    "type" : "USER",
+    "name" : "hadoop",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  }, {
+    "type" : "GROUP",
+    "name" : "users",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  } ],
+  "quota" : 1152921504606846976
+}
+```
+
+```shell
+ozone sh volume list /
+{
+  "metadata" : { },
+  "name" : "s3v",
+  "admin" : "hadoop",
+  "owner" : "hadoop",
+  "creationTime" : "2020-07-27T11:32:22.314Z",
+  "modificationTime" : "2020-07-27T11:32:22.314Z",
+  "acls" : [ {
+    "type" : "USER",
+    "name" : "hadoop",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  }, {
+    "type" : "GROUP",
+    "name" : "users",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  } ],
+  "quota" : 1152921504606846976
+}
+....
+```
+## Bucket operation

Review comment:
       ```suggestion
   ## Bucket operations
   ```

##########
File path: hadoop-hdds/docs/content/interface/Cli.md
##########
@@ -0,0 +1,209 @@
+---
+title: Command Line Interface
+weight: 4
+menu:
+   main:
+      parent: "Client Interfaces"
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+
+ Ozone  shell is the primary interface to interact with Ozone. It provides a command shell interface to work against Ozone. It uses the [Java API]({{< ref "interface/JavaApi.md">}}).
+ 
+ There are some functionality which couldn't be accessed without using `ozone sh` commands. For example:
+ 
+  1. Creating volumes with quota
+  2. Managing internal ACLs
+  3. Creating buckets with encryption key
+  
+All of these are one-time, administration tasks. Applications can use Ozone without this CLI using other interface like Hadoop Compatible File System (o3fs or ofs) or S3 interface.
+
+
+Ozone shell help can be invoked at _object_ level or at _action_ level.
+
+For example:
+
+```bash
+ozone sh volume --help
+```
+
+This will show all possible actions for volumes.
+
+or it can be invoked to explain a specific action like
+
+```bash
+ozone sh volume create --help
+```
+
+This command will give you command line options of the create command.
+
+## General Command Format
+
+The Ozone shell commands take the following format.
+
+> _ozone sh object action url_
+
+**ozone** script is used to invoke all Ozone sub-commands. The ozone shell is
+invoked via ```sh``` command.
+
+The object can be a volume, bucket or a key. The action is various verbs like
+create, list, delete etc.
+
+Ozone URL can point to a volume, bucket or keys in the following format:
+
+_\[schema\]\[server:port\]/volume/bucket/key_
+
+
+Where,
+
+1. **Schema** - This should be `o3` which is the native RPC protocol to access
+  Ozone API. The usage of the schema is optional.
+
+2. **Server:Port** - This is the address of the Ozone Manager. If the port is
+omitted the default port from ozone-site.xml will be used.
+
+Depending on the call, the volume/bucket/key names will be part of the URL.
+Please see volume commands, bucket commands, and key commands section for more
+detail.
+
+## Volume operation
+
+Volume is the top level element of the hierarchy and supposed to managed only by the administrators. Quota and the owner user can be defined.
+
+Example commands:
+
+```shell
+> ozone sh volume create /vol1
+```
+
+```shell
+bash-4.2$ ozone sh volume info /vol1
+{
+  "metadata" : { },
+  "name" : "vol1",
+  "admin" : "hadoop",
+  "owner" : "hadoop",
+  "creationTime" : "2020-07-28T12:31:50.112Z",
+  "modificationTime" : "2020-07-28T12:31:50.112Z",
+  "acls" : [ {
+    "type" : "USER",
+    "name" : "hadoop",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  }, {
+    "type" : "GROUP",
+    "name" : "users",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  } ],
+  "quota" : 1152921504606846976
+}
+```
+
+```shell
+ozone sh volume list /
+{
+  "metadata" : { },
+  "name" : "s3v",
+  "admin" : "hadoop",
+  "owner" : "hadoop",
+  "creationTime" : "2020-07-27T11:32:22.314Z",
+  "modificationTime" : "2020-07-27T11:32:22.314Z",
+  "acls" : [ {
+    "type" : "USER",
+    "name" : "hadoop",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  }, {
+    "type" : "GROUP",
+    "name" : "users",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  } ],
+  "quota" : 1152921504606846976
+}
+....
+```
+## Bucket operation
+
+Bucket is the second level hierarchy, similar to the AWS S3 buckets. Users can create buckets in volumes with permissions.
+
+Command examples:
+
+```shell
+> ozone sh bucket create /vol1/bucket1

Review comment:
       ```suggestion
   $ ozone sh bucket create /vol1/bucket1
   ```

##########
File path: hadoop-hdds/docs/content/interface/Cli.md
##########
@@ -0,0 +1,209 @@
+---
+title: Command Line Interface
+weight: 4
+menu:
+   main:
+      parent: "Client Interfaces"
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+
+ Ozone  shell is the primary interface to interact with Ozone. It provides a command shell interface to work against Ozone. It uses the [Java API]({{< ref "interface/JavaApi.md">}}).
+ 
+ There are some functionality which couldn't be accessed without using `ozone sh` commands. For example:
+ 
+  1. Creating volumes with quota
+  2. Managing internal ACLs
+  3. Creating buckets with encryption key
+  
+All of these are one-time, administration tasks. Applications can use Ozone without this CLI using other interface like Hadoop Compatible File System (o3fs or ofs) or S3 interface.
+
+
+Ozone shell help can be invoked at _object_ level or at _action_ level.
+
+For example:
+
+```bash
+ozone sh volume --help
+```
+
+This will show all possible actions for volumes.
+
+or it can be invoked to explain a specific action like
+
+```bash
+ozone sh volume create --help
+```
+
+This command will give you command line options of the create command.
+
+## General Command Format
+
+The Ozone shell commands take the following format.
+
+> _ozone sh object action url_
+
+**ozone** script is used to invoke all Ozone sub-commands. The ozone shell is
+invoked via ```sh``` command.
+
+The object can be a volume, bucket or a key. The action is various verbs like
+create, list, delete etc.
+
+Ozone URL can point to a volume, bucket or keys in the following format:
+
+_\[schema\]\[server:port\]/volume/bucket/key_
+
+
+Where,
+
+1. **Schema** - This should be `o3` which is the native RPC protocol to access
+  Ozone API. The usage of the schema is optional.
+
+2. **Server:Port** - This is the address of the Ozone Manager. If the port is
+omitted the default port from ozone-site.xml will be used.
+
+Depending on the call, the volume/bucket/key names will be part of the URL.
+Please see volume commands, bucket commands, and key commands section for more
+detail.
+
+## Volume operation
+
+Volume is the top level element of the hierarchy and supposed to managed only by the administrators. Quota and the owner user can be defined.
+
+Example commands:
+
+```shell
+> ozone sh volume create /vol1
+```
+
+```shell
+bash-4.2$ ozone sh volume info /vol1
+{
+  "metadata" : { },
+  "name" : "vol1",
+  "admin" : "hadoop",
+  "owner" : "hadoop",
+  "creationTime" : "2020-07-28T12:31:50.112Z",
+  "modificationTime" : "2020-07-28T12:31:50.112Z",
+  "acls" : [ {
+    "type" : "USER",
+    "name" : "hadoop",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  }, {
+    "type" : "GROUP",
+    "name" : "users",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  } ],
+  "quota" : 1152921504606846976
+}
+```
+
+```shell
+ozone sh volume list /
+{
+  "metadata" : { },
+  "name" : "s3v",
+  "admin" : "hadoop",
+  "owner" : "hadoop",
+  "creationTime" : "2020-07-27T11:32:22.314Z",
+  "modificationTime" : "2020-07-27T11:32:22.314Z",
+  "acls" : [ {
+    "type" : "USER",
+    "name" : "hadoop",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  }, {
+    "type" : "GROUP",
+    "name" : "users",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  } ],
+  "quota" : 1152921504606846976
+}
+....
+```
+## Bucket operation
+
+Bucket is the second level hierarchy, similar to the AWS S3 buckets. Users can create buckets in volumes with permissions.
+
+Command examples:
+
+```shell
+> ozone sh bucket create /vol1/bucket1
+```shell
+
+```shell
+> ozone sh bucket info /vol1/bucket1
+{
+  "metadata" : { },
+  "volumeName" : "vol1",
+  "name" : "bucket1",
+  "storageType" : "DISK",
+  "versioning" : false,
+  "creationTime" : "2020-07-28T13:14:45.091Z",
+  "modificationTime" : "2020-07-28T13:14:45.091Z",
+  "encryptionKeyName" : null,
+  "sourceVolume" : null,
+  "sourceBucket" : null
+}
+```
+
+Bucket is the level of the [Transparent Data Encryption]({{< ref "security/SecuringTDE.md" >}})

Review comment:
       ```suggestion
   [Transparent Data Encryption]({{< ref "security/SecuringTDE.md" >}}) can be enabled at the bucket level.
   ```

##########
File path: hadoop-hdds/docs/content/interface/Cli.md
##########
@@ -0,0 +1,209 @@
+---
+title: Command Line Interface
+weight: 4
+menu:
+   main:
+      parent: "Client Interfaces"
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+
+ Ozone  shell is the primary interface to interact with Ozone. It provides a command shell interface to work against Ozone. It uses the [Java API]({{< ref "interface/JavaApi.md">}}).
+ 
+ There are some functionality which couldn't be accessed without using `ozone sh` commands. For example:
+ 
+  1. Creating volumes with quota
+  2. Managing internal ACLs
+  3. Creating buckets with encryption key
+  
+All of these are one-time, administration tasks. Applications can use Ozone without this CLI using other interface like Hadoop Compatible File System (o3fs or ofs) or S3 interface.
+
+
+Ozone shell help can be invoked at _object_ level or at _action_ level.
+
+For example:
+
+```bash
+ozone sh volume --help
+```
+
+This will show all possible actions for volumes.
+
+or it can be invoked to explain a specific action like
+
+```bash
+ozone sh volume create --help
+```
+
+This command will give you command line options of the create command.
+
+## General Command Format
+
+The Ozone shell commands take the following format.
+
+> _ozone sh object action url_
+
+**ozone** script is used to invoke all Ozone sub-commands. The ozone shell is
+invoked via ```sh``` command.
+
+The object can be a volume, bucket or a key. The action is various verbs like
+create, list, delete etc.
+
+Ozone URL can point to a volume, bucket or keys in the following format:
+
+_\[schema\]\[server:port\]/volume/bucket/key_
+
+
+Where,
+
+1. **Schema** - This should be `o3` which is the native RPC protocol to access
+  Ozone API. The usage of the schema is optional.
+
+2. **Server:Port** - This is the address of the Ozone Manager. If the port is
+omitted the default port from ozone-site.xml will be used.
+
+Depending on the call, the volume/bucket/key names will be part of the URL.
+Please see volume commands, bucket commands, and key commands section for more
+detail.
+
+## Volume operation
+
+Volume is the top level element of the hierarchy and supposed to managed only by the administrators. Quota and the owner user can be defined.
+
+Example commands:
+
+```shell
+> ozone sh volume create /vol1
+```
+
+```shell
+bash-4.2$ ozone sh volume info /vol1
+{
+  "metadata" : { },
+  "name" : "vol1",
+  "admin" : "hadoop",
+  "owner" : "hadoop",
+  "creationTime" : "2020-07-28T12:31:50.112Z",
+  "modificationTime" : "2020-07-28T12:31:50.112Z",
+  "acls" : [ {
+    "type" : "USER",
+    "name" : "hadoop",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  }, {
+    "type" : "GROUP",
+    "name" : "users",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  } ],
+  "quota" : 1152921504606846976
+}
+```
+
+```shell
+ozone sh volume list /
+{
+  "metadata" : { },
+  "name" : "s3v",
+  "admin" : "hadoop",
+  "owner" : "hadoop",
+  "creationTime" : "2020-07-27T11:32:22.314Z",
+  "modificationTime" : "2020-07-27T11:32:22.314Z",
+  "acls" : [ {
+    "type" : "USER",
+    "name" : "hadoop",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  }, {
+    "type" : "GROUP",
+    "name" : "users",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  } ],
+  "quota" : 1152921504606846976
+}
+....
+```
+## Bucket operation
+
+Bucket is the second level hierarchy, similar to the AWS S3 buckets. Users can create buckets in volumes with permissions.
+
+Command examples:
+
+```shell
+> ozone sh bucket create /vol1/bucket1
+```shell
+
+```shell
+> ozone sh bucket info /vol1/bucket1
+{
+  "metadata" : { },
+  "volumeName" : "vol1",
+  "name" : "bucket1",
+  "storageType" : "DISK",
+  "versioning" : false,
+  "creationTime" : "2020-07-28T13:14:45.091Z",
+  "modificationTime" : "2020-07-28T13:14:45.091Z",
+  "encryptionKeyName" : null,
+  "sourceVolume" : null,
+  "sourceBucket" : null
+}
+```
+
+Bucket is the level of the [Transparent Data Encryption]({{< ref "security/SecuringTDE.md" >}})
+
+## Key
+
+Key is the object which can store the data.
+
+```shell
+>ozone sh key put /vol1/bucket1/README.md README.md

Review comment:
       ```suggestion
   $ ozone sh key put /vol1/bucket1/README.md README.md
   ```

##########
File path: hadoop-hdds/docs/static/slides/.~lock.ozone.odp#
##########
@@ -0,0 +1 @@
+,elek,om2,28.07.2020 14:45,file:///home/elek/dotfiles/mackup/.config/libreoffice/4;

Review comment:
       This file should be omitted.

##########
File path: hadoop-hdds/docs/content/interface/Cli.md
##########
@@ -0,0 +1,209 @@
+---
+title: Command Line Interface
+weight: 4
+menu:
+   main:
+      parent: "Client Interfaces"
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+
+ Ozone  shell is the primary interface to interact with Ozone. It provides a command shell interface to work against Ozone. It uses the [Java API]({{< ref "interface/JavaApi.md">}}).
+ 
+ There are some functionality which couldn't be accessed without using `ozone sh` commands. For example:
+ 
+  1. Creating volumes with quota
+  2. Managing internal ACLs
+  3. Creating buckets with encryption key
+  
+All of these are one-time, administration tasks. Applications can use Ozone without this CLI using other interface like Hadoop Compatible File System (o3fs or ofs) or S3 interface.
+
+
+Ozone shell help can be invoked at _object_ level or at _action_ level.
+
+For example:
+
+```bash
+ozone sh volume --help
+```
+
+This will show all possible actions for volumes.
+
+or it can be invoked to explain a specific action like
+
+```bash
+ozone sh volume create --help
+```
+
+This command will give you command line options of the create command.
+
+## General Command Format
+
+The Ozone shell commands take the following format.

Review comment:
       ```suggestion
   Ozone shell commands take the following form:
   ```

##########
File path: hadoop-hdds/docs/content/interface/Cli.md
##########
@@ -0,0 +1,209 @@
+---
+title: Command Line Interface
+weight: 4
+menu:
+   main:
+      parent: "Client Interfaces"
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+
+ Ozone  shell is the primary interface to interact with Ozone. It provides a command shell interface to work against Ozone. It uses the [Java API]({{< ref "interface/JavaApi.md">}}).
+ 
+ There are some functionality which couldn't be accessed without using `ozone sh` commands. For example:
+ 
+  1. Creating volumes with quota
+  2. Managing internal ACLs
+  3. Creating buckets with encryption key
+  
+All of these are one-time, administration tasks. Applications can use Ozone without this CLI using other interface like Hadoop Compatible File System (o3fs or ofs) or S3 interface.
+
+
+Ozone shell help can be invoked at _object_ level or at _action_ level.
+
+For example:
+
+```bash
+ozone sh volume --help
+```
+
+This will show all possible actions for volumes.
+
+or it can be invoked to explain a specific action like
+
+```bash
+ozone sh volume create --help
+```
+
+This command will give you command line options of the create command.
+
+## General Command Format
+
+The Ozone shell commands take the following format.
+
+> _ozone sh object action url_
+
+**ozone** script is used to invoke all Ozone sub-commands. The ozone shell is
+invoked via ```sh``` command.
+
+The object can be a volume, bucket or a key. The action is various verbs like
+create, list, delete etc.
+
+Ozone URL can point to a volume, bucket or keys in the following format:
+
+_\[schema\]\[server:port\]/volume/bucket/key_
+
+
+Where,
+
+1. **Schema** - This should be `o3` which is the native RPC protocol to access
+  Ozone API. The usage of the schema is optional.
+
+2. **Server:Port** - This is the address of the Ozone Manager. If the port is
+omitted the default port from ozone-site.xml will be used.
+
+Depending on the call, the volume/bucket/key names will be part of the URL.
+Please see volume commands, bucket commands, and key commands section for more
+detail.
+
+## Volume operation
+
+Volume is the top level element of the hierarchy and supposed to managed only by the administrators. Quota and the owner user can be defined.
+
+Example commands:
+
+```shell
+> ozone sh volume create /vol1
+```
+
+```shell
+bash-4.2$ ozone sh volume info /vol1
+{
+  "metadata" : { },
+  "name" : "vol1",
+  "admin" : "hadoop",
+  "owner" : "hadoop",
+  "creationTime" : "2020-07-28T12:31:50.112Z",
+  "modificationTime" : "2020-07-28T12:31:50.112Z",
+  "acls" : [ {
+    "type" : "USER",
+    "name" : "hadoop",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  }, {
+    "type" : "GROUP",
+    "name" : "users",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  } ],
+  "quota" : 1152921504606846976
+}
+```
+
+```shell
+ozone sh volume list /
+{
+  "metadata" : { },
+  "name" : "s3v",
+  "admin" : "hadoop",
+  "owner" : "hadoop",
+  "creationTime" : "2020-07-27T11:32:22.314Z",
+  "modificationTime" : "2020-07-27T11:32:22.314Z",
+  "acls" : [ {
+    "type" : "USER",
+    "name" : "hadoop",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  }, {
+    "type" : "GROUP",
+    "name" : "users",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  } ],
+  "quota" : 1152921504606846976
+}
+....
+```
+## Bucket operation
+
+Bucket is the second level hierarchy, similar to the AWS S3 buckets. Users can create buckets in volumes with permissions.
+
+Command examples:
+
+```shell
+> ozone sh bucket create /vol1/bucket1
+```shell
+
+```shell
+> ozone sh bucket info /vol1/bucket1
+{
+  "metadata" : { },
+  "volumeName" : "vol1",
+  "name" : "bucket1",
+  "storageType" : "DISK",
+  "versioning" : false,
+  "creationTime" : "2020-07-28T13:14:45.091Z",
+  "modificationTime" : "2020-07-28T13:14:45.091Z",
+  "encryptionKeyName" : null,
+  "sourceVolume" : null,
+  "sourceBucket" : null
+}
+```
+
+Bucket is the level of the [Transparent Data Encryption]({{< ref "security/SecuringTDE.md" >}})
+
+## Key
+
+Key is the object which can store the data.
+
+```shell
+>ozone sh key put /vol1/bucket1/README.md README.md
+```
+
+<div class="alert alert-warning" role="alert">
+
+The standard `ozone sh _object_type _action_ _url_` scheme can cause some confusion here as the parameter order is `ozone sh key put <DESTINATION> <SOURCE>` instead of the opposite. 

Review comment:
       ```suggestion
   In this case the standard `ozone sh <object_type> <action> <url>` scheme may be a bit confusing at first, as it results in the syntax `ozone sh key put <destination> <source>` instead of the arguably more natural order of `<source> <destination>`.
   ```

##########
File path: hadoop-hdds/docs/content/interface/Cli.md
##########
@@ -0,0 +1,209 @@
+---
+title: Command Line Interface
+weight: 4
+menu:
+   main:
+      parent: "Client Interfaces"
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+
+ Ozone  shell is the primary interface to interact with Ozone. It provides a command shell interface to work against Ozone. It uses the [Java API]({{< ref "interface/JavaApi.md">}}).
+ 
+ There are some functionality which couldn't be accessed without using `ozone sh` commands. For example:
+ 
+  1. Creating volumes with quota
+  2. Managing internal ACLs
+  3. Creating buckets with encryption key
+  
+All of these are one-time, administration tasks. Applications can use Ozone without this CLI using other interface like Hadoop Compatible File System (o3fs or ofs) or S3 interface.
+
+
+Ozone shell help can be invoked at _object_ level or at _action_ level.
+
+For example:
+
+```bash
+ozone sh volume --help
+```
+
+This will show all possible actions for volumes.
+
+or it can be invoked to explain a specific action like
+
+```bash
+ozone sh volume create --help
+```
+
+This command will give you command line options of the create command.
+
+## General Command Format
+
+The Ozone shell commands take the following format.
+
+> _ozone sh object action url_
+
+**ozone** script is used to invoke all Ozone sub-commands. The ozone shell is
+invoked via ```sh``` command.
+
+The object can be a volume, bucket or a key. The action is various verbs like
+create, list, delete etc.
+
+Ozone URL can point to a volume, bucket or keys in the following format:

Review comment:
       ```suggestion
   Depending on the action, Ozone URL can point to a volume, bucket or key in the following format:
   ```

##########
File path: hadoop-hdds/docs/content/interface/Cli.md
##########
@@ -0,0 +1,209 @@
+---
+title: Command Line Interface
+weight: 4
+menu:
+   main:
+      parent: "Client Interfaces"
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+
+ Ozone  shell is the primary interface to interact with Ozone. It provides a command shell interface to work against Ozone. It uses the [Java API]({{< ref "interface/JavaApi.md">}}).
+ 
+ There are some functionality which couldn't be accessed without using `ozone sh` commands. For example:
+ 
+  1. Creating volumes with quota
+  2. Managing internal ACLs
+  3. Creating buckets with encryption key
+  
+All of these are one-time, administration tasks. Applications can use Ozone without this CLI using other interface like Hadoop Compatible File System (o3fs or ofs) or S3 interface.
+
+
+Ozone shell help can be invoked at _object_ level or at _action_ level.
+
+For example:
+
+```bash
+ozone sh volume --help
+```
+
+This will show all possible actions for volumes.
+
+or it can be invoked to explain a specific action like
+
+```bash
+ozone sh volume create --help
+```
+
+This command will give you command line options of the create command.
+
+## General Command Format
+
+The Ozone shell commands take the following format.
+
+> _ozone sh object action url_
+
+**ozone** script is used to invoke all Ozone sub-commands. The ozone shell is
+invoked via ```sh``` command.
+
+The object can be a volume, bucket or a key. The action is various verbs like
+create, list, delete etc.
+
+Ozone URL can point to a volume, bucket or keys in the following format:
+
+_\[schema\]\[server:port\]/volume/bucket/key_
+
+
+Where,
+
+1. **Schema** - This should be `o3` which is the native RPC protocol to access
+  Ozone API. The usage of the schema is optional.
+
+2. **Server:Port** - This is the address of the Ozone Manager. If the port is
+omitted the default port from ozone-site.xml will be used.
+
+Depending on the call, the volume/bucket/key names will be part of the URL.
+Please see volume commands, bucket commands, and key commands section for more
+detail.
+
+## Volume operation
+
+Volume is the top level element of the hierarchy and supposed to managed only by the administrators. Quota and the owner user can be defined.
+
+Example commands:
+
+```shell
+> ozone sh volume create /vol1

Review comment:
       ```suggestion
   $ ozone sh volume create /vol1
   ```

##########
File path: hadoop-hdds/docs/content/interface/Cli.md
##########
@@ -0,0 +1,209 @@
+---
+title: Command Line Interface
+weight: 4
+menu:
+   main:
+      parent: "Client Interfaces"
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+
+ Ozone  shell is the primary interface to interact with Ozone. It provides a command shell interface to work against Ozone. It uses the [Java API]({{< ref "interface/JavaApi.md">}}).
+ 
+ There are some functionality which couldn't be accessed without using `ozone sh` commands. For example:
+ 
+  1. Creating volumes with quota
+  2. Managing internal ACLs
+  3. Creating buckets with encryption key
+  
+All of these are one-time, administration tasks. Applications can use Ozone without this CLI using other interface like Hadoop Compatible File System (o3fs or ofs) or S3 interface.
+
+
+Ozone shell help can be invoked at _object_ level or at _action_ level.
+
+For example:
+
+```bash
+ozone sh volume --help
+```
+
+This will show all possible actions for volumes.
+
+or it can be invoked to explain a specific action like
+
+```bash
+ozone sh volume create --help
+```
+
+This command will give you command line options of the create command.
+
+## General Command Format
+
+The Ozone shell commands take the following format.
+
+> _ozone sh object action url_
+
+**ozone** script is used to invoke all Ozone sub-commands. The ozone shell is
+invoked via ```sh``` command.
+
+The object can be a volume, bucket or a key. The action is various verbs like
+create, list, delete etc.
+
+Ozone URL can point to a volume, bucket or keys in the following format:
+
+_\[schema\]\[server:port\]/volume/bucket/key_
+
+
+Where,
+
+1. **Schema** - This should be `o3` which is the native RPC protocol to access
+  Ozone API. The usage of the schema is optional.
+
+2. **Server:Port** - This is the address of the Ozone Manager. If the port is
+omitted the default port from ozone-site.xml will be used.
+
+Depending on the call, the volume/bucket/key names will be part of the URL.
+Please see volume commands, bucket commands, and key commands section for more
+detail.
+
+## Volume operation
+
+Volume is the top level element of the hierarchy and supposed to managed only by the administrators. Quota and the owner user can be defined.
+
+Example commands:
+
+```shell
+> ozone sh volume create /vol1
+```
+
+```shell
+bash-4.2$ ozone sh volume info /vol1
+{
+  "metadata" : { },
+  "name" : "vol1",
+  "admin" : "hadoop",
+  "owner" : "hadoop",
+  "creationTime" : "2020-07-28T12:31:50.112Z",
+  "modificationTime" : "2020-07-28T12:31:50.112Z",
+  "acls" : [ {
+    "type" : "USER",
+    "name" : "hadoop",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  }, {
+    "type" : "GROUP",
+    "name" : "users",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  } ],
+  "quota" : 1152921504606846976
+}
+```
+
+```shell
+ozone sh volume list /
+{
+  "metadata" : { },
+  "name" : "s3v",
+  "admin" : "hadoop",
+  "owner" : "hadoop",
+  "creationTime" : "2020-07-27T11:32:22.314Z",
+  "modificationTime" : "2020-07-27T11:32:22.314Z",
+  "acls" : [ {
+    "type" : "USER",
+    "name" : "hadoop",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  }, {
+    "type" : "GROUP",
+    "name" : "users",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  } ],
+  "quota" : 1152921504606846976
+}
+....
+```
+## Bucket operation
+
+Bucket is the second level hierarchy, similar to the AWS S3 buckets. Users can create buckets in volumes with permissions.
+
+Command examples:
+
+```shell
+> ozone sh bucket create /vol1/bucket1
+```shell
+
+```shell
+> ozone sh bucket info /vol1/bucket1
+{
+  "metadata" : { },
+  "volumeName" : "vol1",
+  "name" : "bucket1",
+  "storageType" : "DISK",
+  "versioning" : false,
+  "creationTime" : "2020-07-28T13:14:45.091Z",
+  "modificationTime" : "2020-07-28T13:14:45.091Z",
+  "encryptionKeyName" : null,
+  "sourceVolume" : null,
+  "sourceBucket" : null
+}
+```
+
+Bucket is the level of the [Transparent Data Encryption]({{< ref "security/SecuringTDE.md" >}})
+
+## Key
+
+Key is the object which can store the data.
+
+```shell
+>ozone sh key put /vol1/bucket1/README.md README.md
+```
+
+<div class="alert alert-warning" role="alert">
+
+The standard `ozone sh _object_type _action_ _url_` scheme can cause some confusion here as the parameter order is `ozone sh key put <DESTINATION> <SOURCE>` instead of the opposite. 
+</div>
+
+
+
+```shell
+>ozone sh key info /vol1/bucket1/README.md
+{
+  "volumeName" : "vol1",
+  "bucketName" : "bucket1",
+  "name" : "README.md",
+  "dataSize" : 3841,
+  "creationTime" : "2020-07-28T13:17:20.749Z",
+  "modificationTime" : "2020-07-28T13:17:21.979Z",
+  "replicationType" : "RATIS",
+  "replicationFactor" : 1,
+  "ozoneKeyLocations" : [ {
+    "containerID" : 1,
+    "localID" : 104591670688743424,
+    "length" : 3841,
+    "offset" : 0
+  } ],
+  "metadata" : { },
+  "fileEncryptionInfo" : null
+}
+```
+
+```shell
+>ozone sh key get /vol1/bucket1/README.md /tmp/

Review comment:
       ```suggestion
   $ ozone sh key get /vol1/bucket1/README.md /tmp/
   ```

##########
File path: hadoop-hdds/docs/content/interface/Cli.md
##########
@@ -0,0 +1,209 @@
+---
+title: Command Line Interface
+weight: 4
+menu:
+   main:
+      parent: "Client Interfaces"
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+
+ Ozone  shell is the primary interface to interact with Ozone. It provides a command shell interface to work against Ozone. It uses the [Java API]({{< ref "interface/JavaApi.md">}}).
+ 
+ There are some functionality which couldn't be accessed without using `ozone sh` commands. For example:
+ 
+  1. Creating volumes with quota
+  2. Managing internal ACLs
+  3. Creating buckets with encryption key
+  
+All of these are one-time, administration tasks. Applications can use Ozone without this CLI using other interface like Hadoop Compatible File System (o3fs or ofs) or S3 interface.
+
+
+Ozone shell help can be invoked at _object_ level or at _action_ level.
+
+For example:
+
+```bash
+ozone sh volume --help
+```
+
+This will show all possible actions for volumes.
+
+or it can be invoked to explain a specific action like
+
+```bash
+ozone sh volume create --help
+```
+
+This command will give you command line options of the create command.
+
+## General Command Format
+
+The Ozone shell commands take the following format.
+
+> _ozone sh object action url_
+
+**ozone** script is used to invoke all Ozone sub-commands. The ozone shell is
+invoked via ```sh``` command.
+
+The object can be a volume, bucket or a key. The action is various verbs like
+create, list, delete etc.
+
+Ozone URL can point to a volume, bucket or keys in the following format:
+
+_\[schema\]\[server:port\]/volume/bucket/key_
+
+
+Where,
+
+1. **Schema** - This should be `o3` which is the native RPC protocol to access
+  Ozone API. The usage of the schema is optional.
+
+2. **Server:Port** - This is the address of the Ozone Manager. If the port is
+omitted the default port from ozone-site.xml will be used.
+
+Depending on the call, the volume/bucket/key names will be part of the URL.

Review comment:
       ```suggestion
   ```

##########
File path: hadoop-hdds/docs/content/interface/Cli.md
##########
@@ -0,0 +1,209 @@
+---
+title: Command Line Interface
+weight: 4
+menu:
+   main:
+      parent: "Client Interfaces"
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+
+ Ozone  shell is the primary interface to interact with Ozone. It provides a command shell interface to work against Ozone. It uses the [Java API]({{< ref "interface/JavaApi.md">}}).
+ 
+ There are some functionality which couldn't be accessed without using `ozone sh` commands. For example:
+ 
+  1. Creating volumes with quota
+  2. Managing internal ACLs
+  3. Creating buckets with encryption key
+  
+All of these are one-time, administration tasks. Applications can use Ozone without this CLI using other interface like Hadoop Compatible File System (o3fs or ofs) or S3 interface.
+
+
+Ozone shell help can be invoked at _object_ level or at _action_ level.
+
+For example:
+
+```bash
+ozone sh volume --help
+```
+
+This will show all possible actions for volumes.
+
+or it can be invoked to explain a specific action like
+
+```bash
+ozone sh volume create --help
+```
+
+This command will give you command line options of the create command.
+
+## General Command Format
+
+The Ozone shell commands take the following format.
+
+> _ozone sh object action url_
+
+**ozone** script is used to invoke all Ozone sub-commands. The ozone shell is
+invoked via ```sh``` command.
+
+The object can be a volume, bucket or a key. The action is various verbs like
+create, list, delete etc.
+
+Ozone URL can point to a volume, bucket or keys in the following format:
+
+_\[schema\]\[server:port\]/volume/bucket/key_
+
+
+Where,
+
+1. **Schema** - This should be `o3` which is the native RPC protocol to access
+  Ozone API. The usage of the schema is optional.
+
+2. **Server:Port** - This is the address of the Ozone Manager. If the port is
+omitted the default port from ozone-site.xml will be used.
+
+Depending on the call, the volume/bucket/key names will be part of the URL.
+Please see volume commands, bucket commands, and key commands section for more
+detail.
+
+## Volume operation
+
+Volume is the top level element of the hierarchy and supposed to managed only by the administrators. Quota and the owner user can be defined.
+
+Example commands:
+
+```shell
+> ozone sh volume create /vol1
+```
+
+```shell
+bash-4.2$ ozone sh volume info /vol1

Review comment:
       ```suggestion
   $ ozone sh volume info /vol1
   ```

##########
File path: hadoop-hdds/docs/content/interface/Cli.md
##########
@@ -0,0 +1,209 @@
+---
+title: Command Line Interface
+weight: 4
+menu:
+   main:
+      parent: "Client Interfaces"
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+
+ Ozone  shell is the primary interface to interact with Ozone. It provides a command shell interface to work against Ozone. It uses the [Java API]({{< ref "interface/JavaApi.md">}}).
+ 
+ There are some functionality which couldn't be accessed without using `ozone sh` commands. For example:
+ 
+  1. Creating volumes with quota
+  2. Managing internal ACLs
+  3. Creating buckets with encryption key
+  
+All of these are one-time, administration tasks. Applications can use Ozone without this CLI using other interface like Hadoop Compatible File System (o3fs or ofs) or S3 interface.
+
+
+Ozone shell help can be invoked at _object_ level or at _action_ level.
+
+For example:
+
+```bash
+ozone sh volume --help
+```
+
+This will show all possible actions for volumes.
+
+or it can be invoked to explain a specific action like
+
+```bash
+ozone sh volume create --help
+```
+
+This command will give you command line options of the create command.
+
+## General Command Format
+
+The Ozone shell commands take the following format.
+
+> _ozone sh object action url_
+
+**ozone** script is used to invoke all Ozone sub-commands. The ozone shell is
+invoked via ```sh``` command.
+
+The object can be a volume, bucket or a key. The action is various verbs like
+create, list, delete etc.
+
+Ozone URL can point to a volume, bucket or keys in the following format:
+
+_\[schema\]\[server:port\]/volume/bucket/key_
+
+
+Where,
+
+1. **Schema** - This should be `o3` which is the native RPC protocol to access
+  Ozone API. The usage of the schema is optional.
+
+2. **Server:Port** - This is the address of the Ozone Manager. If the port is
+omitted the default port from ozone-site.xml will be used.
+
+Depending on the call, the volume/bucket/key names will be part of the URL.
+Please see volume commands, bucket commands, and key commands section for more
+detail.
+
+## Volume operation
+
+Volume is the top level element of the hierarchy and supposed to managed only by the administrators. Quota and the owner user can be defined.
+
+Example commands:
+
+```shell
+> ozone sh volume create /vol1
+```
+
+```shell
+bash-4.2$ ozone sh volume info /vol1
+{
+  "metadata" : { },
+  "name" : "vol1",
+  "admin" : "hadoop",
+  "owner" : "hadoop",
+  "creationTime" : "2020-07-28T12:31:50.112Z",
+  "modificationTime" : "2020-07-28T12:31:50.112Z",
+  "acls" : [ {
+    "type" : "USER",
+    "name" : "hadoop",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  }, {
+    "type" : "GROUP",
+    "name" : "users",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  } ],
+  "quota" : 1152921504606846976
+}
+```
+
+```shell
+ozone sh volume list /
+{
+  "metadata" : { },
+  "name" : "s3v",
+  "admin" : "hadoop",
+  "owner" : "hadoop",
+  "creationTime" : "2020-07-27T11:32:22.314Z",
+  "modificationTime" : "2020-07-27T11:32:22.314Z",
+  "acls" : [ {
+    "type" : "USER",
+    "name" : "hadoop",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  }, {
+    "type" : "GROUP",
+    "name" : "users",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  } ],
+  "quota" : 1152921504606846976
+}
+....
+```
+## Bucket operation
+
+Bucket is the second level hierarchy, similar to the AWS S3 buckets. Users can create buckets in volumes with permissions.
+
+Command examples:
+
+```shell
+> ozone sh bucket create /vol1/bucket1
+```shell
+
+```shell
+> ozone sh bucket info /vol1/bucket1
+{
+  "metadata" : { },
+  "volumeName" : "vol1",
+  "name" : "bucket1",
+  "storageType" : "DISK",
+  "versioning" : false,
+  "creationTime" : "2020-07-28T13:14:45.091Z",
+  "modificationTime" : "2020-07-28T13:14:45.091Z",
+  "encryptionKeyName" : null,
+  "sourceVolume" : null,
+  "sourceBucket" : null
+}
+```
+
+Bucket is the level of the [Transparent Data Encryption]({{< ref "security/SecuringTDE.md" >}})
+
+## Key

Review comment:
       ```suggestion
   ## Key operations
   ```

##########
File path: hadoop-hdds/docs/content/interface/Cli.md
##########
@@ -0,0 +1,209 @@
+---
+title: Command Line Interface
+weight: 4
+menu:
+   main:
+      parent: "Client Interfaces"
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+
+ Ozone  shell is the primary interface to interact with Ozone. It provides a command shell interface to work against Ozone. It uses the [Java API]({{< ref "interface/JavaApi.md">}}).
+ 
+ There are some functionality which couldn't be accessed without using `ozone sh` commands. For example:
+ 
+  1. Creating volumes with quota
+  2. Managing internal ACLs
+  3. Creating buckets with encryption key
+  
+All of these are one-time, administration tasks. Applications can use Ozone without this CLI using other interface like Hadoop Compatible File System (o3fs or ofs) or S3 interface.
+
+
+Ozone shell help can be invoked at _object_ level or at _action_ level.
+
+For example:
+
+```bash
+ozone sh volume --help
+```
+
+This will show all possible actions for volumes.
+
+or it can be invoked to explain a specific action like
+
+```bash
+ozone sh volume create --help
+```
+
+This command will give you command line options of the create command.
+
+## General Command Format
+
+The Ozone shell commands take the following format.
+
+> _ozone sh object action url_
+
+**ozone** script is used to invoke all Ozone sub-commands. The ozone shell is
+invoked via ```sh``` command.
+
+The object can be a volume, bucket or a key. The action is various verbs like
+create, list, delete etc.
+
+Ozone URL can point to a volume, bucket or keys in the following format:
+
+_\[schema\]\[server:port\]/volume/bucket/key_
+
+
+Where,
+
+1. **Schema** - This should be `o3` which is the native RPC protocol to access
+  Ozone API. The usage of the schema is optional.
+
+2. **Server:Port** - This is the address of the Ozone Manager. If the port is
+omitted the default port from ozone-site.xml will be used.
+
+Depending on the call, the volume/bucket/key names will be part of the URL.
+Please see volume commands, bucket commands, and key commands section for more
+detail.
+
+## Volume operation

Review comment:
       ```suggestion
   ## Volume operations
   ```

##########
File path: hadoop-hdds/docs/content/interface/Cli.md
##########
@@ -0,0 +1,209 @@
+---
+title: Command Line Interface
+weight: 4
+menu:
+   main:
+      parent: "Client Interfaces"
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+
+ Ozone  shell is the primary interface to interact with Ozone. It provides a command shell interface to work against Ozone. It uses the [Java API]({{< ref "interface/JavaApi.md">}}).
+ 
+ There are some functionality which couldn't be accessed without using `ozone sh` commands. For example:
+ 
+  1. Creating volumes with quota
+  2. Managing internal ACLs
+  3. Creating buckets with encryption key
+  
+All of these are one-time, administration tasks. Applications can use Ozone without this CLI using other interface like Hadoop Compatible File System (o3fs or ofs) or S3 interface.
+
+
+Ozone shell help can be invoked at _object_ level or at _action_ level.
+
+For example:
+
+```bash
+ozone sh volume --help
+```
+
+This will show all possible actions for volumes.
+
+or it can be invoked to explain a specific action like
+
+```bash
+ozone sh volume create --help
+```
+
+This command will give you command line options of the create command.
+
+## General Command Format
+
+The Ozone shell commands take the following format.
+
+> _ozone sh object action url_
+
+**ozone** script is used to invoke all Ozone sub-commands. The ozone shell is
+invoked via ```sh``` command.
+
+The object can be a volume, bucket or a key. The action is various verbs like
+create, list, delete etc.
+
+Ozone URL can point to a volume, bucket or keys in the following format:
+
+_\[schema\]\[server:port\]/volume/bucket/key_
+
+
+Where,
+
+1. **Schema** - This should be `o3` which is the native RPC protocol to access
+  Ozone API. The usage of the schema is optional.
+
+2. **Server:Port** - This is the address of the Ozone Manager. If the port is
+omitted the default port from ozone-site.xml will be used.
+
+Depending on the call, the volume/bucket/key names will be part of the URL.
+Please see volume commands, bucket commands, and key commands section for more
+detail.
+
+## Volume operation
+
+Volume is the top level element of the hierarchy and supposed to managed only by the administrators. Quota and the owner user can be defined.
+
+Example commands:
+
+```shell
+> ozone sh volume create /vol1
+```
+
+```shell
+bash-4.2$ ozone sh volume info /vol1
+{
+  "metadata" : { },
+  "name" : "vol1",
+  "admin" : "hadoop",
+  "owner" : "hadoop",
+  "creationTime" : "2020-07-28T12:31:50.112Z",
+  "modificationTime" : "2020-07-28T12:31:50.112Z",
+  "acls" : [ {
+    "type" : "USER",
+    "name" : "hadoop",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  }, {
+    "type" : "GROUP",
+    "name" : "users",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  } ],
+  "quota" : 1152921504606846976
+}
+```
+
+```shell
+ozone sh volume list /
+{
+  "metadata" : { },
+  "name" : "s3v",
+  "admin" : "hadoop",
+  "owner" : "hadoop",
+  "creationTime" : "2020-07-27T11:32:22.314Z",
+  "modificationTime" : "2020-07-27T11:32:22.314Z",
+  "acls" : [ {
+    "type" : "USER",
+    "name" : "hadoop",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  }, {
+    "type" : "GROUP",
+    "name" : "users",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  } ],
+  "quota" : 1152921504606846976
+}
+....
+```
+## Bucket operation
+
+Bucket is the second level hierarchy, similar to the AWS S3 buckets. Users can create buckets in volumes with permissions.
+
+Command examples:
+
+```shell
+> ozone sh bucket create /vol1/bucket1
+```shell
+
+```shell
+> ozone sh bucket info /vol1/bucket1

Review comment:
       ```suggestion
   $ ozone sh bucket info /vol1/bucket1
   ```

##########
File path: hadoop-hdds/docs/content/interface/Cli.md
##########
@@ -0,0 +1,209 @@
+---
+title: Command Line Interface
+weight: 4
+menu:
+   main:
+      parent: "Client Interfaces"
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+
+ Ozone  shell is the primary interface to interact with Ozone. It provides a command shell interface to work against Ozone. It uses the [Java API]({{< ref "interface/JavaApi.md">}}).
+ 
+ There are some functionality which couldn't be accessed without using `ozone sh` commands. For example:
+ 
+  1. Creating volumes with quota
+  2. Managing internal ACLs
+  3. Creating buckets with encryption key
+  
+All of these are one-time, administration tasks. Applications can use Ozone without this CLI using other interface like Hadoop Compatible File System (o3fs or ofs) or S3 interface.
+
+
+Ozone shell help can be invoked at _object_ level or at _action_ level.
+
+For example:
+
+```bash
+ozone sh volume --help
+```
+
+This will show all possible actions for volumes.
+
+or it can be invoked to explain a specific action like
+
+```bash
+ozone sh volume create --help
+```
+
+This command will give you command line options of the create command.
+
+## General Command Format
+
+The Ozone shell commands take the following format.
+
+> _ozone sh object action url_
+
+**ozone** script is used to invoke all Ozone sub-commands. The ozone shell is
+invoked via ```sh``` command.
+
+The object can be a volume, bucket or a key. The action is various verbs like
+create, list, delete etc.
+
+Ozone URL can point to a volume, bucket or keys in the following format:
+
+_\[schema\]\[server:port\]/volume/bucket/key_
+
+
+Where,
+
+1. **Schema** - This should be `o3` which is the native RPC protocol to access
+  Ozone API. The usage of the schema is optional.
+
+2. **Server:Port** - This is the address of the Ozone Manager. If the port is
+omitted the default port from ozone-site.xml will be used.
+
+Depending on the call, the volume/bucket/key names will be part of the URL.
+Please see volume commands, bucket commands, and key commands section for more
+detail.
+
+## Volume operation
+
+Volume is the top level element of the hierarchy and supposed to managed only by the administrators. Quota and the owner user can be defined.
+
+Example commands:
+
+```shell
+> ozone sh volume create /vol1
+```
+
+```shell
+bash-4.2$ ozone sh volume info /vol1
+{
+  "metadata" : { },
+  "name" : "vol1",
+  "admin" : "hadoop",
+  "owner" : "hadoop",
+  "creationTime" : "2020-07-28T12:31:50.112Z",
+  "modificationTime" : "2020-07-28T12:31:50.112Z",
+  "acls" : [ {
+    "type" : "USER",
+    "name" : "hadoop",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  }, {
+    "type" : "GROUP",
+    "name" : "users",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  } ],
+  "quota" : 1152921504606846976
+}
+```
+
+```shell
+ozone sh volume list /
+{
+  "metadata" : { },
+  "name" : "s3v",
+  "admin" : "hadoop",
+  "owner" : "hadoop",
+  "creationTime" : "2020-07-27T11:32:22.314Z",
+  "modificationTime" : "2020-07-27T11:32:22.314Z",
+  "acls" : [ {
+    "type" : "USER",
+    "name" : "hadoop",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  }, {
+    "type" : "GROUP",
+    "name" : "users",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  } ],
+  "quota" : 1152921504606846976
+}
+....
+```
+## Bucket operation
+
+Bucket is the second level hierarchy, similar to the AWS S3 buckets. Users can create buckets in volumes with permissions.
+
+Command examples:
+
+```shell
+> ozone sh bucket create /vol1/bucket1
+```shell
+
+```shell
+> ozone sh bucket info /vol1/bucket1
+{
+  "metadata" : { },
+  "volumeName" : "vol1",
+  "name" : "bucket1",
+  "storageType" : "DISK",
+  "versioning" : false,
+  "creationTime" : "2020-07-28T13:14:45.091Z",
+  "modificationTime" : "2020-07-28T13:14:45.091Z",
+  "encryptionKeyName" : null,
+  "sourceVolume" : null,
+  "sourceBucket" : null
+}
+```
+
+Bucket is the level of the [Transparent Data Encryption]({{< ref "security/SecuringTDE.md" >}})
+
+## Key
+
+Key is the object which can store the data.
+
+```shell
+>ozone sh key put /vol1/bucket1/README.md README.md
+```
+
+<div class="alert alert-warning" role="alert">
+
+The standard `ozone sh _object_type _action_ _url_` scheme can cause some confusion here as the parameter order is `ozone sh key put <DESTINATION> <SOURCE>` instead of the opposite. 
+</div>
+
+
+
+```shell
+>ozone sh key info /vol1/bucket1/README.md

Review comment:
       ```suggestion
   $ ozone sh key info /vol1/bucket1/README.md
   ```

##########
File path: hadoop-hdds/docs/content/interface/Cli.md
##########
@@ -0,0 +1,209 @@
+---
+title: Command Line Interface
+weight: 4
+menu:
+   main:
+      parent: "Client Interfaces"
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+
+ Ozone  shell is the primary interface to interact with Ozone. It provides a command shell interface to work against Ozone. It uses the [Java API]({{< ref "interface/JavaApi.md">}}).
+ 
+ There are some functionality which couldn't be accessed without using `ozone sh` commands. For example:
+ 
+  1. Creating volumes with quota
+  2. Managing internal ACLs
+  3. Creating buckets with encryption key
+  
+All of these are one-time, administration tasks. Applications can use Ozone without this CLI using other interface like Hadoop Compatible File System (o3fs or ofs) or S3 interface.
+
+
+Ozone shell help can be invoked at _object_ level or at _action_ level.
+
+For example:
+
+```bash
+ozone sh volume --help
+```
+
+This will show all possible actions for volumes.
+
+or it can be invoked to explain a specific action like
+
+```bash
+ozone sh volume create --help
+```
+
+This command will give you command line options of the create command.
+
+## General Command Format
+
+The Ozone shell commands take the following format.
+
+> _ozone sh object action url_
+
+**ozone** script is used to invoke all Ozone sub-commands. The ozone shell is
+invoked via ```sh``` command.
+
+The object can be a volume, bucket or a key. The action is various verbs like
+create, list, delete etc.
+
+Ozone URL can point to a volume, bucket or keys in the following format:
+
+_\[schema\]\[server:port\]/volume/bucket/key_
+
+
+Where,
+
+1. **Schema** - This should be `o3` which is the native RPC protocol to access
+  Ozone API. The usage of the schema is optional.
+
+2. **Server:Port** - This is the address of the Ozone Manager. If the port is
+omitted the default port from ozone-site.xml will be used.
+
+Depending on the call, the volume/bucket/key names will be part of the URL.
+Please see volume commands, bucket commands, and key commands section for more
+detail.
+
+## Volume operation
+
+Volume is the top level element of the hierarchy and supposed to managed only by the administrators. Quota and the owner user can be defined.
+
+Example commands:
+
+```shell
+> ozone sh volume create /vol1
+```
+
+```shell
+bash-4.2$ ozone sh volume info /vol1
+{
+  "metadata" : { },
+  "name" : "vol1",
+  "admin" : "hadoop",
+  "owner" : "hadoop",
+  "creationTime" : "2020-07-28T12:31:50.112Z",
+  "modificationTime" : "2020-07-28T12:31:50.112Z",
+  "acls" : [ {
+    "type" : "USER",
+    "name" : "hadoop",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  }, {
+    "type" : "GROUP",
+    "name" : "users",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  } ],
+  "quota" : 1152921504606846976
+}
+```
+
+```shell
+ozone sh volume list /
+{
+  "metadata" : { },
+  "name" : "s3v",
+  "admin" : "hadoop",
+  "owner" : "hadoop",
+  "creationTime" : "2020-07-27T11:32:22.314Z",
+  "modificationTime" : "2020-07-27T11:32:22.314Z",
+  "acls" : [ {
+    "type" : "USER",
+    "name" : "hadoop",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  }, {
+    "type" : "GROUP",
+    "name" : "users",
+    "aclScope" : "ACCESS",
+    "aclList" : [ "ALL" ]
+  } ],
+  "quota" : 1152921504606846976
+}
+....
+```
+## Bucket operation
+
+Bucket is the second level hierarchy, similar to the AWS S3 buckets. Users can create buckets in volumes with permissions.

Review comment:
       ```suggestion
   Bucket is the second level of the object hierarchy, and is similar to AWS S3 buckets. Users can create buckets in volumes, if they have the necessary permissions.
   ```




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: ozone-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: ozone-issues-help@hadoop.apache.org


[GitHub] [hadoop-ozone] xiaoyuyao commented on a change in pull request #1269: HDDS-4042. Update documentation for the GA release

Posted by GitBox <gi...@apache.org>.
xiaoyuyao commented on a change in pull request #1269:
URL: https://github.com/apache/hadoop-ozone/pull/1269#discussion_r466089826



##########
File path: hadoop-hdds/docs/content/concept/StorageContainerManager.md
##########
@@ -0,0 +1,104 @@
+---
+title: "Storage Container Manager"
+date: "2017-09-14"
+weight: 3
+menu: 
+  main:
+     parent: Architecture
+summary:  Storage Container Manager or SCM is the core metadata service of Ozone. SCM provides a distributed block layer for Ozone.
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+Storage Container Manager (SCM) is the leader node of the *block space management*. The main responsibility is to create and manage [containers]({{<ref "concept/Containers.md">}}) which is the main replication unit of Ozone.
+
+
+![Storage Container Manager](StorageContainerManager.png)
+
+## Main responsibilities
+
+Storage container manager provides multiple critical functions for the Ozone
+cluster.  SCM acts as the cluster manager, Certificate authority, Block
+manager and the Replica manager.
+
+SCM is in charge of creating an Ozone cluster. When an SCM is booted up via `init` command, SCM creates the cluster identity and root certificates needed for the SCM certificate authority. SCM manages the life cycle of a data node in the cluster.
+
+ 1. SCM is the block manager. SCM
+allocates blocks and assigns them to data nodes. Clients
+read and write these blocks directly.
+
+ 2. SCM keeps track of all the block
+replicas. If there is a loss of data node or a disk, SCM
+detects it and instructs data nodes make copies of the
+missing blocks to ensure high availability.
+
+ 3. **SCM's Ceritificate authority** is in
+charge of issuing identity certificates for each and every
+service in the cluster. This certificate infrastructure makes
+it easy to enable mTLS at network layer and the block
+token infrastructure depends on this certificate infrastructure.
+
+## Main components
+
+For a detailed view of Storage Container Manager this section gives a quick overview about the provided network services and the stored persisted data.
+
+**Network services provided by Storage Container Manager:**

Review comment:
       I'm OK with that. Here is the draft message in Chinese. 
   
   注意:本页面翻译的信息可能滞后,最新的信息请参看英文版的相关页面。




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: ozone-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: ozone-issues-help@hadoop.apache.org


[GitHub] [hadoop-ozone] elek commented on a change in pull request #1269: HDDS-4042. Update documentation for the GA release

Posted by GitBox <gi...@apache.org>.
elek commented on a change in pull request #1269:
URL: https://github.com/apache/hadoop-ozone/pull/1269#discussion_r464277463



##########
File path: hadoop-hdds/docs/content/concept/OzoneManager.md
##########
@@ -21,6 +24,8 @@ summary: Ozone Manager is the principal name space service of Ozone. OM manages
   limitations under the License.
 -->
 
+![Write Path](OzoneManager.png)

Review comment:
       yes. thanks. fixed




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: ozone-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: ozone-issues-help@hadoop.apache.org


[GitHub] [hadoop-ozone] elek commented on pull request #1269: HDDS-4042. Update documentation for the GA release

Posted by GitBox <gi...@apache.org>.
elek commented on pull request #1269:
URL: https://github.com/apache/hadoop-ozone/pull/1269#issuecomment-670542856


   > One remaining question: do we need a Warning to the zh pages where the English version has (significant) changes?
   
   Thanks to @xiaoyuyao, the warning has been added. Tracking Jiras are opened starting with HDDS https://issues.apache.org/jira/browse/HDDS-4079


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: ozone-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: ozone-issues-help@hadoop.apache.org


[GitHub] [hadoop-ozone] elek commented on a change in pull request #1269: HDDS-4042. Update documentation for the GA release

Posted by GitBox <gi...@apache.org>.
elek commented on a change in pull request #1269:
URL: https://github.com/apache/hadoop-ozone/pull/1269#discussion_r467072858



##########
File path: hadoop-hdds/docs/content/concept/StorageContainerManager.md
##########
@@ -0,0 +1,104 @@
+---
+title: "Storage Container Manager"
+date: "2017-09-14"
+weight: 3
+menu: 
+  main:
+     parent: Architecture
+summary:  Storage Container Manager or SCM is the core metadata service of Ozone. SCM provides a distributed block layer for Ozone.
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+Storage Container Manager (SCM) is the leader node of the *block space management*. The main responsibility is to create and manage [containers]({{<ref "concept/Containers.md">}}) which is the main replication unit of Ozone.
+
+
+![Storage Container Manager](StorageContainerManager.png)
+
+## Main responsibilities
+
+Storage container manager provides multiple critical functions for the Ozone
+cluster.  SCM acts as the cluster manager, Certificate authority, Block
+manager and the Replica manager.
+
+SCM is in charge of creating an Ozone cluster. When an SCM is booted up via `init` command, SCM creates the cluster identity and root certificates needed for the SCM certificate authority. SCM manages the life cycle of a data node in the cluster.
+
+ 1. SCM is the block manager. SCM
+allocates blocks and assigns them to data nodes. Clients
+read and write these blocks directly.
+
+ 2. SCM keeps track of all the block
+replicas. If there is a loss of data node or a disk, SCM
+detects it and instructs data nodes make copies of the
+missing blocks to ensure high availability.
+
+ 3. **SCM's Ceritificate authority** is in
+charge of issuing identity certificates for each and every
+service in the cluster. This certificate infrastructure makes
+it easy to enable mTLS at network layer and the block
+token infrastructure depends on this certificate infrastructure.
+
+## Main components
+
+For a detailed view of Storage Container Manager this section gives a quick overview about the provided network services and the stored persisted data.
+
+**Network services provided by Storage Container Manager:**

Review comment:
       Thanks a lot. I added the warning where the original page is updated and created jira issues for missing translations (for the new pages: (HDDS-4079,.....)




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: ozone-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: ozone-issues-help@hadoop.apache.org


[GitHub] [hadoop-ozone] elek commented on a change in pull request #1269: HDDS-4042. Update documentation for the GA release

Posted by GitBox <gi...@apache.org>.
elek commented on a change in pull request #1269:
URL: https://github.com/apache/hadoop-ozone/pull/1269#discussion_r464282676



##########
File path: hadoop-hdds/docs/content/concept/StorageContainerManager.md
##########
@@ -0,0 +1,104 @@
+---
+title: "Storage Container Manager"
+date: "2017-09-14"
+weight: 3
+menu: 
+  main:
+     parent: Architecture
+summary:  Storage Container Manager or SCM is the core metadata service of Ozone. SCM provides a distributed block layer for Ozone.
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+Storage Container Manager (SCM) is the leader node of the *block space management*. The main responsibility is to create and manage [containers]({{<ref "concept/Containers.md">}}) which is the main replication unit of Ozone.
+
+
+![Storage Container Manager](StorageContainerManager.png)
+
+## Main responsibilities
+
+Storage container manager provides multiple critical functions for the Ozone
+cluster.  SCM acts as the cluster manager, Certificate authority, Block
+manager and the Replica manager.
+
+SCM is in charge of creating an Ozone cluster. When an SCM is booted up via `init` command, SCM creates the cluster identity and root certificates needed for the SCM certificate authority. SCM manages the life cycle of a data node in the cluster.
+
+ 1. SCM is the block manager. SCM
+allocates blocks and assigns them to data nodes. Clients
+read and write these blocks directly.
+
+ 2. SCM keeps track of all the block
+replicas. If there is a loss of data node or a disk, SCM
+detects it and instructs data nodes make copies of the
+missing blocks to ensure high availability.
+
+ 3. **SCM's Ceritificate authority** is in
+charge of issuing identity certificates for each and every
+service in the cluster. This certificate infrastructure makes
+it easy to enable mTLS at network layer and the block
+token infrastructure depends on this certificate infrastructure.
+
+## Main components
+
+For a detailed view of Storage Container Manager this section gives a quick overview about the provided network services and the stored persisted data.
+
+**Network services provided by Storage Container Manager:**

Review comment:
       Sure, will create multiple new issues.
   
   What do you think about adding a warning to the zh pages when the English page is changed?
   
   ```
   WARNING: Information may not be up to date: the English version of this page is modified since the last translation. 
   ```
   
   If you like this approach, can you please translate this sentence (or something similar?).




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: ozone-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: ozone-issues-help@hadoop.apache.org


[GitHub] [hadoop-ozone] elek commented on pull request #1269: HDDS-4042. Update documentation for the GA release

Posted by GitBox <gi...@apache.org>.
elek commented on pull request #1269:
URL: https://github.com/apache/hadoop-ozone/pull/1269#issuecomment-667900648


   Thanks the review @adoroszlai, @dineshchitlangia, @xiaoyuyao. All the fixes are applied.
   
   One remaining question: do we need a Warning to the zh pages where the English version has (significant) changes?


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: ozone-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: ozone-issues-help@hadoop.apache.org


[GitHub] [hadoop-ozone] cxorm commented on a change in pull request #1269: HDDS-4042. Update documentation for the GA release

Posted by GitBox <gi...@apache.org>.
cxorm commented on a change in pull request #1269:
URL: https://github.com/apache/hadoop-ozone/pull/1269#discussion_r462807848



##########
File path: hadoop-hdds/docs/content/concept/Containers.md
##########
@@ -0,0 +1,47 @@
+---
+title: Containers
+weight: 5
+menu: 
+  main:
+     parent: Architecture
+summary: Description of the Containers, the replication unif ot Ozone.

Review comment:
       ```suggestion
   summary: Description of the Containers, the replication unit ot Ozone.
   ```

##########
File path: hadoop-hdds/docs/content/concept/Containers.md
##########
@@ -0,0 +1,47 @@
+---
+title: Containers
+weight: 5
+menu: 
+  main:
+     parent: Architecture
+summary: Description of the Containers, the replication unif ot Ozone.

Review comment:
       ```suggestion
   summary: Description of the Containers, the replication unit of Ozone.
   ```




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: ozone-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: ozone-issues-help@hadoop.apache.org


[GitHub] [hadoop-ozone] xiaoyuyao commented on a change in pull request #1269: HDDS-4042. Update documentation for the GA release

Posted by GitBox <gi...@apache.org>.
xiaoyuyao commented on a change in pull request #1269:
URL: https://github.com/apache/hadoop-ozone/pull/1269#discussion_r463156542



##########
File path: hadoop-hdds/docs/content/concept/OzoneManager.md
##########
@@ -21,6 +24,8 @@ summary: Ozone Manager is the principal name space service of Ozone. OM manages
   limitations under the License.
 -->
 
+![Write Path](OzoneManager.png)

Review comment:
       Should the caption here to be "Ozone Manager" instead of "Write Path"?

##########
File path: hadoop-hdds/docs/content/concept/StorageContainerManager.md
##########
@@ -0,0 +1,104 @@
+---
+title: "Storage Container Manager"
+date: "2017-09-14"
+weight: 3
+menu: 
+  main:
+     parent: Architecture
+summary:  Storage Container Manager or SCM is the core metadata service of Ozone. SCM provides a distributed block layer for Ozone.
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+Storage Container Manager (SCM) is the leader node of the *block space management*. The main responsibility is to create and manage [containers]({{<ref "concept/Containers.md">}}) which is the main replication unit of Ozone.
+
+
+![Storage Container Manager](StorageContainerManager.png)
+
+## Main responsibilities
+
+Storage container manager provides multiple critical functions for the Ozone
+cluster.  SCM acts as the cluster manager, Certificate authority, Block
+manager and the Replica manager.
+
+SCM is in charge of creating an Ozone cluster. When an SCM is booted up via `init` command, SCM creates the cluster identity and root certificates needed for the SCM certificate authority. SCM manages the life cycle of a data node in the cluster.
+
+ 1. SCM is the block manager. SCM
+allocates blocks and assigns them to data nodes. Clients
+read and write these blocks directly.
+
+ 2. SCM keeps track of all the block
+replicas. If there is a loss of data node or a disk, SCM
+detects it and instructs data nodes make copies of the
+missing blocks to ensure high availability.
+
+ 3. **SCM's Ceritificate authority** is in
+charge of issuing identity certificates for each and every
+service in the cluster. This certificate infrastructure makes
+it easy to enable mTLS at network layer and the block
+token infrastructure depends on this certificate infrastructure.
+
+## Main components
+
+For a detailed view of Storage Container Manager this section gives a quick overview about the provided network services and the stored persisted data.
+
+**Network services provided by Storage Container Manager:**
+
+ * Pipelines: List/Delete/Activate/Deactivate
+   * pipelines are set of datanodes to form replication groups
+   * Raft groups are planned by SCM
+ * Containers: Create / List / Delete containers
+ * Admin related requests
+  * Safemode status/modification
+  * Replication manager start / stop 
+ * CA authority service
+  * Required by other sever components
+ * Datanode HeartBeat protocol
+   * From Datanode to SCM (30 sec by default)
+   * Datanodes report the status of containers, node...
+   * SCM can add commands to the response
+
+Note: client doesn't connect directly to the SCM
+
+**Persisted state**
+
+
+The following data is persisted in Storage Container Manager side in a specific RocksDB directory
+
+ * Pipelines
+   * Replication group of servers. Maintained to find a group for new container/block allocations.
+ * Containers
+   * Containers are the replication units. Data is required to act in case of data under/over replicated.
+ * Deleted blocks
+   * Block data is deleted in the background. Need a list to follow the progress.
+ * Valid cert, Revoked certs
+  * Used by the internal Certificate Authority to authorize other Ozone services
+ * List of nodes
+   * It's reported by the Datanodes via HB. *Not persisted*

Review comment:
       can we remove "List of nodes" as it is not persisted.

##########
File path: hadoop-hdds/docs/content/design/ec.md
##########
@@ -0,0 +1,39 @@
+---
+title: Erasure Coding in Ozone 
+summary: Crypto key management to handle GDPR "right to be forgotten" feature

Review comment:
       The summary "Crypto key management to handle GDPR "right to be forgotten" feature" seems to be copied from GDPR and should be rewritten for EC.

##########
File path: hadoop-hdds/docs/content/design/ec.md
##########
@@ -0,0 +1,39 @@
+---
+title: Erasure Coding in Ozone 
+summary: Crypto key management to handle GDPR "right to be forgotten" feature
+date: 2020-06-30
+jira: HDDS-3816
+status: draft
+author: Uma Maheswara Rao Gangumalla, Marton Elek, Stephen O'Donnell 
+---
+<!--
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License. See accompanying LICENSE file.
+-->
+
+# Abstract
+
+ Support Erasure Coding for read and write pipeline of Ozone.
+  
+# Status
+
+ The design doc describe two main method to implement EC:

Review comment:
       NIT: The design doc describe two main method => The design doc describes two main methods

##########
File path: hadoop-hdds/docs/content/concept/StorageContainerManager.md
##########
@@ -0,0 +1,104 @@
+---
+title: "Storage Container Manager"
+date: "2017-09-14"
+weight: 3
+menu: 
+  main:
+     parent: Architecture
+summary:  Storage Container Manager or SCM is the core metadata service of Ozone. SCM provides a distributed block layer for Ozone.
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+Storage Container Manager (SCM) is the leader node of the *block space management*. The main responsibility is to create and manage [containers]({{<ref "concept/Containers.md">}}) which is the main replication unit of Ozone.
+
+
+![Storage Container Manager](StorageContainerManager.png)
+
+## Main responsibilities
+
+Storage container manager provides multiple critical functions for the Ozone
+cluster.  SCM acts as the cluster manager, Certificate authority, Block
+manager and the Replica manager.
+
+SCM is in charge of creating an Ozone cluster. When an SCM is booted up via `init` command, SCM creates the cluster identity and root certificates needed for the SCM certificate authority. SCM manages the life cycle of a data node in the cluster.
+
+ 1. SCM is the block manager. SCM
+allocates blocks and assigns them to data nodes. Clients
+read and write these blocks directly.
+
+ 2. SCM keeps track of all the block
+replicas. If there is a loss of data node or a disk, SCM
+detects it and instructs data nodes make copies of the
+missing blocks to ensure high availability.
+
+ 3. **SCM's Ceritificate authority** is in
+charge of issuing identity certificates for each and every
+service in the cluster. This certificate infrastructure makes
+it easy to enable mTLS at network layer and the block
+token infrastructure depends on this certificate infrastructure.
+
+## Main components
+
+For a detailed view of Storage Container Manager this section gives a quick overview about the provided network services and the stored persisted data.
+
+**Network services provided by Storage Container Manager:**

Review comment:
       Can you open a ticket to update zh version of the StroageContainerManger.zh.md update?

##########
File path: hadoop-hdds/docs/content/feature/HA.md
##########
@@ -0,0 +1,115 @@
+---
+title: "High Availability"
+weight: 1
+menu:
+   main:
+      parent: Features
+summary: HA setup for Ozone to avoid any single point of failure.
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+Ozone has two leader nodes (*Ozone Manager* for key space management and *Storage Container Management* for block space management) and storage nodes (Datanode). Data is replicated between datanodes with the help of RAFT consensus algorithm.
+
+To avoid any single point of failure the leader nodes also should have a HA setup.
+
+ 1. HA of Ozone Manager is implemented with the help of RAFT (Apache Ratis)
+ 2. HA of Storage Container Manager is [under implementation]({{< ref "omha.md">}})

Review comment:
       should the ref be "scmha.md"?




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: ozone-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: ozone-issues-help@hadoop.apache.org


[GitHub] [hadoop-ozone] elek commented on a change in pull request #1269: HDDS-4042. Update documentation for the GA release

Posted by GitBox <gi...@apache.org>.
elek commented on a change in pull request #1269:
URL: https://github.com/apache/hadoop-ozone/pull/1269#discussion_r464277979



##########
File path: hadoop-hdds/docs/content/concept/StorageContainerManager.md
##########
@@ -0,0 +1,104 @@
+---
+title: "Storage Container Manager"
+date: "2017-09-14"
+weight: 3
+menu: 
+  main:
+     parent: Architecture
+summary:  Storage Container Manager or SCM is the core metadata service of Ozone. SCM provides a distributed block layer for Ozone.
+---
+<!---
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+Storage Container Manager (SCM) is the leader node of the *block space management*. The main responsibility is to create and manage [containers]({{<ref "concept/Containers.md">}}) which is the main replication unit of Ozone.
+
+
+![Storage Container Manager](StorageContainerManager.png)
+
+## Main responsibilities
+
+Storage container manager provides multiple critical functions for the Ozone
+cluster.  SCM acts as the cluster manager, Certificate authority, Block
+manager and the Replica manager.
+
+SCM is in charge of creating an Ozone cluster. When an SCM is booted up via `init` command, SCM creates the cluster identity and root certificates needed for the SCM certificate authority. SCM manages the life cycle of a data node in the cluster.
+
+ 1. SCM is the block manager. SCM
+allocates blocks and assigns them to data nodes. Clients
+read and write these blocks directly.
+
+ 2. SCM keeps track of all the block
+replicas. If there is a loss of data node or a disk, SCM
+detects it and instructs data nodes make copies of the
+missing blocks to ensure high availability.
+
+ 3. **SCM's Ceritificate authority** is in
+charge of issuing identity certificates for each and every
+service in the cluster. This certificate infrastructure makes
+it easy to enable mTLS at network layer and the block
+token infrastructure depends on this certificate infrastructure.
+
+## Main components
+
+For a detailed view of Storage Container Manager this section gives a quick overview about the provided network services and the stored persisted data.
+
+**Network services provided by Storage Container Manager:**
+
+ * Pipelines: List/Delete/Activate/Deactivate
+   * pipelines are set of datanodes to form replication groups
+   * Raft groups are planned by SCM
+ * Containers: Create / List / Delete containers
+ * Admin related requests
+  * Safemode status/modification
+  * Replication manager start / stop 
+ * CA authority service
+  * Required by other sever components
+ * Datanode HeartBeat protocol
+   * From Datanode to SCM (30 sec by default)
+   * Datanodes report the status of containers, node...
+   * SCM can add commands to the response
+
+Note: client doesn't connect directly to the SCM
+
+**Persisted state**
+
+
+The following data is persisted in Storage Container Manager side in a specific RocksDB directory
+
+ * Pipelines
+   * Replication group of servers. Maintained to find a group for new container/block allocations.
+ * Containers
+   * Containers are the replication units. Data is required to act in case of data under/over replicated.
+ * Deleted blocks
+   * Block data is deleted in the background. Need a list to follow the progress.
+ * Valid cert, Revoked certs
+  * Used by the internal Certificate Authority to authorize other Ozone services
+ * List of nodes
+   * It's reported by the Datanodes via HB. *Not persisted*

Review comment:
       sure




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: ozone-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: ozone-issues-help@hadoop.apache.org