双节点
openEuler22.09
192.168.99.2 controller 控制节点
192.168.99.3 compute 计算节点/双硬盘
(1)修改节点主机名
****hostnamectl set-hostname openstacky
# 控制节点
hostnamectl set-hostname controller && bash
# 计算节点
hostnamectl set-hostname compute && bash
(2)配置域名解释
vi /etc/hosts
按字母【o】在最后增加一行:
****127.0.0.1 openstacky
192.168.99.2 controller
192.168.99.3 compute
(3)配置免密登录(控制节点)
ssh-keygen
ssh-copy-id controller
ssh-copy-id compute
clear
(4)关闭防火墙、selinux和swap
systemctl disable --now firewalld
setenforce 0
swapoff -a
vi /etc/fstab
#注释swap相关行
(5)上传镜像或下载镜像文件
curl -O http://192.168.4.12/iso/chinaskills_cloud_iaas_v2.3.iso
curl -O http://192.168.4.12/iso/openEuler-22.09-x86_64-dvd.iso
(6)控制节点配置yum源
mkdir /opt/os
****mount -t iso9660 openEuler-22.09-x86_64-dvd.iso /opt/os/
FSTAB="/etc/fstab"
sed -i "/sr/d" $FSTAB
cat >> $FSTAB <<EOF
/root/openEuler-22.09-x86_64-dvd.iso /opt/os iso9660 loop,defaults 0 0
EOF
cat $FSTAB
mount -a
mount chinaskills_cloud_iaas_v2.3.iso /mnt/
cp -rpf /mnt/* /opt/
ls /opt/
rm -rf /etc/yum.repos.d/openEuler.repo
*mv /etc/yum.repos.d/openEuler.repo /opt/openEuler.repo.bak
cat << ZCLOUD >/etc/yum.repos.d/openstack.repo
[openeuler]
name=openeuler
baseurl=file:///opt/os
enabled=1
gpgcheck=0
[iaas]
name=iaas
baseurl=file:///opt/Zcloud-CLOUD/yoga-repo
enabled=1
gpgcheck=0
ZCLOUD
(7)检查YUM源
yum clean all && yum makecache
(8)搭建FTP服务,在controller节点设置开机自启
yum install vsftpd -y
vi /etc/vsftpd/vsftpd.conf
在文件编辑中添加以下内容:
anonymous_enable=YES
anon_root=/opt
//按"i"键进入编辑模式,输入代码,然后按ESC键后输入:wq命令退出。
*************
sed -i 's/^anonymous_enable=NO/#anonymous_enable=YES/g' /etc/vsftpd/vsftpd.conf
echo "anon_root=/opt" >> /etc/vsftpd/vsftpd.conf
*******************
*****echo "anon_root=/opt" >> /etc/vsftpd/vsftpd.conf
systemctl enable --now vsftpd
(9)配置计算节点YUM源:
rm -f /etc/yum.repos.d/openEuler.repo
cat << ZCLOUD >/etc/yum.repos.d/ftp.repo
[openeuler]
name=openeuler
baseurl=ftp://controller/os
enabled=1
gpgcheck=0
[iaas]
name=iaas
baseurl=ftp://controller/Zcloud-CLOUD/yoga-repo
enabled=1
gpgcheck=0
ZCLOUD
验证:
yum makecache
(10)在两个节点安装搭建软件包
yum install -y vim iaas-yoga
(11)配置环境变量
(注意网卡名称、存储节点名称、存储节点密码)设置所有服务密码为dcncloud
#将文件每一行的第一个字符删除,删除注释符
sed -i -e 's/^#//'g /etc/1cloud/openrc.sh
#替换PASS=为PASS=dcncloud
sed -i -e 's/PASS=""/PASS="000000"/'g /etc/1cloud/openrc.sh
vim /etc/1cloud/openrc.sh
**********
CONTROLLER_HOST="192.168.10.10" # 控制节点IP
CONTROLLER_NAME="controller"
CONTROLLER_PASS="000000"
#
#=============================[ Compute node options ]================================#
#Set the ip address, hostname, and password for the compute node
#
COMPUTE_HOST="192.168.10.11" # 计算节点IP
COMPUTE_NAME="compute"
COMPUTE_PASS="000000"
#
#=============================[ Storage node options ]================================#
#Set the ip address, hostname, and password for the storage node
#
STORAGE_HOST="192.168.10.11" # 存储节点,默认用计算节点IP
STORAGE_NAME="compute"
STORAGE_PASS="000000"
#
#=============================[ Networking options ]==================================#
#
#Set the control network segment and mask. Example: "172.16.11.0/16"
Network_segment_mask="192.168.10.0/24"
#If VMware is used, it is generally NAT or bridge network card. Example: "eth1"
INTERFACE_NAME="ens34"
#Set the name to be used when creating an external Flat network. Example: "provider"
Physical_interface="provider"
#
#=====================================================================================#
# OpenStack Host & Base options #
#=====================================================================================#
# END
# BEGIN
#=====================================================================================#
# OpenStack Service options #
#=====================================================================================#
#Set the passwords for various OpenStack services. Example: "000000"
#
MARIADB_PASS="000000"
RABBIT_PASS="000000"
ADMIN_PASS="000000"
KEYSTONE_DBPASS="000000"
GLANCE_PASS="000000"
GLANCE_DBPASS="000000"
NOVA_DBPASS="000000"
NOVA_PASS="000000"
PLACEMENT_PASS="000000"
PLACEMENT_DBPASS="000000"
NEUTRON_PASS="000000"
NEUTRON_DBPASS="000000"
METADATA_SECRET="yoga"
PROMETHEUS_VERSION="2.43.0"
PROMETHEUS_PORT="9091"
NODE_EXPORTER_VERSION="1.5.0"
MEMCACHED_EXPORTER_VERSION="0.11.2"
OPENSTACK_EXPORTER_VERSION="1.6.0"
SKYLINE_DBPASS="000000"
SKYLINE_SERVICE_PASS="000000"
CINDER_DBPASS="000000"
CINDER_PASS="000000"
#Cinder disk configuration. Example: "nvmeOn2"
CINDER_DISK="vdb1"
CINDER_VG="cinder-volumes"
SWIFT_PASS="000000"
#Swift disk configuration. Example: "nvmeOn3"
SWIFT_DISK="vdb2"
HEAT_DBPASS="000000"
HEAT_PASS="000000"
HEAT_DOMAIN_PASS="000000"
TROVE_DBPASS="000000"
TROVR_PASS="000000"
AODH_DBPASS="000000"
AODH_PASS="000000"
OCTAVIA_PASS="000000"
OCTAVIA_DBPASS="000000"
REDIS_PASS="000000"
GNOCCHI_DBPASS="000000"
GNOCCHI_PASS="000000"
CEILOMETER_PASS="000000"
RALLY_DBPASS="000000"
RALLY_PASS="000000"
CYBORG_DBPASS="000000"
CYBORG_PASS="000000"
**********
査看网卡ip a
査看分区lsblk
ens34
provider
sdb1
sdb2
拷贝修改好的环境变量文传到compute节点:
scp -rp /etc/1cloud/openrc.sh compute:/etc/1cloud/
(12)初始化安装命令存放在/usr/bin/下
双节点执行:
iaas-install-pre-cloud.sh
运行完成之后重启reboot / logout
(13)控制节点安装数据库
iaas-install-mariadb.sh
mysql -uroot -pdcncloud
exit
(14)控制节点安装keystone认证组件
iaas-install-keystone.sh
openstack user list
(15)控制节点安装Glance镜像
iaas-install-glance.sh
openstack image list
(16)Nova计算安装
# 控制节点
iaas-install-nova-controller.sh
# 计算节点(必须控制节点跑完后才能执行另一个节点!!)
iaas-install-nova-compute.sh
openstack compute service list
(17)Neutron网络组件安装
# 控制节点
iaas-install-neutron-controller-openvswitch.sh
# 计算节点
iaas-install-neutron-compute-openvswitch.sh
检查网络列表状态:
openstack network agent list
(18)控制节点安装dashboard
iaas-install-horizon.sh
http://ip
admin
dcncloud
(19)计算节点搭建存储组件,磁盘分区sdb1和sdb2
fdisk /dev/sdb
n
<回车>
<回车>
<回车>
+1000G
n
<回车>
<回车>
<回车>
+1000G
w
使用mkfs.xfs命令对文件系统格式化
mkfs.xfs /dev/sdb1
mkfs.xfs /dev/sdb2
lsblk
***************************
echo -e "n\np\n1\n\n+500G\nn\np\n2\n\n+1000G\nn\np\n3\n\n\nw" | fdisk /dev/sdb
partprobe /dev/sdb
mkfs.xfs /dev/sdb1
mkfs.xfs /dev/sdb2
mkfs.xfs /dev/sdb3
***************************
(20)Cinder块存储组件安装
# 控制节点
iaas-install-cinder-controller.sh
# 计算节点
iaas-install-cinder-storage.sh
openstack volume service list
(21)Swift对象存储组件安装
# 控制节点
iaas-install-swift-controller.sh
# 计算节点
iaas-install-swift-storage.sh
检查容器列表(为空)
openstack container list
http://ip
(22)查看脚本
ls /usr/bin/ | grep -i iaas
*(23)配置OpenRC
进入模板文件,复制粘贴并配置admin.sh
vim /usr/share/keystone/sample_data.sh +B0
vim /root/admin.sh
使用openrc,通过openrc可以使用其他组件的子命令:
source /root/admin.sh
swift stat
手动配置环境变量
cat > /root/admin-openrc << EOF
export OS_USERNAME=admin
export OS_PASSWORD=dcncloud
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_REGION_NAME=RegionOne
EOF
source admin-openrc
(24)性能优化与扩展
性能调优参数
在vim /etc/nova/nova.conf中添加:
[libvirt]
cpu_mode = host-passthrough
virt_type = kvm
disk_cachemodes = "network=writeback"
#hw_machine_type = x86_64=q35
Nova调度优化:
/etc/nova/nova.conf
DEFAULT
scheduler_default_filters RetryFilter,AvailabilityZoneFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter
Neutron性能调优:
/etc/neutron/neutron.conf
DEFAULT
rpc_response_timeout 600
调大 Nova 超时参数(最有效)
所有控制节点 + 所有计算节点都要改: 修改vim /etc/nova/nova.conf:
[DEFAULT]
# 卷创建最大重试次数(原60 → 改600)
block_device_allocate_retries = 600
# 重试间隔秒(原3 → 改5)
block_device_allocate_retries_interval = 5
# 磁盘挂载超时
timeout_nbd = 3600
# 全局RPC/任务超时
rpc_response_timeout = 3600
# 长任务允许时间
task_log_resubmit = 3600
然后重启 nova-compute:
systemctl restart openstack-nova-compute
[root@controller ~]# vim /etc/glance/glance-api.conf
user_storage_quota = 200GB
#将其修改为用户镜像存储配置限制为200GB
[DEFAULT]
use_keystone_limits = False
# 1) 关闭镜像大小限制(默认有限制)# 无限制(兼容所有版本)
image_size_cap = 9223372036854775807
#image_size_cap = 0
# 2) 用户上传大小上限(设为 1TB 或更大)
user_storage_quota = 1099511627776
# 3) 上传超时(秒):大镜像必调
http_timeout = 3600
# 4) 工作进程数(提升并发)
workers = 8
# 5) 启用大文件分片/流式上传
alive_time = 3600
task_time_to_live = 86400
#解决上传超时(大镜像必调)1小时
http_timeout = 3600
[glance_store]
# 6) 存储写入超时(秒)
store_capabilities_update_timeout = 300
http_read_timeout = 3600
# 7) 文件存储路径(确保空间+权限)
filesystem_store_datadir = /var/lib/glance/images/
# 8) 启用稀疏文件(节省空间、加速上传)
filesystem_store_file_permissions = 0o644
filesystem_store_sparse = True
#修改后重启服务
chown -R glance:glance /var/lib/glance/images/
chmod 755 /var/lib/glance/images/
systemctl restart openstack-glance-api
启用镜像卷缓存(加速后续创建)
在 控制 / 存储节点 的vim /etc/cinder/cinder.conf
[DEFAULT]
http_timeout = 3600
rpc_response_timeout = 3600
# 开启镜像卷缓存(大镜像神器!)
image_volume_cache_enabled = True
# 缓存总容量(GB)
image_volume_cache_max_size_gb = 1000
# 最多缓存镜像数
image_volume_cache_max_count = 50
重启 cinder 相关服务:
systemctl restart openstack-cinder-volume
vim /etc/httpd/conf/httpd.conf
Timeout 3600
ProxyTimeout 3600
ProxySendTimeout 3600
LimitRequestBody 0
重启 Apache
systemctl restart httpd
【解决虚拟机排队】
太多虚拟机同时启动出现排队现象,导致虚拟机启动超时,从而获取不到ip地址而报错失败,通过调优设置解决问题。
编辑配置文件vim /etc/nova/nova.conf
vif_plugging_is_fatal=true
#将其修改为false
【计算节点自动清理镜像缓存】
[root@compute ~]# vim /etc/nova/nova.conf
#remove_unused_base_images=true
#remove_unused_original_minimum_age_seconds=86400
#image_cache_manager_interval=2400
#修改以上参数
remove_unused_base_images=True
remove_unused_original_minimum_age_seconds=3
image_cache_manager_interval=5
【linux 脏数据回写时间】
#通过sysctl -p来进行修改,在/etc/sysctl.conf中写入参数
vm.dirty_expire_centisecs = 6000
vm.dirty_ratio = 60
#然后sysctl -p生效即可
#注意单位为1/100 s
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_fin_timeout = 60
#添加上面内容
系统参数优化
vim /etc/sysctl.conf
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_timestamps = 1
执行:sysctl -p
登录Dashboard平台的时候不需要输入域名:
vi /etc/openstack-dashboard/local_settings
#修改为
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = False
使用命令/usr/libexec/qemu-kvm -machine help 查看支持的类型
镜像
openstack image create --disk-format qcow2 --container-format bare --file WinServer2022.qcow2 --public win2022
双节点
openEuler22.09
192.168.99.2 controller 控制节点
192.168.99.3 compute 计算节点/双硬盘
(1)修改节点主机名
****hostnamectl set-hostname openstacky
# 控制节点
hostnamectl set-hostname controller && bash
# 计算节点
hostnamectl set-hostname compute && bash
(2)配置域名解释
vi /etc/hosts
按字母【o】在最后增加一行:
****127.0.0.1 openstacky
192.168.99.2 controller
192.168.99.3 compute
(3)配置免密登录(控制节点)
ssh-keygen
ssh-copy-id controller
ssh-copy-id compute
clear
(4)关闭防火墙、selinux和swap
systemctl disable --now firewalld
setenforce 0
swapoff -a
vi /etc/fstab
#注释swap相关行
(5)上传镜像或下载镜像文件
curl -O http://192.168.4.12/iso/chinaskills_cloud_iaas_v2.3.iso
curl -O http://192.168.4.12/iso/openEuler-22.09-x86_64-dvd.iso
(6)控制节点配置yum源
mkdir /opt/os
****mount -t iso9660 openEuler-22.09-x86_64-dvd.iso /opt/os/
FSTAB="/etc/fstab"
sed -i "/sr/d" $FSTAB
cat >> $FSTAB <<EOF
/root/openEuler-22.09-x86_64-dvd.iso /opt/os iso9660 loop,defaults 0 0
EOF
cat $FSTAB
mount -a
mount chinaskills_cloud_iaas_v2.3.iso /mnt/
cp -rpf /mnt/* /opt/
ls /opt/
rm -rf /etc/yum.repos.d/openEuler.repo
*mv /etc/yum.repos.d/openEuler.repo /opt/openEuler.repo.bak
cat << ZCLOUD >/etc/yum.repos.d/openstack.repo
[openeuler]
name=openeuler
baseurl=file:///opt/os
enabled=1
gpgcheck=0
[iaas]
name=iaas
baseurl=file:///opt/Zcloud-CLOUD/yoga-repo
enabled=1
gpgcheck=0
ZCLOUD
(7)检查YUM源
yum clean all && yum makecache
(8)搭建FTP服务,在controller节点设置开机自启
yum install vsftpd -y
vi /etc/vsftpd/vsftpd.conf
在文件编辑中添加以下内容:
anonymous_enable=YES
anon_root=/opt
//按"i"键进入编辑模式,输入代码,然后按ESC键后输入:wq命令退出。
*************
sed -i 's/^anonymous_enable=NO/#anonymous_enable=YES/g' /etc/vsftpd/vsftpd.conf
echo "anon_root=/opt" >> /etc/vsftpd/vsftpd.conf
*******************
*****echo "anon_root=/opt" >> /etc/vsftpd/vsftpd.conf
systemctl enable --now vsftpd
(9)配置计算节点YUM源:
rm -f /etc/yum.repos.d/openEuler.repo
cat << ZCLOUD >/etc/yum.repos.d/ftp.repo
[openeuler]
name=openeuler
baseurl=ftp://controller/os
enabled=1
gpgcheck=0
[iaas]
name=iaas
baseurl=ftp://controller/Zcloud-CLOUD/yoga-repo
enabled=1
gpgcheck=0
ZCLOUD
验证:
yum makecache
(10)在两个节点安装搭建软件包
yum install -y vim iaas-yoga
(11)配置环境变量
(注意网卡名称、存储节点名称、存储节点密码)设置所有服务密码为dcncloud
#将文件每一行的第一个字符删除,删除注释符
sed -i -e 's/^#//'g /etc/1cloud/openrc.sh
#替换PASS=为PASS=dcncloud
sed -i -e 's/PASS=""/PASS="000000"/'g /etc/1cloud/openrc.sh
vim /etc/1cloud/openrc.sh
**********
CONTROLLER_HOST="192.168.10.10" # 控制节点IP
CONTROLLER_NAME="controller"
CONTROLLER_PASS="000000"
#
#=============================[ Compute node options ]================================#
#Set the ip address, hostname, and password for the compute node
#
COMPUTE_HOST="192.168.10.11" # 计算节点IP
COMPUTE_NAME="compute"
COMPUTE_PASS="000000"
#
#=============================[ Storage node options ]================================#
#Set the ip address, hostname, and password for the storage node
#
STORAGE_HOST="192.168.10.11" # 存储节点,默认用计算节点IP
STORAGE_NAME="compute"
STORAGE_PASS="000000"
#
#=============================[ Networking options ]==================================#
#
#Set the control network segment and mask. Example: "172.16.11.0/16"
Network_segment_mask="192.168.10.0/24"
#If VMware is used, it is generally NAT or bridge network card. Example: "eth1"
INTERFACE_NAME="ens34"
#Set the name to be used when creating an external Flat network. Example: "provider"
Physical_interface="provider"
#
#=====================================================================================#
# OpenStack Host & Base options #
#=====================================================================================#
# END
# BEGIN
#=====================================================================================#
# OpenStack Service options #
#=====================================================================================#
#Set the passwords for various OpenStack services. Example: "000000"
#
MARIADB_PASS="000000"
RABBIT_PASS="000000"
ADMIN_PASS="000000"
KEYSTONE_DBPASS="000000"
GLANCE_PASS="000000"
GLANCE_DBPASS="000000"
NOVA_DBPASS="000000"
NOVA_PASS="000000"
PLACEMENT_PASS="000000"
PLACEMENT_DBPASS="000000"
NEUTRON_PASS="000000"
NEUTRON_DBPASS="000000"
METADATA_SECRET="yoga"
PROMETHEUS_VERSION="2.43.0"
PROMETHEUS_PORT="9091"
NODE_EXPORTER_VERSION="1.5.0"
MEMCACHED_EXPORTER_VERSION="0.11.2"
OPENSTACK_EXPORTER_VERSION="1.6.0"
SKYLINE_DBPASS="000000"
SKYLINE_SERVICE_PASS="000000"
CINDER_DBPASS="000000"
CINDER_PASS="000000"
#Cinder disk configuration. Example: "nvmeOn2"
CINDER_DISK="vdb1"
CINDER_VG="cinder-volumes"
SWIFT_PASS="000000"
#Swift disk configuration. Example: "nvmeOn3"
SWIFT_DISK="vdb2"
HEAT_DBPASS="000000"
HEAT_PASS="000000"
HEAT_DOMAIN_PASS="000000"
TROVE_DBPASS="000000"
TROVR_PASS="000000"
AODH_DBPASS="000000"
AODH_PASS="000000"
OCTAVIA_PASS="000000"
OCTAVIA_DBPASS="000000"
REDIS_PASS="000000"
GNOCCHI_DBPASS="000000"
GNOCCHI_PASS="000000"
CEILOMETER_PASS="000000"
RALLY_DBPASS="000000"
RALLY_PASS="000000"
CYBORG_DBPASS="000000"
CYBORG_PASS="000000"
**********
査看网卡ip a
査看分区lsblk
ens34
provider
sdb1
sdb2
拷贝修改好的环境变量文传到compute节点:
scp -rp /etc/1cloud/openrc.sh compute:/etc/1cloud/
(12)初始化安装命令存放在/usr/bin/下
双节点执行:
iaas-install-pre-cloud.sh
运行完成之后重启reboot / logout
(13)控制节点安装数据库
iaas-install-mariadb.sh
mysql -uroot -pdcncloud
exit
(14)控制节点安装keystone认证组件
iaas-install-keystone.sh
openstack user list
(15)控制节点安装Glance镜像
iaas-install-glance.sh
openstack image list
(16)Nova计算安装
# 控制节点
iaas-install-nova-controller.sh
# 计算节点(必须控制节点跑完后才能执行另一个节点!!)
iaas-install-nova-compute.sh
openstack compute service list
(17)Neutron网络组件安装
# 控制节点
iaas-install-neutron-controller-openvswitch.sh
# 计算节点
iaas-install-neutron-compute-openvswitch.sh
检查网络列表状态:
openstack network agent list
(18)控制节点安装dashboard
iaas-install-horizon.sh
http://ip
admin
dcncloud
(19)计算节点搭建存储组件,磁盘分区sdb1和sdb2
fdisk /dev/sdb
n
<回车>
<回车>
<回车>
+1000G
n
<回车>
<回车>
<回车>
+1000G
w
使用mkfs.xfs命令对文件系统格式化
mkfs.xfs /dev/sdb1
mkfs.xfs /dev/sdb2
lsblk
***************************
echo -e "n\np\n1\n\n+500G\nn\np\n2\n\n+1000G\nn\np\n3\n\n\nw" | fdisk /dev/sdb
partprobe /dev/sdb
mkfs.xfs /dev/sdb1
mkfs.xfs /dev/sdb2
mkfs.xfs /dev/sdb3
***************************
(20)Cinder块存储组件安装
# 控制节点
iaas-install-cinder-controller.sh
# 计算节点
iaas-install-cinder-storage.sh
openstack volume service list
(21)Swift对象存储组件安装
# 控制节点
iaas-install-swift-controller.sh
# 计算节点
iaas-install-swift-storage.sh
检查容器列表(为空)
openstack container list
http://ip
(22)查看脚本
ls /usr/bin/ | grep -i iaas
*(23)配置OpenRC
进入模板文件,复制粘贴并配置admin.sh
vim /usr/share/keystone/sample_data.sh +B0
vim /root/admin.sh
使用openrc,通过openrc可以使用其他组件的子命令:
source /root/admin.sh
swift stat
手动配置环境变量
cat > /root/admin-openrc << EOF
export OS_USERNAME=admin
export OS_PASSWORD=dcncloud
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_REGION_NAME=RegionOne
EOF
source admin-openrc
(24)性能优化与扩展
性能调优参数
在vim /etc/nova/nova.conf中添加:
[libvirt]
cpu_mode = host-passthrough
virt_type = kvm
disk_cachemodes = "network=writeback"
#hw_machine_type = x86_64=q35
Nova调度优化:
/etc/nova/nova.conf
DEFAULT
scheduler_default_filters RetryFilter,AvailabilityZoneFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter
Neutron性能调优:
/etc/neutron/neutron.conf
DEFAULT
rpc_response_timeout 600
调大 Nova 超时参数(最有效)
所有控制节点 + 所有计算节点都要改: 修改vim /etc/nova/nova.conf:
[DEFAULT]
# 卷创建最大重试次数(原60 → 改600)
block_device_allocate_retries = 600
# 重试间隔秒(原3 → 改5)
block_device_allocate_retries_interval = 5
# 磁盘挂载超时
timeout_nbd = 3600
# 全局RPC/任务超时
rpc_response_timeout = 3600
# 长任务允许时间
task_log_resubmit = 3600
然后重启 nova-compute:
systemctl restart openstack-nova-compute
[root@controller ~]# vim /etc/glance/glance-api.conf
user_storage_quota = 200GB
#将其修改为用户镜像存储配置限制为200GB
[DEFAULT]
use_keystone_limits = False
# 1) 关闭镜像大小限制(默认有限制)# 无限制(兼容所有版本)
image_size_cap = 9223372036854775807
#image_size_cap = 0
# 2) 用户上传大小上限(设为 1TB 或更大)
user_storage_quota = 1099511627776
# 3) 上传超时(秒):大镜像必调
http_timeout = 3600
# 4) 工作进程数(提升并发)
workers = 8
# 5) 启用大文件分片/流式上传
alive_time = 3600
task_time_to_live = 86400
#解决上传超时(大镜像必调)1小时
http_timeout = 3600
[glance_store]
# 6) 存储写入超时(秒)
store_capabilities_update_timeout = 300
http_read_timeout = 3600
# 7) 文件存储路径(确保空间+权限)
filesystem_store_datadir = /var/lib/glance/images/
# 8) 启用稀疏文件(节省空间、加速上传)
filesystem_store_file_permissions = 0o644
filesystem_store_sparse = True
#修改后重启服务
chown -R glance:glance /var/lib/glance/images/
chmod 755 /var/lib/glance/images/
systemctl restart openstack-glance-api
启用镜像卷缓存(加速后续创建)
在 控制 / 存储节点 的vim /etc/cinder/cinder.conf
[DEFAULT]
http_timeout = 3600
rpc_response_timeout = 3600
# 开启镜像卷缓存(大镜像神器!)
image_volume_cache_enabled = True
# 缓存总容量(GB)
image_volume_cache_max_size_gb = 1000
# 最多缓存镜像数
image_volume_cache_max_count = 50
重启 cinder 相关服务:
systemctl restart openstack-cinder-volume
vim /etc/httpd/conf/httpd.conf
Timeout 3600
ProxyTimeout 3600
ProxySendTimeout 3600
LimitRequestBody 0
重启 Apache
systemctl restart httpd
【解决虚拟机排队】
太多虚拟机同时启动出现排队现象,导致虚拟机启动超时,从而获取不到ip地址而报错失败,通过调优设置解决问题。
编辑配置文件vim /etc/nova/nova.conf
vif_plugging_is_fatal=true
#将其修改为false
【计算节点自动清理镜像缓存】
[root@compute ~]# vim /etc/nova/nova.conf
#remove_unused_base_images=true
#remove_unused_original_minimum_age_seconds=86400
#image_cache_manager_interval=2400
#修改以上参数
remove_unused_base_images=True
remove_unused_original_minimum_age_seconds=3
image_cache_manager_interval=5
【linux 脏数据回写时间】
#通过sysctl -p来进行修改,在/etc/sysctl.conf中写入参数
vm.dirty_expire_centisecs = 6000
vm.dirty_ratio = 60
#然后sysctl -p生效即可
#注意单位为1/100 s
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_fin_timeout = 60
#添加上面内容
系统参数优化
vim /etc/sysctl.conf
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_timestamps = 1
执行:sysctl -p
登录Dashboard平台的时候不需要输入域名:
vi /etc/openstack-dashboard/local_settings
#修改为
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = False
使用命令/usr/libexec/qemu-kvm -machine help 查看支持的类型
镜像
openstack image create --disk-format qcow2 --container-format bare --file WinServer2022.qcow2 --public win2022