OpenStack
OpenStack 是由来自全球的开发者及云计算专家合作开放的一套被广泛使用的公有/私有云计算平台。该项目着重于为所有类型的云创造一套易于实现、高可扩展性且功能丰富的解决方案。该平台由一系列互相关联的项目组成,为云基础设施方案提供各种组件。
组件[编辑 | 编辑源代码]
- 计算 (Nova) — Nova 是用于提供计算实例(即虚拟机)的 Openstack 项目。
- 网络 (Neutron) — Neutron 是用于在其它 OpenStack 服务(例如 Nova)管理的接口设备(例如 vNIC)之间提供“网络即服务”功能的 OpenStack 项目。它实现了 OpenStack 网络 API。
- 镜像服务 (Glance) — 镜像服务 (glance) 项目提供了让用户上传并发现用于让其它服务使用的数据资产的功能。
- 块存储 (Cinder) — Cinder 是用于为 Nova 虚拟机、Ironic 裸金属、容器等服务提供存储盘的 OpenStack 服务。
- 鉴权 (Keystone) — Keystone 是通过 OpenStack 身份 API 提供 API 用户验证,服务发现及分布式多租户授权的 OpenStack 服务。
- 控制面板 (Horizon) — Horizon 是 canonical 对于 OpenStack 面板的实现,它为 Nova、Swift、Keystone 等 OpenStack 服务提供了网页用户界面。
部署 OpenStack[编辑 | 编辑源代码]
镜像[编辑 | 编辑源代码]
可用镜像[编辑 | 编辑源代码]
Openstack 官方镜像包含了大部分流行的 GNU/Linux 发行版。
Arch Linux 官方云镜像可以在以下链接下载:https://gitlab.archlinux.org/archlinux/arch-boxes
自己创建镜像[编辑 | 编辑源代码]
OpenStack 镜像需要满足一些要求。可以手动或是使用工具来协助准备镜像。
若要使用工具,可以考虑将 image-bootstrap 搭配 --openstack
选项使用。
若要手动创建,下面为一系列必须步骤:
- 将一个硬盘分区为单一的 ext3/4 分区。
- 安装基础系统到分区中(例如使用 arch-install-scripts包 中的
pacstrap
) - 安装引导程序(例如 GRUB 或是 extlinux)
- 安装并配置 cloud-init
- 添加一个可以无密码运行 sudo 的用户
- 为
eth0
配置 DHCP- 配置 udev 将网络接口命名为
eth*
- 配置 systemd-networkd 在
eth0
上使用 DHCP
- 配置 udev 将网络接口命名为
- 安装 SSH 服务器
- 调整 initramfs 配置并重新生成 initramfs 镜像
- Disabling the
autodetect
hook (since autodetection works differently from a chroot) - Either activating hook
growfs
from mkinitcpio-growrootfsAUR or installinggrowpart
from cloud-utils包 and have cloud-init do resizing by itself
- Disabling the
- 通过 enabling 来使服务自动启动
- 删除生成的密钥(例如 SSH 服务器及 pacman);可以配置为在系统初次启动时自动生成密钥
- 删除设备ID(
/etc/machine-id
及/var/lib/dbus/machine-id
)以使系统间不会冲突