👉点击这里申请火山引擎VIP帐号,立即体验火山引擎产品>>>
Ceph组成
Ceph Monitor :通过图表方式监控集群运行状态,包括监视器图、OSD 图、归置组(PG)图和 CRUSH 图。
Ceph OSD :存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他 OSD 守护进程的心跳向 Ceph Monitors 提供一些监控信息。通常至少需要3个Ceph OSD来实现冗余和高可用性。
前提条件
注册火山引擎账号,并完成实名认证。您可以登录火山引擎控制台,在顶部导航栏右侧,单击“账号管理 > 实名认证”,前往实名认证页面查看是否已经完成实名认证。
火山引擎账户余额大于100元。您可以登录火山引擎控制台,并前往账户总览页面查看账户余额。
实践规划
产品或服务 | 本文示例 | 备注 |
私有网络 | 名称: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 |
火山引擎环境部署
创建VPC和Subnet
登录火山引擎控制台。
在左侧导航树中,单击“产品与服务 > 私有网络”。
在顶部导航栏选择“华北2(北京)”地域。
在私有网络列表页面,单击“创建私有网络”。
在创建私有网络页面,进行私有网络和子网相关参数配置,具体配置描述见下表。
类别 | 配置项 | 说明 |
私有网络 | 地域 | 华北2(北京) |
名称 | ceph-vpc | |
IPv4 网段 | 172.16.0.0/12 | |
子网 | 名称 | ceph-cluster-subnet |
可用区 | 可用区A | |
IPv4 网段 | 172.16.3.0/24 |
参数配置完成后,单击“确定”。
创建云服务器
登录火山引擎控制台。
在左侧导航树中,单击“产品与服务 > 云服务器”。
在左侧导航栏选择“实例”,地域选择为华北2(北京),并单击“创建实例”。
在创建实例页面中,配置相关参数,具体如下表。
配置项 | 说明 |
计费方式 | 按量计费 |
地域及可用区 | 华北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”。 |
单击“下一步:确认订单”。
在确认订单页面中,确认各项参数信息。确认无误后,请根据控制台指引查阅并确认相关协议,并单击“立即购买”按钮,创建实例。
创建弹性公网 IP
登录火山引擎控制台。
在左侧导航树中,单击“产品与服务 > 公网 IP”。
在公网 IP列表页,单击“申请公网 IP”。
按下图配置公网 IP相关参数,单击“确认订单”,创建公网 IP。
配置项 | 说明 |
名称 | ceph-nat-eip |
线路类型 | 选择“BGP(多线)”。 |
计费类型 | 选择“按带宽上限计费”。 |
创建公网NAT网关
登录火山引擎控制台。
在左侧导航树中,单击“产品与服务 > 公网NAT网关”。
在公网NAT网关列表页,单击“创建公网NAT网关”。按下图配置相关参数,单击“确认订单”。
确认配置详情后,请根据控制台指引查阅并确认相关协议,并单击“立即购买”按钮,完成公网NAT网关创建。
配置项 | 说明 |
计费类型 | 按量计费 |
地域 | 华北2(北京) |
规格 | 小型 |
私有网络 | ceph-vpc |
在公网NAT网关控制台,单击已创建的ceph-nat,进入公网NAT网关详情页。单击“公网 IP > 绑定公网 IP”,添加公网 IP ceph-eip。
在公网NAT网关详情页,单击“SNAT规则 > 创建SNAT 规则”,添加SNAT规则。
Ceph集群安装准备
主机规划
主机 | 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 | - |
准备安装环境
修改主机名
hostnamectl set-hostname ceph-node1hostnamectl set-hostname ceph-node2hostnamectl set-hostname ceph-node3hostnamectl set-hostname ceph-client
在ceph-node1配置环境
配置域名解析文件。
执行vim /etc/hosts命令,打开/etc/hosts文件。
按i,进入编辑模式。
在/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
按Esc键,输入:wq按回车键,保存并退出文件。
配置免密登录。
ssh-keygen -t rsa -P ''ssh-copy-id ceph-node1ssh-copy-id ceph-node2ssh-copy-id ceph-node3ssh-copy-id ceph-client
安装Ansible。
执行以下命令,安装Ansible。
yum install epel-release -yyum install ansible -y
执行vim /etc/ansible/hosts命令,打开/etc/ansible/hosts文件。
按i,进入编辑模式。
在/etc/ansible/hosts文件末尾,添加如下内容。
[ceph]ceph-node1 ansible_ssh_user=rootceph-node2 ansible_ssh_user=rootceph-node3 ansible_ssh_user=root
按Esc键,输入:wq按回车键,保存并退出文件。
执行以下命令,查看节点是否都能无密登录。
ansible ceph -m ping
执行以下命令,拷贝hosts到其他机器,将管理机文件复制到远程主机中。
ansible ceph -m copy -a 'src=/etc/hosts dest=/etc/'
配置ceph源。
执行vim /etc/yum.repos.d/ceph.repo命令,打开 /etc/yum.repos.d/ceph.repo 文件。
按i,进入编辑模式。
在/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/
按Esc键,输入:wq按回车键,保存并退出文件。
执行以下命令,将配置修改拷贝到其它节点。
ansible ceph -m copy -a 'src=/etc/yum.repos.d/ceph.repo dest=/etc/yum.repos.d/'
配置 /etc/yum.conf 文件,限制安装 ceph 的版本。
执行vim /etc/yum.conf命令,打开 /etc/yum.conf 文件。
按i,进入编辑模式。
在/etc/yum.conf文件末尾,添加如下内容。
按Esc键,输入:wq按回车键,保存并退出文件。
执行以下命令,将修改好的yum配置复制到其它节点中。
ansible ceph -m copy -a 'src=/etc/yum.conf dest=/etc/yum.conf'
安装和配置Ceph集群
执行以下命令,安装ceph-deploy。
yum install ceph-deploy -yceph-deploy --version
使用ceph-deploy安装ceph。
执行以下命令,安装 ceph。
ansible ceph -m yum -a 'name=epel-release state=latest'ceph-deploy install --no-adjust-repos ceph-node1 ceph-node2 ceph-node3
执行以下命令,查看 ceph 版本。
ansible ceph -m shell -a 'ceph -v'
部署 RADOS存储集群。
执行以下命令,初始化集群。
mkdir ceph-clustercd ceph-cluster/ceph-deploy new ceph-node1 ceph-node2 ceph-node3ls
执行cat ceph.conf命令,查看配置如下图:
执行以下命令,部署 mon 节点。
ceph-deploy mon create-initialls
执行以下命令,拷贝 admin 配置到其他节点。
ceph-deploy admin ceph-node1 ceph-node2 ceph-node3ceph -s
部署ceph-mgr。
ceph-deploy mgr create ceph-node1 ceph-node2 ceph-node3ceph -s
启动Ceph Dashboard。
执行以下命令,开启Dashboard。
ceph mgr module enable dashboard#查看当前 dashboard 位置ceph mgr services
为Ceph Dashboard所在节点绑定公网 IP。
安装完成后,打开浏览器并在地址栏输入:http://<Dashboard 所在节点公网IP>:7000
添加OSD。
执行以下命令,为各节点创建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
执行ceph -s命令,查询集群状态。
块存储RBD创建
执行以下命令,创建ceph pool。
rados mkpool <poolname>rados lspools
执行以下命令,在ceph pool中创建image1。
rbd create <poolname>/image1 --size 20480 --image-format 2rbd info <poolname>/image1
执行rbd list <poolname> 命令,查看ceph pool中image信息。
使用client挂载RBD到本地
在ceph-node1执行以下命令,安装ceph-client。
ceph-deploy install ceph-clientceph-deploy admin ceph-client
在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
集群卸载
# 卸载ceph软件包ceph-deploy purge {ceph-node} [{ceph-node} ...]# 删除各种配置文件和生成的数据文件ceph-deploy purgedata {ceph-node} [{ceph-node} ...]# 将卸载节点的认证密钥从本地目录移除ceph-deploy forgetkeys
名词解释
云服务器
私有网络
公网NAT网关