You need to enable JavaScript to run this app.
文档中心
云服务器

云服务器

复制全文
下载 pdf
搭建应用
搭建Ceph
复制全文
下载 pdf
搭建Ceph
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。​
前提条件​
  • 云服务器状态为 运行中 。​
实践规划​
本最佳实践通过火山引擎平台云服务器、私有网络、公网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. 在顶部导航栏选择“华北2(北京)”地域。​
  1. 在私有网络列表页面,单击“创建私有网络”。​
  1. 在创建私有网络页面,进行私有网络和子网相关参数配置,具体配置描述见下表。​
  • ​
    类别​
    配置项​
    说明​
    基本信息​
    地域​
    华北2(北京)​
    ​
    名称​
    ceph-vpc​
    网络段​
    IPv4 CIDR​
    172.16.0.0/12​
    子网​
    可用区​
    可用区A​
    ​
    名称​
    ceph-cluster-subnet​
    ​
    IPv4 CIDR​
    172.16.3.0/24​
    ​
  1. 参数配置完成后,单击“确定”。​
创建云服务器​
  1. 在顶部导航栏选择地域为“华北2(北京)”,并单击“创建实例”。​
  1. 在左侧导航树中,选择“实例与镜像 > 实例”。​
  1. 在创建实例页面中,配置相关参数,具体如下表。​
  • 基础配置​
  • ​
    配置项​
    说明​
    计费方式​
    按量计费​
    地域及可用区​
    • 地域:华北2(北京)​
    • 可用区:可用区A​
    实例​
    规格:通用型​
    实例规格ecs.g1.xlarge(vCPU: 4 /内存:16GiB)​
    镜像​
    公共镜像 CentOS 7.6​
    此处对操作系统类型无强制要求,可选用任何的 Linux 操作系统。本文以 CentOS 7.6为例。​
    存储​
    系统盘 40GiB * 1​
    数据盘 200GiB * 3​
    ​
  • 网络配置​
  • ​
    配置项​
    说明​
    网络​
    私有网络:选择已创建的 VPC(ceph-vpc)​
    子网:选择已创建的子网(ceph-cluster-subnet)​
    安全组​
    选择默认安全组。​
    弹性公网IP​
    取消勾选“分配弹性公网IP”。​
    ​
  • 自定义配置​
  • ​
    配置项​
    说明​
    登录方式​
    密码和SSH密钥:​
    • SSH密钥由公钥和私钥文件构成,如果您有已创建的密钥对,可以选择该密钥对名称来绑定,绑定后便可使用私钥登录Linux实例;未创建密钥对可以单击“创建密钥对”按钮前往创建。​
    • 建议选择“SSH密钥”方式,安全性更高;如果选择“密码”方式,建议增加密码复杂度,提高安全性。​
    实例名称​
    按需配置为ceph-node1、ceph-node2、ceph-node3、ceph-client。​
    ​
  1. 单击“下一步:确认订单”。​
  1. 在确认订单页面中,确认各项参数信息。确认无误后,请根据控制台指引查阅并确认相关协议,并单击“立即购买”按钮,创建实例。​
  • 本文中部署Ceph需创建4台ECS实例,请参考实践规划进行创建。​
创建弹性公网 IP​
  1. 在左侧导航树中,单击“网络与安全 > 公网 IP”。​
  1. 在公网 IP列表页,单击“申请公网 IP”。​
  1. 按下图配置公网 IP相关参数,单击“同意并购买”,创建公网 IP。​
  • ​
    配置项​
    说明​
    名称​
    ceph-nat-eip​
    线路类型​
    选择“BGP(多线)”。​
    计费类型​
    选择“按带宽上限计费”。​
    ​
创建公网NAT网关​
  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-node1​
hostnamectl set-hostname ceph-node2​
hostnamectl set-hostname ceph-node3​
hostnamectl 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-node1​
    172.16.3.237 ceph-node2​
    172.16.3.223 ceph-node3​
    172.16.3.211 ceph-client​
    ​
  1. 按Esc键,输入:wq按回车键,保存并退出文件。​
  1. 配置免密登录。​
  • ssh密钥默认保留在 ~/.ssh 目录中,您可以根据需求在配置密钥时,指定ssh密钥保存位置。如不指定,在设置密钥保存位置时回车即可。​
  • ​
    ssh-keygen -t rsa -P ''​
    ssh-copy-id ceph-node1​
    ssh-copy-id ceph-node2​
    ssh-copy-id ceph-node3​
    ssh-copy-id ceph-client​
    ​
  1. 安装Ansible。​
  1. 执行以下命令,安装Ansible。​
  • ​
    yum install epel-release -y​
    yum install ansible -y​
    ​
  1. 执行vim /etc/ansible/hosts命令,打开/etc/ansible/hosts文件。​
  1. 按i,进入编辑模式。​
  1. 在/etc/ansible/hosts文件末尾,添加如下内容。​
  • ​
    [ceph]​
    ceph-node1 ansible_ssh_user=root​
    ceph-node2 ansible_ssh_user=root​
    ceph-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 = ceph​
    gpgcheck = 0​
    baseurl = https://mirrors.volces.com/ceph/rpm-luminous/el7/x86_64/​
    ​
    [ceph-deploy]​
    name = ceph-deploy​
    gpgcheck = 0​
    baseurl = 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 -y​
    ceph-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-cluster​
    cd ceph-cluster/​
    ceph-deploy new ceph-node1 ceph-node2 ceph-node3​
    ls​
    ​
  • 返回如下回显信息:​
  • ​image.png​​
  1. 执行cat ceph.conf命令,查看配置如下图:​
  • ​image.png​​
  1. 执行以下命令,部署 mon 节点。​
  • ​
    ceph-deploy mon create-initial​
    ls​
    ​
  • 返回如下回显信息:​
  • ​image.png​​
  1. 执行以下命令,拷贝 admin 配置到其他节点。​
  • ​
    ceph-deploy admin ceph-node1 ceph-node2 ceph-node3​
    ceph -s​
    ​
  • 返回如下回显信息:​
  • ​image.png​​
  • ​image.png​​
  1. 部署ceph-mgr。​
  • Ceph-mgr作为Ceph 12.2主推的功能之一,是负责Ceph集群管理的组件,目标是实现Ceph集群的管理,为外界提供统一的入口。​
  • 执行以下指令进行部署。​
  • ​
    ceph-deploy mgr create ceph-node1 ceph-node2 ceph-node3​
    ceph -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/vdb​
    ceph-deploy disk zap ceph-node1 /dev/vdc​
    ceph-deploy osd create ceph-node1 --data /dev/vdb​
    ceph-deploy osd create ceph-node2 --data /dev/vdb​
    ceph-deploy osd create ceph-node3 --data /dev/vdb​
    ceph-deploy osd create ceph-node1 --data /dev/vdc​
    ceph-deploy osd create ceph-node2 --data /dev/vdc​
    ceph-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 2​
    rbd 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-client​
    ceph-deploy admin ceph-client​
    ​
  1. 在ceph-client环境执行以下命令,挂载RBD到本地。​
  • ​
    rbd create <poolname>/test2 --size 20G --image-format 2​
    rbd map testdevice --pool <poolname> --image test2​
    rbd feature disable <poolname>/test2 object-map fast-diff deep-flatten​
    rbd map testdevice --pool <poolname> --image test2​
    mkfs.ext4 -m0 /dev/rbd0​
    mkdir /mnt/ceph-block-devicesudo​
    mount -t ext4 /dev/rbd0 /mnt/ceph-block-devicesudo​
    df -h​
    ​
  • 返回如下回显信息,即为挂载成功。​
  • ​image.png​​
集群卸载​
执行以下命令,进行集群卸载。​
​
# 卸载ceph软件包​
ceph-deploy purge {ceph-node} [{ceph-node} ...]​
​
# 删除各种配置文件和生成的数据文件​
ceph-deploy purgedata {ceph-node} [{ceph-node} ...]​
​
# 将卸载节点的认证密钥从本地目录移除​
ceph-deploy forgetkeys​
​
​
最近更新时间:2025.09.18 18:47:47
这个页面对您有帮助吗?
有用
有用
无用
无用