开发者
OpenEuler22.09搭建OpenStack-Yoga
OpenEuler22.09搭建OpenStack-Yoga
新人帖原创
发表于05/14
1760

双节点

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

收藏举报
Level 1
0
帖子
0
粉丝
0
获赞