服务介绍
所有的 Ceph 存储集群的部署都始于一个个 Ceph节点、网络和 Ceph存储集群。Ceph 存储集群至少需要一个 Ceph Monitor、一个 Manager和一个Ceph OSD 守护进程。在运行 Ceph 作为文件存储时,还需要 Ceph 元数据服务。
ceph-mon 监视系统 可以理解为整个ceph集群的资源状态以及映射关系
ceph-mds 元数据存储 允许使用文件系统的方式来访问整个存储集群
ceph-osd 存储设备 严格意义上来讲是真正存放资源数据的地方
ceph-mgr 类似于API接口 用来给开发调用资源使用(一般不建议开启)
因为该文章只涉及初学者搭建学习,所以不过多介绍关于硬件配置相关的内容, ceph 是一款对硬盘转数及网络传输数据要求极高的存储系统。
环境准备
三台centos7.6的服务器
[Ceph]
name=Ceph packages for $basearch
baseurl=https://mirrors.aliyun.com/ceph/rpm-15.2.3/el7/x86_64/
enabled=1
gpgcheck=0
type=rpm-md
[Ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-15.2.3/el7/noarch/
enabled=1
gpgcheck=0
type=rpm-md
yum源这里选择的阿里的源地址 还需要配置epel源 否则安装会报错,
三台机器都要配置 时间同步 关闭防火墙 selinux 修改主机名 集群之间通信需要配置免密登录
*/10 * * * * /usr/sbin/ntpdate -u cn.pool.ntp.org > /dev/null 2>&1 (ntpdate 需要装包)
systemctl disable firewalld --now
sentenforce=0 && sed -i 's/SELINUX=disabled/SELINUX=enforcing/g /etc/selinux/config'
hostnamectl set ceph-node01
hostnamectl set ceph-node02
hostnamectl set ceph-node03
还需要修改 /etc/hosts 设置主机名解析
192.168.25.141 ceph-node01
192.168.25.142 ceph-node02
192.168.25.143 ceph-node03 三台主机都要设置!
ssh-keygen -N ’‘ -f /root/.ssh/id_rsa 免密生成私钥
for i in ceph-node01 ceph-node02 ceph-node03 ;do ssh-copy-id $i ;done 传公钥
部署搭建
建议使用普通用户的身份去创建集群因为是个人学习 所以直接使用root账号了
yum -y install ceph ceph-deploy 装包
mkdir $HOME/ceph-cluster && cd $HOME/ceph-cluster/
ceph-deploy new ceph-node01 ceph-node02 ceph-node03 生成新集群配置文件
ceph-deploy mon create-initial 初始化 mon 服务
初始化成功后会生成ceph的配置文件
ceph-deploy admin ceph-node01 ceph-node02 ceph-node03 把配置文件分发给集群
ceph-deploy disk zap ceph-node01 /dev/sdb 磁盘擦拭(根据你的磁盘名称更改)
ceph-deploy osd create ceph-node01 --data /dev/sdb 创建osd(根据你的磁盘名称更改)
ceph-deploy mds create ceph-node01 创建mds
ceph-deploy mgr create ceph-node01 创建mgr(按需)
执行完之后 ps-ef |grep ceph 会看到相关的服务信息 ,如果服务部署的出现问题 根据错误信息提示进行恢复
重新安装初始化的命令是
ceph-deploy purge 主机名
ceph-deploy purgedata 主机名
ceph -s
正常情况下这里是ok
文件系统挂载使用
ceph osd pool create cephfs-metadata 16 16 元数据存储
ceph osd pool create cephfs-data 32 32 数据存储
ceph new fs myfs cephfs-metadata cephfs-data 创建文件存储 myfs
ceph fs ls 可以查看到新建的文件系统
可以直接使用 /etc/ceph/ceph.client.admin.keyring (不推荐)
mount -t 192.168.25.141:6789:/ /mnt -o name=admin,secret=************* secret后面对应上述文件的key值 , 挂载完毕 df -h 查看挂载信息就可以使用了
ceph auth add client.test mon 'allow r' mds 'allow r' osd 'allow rwx pool=cephfs' 创建新用户
ceph auth get client.test -o ceph.client.test.keyring 导入到配置文件中
cat /etc /ceph/ceph.client.test.keyring 根据里面的用户名进行挂载 这样就是使用普通用户挂载了
RBD挂载使用
需要传递用户配置文件 也就是刚才说的那个ceph.client.test.keyring 用admin也可以但不推荐
rbd createt --size 3G mypool/myimage 创建镜像
rbd map --image myimage /dev/rbd0 -p mypool 映射image 映射时可能报错 是因为内核不支持ceph的高级特性(映射默认用户admin 使用别的用户需要--user)
rbd feature disable mypool/myimage object-map fast-diff deep-flatten 关闭image 高级特性
mkfs.xfs /dev/rbd0 格式化 然后就可以挂载使用了
取消映射可能有些费事
1 umount /dev/rbd0
2 rbd showmapped 查看映射关系是哪台主机在使用该rbd
rbd --user test -p mypool unmap myimage 取消映射关系
rbd rm -p mypool --image myimage 删除该镜像
写作不易 还望点赞支持 有问题可以评论留言 互相交流