Skip to content

Commit c16f83e

Browse files
authored
Merge pull request #44242 from StephenJamesSmith/TELCODOCS-347-SNO-DU-INSTALL-NEW
TELCODOCS-347-SNO-DU-INSTALL
2 parents 23d91cd + e827224 commit c16f83e

17 files changed

+865
-30
lines changed

_topic_maps/_topic_map.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2221,6 +2221,9 @@ Topics:
22212221
- Name: Creating a performance profile
22222222
File: cnf-create-performance-profiles
22232223
Distros: openshift-origin,openshift-enterprise
2224+
- Name: Deploying distributed units manually on single node OpenShift
2225+
File: ztp-configuring-single-node-cluster-deployment-during-installation
2226+
Distros: openshift-origin,openshift-enterprise
22242227
- Name: Provisioning and deploying a distributed unit (DU)
22252228
File: cnf-provisioning-and-deploying-a-distributed-unit
22262229
Distros: openshift-webscale
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * scalability_and_performance/sno-du-deploying-clusters-on-single-nodes.adoc
4+
5+
:_content-type: CONCEPT
6+
[id="sno-du-applying-the-distributed-unit-configuration-to-sno_{context}"]
7+
= Applying the distributed unit (DU) configuration to a single node cluster
8+
9+
Perform the following tasks to configure a single node cluster for a DU:
10+
11+
* Apply the required extra installation manifests at installation time.
12+
13+
* Apply the post-install configuration custom resources (CRs).
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// Module included in the following assemblies:
2+
//
3+
// *scalability_and_performance/sno-du-deploying-clusters-on-single-nodes.adoc
4+
5+
:_content-type: PROCEDURE
6+
[id="sno-du-applying-the-extra-installation-manifests_{context}"]
7+
= Applying the extra installation manifests
8+
9+
To apply the distributed unit (DU) configuration to the single node cluster, the following
10+
extra installation manifests need to be included during installation:
11+
12+
* Enable workload partitioning.
13+
* Other `MachineConfig` objects – There is a set of `MachineConfig` custom resources (CRs) included by default. You can choose to include these additional `MachineConfig` CRs that are unique to their environment. It is recommended, but not required, to apply these CRs during installation in order to minimize the number of reboots that can occur during post-install configuration.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// Module included in the following assemblies:
2+
//
3+
// *scalability_and_performance/sno-du-deploying-clusters-on-single-nodes.adoc
4+
5+
:_content-type: PROCEDURE
6+
[id="sno-du-applying-the-post-install-configuration-custom-resources_{context}"]
7+
= Applying the post-install configuration custom resources (CRs)
8+
9+
* After {product-title} is installed on the cluster, use the following command to apply the
10+
CRs you configured for the distributed units (DUs):
11+
12+
[source,terminal]
13+
----
14+
$ oc apply -f <file_name>.yaml
15+
----
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
// Module included in the following assemblies:
2+
//
3+
// *scalability_and_performance/sno-du-deploying-clusters-on-single-nodes.adoc
4+
5+
:_content-type: PROCEDURE
6+
[id="sno-du-configuring-logging-locally-and-forwarding_{context}"]
7+
= Configuring logging locally and forwarding
8+
9+
To be able to debug a single node distributed unit (DU), logs need to be stored for further
10+
analysis.
11+
12+
.Procedure
13+
14+
* Edit the `ClusterLogging` custom resource (CR) in the `openshift-logging` project:
15+
+
16+
[source,yaml]
17+
----
18+
apiVersion: logging.openshift.io/v1
19+
kind: ClusterLogging <1>
20+
metadata:
21+
name: instance
22+
namespace: openshift-logging
23+
spec:
24+
collection:
25+
logs:
26+
fluentd: {}
27+
type: fluentd
28+
curation:
29+
type: "curator"
30+
curator:
31+
schedule: "30 3 * * *"
32+
managementState: Managed
33+
---
34+
apiVersion: logging.openshift.io/v1
35+
kind: ClusterLogForwarder <2>
36+
metadata:
37+
name: instance
38+
namespace: openshift-logging
39+
spec:
40+
inputs:
41+
- infrastructure: {}
42+
outputs:
43+
- name: kafka-open
44+
type: kafka
45+
url: tcp://10.46.55.190:9092/test <3>
46+
pipelines:
47+
- inputRefs:
48+
- audit
49+
name: audit-logs
50+
outputRefs:
51+
- kafka-open
52+
- inputRefs:
53+
- infrastructure
54+
name: infrastructure-logs
55+
outputRefs:
56+
- kafka-open
57+
----
58+
<1> Updates the existing instance or creates the instance if it does not exist.
59+
<2> Updates the existing instance or creates the instance if it does not exist.
60+
<3> Specifies the destination of the kafka server.
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * scalability_and_performance/sno-du-deploying-clusters-on-single-nodes.adoc
4+
5+
:_content-type: PROCEDURE
6+
[id="sno-du-configuring-performance-addons_{context}"]
7+
= Configuring the Performance Addon Operator
8+
9+
This is a key configuration for the single node distributed unit (DU). Many of the real-time capabilities and service assurance are configured here.
10+
11+
.Procedure
12+
13+
* Configure the performance addons using the following example:
14+
+
15+
[source,yaml]
16+
----
17+
apiVersion: performance.openshift.io/v2
18+
kind: PerformanceProfile
19+
metadata:
20+
name: perfprofile-policy
21+
spec:
22+
additionalKernelArgs:
23+
- idle=poll
24+
- rcupdate.rcu_normal_after_boot=0
25+
cpu:
26+
isolated: 2-19,22-39 <1>
27+
reserved: 0-1,20-21 <2>
28+
hugepages:
29+
defaultHugepagesSize: 1G
30+
pages:
31+
- count: 32 <3>
32+
size: 1G <4>
33+
machineConfigPoolSelector:
34+
pools.operator.machineconfiguration.openshift.io/master: ""
35+
net:
36+
userLevelNetworking: true <5>
37+
nodeSelector:
38+
node-role.kubernetes.io/master: ""
39+
numa:
40+
topologyPolicy: restricted
41+
realTimeKernel:
42+
enabled: true <6>
43+
----
44+
45+
<1> Set the isolated CPUs. Ensure all of the HT pairs match.
46+
<2> Set the reserved CPUs. In this case, a hyperthreaded pair is allocated on NUMA 0 and a pair on NUMA 1.
47+
<3> Set the huge page size.
48+
<4> Set the huge page number.
49+
<5> Set to `true` to isolate the CPUs from networking interrupts.
50+
<6> Set to `true` to install the real-time Linux kernel.

modules/sno-du-configuring-ptp.adoc

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
// Module included in the following assemblies:
2+
//
3+
// *scalability_and_performance/sno-du-deploying-clusters-on-single-nodes.adoc
4+
5+
:_content-type: PROCEDURE
6+
[id="sno-du-configuring-ptp_{context}"]
7+
= Configuring Precision Time Protocol (PTP)
8+
9+
In the far edge, the RAN uses PTP to synchronize the systems.
10+
11+
.Procedure
12+
13+
* Configure PTP using the following example:
14+
+
15+
[source,yaml]
16+
----
17+
apiVersion: ptp.openshift.io/v1
18+
kind: PtpConfig
19+
metadata:
20+
name: du-ptp-slave
21+
namespace: openshift-ptp
22+
spec:
23+
profile:
24+
- interface: ens5f0 <1>
25+
name: slave
26+
phc2sysOpts: -a -r -n 24
27+
ptp4lConf: |
28+
[global]
29+
#
30+
# Default Data Set
31+
#
32+
twoStepFlag 1
33+
slaveOnly 0
34+
priority1 128
35+
priority2 128
36+
domainNumber 24
37+
#utc_offset 37
38+
clockClass 248
39+
clockAccuracy 0xFE
40+
offsetScaledLogVariance 0xFFFF
41+
free_running 0
42+
freq_est_interval 1
43+
dscp_event 0
44+
dscp_general 0
45+
dataset_comparison ieee1588
46+
G.8275.defaultDS.localPriority 128
47+
#
48+
# Port Data Set
49+
#
50+
logAnnounceInterval -3
51+
logSyncInterval -4
52+
logMinDelayReqInterval -4
53+
logMinPdelayReqInterval -4
54+
announceReceiptTimeout 3
55+
syncReceiptTimeout 0
56+
delayAsymmetry 0
57+
fault_reset_interval 4
58+
neighborPropDelayThresh 20000000
59+
masterOnly 0
60+
G.8275.portDS.localPriority 128
61+
#
62+
# Run time options
63+
#
64+
assume_two_step 0
65+
logging_level 6
66+
path_trace_enabled 0
67+
follow_up_info 0
68+
hybrid_e2e 0
69+
inhibit_multicast_service 0
70+
net_sync_monitor 0
71+
tc_spanning_tree 0
72+
tx_timestamp_timeout 50
73+
unicast_listen 0
74+
unicast_master_table 0
75+
unicast_req_duration 3600
76+
use_syslog 1
77+
verbose 0
78+
summary_interval 0
79+
kernel_leap 1
80+
check_fup_sync 0
81+
#
82+
# Servo Options
83+
#
84+
pi_proportional_const 0.0
85+
pi_integral_const 0.0
86+
pi_proportional_scale 0.0
87+
pi_proportional_exponent -0.3
88+
pi_proportional_norm_max 0.7
89+
pi_integral_scale 0.0
90+
pi_integral_exponent 0.4
91+
pi_integral_norm_max 0.3
92+
step_threshold 0.0
93+
first_step_threshold 0.00002
94+
max_frequency 900000000
95+
clock_servo pi
96+
sanity_freq_limit 200000000
97+
ntpshm_segment 0
98+
#
99+
# Transport options
100+
#
101+
transportSpecific 0x0
102+
ptp_dst_mac 01:1B:19:00:00:00
103+
p2p_dst_mac 01:80:C2:00:00:0E
104+
udp_ttl 1
105+
udp6_scope 0x0E
106+
uds_address /var/run/ptp4l
107+
#
108+
# Default interface options
109+
#
110+
clock_type OC
111+
network_transport UDPv4
112+
delay_mechanism E2E
113+
time_stamping hardware
114+
tsproc_mode filter
115+
delay_filter moving_median
116+
delay_filter_length 10
117+
egressLatency 0
118+
ingressLatency 0
119+
boundary_clock_jbod 0
120+
#
121+
# Clock description
122+
#
123+
productDescription ;;
124+
revisionData ;;
125+
manufacturerIdentity 00:00:00
126+
userDescription ;
127+
timeSource 0xA0
128+
ptp4lOpts: -2 -s --summary_interval -4
129+
recommend:
130+
- match:
131+
- nodeLabel: node-role.kubernetes.io/master
132+
priority: 4
133+
profile: slave
134+
----
135+
136+
<1> Sets the interface used for PTP.

modules/sno-du-configuring-sriov.adoc

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
// Module included in the following assemblies:
2+
//
3+
// *scalability_and_performance/sno-du-deploying-clusters-on-single-nodes.adoc
4+
5+
:_content-type: PROCEDURE
6+
[id="sno-du-configuring-sriov_{context}"]
7+
= Configuring single root I/O virtualization (SR-IOV)
8+
9+
SR-IOV is commonly used to enable the fronthaul and the midhaul networks.
10+
11+
.Procedure
12+
13+
* Use the following configuration to configure SRIOV on a single node distributed unit (DU). Note that the first custom resource (CR) is required. The following CRs are examples.
14+
+
15+
[source,yaml]
16+
----
17+
apiVersion: sriovnetwork.openshift.io/v1
18+
kind: SriovOperatorConfig
19+
metadata:
20+
name: default
21+
namespace: openshift-sriov-network-operator
22+
spec:
23+
configDaemonNodeSelector:
24+
node-role.kubernetes.io/master: ""
25+
disableDrain: true
26+
enableInjector: true
27+
enableOperatorWebhook: true
28+
---
29+
apiVersion: sriovnetwork.openshift.io/v1
30+
kind: SriovNetwork
31+
metadata:
32+
name: sriov-nw-du-mh
33+
namespace: openshift-sriov-network-operator
34+
spec:
35+
networkNamespace: openshift-sriov-network-operator
36+
resourceName: du_mh
37+
vlan: 150 <1>
38+
---
39+
apiVersion: sriovnetwork.openshift.io/v1
40+
kind: SriovNetworkNodePolicy
41+
metadata:
42+
name: sriov-nnp-du-mh
43+
namespace: openshift-sriov-network-operator
44+
spec:
45+
deviceType: vfio-pci <2>
46+
isRdma: false
47+
nicSelector:
48+
pfNames:
49+
- ens7f0 <3>
50+
nodeSelector:
51+
node-role.kubernetes.io/master: ""
52+
numVfs: 8 <4>
53+
priority: 10
54+
resourceName: du_mh
55+
---
56+
apiVersion: sriovnetwork.openshift.io/v1
57+
kind: SriovNetwork
58+
metadata:
59+
name: sriov-nw-du-fh
60+
namespace: openshift-sriov-network-operator
61+
spec:
62+
networkNamespace: openshift-sriov-network-operator
63+
resourceName: du_fh
64+
vlan: 140 <5>
65+
---
66+
apiVersion: sriovnetwork.openshift.io/v1
67+
kind: SriovNetworkNodePolicy
68+
metadata:
69+
name: sriov-nnp-du-fh
70+
namespace: openshift-sriov-network-operator
71+
spec:
72+
deviceType: netdevice <6>
73+
isRdma: true
74+
nicSelector:
75+
pfNames:
76+
- ens5f0 <7>
77+
nodeSelector:
78+
node-role.kubernetes.io/master: ""
79+
numVfs: 8 <8>
80+
priority: 10
81+
resourceName: du_fh
82+
----
83+
84+
<1> Specifies the VLAN for the midhaul network.
85+
<2> Select either `vfio-pci` or `netdevice`, as needed.
86+
<3> Specifies the interface connected to the midhaul network.
87+
<4> Specifies the number of VFs for the midhaul network.
88+
<5> The VLAN for the fronthaul network.
89+
<6> Select either `vfio-pci` or `netdevice`, as needed.
90+
<7> Specifies the interface connected to the fronthaul network.
91+
<8> Specifies the number of VFs for the fronthaul network.

0 commit comments

Comments
 (0)