搭建ceph分布式文件系统
1. 准备4台虚拟机
ceph 192.168.66.93 管理osd,mon节点
ceph-node1 192.168.66.94 osd节点
ceph-node2 192.168.66.95 osd节点
jenkins 192.168.66.88 客户端
关闭selinux,firewalld 2. 在ceph上新增一块磁盘
dd if=/dev/zero of=/home/kvm/ceph/ceph1.img bs=1M count=5120
dd if=/dev/zero of=/home/kvm/ceph-node1/ceph-node11.img bs=1M count=5120
dd if=/dev/zero of=/home/kvm/ceph-node2/ceph-node21.img bs=1M count=5120
mkfs.xfs /dev/vdb(格式化新增磁盘)
mkdir /var/local/osd{0,1,2}
[root@ceph ~]# mount /dev/vdb /var/local/osd0/
[root@ceph-node1 ~]# mount /dev/vdb /var/local/osd1/
[root@ceph-node2 ~]# mount /dev/vdb /var/local/osd2/
3. 在虚拟机配置文件添加如下内容
<disk type='file' device='disk'>
<driver name='qemu' type='raw' cache='none'/>
<source file='/home/kvm/ceph-node1/ceph-node11.img'/>
<target dev='vdb' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x10' function='0x0'/>
</disk>
4. 重启虚拟机
fdisk -l查看,如无效先备份虚拟机配置文件,virsh undefine ceph再把配置文件还原virsh define ceph.xml启动虚拟机

5. 添加host文件
生成密钥
ssh-copyid或者将公钥拷贝到节点.ssh/下面的authorized_keys 6. 时间同步
在管理节点ceph上安装ntp服务
yum -y install ntp
systemctl start ntpd
在节点执行ntpdate 192.168.66.93 7. 配置yum源
mkdir /etc/yum.repos.d/yum/
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/yum/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
vim /etc/yum.repos.d/ceph.repo
[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/
gpgcheck=0
priority=1 [ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/
gpgcheck=0
priority=1 [ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/SRPMS
gpgcheck=0
priority=1
清理缓存更新yum源
yum clean all && yum makecache
####先备份节点和客户端yum源
scp *.repo ceph.repo* root@ceph-node1:/etc/yum.repos.d/
scp *.repo ceph.repo* root@ceph-node2:/etc/yum.repos.d/
scp *.repo ceph.repo* root@jenkins:/etc/yum.repos.d/ 8. 在管理节点安装ceph-deploy管理工具
yum -y install ceph-deploy
mkdir /etc/ceph && cd /etc/ceph
ceph-deploy new ceph
vim ceph.conf
osd_pool_default_size = 2 #2个节点 9. 安装ceph
ceph-deploy install ceph ceph-node1 ceph-node2 jenkins
报错一般为网络问题,如换成阿里源或者163源还是无法安装,可手动安装
手工安装epel-release 然后安装yum -y install ceph-release再yum -y install ceph ceph-radosgw
ceph-deploy uninstall {hostname [hostname] ...}
10. 在管理节点安装ceph monitor
[root@ceph ceph]ceph-deploy mon create ceph
[root@ceph ceph]ceph-deploy gatherkeys ceph
ceph-deploy mon destroy {host-name [host-name]...} 11. 部署osd服务
创建osd
ceph-deploy osd prepare ceph:/var/local/osd0/ ceph-node1:/var/local/osd1/ ceph-node2:/var/local/osd2/
激活osd
ceph-deploy osd activate ceph:/var/local/osd0/ ceph-node1:/var/local/osd1/ ceph-node2:/var/local/osd2/
激活报错,在报错节点执行chmod 777 /var/local/osd0 或者 chmod 777 /var/local/osd*
查看状态:
ceph-deploy osd list ceph ceph-node1 ceph-node2
用ceph-deploy把配置文件和admin密钥拷贝到所有节点,这样每次执行Ceph命令行时就无需指定monitor地址和ceph.client.admin.keyring了
ceph-deploy admin ceph ceph-node1 ceph-node2
chmod +r /etc/ceph/ceph.client.admin.keyring
ceph health或者ceph -s


12. 部署mds服务
ceph-deploy mds create ceph ceph-node1 ceph-node2
查看状态
ceph mds stat
ceph存储集群搭建完毕

13. 创建ceph文件系统
ceph fs ls
创建存储池
ceph osd pool create cephfs_data 128
ceph fs new 128 cephfs_metadata cephfs_data #cephfs可自定义
关于创建存储池:
确定pg_num取值是强制性的,因为不能自动计算。下面是几个常用的值:
*少于5 个OSD 时可把pg_num设置为128
*OSD 数量在5 到10 个时,可把pg_num设置为512
*OSD 数量在10 到50 个时,可把pg_num设置为4096
*OSD 数量大于50 时,你得理解权衡方法、以及如何自己计算pg_num取值
*自己计算pg_num取值时可借助pgcalc 工具
随着OSD 数量的增加,正确的pg_num取值变得更加重要,因为它显著地影响着集群的行为、以及出错时的数据持久性(即灾难性事件导致数据丢失的概率)。
创建文件系统
ceph fs new 128 cephfs_metadata cephfs_data #cephfs根据上面创建的存储池定义

14. 挂载
cp ceph.client.admin.keyring admin.secret
vim admin.secret
AQDVUpVec7FyIBAAX/wlJBJwpw+adAhRWltPOA==
mount -t ceph 192.168.66.93:6789:/ /mnt -o name=admin,secretfile=/etc/ceph/admin.secret
echo "Hello World" > /mnt/a.txt
umount /mnt
开机自动挂载: vim /etc/fstab
格式:[{ipaddress}:{port}]:/ {mount}/{mountpoint} ceph [name=username,secret=secretkey|secretfile=/path/to/secretfile],[{mount.options}]
192.168.66.93:6789:/ /mnt/ ceph name=admin,secretfile=/etc/ceph/admin.secret,noatime,_netdev 0 0
15. 用户控件挂载Ceph文件系统
安装ceph-fuse
yum install -y ceph-fuse
ceph-fuse -m 192.168.66.93:6789 /mnt
卸载:umount /mnt
开机自动挂载:192.168.66.93:6789:/ /mnt/mycephfs fuse.ceph ceph.id={user-ID}[,ceph.conf={path/to/conf.conf}],_netdev,defaults 0 0
systemctl start ceph-fuse@/mnt/mycephfs.service systemctl enable ceph-fuse.target systemctl enable ceph-fuse@-mnt-mycephfs.servic
16. 如果群集具有多个FS,则挂载非默认FS:
mount -t ceph :/ /mnt/mycephfs2 -o mds_namespace=mycephfs2
如果有多个监视器,则传递用逗号分隔的地址:
mount.ceph 192.168.0.1,192.168.0.2,192.168.0.3:/ /mnt/mycephfs
清理机器上的ceph相关配置:
停止所有进程:stop ceph-all
卸载所有ceph程序:ceph-deploy uninstall [{ceph-node}]
删除ceph相关的安装包:ceph-deploy purge {ceph-node} [{ceph-data}]
删除ceph相关的配置:ceph-deploy purgedata {ceph-node} [{ceph-data}]
删除key:ceph-deploy forgetkeys
卸载ceph-deploy管理:
yum -y remove ceph-deploy
Ceph各组件介绍
Ceph OSDs:Ceph OSD 守护进程(Ceph OSD)的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的心跳来向Ceph Monitors 提供一些监控信息。当Ceph存储集群设定为有2个副本时,至少需要2个OSD 守护进程,集群才能达到
active+clean状态(Ceph 默认有3个副本,但你可以调整副本数)。
Monitors:Ceph Monitor维护着展示集群状态的各种图表,包括监视器图、OSD 图、归置组(PG )图、和CRUSH 图。Ceph 保存着发生在Monitors 、OSD 和PG上的每一次状态变更的历史信息(称为epoch )。
MDSs:Ceph 元数据服务器(MDS)为Ceph 文件系统存储元数据(也就是说,Ceph 块设备和Ceph 对象存储不使用MDS )。元数据服务器使得POSIX 文件系统的用户们,可以在不对Ceph 存储集群造成负担的前提下,执行诸如ls,find等基本命令
ceph官方文档http://docs.ceph.org.cn/
ceph中文开源社区http://ceph.org.cn/
排错1: 由于上午网络调整导致ceph ip地址变动,查看集群状态为err,如下图
我先百度了一下发现很多类似的,我看了一篇之后,虽是测试环境我也没急于动手,查看三台之后,ceph-node2和ceph,ceph-node1不一样,我就看了一下hosts文件,发现写的hosts没了。
解决:查看下ceph主节点和ceph-node1,发现ceph-node1也没了,同步一样之后再查看ceph -s就正常了




搭建ceph分布式文件系统的更多相关文章
- Linux - 搭建FastDFS分布式文件系统
1. FastDFS简介 说明:FastDFS简介部分的理论知识全部来自于博主bojiangzhou的 <用FastDFS一步步搭建文件管理系统>,在此感谢博主的无私分享.当然最最要感谢的 ...
- 简单搭建FastDFS分布式文件系统(简单易懂)
一.什么是FastDFS FastDFS一个开源的轻量级分布式文件系统,它对文件进行管理,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,功能包括:文件存储.文件同步.文件访 ...
- CentOS 7.2搭建FastDFS 分布式文件系统,实现高可用集群
分布式集群搭建结构 双Tracker 2组Group 轮询存储策略 Keepalived+Nginx高可用 Nginx缓存 4个存储节点 一. 集群规划清单 1.安装清单 软件名称 版本 百度云盘存放 ...
- FastDFS+Nginx搭建Java分布式文件系统
一.FastDFS FastDFS是用c语言编写的一款开源的分布式文件系统.FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使用FastDFS ...
- ceph_deploy部署ceph分布式文件系统
1.前期准备:centos6.5 minimal版本3台 选择其中一台作为一个安装节点,能无密码登录其他机器.ssh-keygen ssh-keygen -i ~/.ssh/id_rsa.pub no ...
- 基于docker容器搭建fastdfs分布式文件系统
本次环境的搭建参考了 https://blog.csdn.net/qq_43455410/article/details/84797814, 感谢博主. 主要流程如下: 1. 下载fastdfs镜像 ...
- 架构设计:系统存储(28)——分布式文件系统Ceph(挂载)
(接上文<架构设计:系统存储(27)--分布式文件系统Ceph(安装)>) 3. 连接到Ceph系统 3-1. 连接客户端 完毕Ceph文件系统的创建过程后.就能够让客户端连接过去. Ce ...
- CentOS 7 搭建 Ceph 集群(nautilus 版本)
搭建 Ceph 分布式集群( nautilus 版本 ) 一.服务器环境说明 主机名 角色 IP地址 ceph-admin ceph-deploy 192.168.92.21 ceph-node1 m ...
- IPFS搭建分布式文件系统 - 访问控制
IPFS 一个内容可寻址.对等的超媒体分发协议. IPFS网络中的节点形成分布式文件系统. 为什么要用IPFS? “IPFS and the Blockchain are a perfect matc ...
随机推荐
- python的字典及相关操作
一.什么是字典 字典是Python中最强大的数据类型之一,也是Python语言中唯一的映射类型.映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的的关系,通常被认为是可变的哈希 ...
- 分布式应用运行时 Dapr 1.7 发布
Dapr 是一个开源.可移植的.事件驱动的运行时,可以帮助开发人员构建在云和边缘上运行的弹性的.微服务的.无状态和有状态应用程序,并且关注于业务逻辑而不用考虑分布式相关的问题. 分布式相关的问题交给D ...
- AcWing 【算法提高课】笔记02——搜索
搜索进阶 22.4.14 (PS:还有 字串变换 A*两题 生日蛋糕 回转游戏 没做) 感觉暂时用不上 BFS 1. Flood Fill 在线性时间复杂度内,找到某个点所在的连通块 思路 统计连通块 ...
- java高级用法之:在JNA中使用类型映射
目录 简介 类型映射的本质 TypeMapper NativeMapped 总结 简介 JNA中有很多种映射,library的映射,函数的映射还有函数参数和返回值的映射,libary和函数的映射比较简 ...
- 想法子记忆Vi/Vim常用操作及指令
本笔记有特殊目录,点击开启: 专有目录 在Linux系统中编辑文本总是离不开一位老帮手--Vi.而因为其诞生的年代有些久远,有些操作在现在看来可能有点"反直觉". 于是我决定写这样 ...
- Git批量下载MODIS数据
1.download.sh获取 EarthData(需注册账号)中获取MODIS的产品类型.地理范围.时间年份等,进入下载页面Download Status 下载点击得到_download.sh 文件 ...
- Bugku CTF练习题---MISC---telnet
Bugku CTF练习题---MISC---telnet flag:flag{d316759c281bf925d600be698a4973d5} 解题步骤: 1.观察题目,下载附件 2.拿到手以后发现 ...
- python3 常见错误(一)
以下全部是在python3中适用. 错误一: 函数默认参数 Python允许为函数的参数提供默认的可选值.但是它可能会导致一些易变默认值的混乱.例子: 我们希望每次调用myFun函数,list1都为默 ...
- BottomNavigationView点击刷新问题
BottomNavigationView点击刷新问题 问题: 项目中使用了BottomNavigationView作为底部导航栏. 点击item切换的时候发现会有闪烁现象出现. 原因: BottomN ...
- 基于dhtmlxGantt的Blazor甘特图组件
基于dhtmlxGantt实现的甘特图组件,目前仅做到了数据展现,方法及插槽暂未实现,若需可按照dhtmlxGantt的文档及微软的Balzor文档,自行扩展. 数据发生变化后甘特图会立即发生变化. ...