From 480fcf799c1c30421e10abb78b91303ade4bc059 Mon Sep 17 00:00:00 2001 From: Luc Provoost Date: Mon, 15 Feb 2021 15:01:20 +0100 Subject: Using disk image builder to create rapid VM All files are now availavle to build a qcow2 image using disk image builder. This image is based on centos 7. DPDK and PROX are installed together with some optimizations. Change-Id: I61aa91206ea7f8b3b6a3ff7d490d1804e7e784c8 Signed-off-by: Luc Provoost --- .../dib/elements/rapid/post-install.d/70-os-cfg | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100755 rapidvm/dib/elements/rapid/post-install.d/70-os-cfg (limited to 'rapidvm/dib/elements/rapid/post-install.d/70-os-cfg') diff --git a/rapidvm/dib/elements/rapid/post-install.d/70-os-cfg b/rapidvm/dib/elements/rapid/post-install.d/70-os-cfg new file mode 100755 index 00000000..64bbad5a --- /dev/null +++ b/rapidvm/dib/elements/rapid/post-install.d/70-os-cfg @@ -0,0 +1,50 @@ +#!/usr/bin/env bash +# +# Copyright (c) 2021 Intel Corporation +# +# Licensed 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. +# +BUILD_DIR="/opt/rapid" +# huge pages to be used by DPDK +sh -c '(echo "vm.nr_hugepages = 1024") > /etc/sysctl.conf' + +sh -c '(echo "options vfio enable_unsafe_noiommu_mode=1") > /etc/modprobe.d/vfio.conf' +sh -c '(echo "vfio") > /etc/modules-load.d/vfio.conf' +sh -c '(echo "vfio-pci") > /etc/modules-load.d/vfio.conf' +# Enabling tuned with the realtime-virtual-guest profile +pushd ${BUILD_DIR} > /dev/null 2>&1 +#wget http://linuxsoft.cern.ch/cern/centos/7/rt/x86_64/Packages/tuned-profiles-realtime-2.8.0-5.el7_4.2.noarch.rpm +wget http://linuxsoft.cern.ch/cern/centos/7/rt/x86_64/Packages/tuned-profiles-realtime-2.9.0-1.el7_5.2.noarch.rpm +#wget http://linuxsoft.cern.ch/cern/centos/7/rt/x86_64/Packages/tuned-profiles-nfv-guest-2.8.0-5.el7_4.2.noarch.rpm +wget http://linuxsoft.cern.ch/cern/centos/7/rt/x86_64/Packages/tuned-profiles-nfv-guest-2.9.0-1.el7_5.2.noarch.rpm +# Install with --nodeps. The latest CentOS cloud images come with a tuned version higher than 2.8. These 2 packages however +# do not depend on v2.8 and also work with tuned 2.9. Need to be careful in the future +#rpm -ivh ${BUILD_DIR}/tuned-profiles-realtime-2.8.0-5.el7_4.2.noarch.rpm --nodeps +#rpm -ivh ${BUILD_DIR}/tuned-profiles-nfv-guest-2.8.0-5.el7_4.2.noarch.rpm --nodeps +rpm -ivh ${BUILD_DIR}/tuned-profiles-realtime-2.9.0-1.el7_5.2.noarch.rpm --nodeps +rpm -ivh ${BUILD_DIR}/tuned-profiles-nfv-guest-2.9.0-1.el7_5.2.noarch.rpm --nodeps +# Although we do no know how many cores the VM will have when begin deployed for real testing, we already put a number for the +# isolated CPUs so we can start the realtime-virtual-guest profile. If we don't, that command will fail. +# When the VM will be instantiated, the check_kernel_params service will check for the real number of cores available to this VM +# and update the realtime-virtual-guest-variables.conf accordingly. +echo "isolated_cores=1-3" | tee -a /etc/tuned/realtime-virtual-guest-variables.conf +tuned-adm profile realtime-virtual-guest + +# Install the check_tuned_params service to make sure that the grub cmd line has the right cpus in isolcpu. The actual number of cpu's +# assigned to this VM depends on the flavor used. We don't know at this time what that will be. +chmod +x ${BUILD_DIR}/check_prox_system_setup.sh +mv ${BUILD_DIR}/check_prox_system_setup.sh /usr/local/libexec/ +mv ${BUILD_DIR}/check-prox-system-setup.service /etc/systemd/system/ +systemctl daemon-reload +systemctl enable check-prox-system-setup.service +popd > /dev/null 2>&1 -- cgit 1.2.3-korg