采用 OVS(Open vSwitch)+ VLAN 的组合部署 OpenStack,可以通过单节点或多节点手动部署的方式实现。以下将分别介绍单节点和多节点手动部署的详细步骤,并探讨自动化部署(如使用 PackStack)的原理及其与手动部署的理解差异。
一、单节点手动部署 OpenStack(OVS + VLAN)
1. 环境准备
- 硬件要求:至少 4GB 内存、2 个 CPU 核心、20GB 可用硬盘空间。
- 操作系统:推荐使用 Ubuntu 20.04 或 CentOS 7。
- 网络配置:确保机器可以访问外网,用于下载软件包。
2. 安装依赖
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装基础软件包
sudo apt install -y python3-pip git
# 安装 OpenStack 客户端
sudo pip3 install python-openstackclient
3. 配置 OVS + VLAN
-
安装 OVS:
sudo apt install -y openvswitch-switch
-
创建 OVS 网桥和 VLAN 接口:
# 创建 VLAN 网桥 sudo ovs-vsctl add-br br-vlan # 创建 VLAN 接口并绑定到物理网卡(假设物理网卡为 eth0) sudo ovs-vsctl add-port br-vlan eth0 tag=10 sudo ip link set dev eth0 up sudo ip link set dev br-vlan up
-
配置 Neutron 使用 OVS + VLAN:
编辑 Neutron 配置文件(如
/etc/neutron/plugins/ml2/ml2_conf.ini
),启用 VLAN 网络并指定网桥映射:[ml2] type_drivers = flat,vlan tenant_network_types = vlan mechanism_drivers = openvswitch [ml2_type_vlan] network_vlan_ranges = default:3001:4000 [ovs] bridge_mappings = default:br-vlan
4. 安装和配置 OpenStack
-
下载 DevStack:
git clone https://github.com/openstack-dev/devstack.git
cd devstack
-
创建配置文件:
创建
local.conf
文件,配置 OpenStack 的基本信息(如密码、网络等):cat <<EOF > local.conf [[local|localrc]] ADMIN_PASSWORD=password DATABASE_PASSWORD=password RABBIT_PASSWORD=password SERVICE_PASSWORD=password USE_PYTHON3=True Q_USE_PROVIDERNET_FOR_PUBLIC=True FLOATING_IP_RANGE=192.168.1.224/27 PUBLIC_INTERFACE=eth0 OVS_PHYSICAL_BRIDGE=br-vlan EOF
-
启动 DevStack:
./stack.sh
-
验证安装:
安装完成后,检查 OpenStack 服务状态:
source openrc admin admin
openstack service list
二、多节点手动部署 OpenStack(OVS + VLAN)
1. 网络拓扑规划
- 确定控制节点、计算节点、网络节点的 IP 地址、网关、子网等信息。
- 确保所有节点之间可以相互通信。
2. 安装操作系统和依赖
- 在每个节点上安装相同的操作系统(如 Ubuntu 20.04)。
- 安装基础软件包和 OpenStack 客户端。
3. 配置 OVS + VLAN
- 在每个节点上安装 OVS 并创建相应的网桥和 VLAN 接口。
- 确保所有节点的网络配置一致。
4. 安装和配置 OpenStack 组件
-
控制节点:
- 安装 Keystone、Glance、Nova、Neutron 等服务。
- 配置 Neutron 使用 OVS + VLAN。
-
计算节点:
- 安装 Nova 和 Neutron 代理。
- 配置 Nova 使用控制节点的服务。
-
网络节点(可选):
- 安装 Neutron 服务。
- 配置 Neutron 提供外部网络访问。
5. 启动服务并验证
- 在每个节点上启动相应的 OpenStack 服务。
- 使用 OpenStack CLI 或 Dashboard 验证部署是否成功。
三、PackStack 自动化部署原理
PackStack 是一个用于快速部署 OpenStack 的工具,它通过自动化脚本简化了安装和配置过程。
1. 工作原理
- 依赖管理:PackStack 自动安装和配置 OpenStack 所需的依赖软件包。
- 模板配置:使用预定义的配置模板生成配置文件。
- 服务启动:自动启动所有 OpenStack 服务。
2. 使用步骤
-
环境准备:确保系统满足 PackStack 的最低要求。
-
安装 PackStack:
sudo yum install -y centos-release-openstack-train
sudo yum install -y openstack-packstack -
生成配置文件:
packstack --gen-answer-file=answer.txt
-
编辑配置文件:根据需要修改
answer.txt
中的配置参数。 -
运行 PackStack:
packstack --answer-file=answer.txt
-
验证安装:使用 OpenStack CLI 或 Dashboard 验证部署是否成功。
四、手动部署与自动化部署的理解差异
手动部署:
- 优点:可以更深入地理解 OpenStack 的架构和配置细节。
- 缺点:耗时较长,容易出错,适合学习和测试环境。
自动化部署:
- 优点:快速、高效,适合生产环境。
- 缺点:可能掩盖了部分配置细节,不利于深入理解。
纠正观点:
- 手动部署并不比自动化部署理解更深。手动部署虽然需要手动配置每个步骤,但自动化部署也可以通过查看和修改配置文件来深入理解。
- 两者相辅相成:手动部署适合学习和测试,自动化部署适合生产环境。在实际应用中,可以根据需求选择合适的部署方式。