
1. OpenStack与九州云Skyline平台概述OpenStack作为开源云计算管理平台项目已经成为企业私有云建设的首选方案之一。而九州云推出的Skyline发行版则是基于原生OpenStack进行了深度优化和功能增强的企业级解决方案。我在实际部署过程中发现Skyline不仅保留了OpenStack的全部核心功能还在易用性和管理界面上做了显著改进。这个发行版特别适合国内企业环境主要体现在以下几个方面对KVM虚拟化技术的深度调优使得虚拟机性能提升约15-20%集成了符合国内监管要求的运维审计功能提供了本地化的技术文档和社区支持优化了网络组件配置更适合国内网络环境2. 环境准备与系统要求2.1 硬件配置建议根据我的部署经验生产环境的最低硬件配置应该满足控制节点至少16核CPU/64GB内存/500GB SSD系统盘1TB SSDCeph OSD计算节点根据虚拟机密度配置建议每台物理机不低于32核CPU/128GB内存网络节点建议独立部署16核CPU/32GB内存/双万兆网卡特别注意所有节点建议采用相同型号的CPU避免因指令集差异导致虚拟机迁移失败。2.2 操作系统选择与配置九州云Skyline目前官方支持的操作系统版本CentOS 7.9推荐Ubuntu 20.04 LTS麒麟V10国产化需求我以CentOS 7.9为例系统安装后需要执行以下基础配置# 关闭SELinux sed -i s/SELINUXenforcing/SELINUXdisabled/g /etc/selinux/config setenforce 0 # 配置主机名和hosts解析 hostnamectl set-hostname controller echo 192.168.100.10 controller /etc/hosts echo 192.168.100.11 compute01 /etc/hosts # 禁用防火墙后续通过安全组管理 systemctl stop firewalld systemctl disable firewalld3. 九州云Skyline安装流程详解3.1 基础依赖安装首先需要配置OpenStack仓库和EPEL源# 安装EPEL源 yum install -y epel-release # 添加九州云Skyline仓库 cat /etc/yum.repos.d/99cloud.repo EOF [99cloud-openstack-train] name99cloud-openstack-train baseurlhttps://mirrors.99cloud.com/openstack/train/centos7/ enabled1 gpgcheck0 EOF然后安装基础工具包yum install -y python-openstackclient openstack-selinux \ openstack-utils mariadb-server mariadb \ rabbitmq-server memcached python-memcached3.2 数据库与服务配置MySQL数据库配置要点# 启动MariaDB systemctl enable mariadb systemctl start mariadb # 安全初始化 mysql_secure_installation # 创建OpenStack数据库用户 mysql -uroot -p -e CREATE DATABASE keystone; mysql -uroot -p -e GRANT ALL PRIVILEGES ON keystone.* TO keystonelocalhost IDENTIFIED BY KEYSTONE_DBPASS; mysql -uroot -p -e GRANT ALL PRIVILEGES ON keystone.* TO keystone% IDENTIFIED BY KEYSTONE_DBPASS;RabbitMQ消息队列配置systemctl enable rabbitmq-server systemctl start rabbitmq-server rabbitmqctl add_user openstack RABBIT_PASS rabbitmqctl set_permissions openstack .* .* .*3.3 Keystone身份服务安装Keystone是OpenStack的核心认证服务安装步骤如下# 安装软件包 yum install -y openstack-keystone httpd mod_wsgi # 生成Fernet token keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone keystone-manage credential_setup --keystone-user keystone --keystone-group keystone # 初始化数据库 keystone-manage db_sync # 配置Apache echo ServerName controller /etc/httpd/conf/httpd.conf systemctl enable httpd systemctl start httpd创建初始租户和用户openstack project create --domain default --description Admin Project admin openstack user create --domain default --password ADMIN_PASS admin openstack role create admin openstack role add --project admin --user admin admin4. 核心组件部署与集成4.1 Glance镜像服务安装配置Glance服务yum install -y openstack-glance # 数据库配置 mysql -uroot -p -e CREATE DATABASE glance; mysql -uroot -p -e GRANT ALL PRIVILEGES ON glance.* TO glancelocalhost IDENTIFIED BY GLANCE_DBPASS; mysql -uroot -p -e GRANT ALL PRIVILEGES ON glance.* TO glance% IDENTIFIED BY GLANCE_DBPASS; # 配置文件修改 openstack-config --set /etc/glance/glance-api.conf database connection mysqlpymysql://glance:GLANCE_DBPASScontroller/glance openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_uri http://controller:5000 openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_url http://controller:35357 openstack-config --set /etc/glance/glance-api.conf keystone_authtoken memcached_servers controller:11211 openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_type password openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_domain_name default openstack-config --set /etc/glance/glance-api.conf keystone_authtoken user_domain_name default openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_name service openstack-config --set /etc/glance/glance-api.conf keystone_authtoken username glance openstack-config --set /etc/glance/glance-api.conf keystone_authtoken password GLANCE_PASS openstack-config --set /etc/glance/glance-api.conf paste_deploy flavor keystone openstack-config --set /etc/glance/glance-api.conf glance_store stores file,http openstack-config --set /etc/glance/glance-api.conf glance_store default_store file openstack-config --set /etc/glance/glance-api.conf glance_store filesystem_store_datadir /var/lib/glance/images/ # 初始化数据库 su -s /bin/sh -c glance-manage db_sync glance # 启动服务 systemctl enable openstack-glance-api systemctl start openstack-glance-api4.2 Nova计算服务Nova服务的安装分为控制节点和计算节点两部分。控制节点配置yum install -y openstack-nova-api openstack-nova-conductor \ openstack-nova-console openstack-nova-novncproxy \ openstack-nova-scheduler # 数据库配置 mysql -uroot -p -e CREATE DATABASE nova; mysql -uroot -p -e CREATE DATABASE nova_api; mysql -uroot -p -e CREATE DATABASE nova_cell0; mysql -uroot -p -e GRANT ALL PRIVILEGES ON nova.* TO novalocalhost IDENTIFIED BY NOVA_DBPASS; mysql -uroot -p -e GRANT ALL PRIVILEGES ON nova.* TO nova% IDENTIFIED BY NOVA_DBPASS; mysql -uroot -p -e GRANT ALL PRIVILEGES ON nova_api.* TO novalocalhost IDENTIFIED BY NOVA_DBPASS; mysql -uroot -p -e GRANT ALL PRIVILEGES ON nova_api.* TO nova% IDENTIFIED BY NOVA_DBPASS; mysql -uroot -p -e GRANT ALL PRIVILEGES ON nova_cell0.* TO novalocalhost IDENTIFIED BY NOVA_DBPASS; mysql -uroot -p -e GRANT ALL PRIVILEGES ON nova_cell0.* TO nova% IDENTIFIED BY NOVA_DBPASS;计算节点配置yum install -y openstack-nova-compute # 配置libvirt openstack-config --set /etc/nova/nova.conf libvirt virt_type kvm openstack-config --set /etc/nova/nova.conf libvirt cpu_mode host-passthrough5. 网络服务配置5.1 Neutron网络服务Neutron的安装配置相对复杂需要特别注意网络规划yum install -y openstack-neutron openstack-neutron-ml2 \ openstack-neutron-linuxbridge ebtables # 数据库配置 mysql -uroot -p -e CREATE DATABASE neutron; mysql -uroot -p -e GRANT ALL PRIVILEGES ON neutron.* TO neutronlocalhost IDENTIFIED BY NEUTRON_DBPASS; mysql -uroot -p -e GRANT ALL PRIVILEGES ON neutron.* TO neutron% IDENTIFIED BY NEUTRON_DBPASS;网络方案选择建议小型环境使用Linux Bridge Provider Network中型环境Open vSwitch VXLAN大型环境SR-IOV DPDK优化6. 安装后配置与验证6.1 创建初始网络创建外部网络和租户网络openstack network create --external --provider-physical-network provider \ --provider-network-type flat provider openstack subnet create --network provider --allocation-pool \ start192.168.100.100,end192.168.100.200 \ --dns-nameserver 114.114.114.114 --gateway 192.168.100.1 \ --subnet-range 192.168.100.0/24 provider6.2 上传系统镜像上传常用系统镜像到Glancewget https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2 openstack image create CentOS 7 --file CentOS-7-x86_64-GenericCloud.qcow2 \ --disk-format qcow2 --container-format bare --public7. 常见问题排查7.1 虚拟机启动失败常见原因及解决方法计算节点资源不足nova hypervisor-show compute01检查可用资源必要时迁移或删除部分虚拟机镜像问题glance image-show image_id确认镜像状态为active且格式正确7.2 网络连接问题网络诊断步骤neutron agent-list # 检查所有网络服务状态 ip netns list # 查看网络命名空间 neutron port-show port_id # 检查端口绑定情况7.3 认证失败Keystone问题排查tail -f /var/log/keystone/keystone.log # 查看实时日志 openstack token issue # 测试token获取8. 性能优化建议根据实际生产环境经验推荐以下优化措施Nova调度器优化openstack-config --set /etc/nova/nova.conf DEFAULT scheduler_default_filters RetryFilter,AvailabilityZoneFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilterCeph存储优化如果使用ceph osd pool set rbd size 3 ceph osd pool set rbd min_size 2内存大页配置echo vm.nr_hugepages 1024 /etc/sysctl.conf sysctl -p在实际部署过程中我发现九州云Skyline的Web控制台相比原生Horizon有了显著改进特别是在网络拓扑可视化和管理流程简化方面。对于初次接触OpenStack的运维人员建议优先通过Web界面完成基础操作再逐步深入命令行管理。