From: Jackie Huang Date: Fri, 13 Dec 2024 09:08:08 +0000 (+0800) Subject: overview.rst: Update for K-Release X-Git-Tag: k-release~1 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=6a5b51c00b3350896e34e1410f229a3c9c534bf7;p=pti%2Frtp.git overview.rst: Update for K-Release Issue-ID: INF-485 Signed-off-by: Jackie Huang Change-Id: I814c9bc0421d41162553a9b57fe6b307b8ddd681 --- diff --git a/docs/overview.rst b/docs/overview.rst index afab9940..29239fa2 100644 --- a/docs/overview.rst +++ b/docs/overview.rst @@ -2,43 +2,126 @@ .. SPDX-License-Identifier: CC-BY-4.0 .. Copyright (C) 2019-2024 Wind River Systems, Inc. -Infrastructure Overview (INF) -============================= +Documentation of Infrastructure (INF) Project +============================================= -This project is a reference implementation of O-Cloud infrastructure and it implements a real time platform (rtp) to deploy the O-CU and O-DU. +.. contents:: + :depth: 3 + :local: -In O-RAN architecture, the O-DU and O-CU could have different deployed scenarios. -The could be container based or VM based, which will be both supported in the release. -In general the performance sensitive parts of the 5G stack require real time platform, -especially for O-DU, the L1 and L2 are requiring the real time feature, -the platform should support the Preemptive Scheduling feature. - -Following requirements are going to address the container based solution: +INF Overview +************ -1. Support the real time kernel -2. Support Node Feature Discovery -3. Support CPU Affinity and Isolation -4. Support Dynamic HugePages Allocation +This project is for reference implementations of O-Cloud infrastructure which is compliant with `O-RAN Cloud Platform Reference Designs`_ in `O-RAN ALLIANCE Specifications`_. -And for the network requirements, the following should be supported: +In O-RAN architecture, the near-RT RIC, O-DU and O-CU could have different deployment scenarios. They could be container based or VM based, and the performance sensitive parts +of the 5G stack require real time platform, especially for O-DU, the L1 and L2 are requiring the real time feature, all these will be supported by the O-Clouds in INF project. -1. Multiple Networking Interface -2. High performance data plane including the DPDK based vswitch and PCI pass-through/SR-IOV. +`StarlingX`_ is an opensrouce cloud-native infrastructure project with fully integrated cloud software stack that provides a fully featured open source distributed cloud +(See `StarlingX Distributed Cloud`_ for details). In different deployment scenarios in the O-RAN architecture, `StarlingX`_ O-Cloud can be deployed as a Regional Cloud Platform +to support Near-RT RIC and/or O-CU, or as Edge Cloud Platform to support O-DU and/or O-CU. -O-Cloud Components ------------------- +INF O-Cloud O2 sub-project +************************** -In this project, the following O-Cloud components and services are enabled: +The INF O-Cloud O2 sub-project is for reference implementations of the O-RAN O2 IMS and DMS service to expose the INF O-Cloud to SMO via the O-RAN O2 interface. + +Please see the detail of O2 service in the `INF O2 Service Overview`_. + +And the INF O2 service is also integrated in `StarlingX`_ O-Cloud as a containerized application, please see the detail in the `O-RAN O2 Application in StarlingX`_ +and the `StarlingX O-RAN O2 Application Installation Guide`_. + +INF O-Cloud Spec Compliance +*************************** + +The following lists all reference implementations in INF project that are compliant with the O-RAN specifications. + +- INF StarlingX O-Cloud is compliant with: + + - "O-RAN Cloud Platform Reference Designs 2.0"(`O-RAN.WG6.CLOUD-REF-v02.00`_) + +- INF StarlingX O2 interface is compliant with: + + - "O-RAN O2ims Interface Specification 6.0"(`O-RAN.WG6.O2IMS-INTERFACE-R003-v06.00`_) + - "O-RAN O2dms Interface Specification: Kubernetes Native API Profile for Containerized NFs 5.0"(`O-RAN.WG6.O2DMS-INTERFACE-K8S-PROFILE-R003-v05.00`_) + +- INF `StarlingX PTP Notification API`_ v2 conforms to "O-RAN O-Cloud Notification API Specification for Event Consumers 2.01"(`O-RAN.WG6.O-Cloud Notification API-v02.01`_) + with the following exceptions, that are not supported in `StarlingX`_: + + - O-RAN SyncE Lock-Status-Extended notifications + - O-RAN SyncE Clock Quality Change notifications + - O-RAN Custom cluster names + - /././sync endpoint + +Supported O-Cloud Requirements +****************************** + +Operating System Requirements +----------------------------- + +1. Support both the standard kernel and the real time kernel. + + - StarlingX offers a choice of two performance profiles: `StarlingX Worker Function Performance Profiles`_ + +2. Deterministic interrupt handling with a maximum latency of 20 μs for the real time kernel. + + - StarlingX supports this with the "Low Latency" profile in `StarlingX Worker Function Performance Profiles`_ + +3. CRI plugin containerd support. + + - `StarlingX containerd support`_ + +4. QEMU/KVM support for virtual machines. + + - StarlingX supports KubeVirt(`StarlingX KubeVirt`_) and OpenStack(`StarlingX OpenStack`_) for virtual machines, and both KubeVirt and OpenStack are based on QEMU/KVM. + +Cloud Platform Runtime Requirements +----------------------------------- + +1. Accelerator Driver: driver for loading, configuring, managing and interfacing with accelerator hardware providing offload functions for O-DU container or VM. + + - See `StarlingX Verified Commercial Hardware`_ for supported accelerators. + - See `StarlingX SR-IOV FEC Operator`_ as example of how to use accelerators in StarlingX. + +2. Network Driver: Network driver(s) for front-haul, back-haul, mid-haul, inter container or VM communication, management and storage networks. + + - See `StarlingX Verified Commercial Hardware`_ and `StarlingX OpenStack Verified Commercial Hardware`_ for supported network cards. + - See `StarlingX Network Requirements`_ for details of different networks. + +3. Board Management: Board management for interfacing with server hardware and sensors. + + - See `StarlingX Provision BMC from Horizon`_ and `StarlingX provision BMC from CLI`_ for details. + +4. PTP: Precision time protocol for distributing phase, time and synchronization over a packetbased network. + + - See `StarlingX PTP Overview`_ for details. + +5. Software-defined Storage (SDS): Software implementation of block storage running on COTS servers, + + - See `StarlingX Storage`_ for details. + +6. Container Runtime: Executes and manages container images on a node. + + - See `StarlingX containerd support`_ + +7. Hypervisor: Allows host to run multiple isolated VMs. + + - StarlingX supports KubeVirt(`StarlingX KubeVirt`_) and OpenStack(`StarlingX OpenStack`_) for virtual machines. + + + +Generic Requirements for Cloud Platform Management +-------------------------------------------------- 1. Fault Management - - Framework for infrastructure services to raise and persist alarm and event data. + - Framework for infrastructure services via API - Set, clear and query customer alarms - Generate customer logs for significant events - Maintains an Active Alarm List - - Provides REST API to query alarms and events, also available through SNMP traps + - Provides REST API to query alarms and events - Support for alarm suppression - Operator alarms @@ -51,13 +134,16 @@ In this project, the following O-Cloud components and services are enabled: - Related to platform nodes and resources - Related to hosted virtual resources + - `StarlingX Kubernetes Fault Management Overview`_ + - `StarlingX OpenStack Fault Management Overview`_ + 2. Configuration Management - - Manages Installation and Commissioning - - - Auto-discover of new nodes - - Full Infrastructure management + - Managed Installation + + - Auto-discovery of new nodes - Manage installation parameters (i.e. console, root disks) + - Bulk provisioning of nodes through XML file - Nodal Configuration @@ -65,7 +151,7 @@ In this project, the following O-Cloud components and services are enabled: - Core, memory (including huge page) assignments - Network Interfaces and storage assignments - - Hardware Discovery + - Inventory Discovery - CPU/cores, SMT, processors, memory, huge pages - Storage, ports @@ -125,22 +211,41 @@ In this project, the following O-Cloud components and services are enabled: - Messages are authenticated using HMAC - SHA-512 if configured / enabled on an interface by-interface basis -6. Support the ansible bootstrap to implement the zero touch provisioning +6. HA Management + + - High-availability services for supporting cloud platform redundancy + +7. User Management + + - User authentication and authorization + - Isolation of control and resources among different users + +8. Node Feature Management + + - Detection and setting of node-level policies to align resource allocation choices (i.e.NUMA, SR-IOV, CPU, etc.) -Enable the ansible configuration functions for infrastructure itself including the image installation and service configuration. +9. HW Accelerator Management -NOTE: These features leverage the StarlingX (www.starlingx.io). And in current release, these features are only avalaible for IA platform. + - Support for managing hardware accelerators, mapping them to O-RAN applications VMs and/or containers, and updating accelerator firmware -Multi OS and Deployment Configurations --------------------------------------- +10. Support the ansible bootstrap to implement the low touch provisioning -* The INF project supports Multi OS and currently the following OS are supported: + - Enable the ansible configuration functions for infrastructure itself including the image installation and service configuration. + +11. Distributed Cloud + + - StarlingX Distributed Cloud configuration supports an edge computing solution by providing central management and orchestration for + a geographically distributed network of StarlingX systems. + - See `StarlingX Distributed Cloud`_ for details. + +Multi O-Clouds and Deployment Configurations +******************************************** + +* The INF project supports Multi O-Clouds and currently the following OS are supported: * StarlingX * Debian 11 (bullseye) - * CentOS 7 - * Yocto 2.7 (warrior) * OKD @@ -150,57 +255,74 @@ A variety of deployment configuration options are supported: 1. **All-in-one Simplex** - A single physical server providing all three cloud functions (controller, worker and storage). + A single physical server providing all three cloud functions (controller, worker and storage). 2. **All-in-one Duplex** - Two HA-protected physical servers, both running all three cloud functions (controller, worker and storage), optionally with up to 50 worker nodes added to the cluster. + Two HA-protected physical servers, both running all three cloud functions (controller, worker and storage), optionally with up to 50 worker nodes added to the cluster. 3. **All-in-one Duplex + up to 50 worker nodes** - Two HA-protected physical servers, both running all three cloud functions (controller, worker and storage), plus with up to 50 worker nodes added to the cluster. + Two HA-protected physical servers, both running all three cloud functions (controller, worker and storage), plus with up to 50 worker nodes added to the cluster. 4. **Standard with Storage Cluster on Controller Nodes** - A two node HA controller + storage node cluster, managing up to 200 worker nodes. + A two node HA controller + storage node cluster, managing up to 200 worker nodes. 5. **Standard with Storage Cluster on dedicated Storage Nodes** - A two node HA controller node cluster with a 2-9 node Ceph storage cluster, managing up to 200 worker nodes. + A two node HA controller node cluster with a 2-9 node Ceph storage cluster, managing up to 200 worker nodes. 6. **Distributed Cloud** - Distributed Cloud configuration supports an edge computing solution by providing central management and orchestration for a geographically distributed network of StarlingX systems. + Distributed Cloud configuration supports an edge computing solution by providing central management and orchestration for a geographically distributed network of StarlingX systems. **NOTE:** + - For StarlingX O-Cloud, all the above deployment configuration are supported. + - For OKD O-Cloud, only All-in-one Simplex is supported currently. - - For Debian and CentOS based image, all the above deployment configuration are supported. - - For Yocto Based image, only deployment 1 - 3 are supported, and only container based solution is supported, VM based is not supprted yet. - -About Yocto and OpenEmbedded ----------------------------- -The Yocto Project is an open source collaboration project that provides templates, -tools and methods to help you create custom Linux-based systems for embedded and -IOT products, regardless of the hardware architecture. - -OpenEmbedded is a build automation framework and cross-compile environment used -to create Linux distributions for embedded devices. The OpenEmbedded framework -is developed by the OpenEmbedded community, which was formally established in 2003. -OpenEmbedded is the recommended build system of the Yocto Project, which is a Linux -Foundation workgroup that assists commercial companies in the development of Linux-based -systems for embedded products. - +Upstream Opensource Projects +**************************** About StarlingX --------------- -StarlingX is a complete cloud infrastructure software stack for the edge used by the most demanding applications in industrial IOT, telecom, video delivery and other ultra-low latency use cases. With deterministic low latency required by edge applications, and tools that make distributed edge manageable, StarlingX provides a container-based infrastructure for edge implementations in scalable solutions that is ready for production now. +StarlingX is a complete cloud infrastructure software stack for the edge used by the most demanding applications in industrial IOT, telecom, video delivery and +other ultra-low latency use cases. With deterministic low latency required by edge applications, and tools that make distributed edge manageable, StarlingX +provides a container-based infrastructure for edge implementations in scalable solutions that is ready for production now. About OKD --------- -OKD is a complete open source container application platform and the community Kubernetes distribution that powers Red Hat OpenShift. +OKD is a complete open source container application platform and the community Kubernetes distribution that powers OpenShift. Contact info ------------- +============ If you need support or add new features/components, please feel free to contact the following: - - Jackie Huang + - Jackie Huang + +.. _`O-RAN ALLIANCE Specifications`: https://specifications.o-ran.org/specifications +.. _`O-RAN Cloud Platform Reference Designs`: https://specifications.o-ran.org/download?id=55 +.. _`StarlingX`: https://www.starlingx.io/ +.. _`StarlingX Distributed Cloud`: https://docs.starlingx.io/dist_cloud/index-dist-cloud-f5dbeb16b976.html +.. _`INF O2 Service Overview`: https://docs.o-ran-sc.org/projects/o-ran-sc-pti-o2/en/latest/overview.html +.. _`O-RAN O2 Application in StarlingX`: https://www.starlingx.io/blog/starlingx-oran-o2-application/ +.. _`StarlingX O-RAN O2 Application Installation Guide`: https://docs.starlingx.io/r/stx.9.0/admintasks/kubernetes/oran-o2-application-b50a0c899e66.html +.. _`O-RAN.WG6.CLOUD-REF-v02.00`: https://specifications.o-ran.org/download?id=55 +.. _`O-RAN.WG6.O2IMS-INTERFACE-R003-v06.00`: https://specifications.o-ran.org/download?id=674 +.. _`O-RAN.WG6.O2DMS-INTERFACE-K8S-PROFILE-R003-v05.00`: https://specifications.o-ran.org/download?id=677 +.. _`O-RAN.WG6.O-Cloud Notification API-v02.01`: https://specifications.o-ran.org/download?id=300 +.. _`StarlingX PTP Notification API`: https://docs.starlingx.io/releasenotes/index.html#ptp-o-ran-spec-compliant-timing-api-notification +.. _`StarlingX Worker Function Performance Profiles`: https://docs.starlingx.io/deploy/kubernetes/worker-function-performance-profiles.html +.. _`StarlingX containerd support`: https://opendev.org/starlingx/integ/src/branch/master/kubernetes/containerd/debian +.. _`StarlingX KubeVirt`: https://docs.starlingx.io/kube-virt/index-kubevirt-f1bfd2a21152.html +.. _`StarlingX OpenStack`: https://docs.starlingx.io/planning/index-planning-332af0718d15.html#openstack +.. _`StarlingX Verified Commercial Hardware`: https://docs.starlingx.io/planning/kubernetes/verified-commercial-hardware.html +.. _`StarlingX OpenStack Verified Commercial Hardware`: https://docs.starlingx.io/planning/openstack/installation-and-resource-planning-verified-commercial-hardware.html +.. _`StarlingX SR-IOV FEC Operator`: https://docs.starlingx.io/node_management/kubernetes/hardware_acceleration_devices/configure-sriov-fec-operator-to-enable-hw-accelerators-for-hosted-vran-containarized-workloads.html +.. _`StarlingX Network Requirements`: https://docs.starlingx.io/planning/kubernetes/network-requirements.html +.. _`StarlingX Provision BMC from Horizon`: https://docs.starlingx.io/node_management/kubernetes/provisioning_bmc/provisioning-board-management-control-from-horizon.html +.. _`StarlingX provision BMC from CLI`: https://docs.starlingx.io/node_management/kubernetes/provisioning_bmc/provisioning-board-management-control-using-the-cli.html +.. _`StarlingX PTP Overview`: https://docs.starlingx.io/system_configuration/kubernetes/ptp-introduction-d981dd710bda.html +.. _`StarlingX Storage`: https://docs.starlingx.io/storage/index-storage-6cd708f1ada9.html +.. _`StarlingX Kubernetes Fault Management Overview`: https://docs.starlingx.io/fault-mgmt/kubernetes/fault-management-overview.html +.. _`StarlingX OpenStack Fault Management Overview`: https://docs.starlingx.io/fault-mgmt/openstack/openstack-fault-management-overview.html