Ubuntu18.04部署P版ceph

ceph作为目前最火的开源分布式存储,支持对象,块,文件存储。把每个需要管理的数据流(比如文件)切分成多个固定大小的对象数据,并以其原子单元作为存取。

一ceph的存储核心服务是rados(可靠,自动化分布式对象存储)。

Ubuntu18.04部署P版ceph

二ceph集群角色有如下几个

1.若干的 Ceph OSD(对象存储守护程序),一般一块磁盘起一个osd进程。 2.至少需要一个 Ceph Monitors 监视器(1,3,5,7...)用于维护集群状态映射,比如 ceph 集群中有多少存储池、每个存储池有多少 PG 以及存储池和 PG的映射关系等, monitor map, manager map, the OSD map, the MDS map, and theCRUSH map,这些映射是 Ceph 守护程序相互协调所需的关键群集状态,此外监视器还负 责管理守护程序和客户端之间的身份验证(认证使用 cephX 协议)。生产环境mon节点一般为3个。 3.两个或以上的 Ceph 管理器 managers。负责跟踪运行时指标和 Ceph 集群的当前状态。 4.高可用的 Ceph Metadata Server(文件系统元数据服务) 5.管理节点,一般是ceph-deploy。生产中管理节点一般不部署其他功能,提高操作安全系数。   ceph存储文件过程(crush算法) 1.在ceph中一切皆对象,当一个文件作为对象存储进来时,首先客户端通过mon节点获取集群map副本,使用对象和池ID转换成对象。(任何数据流进来都是二进制,和池ID生成对象名,比如1010+pool 1生成obj1),再和PG数进行哈希就能得到最终存放数据的那个PG。此时crush算法会去根据PG找到对应的主osd和副osd,最终写入数据通知客户端。一切由客户端进行操作,所以不会影响集群性能。 注:crush层次结构 磁盘→节点→机架→DC

三正式安装

3.1下载地址

Ubuntu:https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/bionic/

3.2部署环境:

主机名 publi network cluster network 功能组件
admin 192.168.89.140 192.168.64.140 ceph-deploy,mon
node1 192.168.89.141 192.168.64.141 mon,osd,mgr
node2 192.168.89.142 192.168.64.142 mon,osd,mgr
node3 192.168.89.143 192.168.64.143 rgw,osd

时间同步

关闭selinux和防火墙

配置域名解析

配置所有节点之间免ssh登录

每个节点2块磁盘

3.3ceph安装配置

3.3.1 添加Pacific版本源

root@admin:wget -q -O- 'https://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc' | sudo apt-key add - root@admin:echo "deb https://mirrors.tuna.tsinghua.edu.cn/ceph/debian-pacific bionic main">> /etc/apt/sources.list root@admin:apt-get update 3.3.2 创建普通用户:不建议用ceph用户,ceph作为守护进程
root@admin:groupadd -r -g 2022 xxx && useradd -r -m -s /bin/bash -u2022 -g 2022 xxx && echo xxx:123456 | chpasswd root@admin:echo "xxx ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers 3.3.3 安装ceph-deploy root@admin:apt install ceph-deploy                        2.0.1版本 3.3.4管理节点初始化mon节点 xxx@admin:mkdir cluster && cd cluster xxx@admin~/cluster$:ceph-deploy new --cluster-network192.168.64.0/24 --public-network 192.168.89.0/24 admin node1 node2 报错: bash:python2:command not found ERROR runtimeError:connecting to host:admin node1 node2 resulted in errors:IOError cant send(already closed) 解决办法: apt install python2.7 -y       
ln -sv /usr/bin/python2.7 /usr/bin/python2 3.3.5各个节点安装ceph xxx@admin~/cluster$:ceph-deploy install admin node1 node2 node3 root@admin:ceph version 16.2.5 (0883bdea7337b95e4b611c768c0279868462204a) pacific (stable)    安装完成,可能会因没有修改源安装成13版本
3.3.6 初始化mon并生产秘钥,能看到生成的key
xxx@admin~/cluster$:ceph-deploy mon create-initial
Ubuntu18.04部署P版ceph 验证mon节点 Ubuntu18.04部署P版ceph

 

 

3.3.7 分发admin秘钥,让任何节点都可以管理配置,此外同步集群配置文件和认证文件。一般仅仅是mon节点

 xxx@admin~/cluster$:ceph-deploy admin admin node1 node2 node3 Ubuntu18.04部署P版ceph

 

3.3.8部署manager节点(在L版本及以上才有)

 xxx@admin~/cluster$:ceph-deploy mgr create node1 node2(无法连续执行,分开执行单个节点)

Ubuntu18.04部署P版ceph

 

 3.3.9ceph-deploy配置系统环境,方便执行ceph命令

xxx@admin~/cluster$:ceph-deploy admin admin  给自己

xxx@admin~/cluster$:setfacl -m u:xxx:rw /etc/ceph/ceph.client.admin.keyring xxx@admin~/cluster$:ceph config set mon auth_allow_insecure_global_id_reclaim false 可以用ceph -s查看集群 Ubuntu18.04部署P版ceph

 

 3.3.10列出node节点磁盘

xxx@admin~/cluster$:ceph-deploy disk list  node1

Ubuntu18.04部署P版ceph

 

 3.3.11 添加osd

 xxx@admin~/cluster$:ceph-deploy osd create node1 --data  /dev/sdb     

 

 全部添加完查看集群状态ceph osd tree

Ubuntu18.04部署P版ceph

 

 3.3.12 移除osd

1.停用设备  ceph osd out osd.1

2在osd所在节点停止进程 systemctl stop ceph-osd@1

3.移除设备  ceph osd purge 1 --yes-i-really-mean-it

4.清除osd lvm信息 vgremove ceph-xxx     ceph-xxx信息可以用ceph-volume lvm list查看。此操作不是必须,是用于重新将磁盘添加回集群前操作。

注:也可以删除/dev/dm-xx,同时清除dm-xx的文件系统(dd实现),但不推荐。

3.3.13 测试上传下载

xxx@admin~/cluster$:ceph osd pool create myrbd1  32  32    myrbd1:驰名  32:PG 32: PGP

rados put msg1 /var/log/syslog --pool=mypool   把 messages 文件上传到 mypool 并指定对象 id 为 msg1 rados ls --pool=mypool       列出文件
ceph osd map mypool msg1  获取文件信息 rados get msg1 --pool=mypool /opt/my.txt   下载文件
rados rm msg1 --pool=mypool    删除文件 3.3.14 扩展ceph-mon节点 xxx@admin~/cluster:ceph-deploy mon add nodexxx 验证mon状态
ceph quorum_status        ceph quorum_status --format json-pretty 3.3.15 扩展mgr节点 xxx@admin~/cluster:ceph-deploy mgr create  nodexxx
xxx@admin~/cluster:ceph-deploy admin nodexxx   同步配置文件   3.3.16 扩展rgw,完成后查看http://xxxxx:7480 xxx@admin~/cluster:ceph-deploy rgw  create  nodexxx Ubuntu18.04部署P版ceph

 

 Ubuntu18.04部署P版ceph

 

 

    3.3.17创建rbd
root:ceph osd pool application enable myrbd1 rbd #对存储池启用 RBD 功能
root:enabled application 'rbd' on pool 'myrdb1'
root:rbd pool init -p myrbd1 #通过 RBD 命令对存储池初始化  注:非常重要,不然无法使用 rbd需要创建image才能作为块设备使用
root:rbd create myimg1 --size 5G --pool myrbd1,查看用rbd info myrbd1/img1,rbd info --image img1 --pool myrbd1 Ubuntu18.04部署P版ceph

 

 

3.3.18查看ceph集群使用状态  ceph df

Ubuntu18.04部署P版ceph

 

 

3.3.19客户端使用ceph块设备,安装ceph-mon,将管理节点的配置和认证文件同步给客户端

客户端  apt install ceph-common    //  yum install ceph-common    生产为openstack提供块设备较多

管理节点:root@adminscp ceph.conf ceph.client.admin.keyring root@xxx:/etc/ceph/

 客户端:rbd -p myrdb1  map img1        注意:ceph为P版,客户端版本过低,会导致无法映射。

 
上一篇:k8s使用ceph


下一篇:20210814第一天:Ceph简介和安装