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