环境说明
-
操作系统:openEuler 22.03 LTS
-
节点规划:
-
控制节点:controller(IP: 192.168.100.10)
-
计算节点:compute(IP: 192.168.100.20)
-
-
依赖要求:
-
所有节点需配置SSH免密登录。
-
确保HTTP仓库服务已提供openEuler和OpenStack-IaaS的yum源。
-
步骤 1:配置基础环境
1.1 设置主机名与网络映射
# 控制节点操作
hostnamectl set-hostname controller
# 计算节点操作
hostnamectl set-hostname compute
# 配置 hosts 文件(所有节点执行)
cat <<EOF > /etc/hosts
127.0.0.1 localhost
192.168.100.10 controller
192.168.100.20 compute
EOF
1.2 配置第二张网卡(用于私有云内部通信)
# 控制节点操作(假设网卡名为 ens37)
nmcli connection add type ethernet ifname ens37 con-name ens37
nmcli connection modify ens37 ipv4.addresses 10.10.X.10/24 # X为工位号
nmcli connection up ens37
# 计算节点同理操作
验证:
ip a show ens37 # 确认 IP 是否生效
ping 10.10.X.20 # 测试跨节点通信
步骤 2:配置 yum 源
# 所有节点操作
cat <<EOF > /etc/yum.repos.d/openeuler.repo
[openeuler]
name=openEuler
baseurl=http://<your-http-server>/openeuler22.03
enabled=1
gpgcheck=0
[iaas]
name=OpenStack-IaaS
baseurl=http://<your-http-server>/iaas-repo
enabled=1
gpgcheck=0
EOF
# 清理并更新缓存
dnf clean all && dnf makecache
验证:
dnf repolist | grep -E "openeuler|iaas" # 检查仓库是否加载成功
步骤 3:安装 OpenStack 基础组件
3.1 安装 openstack-iaas 软件包
# 所有节点执行
dnf install -y openstack-iaas
3.2 配置环境变量文件
# 控制节点操作
sed -i 's/^#//g' /etc/openstack/openrc.sh # 取消注释
sed -i 's/PASS=.*/PASS=000000/g' /etc/openstack/openrc.sh # 设置密码
# 同步到计算节点
scp /etc/openstack/openrc.sh compute:/etc/openstack/
验证:
grep "PASS=" /etc/openstack/openrc.sh # 应显示 HOST_PASS=000000
步骤 4:数据库与消息队列安装
4.1 安装 MariaDB 和 Memcached
# 控制节点操作
dnf install -y mariadb-server memcached
# 启动服务
systemctl enable mariadb memcached --now
4.2 配置数据库性能优化
vi /etc/my.cnf
[mysqld]
lower_case_table_names = 1 # 支持大小写
innodb_buffer_pool_size = 4G # 缓存池大小
innodb_log_buffer_size = 64M # 日志缓冲区
innodb_log_file_size = 256M # Redo日志大小
innodb_log_files_in_group = 2 # Redo日志组数
# 重启服务
systemctl restart mariadb
4.3 配置 Memcached
vi /etc/sysconfig/memcached
CACHESIZE="512" # 内存占用 512MB
MAXCONN="2048" # 最大连接数
OPTIONS="-l 127.0.0.1,::1,controller -o hash_algorithm=md5" # 使用 MD5 算法
systemctl restart memcached
步骤 5:安装 Keystone 身份服务
5.1 安装与初始化
dnf install -y openstack-keystone
# 创建域、项目、用户(示例)
openstack domain create 210Demo
openstack project create --domain 210Demo Engineering
openstack user create --domain 210Demo --password 000000 Robert
openstack role add --project Engineering --user Robert admin
验证:
openstack user list --domain 210Demo # 应显示已创建用户
步骤 6:部署 Glance 镜像服务
dnf install -y openstack-glance
# 上传镜像(需提前准备镜像文件)
openstack image create --disk-format qcow2 --container-format bare --file cirros-0.3.4-x86_64-disk.img cirros
验证:
openstack image list # 显示 cirros 镜像
步骤 7:安装 Nova 计算服务
7.1 控制节点配置
dnf install -y openstack-nova-api openstack-nova-scheduler
# 修改调度器配置
vi /etc/nova/nova.conf
[scheduler]
driver = caching_scheduler # 启用缓存调度器
systemctl restart openstack-nova-scheduler
7.2 计算节点配置
dnf install -y openstack-nova-compute
# 启动服务
systemctl enable libvirtd openstack-nova-compute --now
步骤 8:部署 Neutron 网络服务
8.1 控制节点操作
dnf install -y openstack-neutron-linuxbridge
# 配置网络插件(略,需根据实际网卡修改)
systemctl restart neutron-linuxbridge-agent
8.2 计算节点操作
dnf install -y openstack-neutron-linuxbridge
systemctl restart neutron-linuxbridge-agent
步骤 9:安装 Dashboard 控制面板
dnf install -y openstack-dashboard
# 修改配置文件
vi /etc/openstack-dashboard/local_settings
SESSION_ENGINE = 'django.contrib.sessions.backends.file' # 文件存储会话
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = False # 禁用多域登录
# 重启服务
systemctl restart httpd
验证:
访问 http://controller/dashboard
,使用用户名密码登录(无需输入域)。
步骤 10:扩展存储服务(Cinder)
# 计算节点操作(扩容块存储)
vgextend cinder-volumes /dev/sdb4 # 假设新增 5G 分区
vgdisplay cinder-volumes # 检查容量是否增加
步骤 11:安全加固(禁止 ICMP Ping)
# 控制节点操作
echo "net.ipv4.icmp_echo_ignore_all = 1" >> /etc/sysctl.conf
sysctl -p # 立即生效
验证:
从其他节点执行 ping controller
,应显示 Request timeout。
避坑指南
-
网卡名称问题:openEuler 可能使用
eth0
或ens33
,通过ip a
确认实际名称。 -
依赖冲突:若安装失败,使用
dnf remove --nodeps
强制卸载冲突包。 -
SELinux 干扰:临时关闭
setenforce 0
,或配置策略放行服务。
结语
通过以上步骤,你已成功在 openEuler 上搭建 OpenStack 私有云!如果遇到问题,欢迎在评论区留言交流。点赞、收藏、关注,获取更多国产信创技术实战内容!