Openstack 与 Ceph集群搭建(上): 规划与准备

文章目录

  • 一、写在前面
    • [1. 网络架构](#1. 网络架构)
    • [2. 节点规划](#2. 节点规划)
    • [3. 软件版本](#3. 软件版本)
    • [4. 避坑指南](#4. 避坑指南)
  • 二、基础配置
    • [1. host配置](#1. host配置)
    • [2. 修改hostname名称](#2. 修改hostname名称)
    • [3. 确保root账号能登录系统](#3. 确保root账号能登录系统)
    • [4. 配置NTP](#4. 配置NTP)
    • [5. 配置免密登录](#5. 配置免密登录)

一、写在前面

近期将进行三节点的Openstack、Ceph集群混合部署,本人将详细记录该过程。在此之前,本文为Openstack与ceph集群搭建的上篇,主要展现集群的整体规划与注意事项。中、下篇将详细介绍ceph与Openstack的安装细节。

在生产环境建议将Openstack节点与Ceph节点分开部署

1. 网络架构

所有节点网络结构都相同,图中只画了两个节点。在后续部署过程中需要确保所有节点能连接互联网。

以上架构图中在服务器的物理层面是2个(实际可支持多端口捆绑)10G端口通过链路聚合连接到物理交换机, 底层接口类型配置为Trunk模式。在操作系统层面将统一呈现为bond0逻辑接口。

在混合部署模式中,为了区分openstack和ceph流量,在方案设计时我们基于bond0口划分了VLAN。 VLAN1250 用作Openstack;VLAN1249用作Ceph。
所以在安装系统时一定要选择创建bond接口, 如下:

2. 节点规划

节点名称 IP 物理(逻辑)接口 Idrac 其他说明
node-01 vlan1250 172.16.250.250 vlan1249 172.16.249.250 vlan1250(Op、Ceph、物理环境管理网) vlan1249(ceph集群内部通信) bond0(OpenStack 虚拟机使用的物理网络) OpenStack 控制、计算节点、部署节点、OSD节点
node-02 vlan1250 172.16.250.249 vlan1249 172.16.249.249 vlan1250(Op、Ceph、物理环境管理网) vlan1249(ceph集群内部通信) bond0(OpenStack 虚拟机使用的物理网络) OpenStack 计算节点、OSD节点
node-03 vlan1250 172.16.250.248 vlan1249 172.16.249.248 vlan1250(Op、Ceph、物理环境管理网) vlan1249(ceph集群内部通信) bond0(OpenStack 虚拟机使用的物理网络) OpenStack 计算节点、Ceph 控制节点、OSD节点、Ceph部署节点

3. 软件版本

软件名称 软件版本 其他
Ubuntu 22.04 (Jammy Jellyfish) 截止目前24.04还不支持Openstack
CEPH Reef 18.2.2 Ceph也不支持24.04 ,有小bug
OpenStack 2024.1

4. 避坑指南

一、 原则强烈不建议CEPH 与OpenStack管理节点部署在同一台服务器上,因为由很多端口会冲突。比如grafana 3000端口。

二、若强行将ceph管理节点与Openstack管理节点部署在同一台物理机,则安装以下顺序进行部署:

  1. Ceph
  2. OpenStack(不要配置ceph对接配置),且关闭grafana3000端口。
  3. 重新配置OpenStack对接Ceph
    以上顺序可避免Openstack部署过程中docker不能重启的问题;

二、基础配置

以下基础配置需要在每台节点上执行。

1. host配置

在所有节点上编辑 /etc/hosts文件添加以下信息

bash 复制代码
172.16.250.250 node-01
172.16.250.249 node-02
172.16.250.248 node-03
172.16.249.250 node-01
172.16.249.249 node-02
172.16.249.248 node-03

2. 修改hostname名称

按照规划表修改节点名称

bash 复制代码
sudo hostnamectl hostname node-01 --static
sudo hostnamectl hostname node-02 --static
sudo hostnamectl hostname node-03 --static

3. 确保root账号能登录系统

配置root密码

bash 复制代码
sudo psswd root 

编辑各节点etc/ssh/sshd_config 文件,允许root 登录

bash 复制代码
PermitRootLogin yes

然后重启sshd服务生效

bash 复制代码
systemctl restart sshd

4. 配置NTP

集群中每节点时间必须同步,否则可能出现因时间不一致导致的各种奇奇怪怪问题。我们采用chrony软件来同步时间。在所有节点上执行以下代码

bash 复制代码
sudo apt install chrony
chronyc tracking
chronyc sources

5. 配置免密登录

需要确保 部署节点能 免密登录到其他节点,如: node01 能免密ssh到node02、node03

确保部署节点(CEPH、OpenStack)能无密码登录其他主机进行部署。

kolla-ansible, 是openstack官方基于ansible开发的openstack部署工具,底层基于ansible;ansible实现原理是提前在部署节点编辑好配置,然后通过ssh到各目标节点进行部署。故需要保证部署节点在部署过程中可实现无密码ssh到目标节点。

bash 复制代码
# 生成ssh-key密钥对,一路回车
root@node-01:~# ssh-keygen
Generating public/private ed25519 key pair.
Enter file in which to save the key (/root/.ssh/id_ed25519): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_ed25519
Your public key has been saved in /root/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:erhS2TrsCRVDdVFOwhdlmUJ/lTxwOR9xsNQO77Yc1z8 root@node-01
The key's randomart image is:
+--[ED25519 256]--+
|      ....++=+BB*|
|     .   ..+o+=O+|
|      o    ...o+*|
|       o       .+|
|      .oS      ..|
|     .oo.      .=|
|    .oo..     ..=|
|    ..++       E.|
|     o+.        .|
+----[SHA256]-----+

将公钥同步同步到每一个节点:

bash 复制代码
ssh-copy-id -i /root/.ssh/id_rsa.pub note-01
ssh-copy-id -i /root/.ssh/id_rsa.pub node-02
ssh-copy-id -i /root/.ssh/id_rsa.pub node-03
# 其他节点自行补充

输出如下:

bash 复制代码
root@deploypoint:~# ssh-copy-id -i /root/.ssh/id_rsa.pub compute01
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host 'compute01 (192.168.220.61)' can't be established.
ED25519 key fingerprint is SHA256:DVS6AOAOnzLBOU237qgWLs3LhECGhEYe3udS910X2ek.
This host key is known by the following other names/addresses:
    ~/.ssh/known_hosts:1: [hashed name]
    ~/.ssh/known_hosts:4: [hashed name]
    ~/.ssh/known_hosts:5: [hashed name]
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@compute01's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'compute01'"
and check to make sure that only the key(s) you wanted were added.
相关推荐
怡雪~10 小时前
Kubernetes使用Ceph存储
ceph·容器·kubernetes
終不似少年遊*4 天前
云计算HCIP-OpenStack01
云原生·云计算·学习笔记·openstack·hcip·虚拟化
終不似少年遊*8 天前
云计算HCIP-OpenStack03
linux·网络·云原生·云计算·学习笔记·openstack·hcip
終不似少年遊*8 天前
云计算HCIP-OpenStack02
云原生·云计算·学习笔记·openstack·hcip
終不似少年遊*8 天前
云计算HCIP-OpenStack04
云原生·云计算·学习笔记·openstack·hcip·虚拟化
終不似少年遊*9 天前
华为云(openstack)常用命令行
linux·服务器·网络·华为云·云计算·操作系统·openstack
学Linux的语莫11 天前
负载均衡,高可用,监控服务搭建总结
linux·服务器·分布式·ceph·lvs
运维小文11 天前
cephFS的使用以及K8S对接cephFS
ceph·云原生·容器·kubernetes·对象存储·cephfs
学Linux的语莫14 天前
ceph集群搭建,ceph块存储,文件存储,对象存储
linux·服务器·分布式·ceph
Rverdoser14 天前
K8S对接ceph的RBD块存储
ceph·容器·kubernetes