1. OpenStack与九州云Skyline平台概述
OpenStack作为开源云计算管理平台项目,已经成为企业私有云建设的首选方案之一。而九州云推出的Skyline发行版,则是基于原生OpenStack进行了深度优化和功能增强的企业级解决方案。我在实际部署过程中发现,Skyline不仅保留了OpenStack的全部核心功能,还在易用性和管理界面上做了显著改进。
这个发行版特别适合国内企业环境,主要体现在以下几个方面:
- 对KVM虚拟化技术的深度调优,使得虚拟机性能提升约15-20%
- 集成了符合国内监管要求的运维审计功能
- 提供了本地化的技术文档和社区支持
- 优化了网络组件配置,更适合国内网络环境
2. 环境准备与系统要求
2.1 硬件配置建议
根据我的部署经验,生产环境的最低硬件配置应该满足:
- 控制节点:至少16核CPU/64GB内存/500GB SSD(系统盘)+1TB SSD(Ceph 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/SELINUX=enforcing/SELINUX=disabled/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] name=99cloud-openstack-train baseurl=https://mirrors.99cloud.com/openstack/train/centos7/ enabled=1 gpgcheck=0 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 'keystone'@'localhost' 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 'glance'@'localhost' 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 mysql+pymysql://glance:GLANCE_DBPASS@controller/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 'nova'@'localhost' 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 'nova'@'localhost' 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 'nova'@'localhost' 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 'neutron'@'localhost' 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 \ start=192.168.100.100,end=192.168.100.200 \ --dns-nameserver 114.114.114.114 --gateway 192.168.100.1 \ --subnet-range 192.168.100.0/24 provider6.2 上传系统镜像
上传常用系统镜像到Glance:
wget 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界面完成基础操作,再逐步深入命令行管理。