Skip to content

Commit e827224

Browse files
author
Stephen Smith
committed
TELCODOCS-347-SNO-DU-INSTALL
1 parent d34b1dd commit e827224

17 files changed

+866
-31
lines changed

_topic_maps/_topic_map.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2192,12 +2192,15 @@ Topics:
21922192
- Name: Creating a performance profile
21932193
File: cnf-create-performance-profiles
21942194
Distros: openshift-origin,openshift-enterprise
2195+
- Name: Deploying distributed units manually on single node OpenShift
2196+
File: ztp-configuring-single-node-cluster-deployment-during-installation
2197+
Distros: openshift-origin,openshift-enterprise
21952198
- Name: Provisioning and deploying a distributed unit (DU)
21962199
File: cnf-provisioning-and-deploying-a-distributed-unit
21972200
Distros: openshift-webscale
21982201
- Name: Workload partitioning on single node OpenShift
21992202
File: sno-du-enabling-workload-partitioning-on-single-node-openshift
2200-
Distros: openshift-origin,openshift-enterprise
2203+
Distros: openshift-origin,openshift-enterprise
22012204
- Name: Deploying distributed units at scale in a disconnected environment
22022205
File: ztp-deploying-disconnected
22032206
Distros: openshift-origin,openshift-enterprise
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.

0 commit comments

Comments
 (0)