From cde76a934d55e990e35c968096767935a76e92cf Mon Sep 17 00:00:00 2001 From: Hanwen Date: Thu, 13 Mar 2025 12:55:02 -0700 Subject: [PATCH] Shortening RHEL/Rock boot time by deprioritizing ipv6 and disable internet check This commit saves time because the os won't retry on unsupported ipv6 and optional Internet connection Signed-off-by: Hanwen --- CHANGELOG.md | 4 ++++ .../redhat/dns_domain/99-disable-ipv6-metadata.cfg | 3 +++ .../files/redhat/dns_domain/NetworkManager.conf | 7 +++++++ .../rocky/dns_domain/99-disable-ipv6-metadata.cfg | 3 +++ .../files/rocky/dns_domain/NetworkManager.conf | 7 +++++++ .../resources/dns_domain/dns_domain_redhat8.rb | 10 ++++++++++ .../resources/dns_domain/dns_domain_rocky8.rb | 10 ++++++++++ 7 files changed, 44 insertions(+) create mode 100644 cookbooks/aws-parallelcluster-slurm/files/redhat/dns_domain/99-disable-ipv6-metadata.cfg create mode 100644 cookbooks/aws-parallelcluster-slurm/files/rocky/dns_domain/99-disable-ipv6-metadata.cfg diff --git a/CHANGELOG.md b/CHANGELOG.md index 9fd8ad6dc4..f982a093c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,6 +37,10 @@ This file is used to list changes made in each version of the AWS ParallelCluste - Remove generation of DSA keys for login nodes as DSA, which became unsupported in OpenSSH 9.7+. - Set instance ID and instance type information in Slurm upon compute nodes launch. - Install NVIDIA drivers without the option 'no-cc-version-check', which is now deprecated in the NVIDIA installer. +- Reduce RHEL/Rocky Linux boot time by the following network customization: + - Configuring higher priority to IPv4 than IPv6 + - Disabling Internet connectivity check + - Configuring only IPv4 IMDS endpoint to cloud-init **BUG FIXES** - Remove usage of cfn-init for compute node bootstrapping to reduce node scale-up time. diff --git a/cookbooks/aws-parallelcluster-slurm/files/redhat/dns_domain/99-disable-ipv6-metadata.cfg b/cookbooks/aws-parallelcluster-slurm/files/redhat/dns_domain/99-disable-ipv6-metadata.cfg new file mode 100644 index 0000000000..71dd7f17ad --- /dev/null +++ b/cookbooks/aws-parallelcluster-slurm/files/redhat/dns_domain/99-disable-ipv6-metadata.cfg @@ -0,0 +1,3 @@ +datasource: + Ec2: + metadata_urls: [ 'http://169.254.169.254' ] \ No newline at end of file diff --git a/cookbooks/aws-parallelcluster-slurm/files/redhat/dns_domain/NetworkManager.conf b/cookbooks/aws-parallelcluster-slurm/files/redhat/dns_domain/NetworkManager.conf index 64540b3c48..3caa0bccac 100644 --- a/cookbooks/aws-parallelcluster-slurm/files/redhat/dns_domain/NetworkManager.conf +++ b/cookbooks/aws-parallelcluster-slurm/files/redhat/dns_domain/NetworkManager.conf @@ -23,6 +23,13 @@ plugins = ifcfg-rh, dhcp = dhclient +[connection] +ipv4.route-metric=100 +ipv6.route-metric=200 + +[connectivity] +enabled=false + [logging] # When debugging NetworkManager, enabling debug logging is of great help. # diff --git a/cookbooks/aws-parallelcluster-slurm/files/rocky/dns_domain/99-disable-ipv6-metadata.cfg b/cookbooks/aws-parallelcluster-slurm/files/rocky/dns_domain/99-disable-ipv6-metadata.cfg new file mode 100644 index 0000000000..71dd7f17ad --- /dev/null +++ b/cookbooks/aws-parallelcluster-slurm/files/rocky/dns_domain/99-disable-ipv6-metadata.cfg @@ -0,0 +1,3 @@ +datasource: + Ec2: + metadata_urls: [ 'http://169.254.169.254' ] \ No newline at end of file diff --git a/cookbooks/aws-parallelcluster-slurm/files/rocky/dns_domain/NetworkManager.conf b/cookbooks/aws-parallelcluster-slurm/files/rocky/dns_domain/NetworkManager.conf index 64540b3c48..3caa0bccac 100644 --- a/cookbooks/aws-parallelcluster-slurm/files/rocky/dns_domain/NetworkManager.conf +++ b/cookbooks/aws-parallelcluster-slurm/files/rocky/dns_domain/NetworkManager.conf @@ -23,6 +23,13 @@ plugins = ifcfg-rh, dhcp = dhclient +[connection] +ipv4.route-metric=100 +ipv6.route-metric=200 + +[connectivity] +enabled=false + [logging] # When debugging NetworkManager, enabling debug logging is of great help. # diff --git a/cookbooks/aws-parallelcluster-slurm/resources/dns_domain/dns_domain_redhat8.rb b/cookbooks/aws-parallelcluster-slurm/resources/dns_domain/dns_domain_redhat8.rb index 3cb10a8d8f..4b63e5eca8 100644 --- a/cookbooks/aws-parallelcluster-slurm/resources/dns_domain/dns_domain_redhat8.rb +++ b/cookbooks/aws-parallelcluster-slurm/resources/dns_domain/dns_domain_redhat8.rb @@ -33,6 +33,16 @@ mode '0644' end + # Disable ipv6 IMDS in cloud init to speed up + cookbook_file '99-disable-ipv6-metadata.cfg' do + path '/etc/cloud/cloud.cfg.d/99-disable-ipv6-metadata.cfg' + source 'dns_domain/99-disable-ipv6-metadata.cfg' + cookbook 'aws-parallelcluster-slurm' + user 'root' + group 'root' + mode '0644' + end + action_update_search_domain network_service 'Restart network service' end diff --git a/cookbooks/aws-parallelcluster-slurm/resources/dns_domain/dns_domain_rocky8.rb b/cookbooks/aws-parallelcluster-slurm/resources/dns_domain/dns_domain_rocky8.rb index 4ad36e1856..448619f0ac 100644 --- a/cookbooks/aws-parallelcluster-slurm/resources/dns_domain/dns_domain_rocky8.rb +++ b/cookbooks/aws-parallelcluster-slurm/resources/dns_domain/dns_domain_rocky8.rb @@ -33,6 +33,16 @@ mode '0644' end + # Disable ipv6 IMDS in cloud init to speed up + cookbook_file '99-disable-ipv6-metadata.cfg' do + path '/etc/cloud/cloud.cfg.d/99-disable-ipv6-metadata.cfg' + source 'dns_domain/99-disable-ipv6-metadata.cfg' + cookbook 'aws-parallelcluster-slurm' + user 'root' + group 'root' + mode '0644' + end + action_update_search_domain network_service 'Restart network service' end