jojochuang commented on code in PR #8734:
URL: https://github.com/apache/ozone/pull/8734#discussion_r2202829548


##########
hadoop-hdds/docs/content/start/ProductionDeployment.md:
##########
@@ -0,0 +1,82 @@
+---
+title: Production Deployment
+weight: 6
+menu:
+  main:
+    parent: Getting Started
+---
+<!--
+  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.
+-->
+
+This document provides guidance on the requirements and best practices for a 
production deployment of Apache Ozone.
+
+## Ozone Components
+
+A typical production Ozone cluster includes the following services:
+
+*   **Ozone Manager (OM)**: Manages the namespace and metadata of the Ozone 
cluster. A production cluster requires 3 OM instances for high availability.
+*   **Storage Container Manager (SCM)**: Manages the data nodes and pipelines. 
A production cluster requires 3 SCM instances for high availability.
+*   **DataNode**: Stores the actual data in containers. A production cluster 
requires at least 3 DataNodes.
+*   **Recon**: A web-based UI for monitoring and managing the Ozone cluster. A 
Recon server is strongly recommended, though not required.
+*   **S3 Gateway (S3G)**: An S3-compatible gateway for accessing Ozone. 
Multiple S3 Gateway instances are strongly recommended to load balance S3 
traffic.
+*   **HttpFs**: An HDFS-compatible API for accessing Ozone. This is an 
optional component.
+
+## Requirements
+
+### System Requirements
+
+*   **Operating System**: Linux (recommended distributions: Red Hat 8/Rocky 
8+, Ubuntu, SUSE; supported architectures: x86/ARM).
+*   **Java Development Kit (JDK)**: Version 8 or higher.
+*   **Time Synchronization**: A time synchronization service such as Chrony or 
ntpd must be enabled to prevent time drift.
+
+### Storage Requirements
+
+*   **Ozone Manager (OM) and Storage Container Manager (SCM) Metadata 
Storage**: Use SAS SSD or NVMe SSD for metadata (RocksDB and Ratis) to ensure 
optimal performance.
+*   **DataNode Storage**:
+    *   **Ratis Log**: Use SAS SSD or NVMe SSD for the Ratis log directory for 
low latency writes.
+    *   **Container Data**: Hard disks are acceptable for container data 
storage.
+*   **Storage Type**: Use direct-attached storage. Do not use Network Attached 
Storage (NAS) or Storage Area Network (SAN).
+
+### Network Requirements
+
+*   **Network Bandwidth**: A minimum of 25Gbps network card bandwidth is 
recommended.
+*   **Network Topology**: A leaf-spine network topology with an 
oversubscription ratio below 3:1 is recommended for predictable performance.
+
+### Security Requirements (Optional but Recommended)
+
+*   **Kerberos**: A Kerberos environment, including a Key Distribution Center 
(KDC), is recommended for enhanced security.
+
+## Recommended Configurations
+
+### Linux Kernel
+
+*   **CPU Governor**: Set the CPU scaling driver to `performance` mode to 
maximize performance.
+*   **Transparent Hugepage**: Disable Transparent Hugepage to avoid 
performance issues.
+*   **SELinux**: Disable SELinux.
+*   **Swappiness**: Set `vm.swappiness=1` to minimize swapping.

Review Comment:
   Similar to THP, this is one of the very first thing on the performance 
checklist.
   IIRC Linux virtual memory interacts poorly with large heap Java processes.



-- 
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.

To unsubscribe, e-mail: issues-unsubscr...@ozone.apache.org

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


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

Reply via email to