火山引擎云服务器实践教程-搭建Ceph

axin 2025-04-03 5人围观 ,发现0个评论 火山引擎云服务器云服务器云服务器教程

👉点击这里申请火山引擎VIP帐号,立即体验火山引擎产品>>>

Ceph是一种开源分布式文件系统,具有高可靠、自动重均衡、灵活扩展等特点,支持对象存储、块存储以及文件存储。本文为您介绍如何搭建Ceph。

Ceph组成

RADOS(Reliable Autonomic Distributed Object Store)是Ceph存储系统的核心,也称Ceph存储集群,具有高可用、自我修复、自我管理等特性,包括Ceph Monitor和Ceph OSD两个核心组件。
  • Ceph Monitor :通过图表方式监控集群运行状态,包括监视器图、OSD 图、归置组(PG)图和 CRUSH 图。

  • Ceph OSD :存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他 OSD 守护进程的心跳向 Ceph Monitors 提供一些监控信息。通常至少需要3个Ceph OSD来实现冗余和高可用性。

更多内容,请参考Ceph Documentation。

前提条件

在进行本实践前,您需要完成以下准备工作:
  1. 注册火山引擎账号,并完成实名认证。您可以登录火山引擎控制台,在顶部导航栏右侧,单击“账号管理 > 实名认证”,前往实名认证页面查看是否已经完成实名认证。

  1. 火山引擎账户余额大于100元。您可以登录火山引擎控制台,并前往账户总览页面查看账户余额。

实践规划

本最佳实践通过火山引擎云服务器、私有网络、公网NAT网关等产品进行 Ceph 部署,本文中相关产品规划如下:
产品或服务
本文示例
备注
私有网络
名称:ceph-vpc
IPv4:172.16.0.0/12
地域:华北2(北京)
可用区:可用区A
子网名称:ceph-cluster-subnet
IPv4:172.16.3.0/24
弹性计算ECS
名称:ceph-node1
规格:ecs.g1.xlarge(vCPU: 4 /内存:16GiB)
系统盘:100GiB
数据盘:200GiB * 3
操作系统:CentOS 7.6
地域及可用区:华北2(北京)可用区A
私网地址:172.16.3.76
名称:ceph-node2
规格:ecs.g1.xlarge(vCPU: 4 /内存:16GiB)
系统盘:100GiB
数据盘:200GiB * 3
操作系统:CentOS 7.6
地域及可用区:华北2(北京)可用区A
私网地址:172.16.3.237
名称:ceph-node3
规格:ecs.g1.xlarge(vCPU: 4 /内存:16GiB)
系统盘:100GiB
数据盘:200GiB * 3
操作系统:CentOS 7.6
地域及可用区:华北2(北京)可用区A
私网地址:172.16.3.223
名称:ceph-client
规格:ecs.g1.xlarge(vCPU: 4 /内存:16GiB)
系统盘:40GiB
操作系统:CentOS 7.6
地域及可用区:华北2(北京)可用区A
私网地址:172.16.3.211
公网NAT网关
名称:ceph-nat
规格:小型
地域及可用区:华北2(北京)可用区A
公网地址:180.184.xx.xx

火山引擎环境部署

在部署Ceph前,您需要先完成火山引擎上的一系列环境部署,包括私有网络VPC的创建,云服务器的创建以及公网NAT网关的创建。这些是您开启Ceph安装的必要条件。

创建VPC和Subnet

  1. 登录火山引擎控制台。

  1. 在左侧导航树中,单击“产品与服务 > 私有网络”。

  1. 在顶部导航栏选择“华北2(北京)”地域。

  1. 在私有网络列表页面,单击“创建私有网络”。

  1. 在创建私有网络页面,进行私有网络和子网相关参数配置,具体配置描述见下表。

类别
配置项
说明
私有网络
地域
华北2(北京)
名称
ceph-vpc
IPv4 网段
172.16.0.0/12
子网
名称
ceph-cluster-subnet
可用区
可用区A
IPv4 网段
172.16.3.0/24
  1. 参数配置完成后,单击“确定”。

创建云服务器

  1. 登录火山引擎控制台。

  1. 在左侧导航树中,单击“产品与服务 > 云服务器”。

  1. 在左侧导航栏选择“实例”,地域选择为华北2(北京),并单击“创建实例”。

  1. 在创建实例页面中,配置相关参数,具体如下表。

配置项
说明
计费方式
按量计费
地域及可用区
华北2(北京) 可用区A
实例
规格:通用型
实例规格ecs.g1.xlarge(vCPU: 4 /内存:16GiB)
镜像
公共镜像 CentOS 7.6
此处对操作系统类型无强制要求,可选用任何的 Linux 操作系统。本文以 CentOS 7.6为例。
存储
系统盘 40GiB * 1
数据盘 200GiB * 3
  1. 完成基础配置后,单击“下一步”,进行网络与安全配置。

配置项
说明
网络
私有网络:选择已创建的 VPC(ceph-vpc)
子网:选择已创建的子网(ceph-cluster-subnet)
安全组
选择默认安全组。
弹性公网IP
取消勾选“分配弹性公网IP”。
  1. 单击“下一步:确认订单”。

  1. 在确认订单页面中,确认各项参数信息。确认无误后,请根据控制台指引查阅并确认相关协议,并单击“立即购买”按钮,创建实例。

本文中部署Ceph需创建4台ECS实例,请参考实践规划进行创建。

创建弹性公网 IP

  1. 登录火山引擎控制台。

  1. 在左侧导航树中,单击“产品与服务 > 公网 IP”。

  1. 在公网 IP列表页,单击“申请公网 IP”。

  1. 按下图配置公网 IP相关参数,单击“确认订单”,创建公网 IP。

配置项
说明
名称
ceph-nat-eip
线路类型
选择“BGP(多线)”。
计费类型
选择“按带宽上限计费”。

创建公网NAT网关

  1. 登录火山引擎控制台。

  1. 在左侧导航树中,单击“产品与服务 > 公网NAT网关”。

  1. 在公网NAT网关列表页,单击“创建公网NAT网关”。按下图配置相关参数,单击“确认订单”。

image.png

  1. 确认配置详情后,请根据控制台指引查阅并确认相关协议,并单击“立即购买”按钮,完成公网NAT网关创建。

配置项
说明
计费类型
按量计费
地域
华北2(北京)
规格
小型
私有网络
ceph-vpc
  1. 在公网NAT网关控制台,单击已创建的ceph-nat,进入公网NAT网关详情页。单击“公网 IP > 绑定公网 IP”,添加公网 IP ceph-eip

  1. 在公网NAT网关详情页,单击“SNAT规则 > 创建SNAT 规则”,添加SNAT规则。

image.png

Ceph集群安装准备

为了更加快速部署Ceph集群,本实践中大部分操作使用Ansible批量操作,以减少各个节点来回切换的时间。
说明
下列操作只有修改主机名步骤需要登录到各个节点进行修改,其它均在部署节点ceph-node1执行即可。

主机规划

主机
IP
功能
ceph-node1
172.16.3.76
mon、osd、mgr、deploy
ceph-node2
172.16.3.237
mon、osd、mgr
ceph-node3
172.16.3.223
mon、osd、mgr
ceph-client
172.16.3.211
-

准备安装环境

修改主机名

使用ECS Terminal或远程连接工具,分别登录到四台云服务器命令行界面,依次修改主机名。
hostnamectl set-hostname ceph-node1hostnamectl set-hostname ceph-node2hostnamectl set-hostname ceph-node3hostnamectl set-hostname ceph-client

在ceph-node1配置环境

  1. 配置域名解析文件。

    1. 执行vim /etc/hosts命令,打开/etc/hosts文件。

    1. 按i,进入编辑模式。

    1. 在/etc/hosts文件末尾添加如下内容,请将私网IP地址修改为您自己的私网IP。

172.16.3.76   ceph-node1172.16.3.237  ceph-node2172.16.3.223  ceph-node3172.16.3.211  ceph-client
    1. 按Esc键,输入:wq按回车键,保存并退出文件。

  1. 配置免密登录。

ssh密钥默认保留在 ~/.ssh 目录中,您可以根据需求在配置密钥时,指定ssh密钥保存位置。如不指定,在设置密钥保存位置时回车即可。
ssh-keygen -t rsa -P ''ssh-copy-id ceph-node1ssh-copy-id ceph-node2ssh-copy-id ceph-node3ssh-copy-id ceph-client
  1. 安装Ansible。

    1. 执行以下命令,安装Ansible。

yum install epel-release -yyum install ansible -y
    1. 执行vim /etc/ansible/hosts命令,打开/etc/ansible/hosts文件。

    1. 按i,进入编辑模式。

    1. 在/etc/ansible/hosts文件末尾,添加如下内容。

[ceph]ceph-node1 ansible_ssh_user=rootceph-node2 ansible_ssh_user=rootceph-node3 ansible_ssh_user=root
    1. 按Esc键,输入:wq按回车键,保存并退出文件。

    1. 执行以下命令,查看节点是否都能无密登录。

ansible ceph -m ping
出现如下回显信息,即为设置成功。

image.png

  1. 执行以下命令,拷贝hosts到其他机器,将管理机文件复制到远程主机中。

ansible ceph -m copy -a 'src=/etc/hosts dest=/etc/'
ceph-node1,2,3出现如下回显信息,即为配置成功。

image.png

  1. 配置ceph源。

    1. 执行vim /etc/yum.repos.d/ceph.repo命令,打开 /etc/yum.repos.d/ceph.repo 文件。

    1. 按i,进入编辑模式。

    1. 在/etc/yum.repos.d/ceph.repo文件添加如下内容。

[ceph]name = cephgpgcheck = 0baseurl = https://mirrors.volces.com/ceph/rpm-luminous/el7/x86_64/[ceph-deploy]name = ceph-deploygpgcheck = 0baseurl = https://mirrors.volces.com/ceph/rpm-luminous/el7/noarch/
    1. 按Esc键,输入:wq按回车键,保存并退出文件。

    1. 执行以下命令,将配置修改拷贝到其它节点。

ansible ceph -m copy -a 'src=/etc/yum.repos.d/ceph.repo dest=/etc/yum.repos.d/'
ceph-node1,2,3出现如下回显信息,即为配置成功。

image.png

  1. 配置 /etc/yum.conf 文件,限制安装 ceph 的版本。

    1. 执行vim /etc/yum.conf命令,打开 /etc/yum.conf 文件。

    1. 按i,进入编辑模式。

    1. 在/etc/yum.conf文件末尾,添加如下内容。

exclude=*12.2.13*
    1. 按Esc键,输入:wq按回车键,保存并退出文件。

    1. 执行以下命令,将修改好的yum配置复制到其它节点中。

ansible ceph -m copy -a 'src=/etc/yum.conf dest=/etc/yum.conf'

安装和配置Ceph集群

  1. 执行以下命令,安装ceph-deploy。

yum install ceph-deploy -yceph-deploy --version
可查询到版本信息,即为安装成功。

image.png

  1. 使用ceph-deploy安装ceph。

注意
进行此操作前,请确保已安装epel源,否则会报错。
    1. 执行以下命令,安装 ceph。

ansible ceph -m yum -a 'name=epel-release state=latest'ceph-deploy install --no-adjust-repos ceph-node1 ceph-node2 ceph-node3
返回如下回显信息即为安装成功。

image.png

    1. 执行以下命令,查看 ceph 版本。

ansible ceph -m shell -a 'ceph -v'
返回如下回显信息:

image.png

  1. 部署 RADOS存储集群。

    1. 执行以下命令,初始化集群。

mkdir ceph-clustercd ceph-cluster/ceph-deploy new ceph-node1 ceph-node2 ceph-node3ls
返回如下回显信息:

image.png

    1. 执行cat ceph.conf命令,查看配置如下图:

image.png

  1. 执行以下命令,部署 mon 节点。

ceph-deploy mon create-initialls
返回如下回显信息:

image.png

  1. 执行以下命令,拷贝 admin 配置到其他节点。

ceph-deploy admin ceph-node1 ceph-node2 ceph-node3ceph -s
返回如下回显信息:

image.png

image.png

  1. 部署ceph-mgr。

Ceph-mgr作为Ceph 12.2主推的功能之一,是负责Ceph集群管理的组件,目标是实现Ceph集群的管理,为外界提供统一的入口。
执行以下指令进行部署。
ceph-deploy mgr create ceph-node1 ceph-node2 ceph-node3ceph -s
返回如下回显信息:

image.png

  1. 启动Ceph Dashboard。

Ceph提供了原生的Dashboard功能,通过Dashboard可以获取Ceph集群的各种基本状态信息。
    1. 执行以下命令,开启Dashboard。

ceph mgr module enable dashboard#查看当前 dashboard 位置ceph mgr services
    1. 为Ceph Dashboard所在节点绑定公网 IP。

    1. 安装完成后,打开浏览器并在地址栏输入:http://<Dashboard 所在节点公网IP>:7000

说明
访问Dashboard前,请参考修改安全组访问规则放行7000端口。

image.png

  1. 添加OSD。

    1. 执行以下命令,为各节点创建OSD。

ceph-deploy disk zap ceph-node1 /dev/vdbceph-deploy disk zap ceph-node1 /dev/vdcceph-deploy osd create ceph-node1 --data /dev/vdbceph-deploy osd create ceph-node2 --data /dev/vdbceph-deploy osd create ceph-node3 --data /dev/vdbceph-deploy osd create ceph-node1 --data /dev/vdcceph-deploy osd create ceph-node2 --data /dev/vdcceph-deploy osd create ceph-node3 --data /dev/vdc
    1. 执行ceph -s命令,查询集群状态。

image.png

块存储RBD创建

RBD(RADOS Block Device)块存储,是最稳定且最常用的存储类型。RBD块设备类似磁盘可以被挂载。 RBD块设备具有快照、多副本、克隆和一致性等特性,数据以条带化的方式存储在Ceph集群的多个OSD中。
  1. 执行以下命令,创建ceph pool。

rados mkpool <poolname>rados lspools
返回如下回显信息,即为创建成功。

image.png

  1. 执行以下命令,在ceph pool中创建image1。

rbd create <poolname>/image1 --size 20480 --image-format 2rbd info <poolname>/image1
返回如下回显信息,即为创建成功。

image.png

  1. 执行rbd list <poolname> 命令,查看ceph pool中image信息。

返回如下回显信息:

image.png

使用client挂载RBD到本地

  1. 在ceph-node1执行以下命令,安装ceph-client。

ceph-deploy install ceph-clientceph-deploy admin ceph-client
  1. 在ceph-client环境执行以下命令,挂载RBD到本地。

rbd create <poolname>/test2 --size 20G --image-format 2rbd map testdevice --pool <poolname> --image test2rbd feature disable <poolname>/test2 object-map fast-diff deep-flattenrbd map testdevice --pool <poolname> --image test2mkfs.ext4 -m0 /dev/rbd0mkdir /mnt/ceph-block-devicesudomount -t ext4 /dev/rbd0  /mnt/ceph-block-devicesudodf -h
返回如下回显信息,即为挂载成功。

image.png

集群卸载

执行以下命令,进行集群卸载。
# 卸载ceph软件包ceph-deploy purge {ceph-node} [{ceph-node} ...]# 删除各种配置文件和生成的数据文件ceph-deploy purgedata {ceph-node} [{ceph-node} ...]# 将卸载节点的认证密钥从本地目录移除ceph-deploy forgetkeys

名词解释

  • 云服务器

云服务器ECS是一种简单高效、处理能力可弹性伸缩的计算服务。ECS帮助您构建更稳定、安全的应用,提升运维效率,降低IT成本,使您更专注于核心业务创新。
  • 私有网络

私有网络VPC是用户基于火山引擎创建的自定义私有网络,不同的私有网络之间二层逻辑隔离,用户可以在自己创建的私有有网络内创建和管理云产品实例,比如ECS、负载均衡、RDS 等。
  • 公网NAT网关

公网NAT网关是一款企业级公网网关,为私有网络内的云服务器提供网络地址转换服务,支持SNAT规则和DNAT规则,实现多台云服务器共享公网IP访问公网或向公网提供服务。


请关注微信公众号
微信二维码
不容错过
Powered By TOPYUN 云产品资讯