分布式文件系统是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网路与节点相连
分布式文件系统的设计基于客户机/服务器模式
ceph的特点
ceph是一个分布式文件系统
ceph【数据会分片】
ceph【3副本】
ceph可以提供对象存储、块存储、文件系统存储
EB级别的存储空间(EB->PB->TB->GB)
ceph的组件
OSDs-存储设备(至少3个)
Monitors-集群监控组件(至少3个)
RBD-对象存储网关
MDSs-存放文件系统的元数据(对象和块存储不需要)
Client-ceph客户端
1、下载镜像文件并加入到yum源中,在client及node1、node2、node3配置yum。我是通过本地电脑ftp实现yum的,也可以通过http实现
2、修改/etc/hosts并同步到所有主机。
注意:解析的域名必须与本机主机名一致!!!!
vim /etc/hosts
192.168.4.10 client
192.168.4.11 node1
192.168.4.12 node2
192.168.4.13 node3
3、部署NTP时间同步,确保几个节点时间同步
4、在node1安装部署工具
yum -y install ceph-deploy
5、创建目录
mkdir ceph-cluster
cd ceph-cluster/
6、创建Ceph集群配置
ceph-deploy new node1 node2 node3
7、给所有节点安装软件包
ceph-deploy install node1 node2 node3
8、初始化所有节点的mon服务
ceph-deploy mon create-initial
9、准备磁盘分区vdb1及vdb2
parted /dev/vdb
mklabel gpt
mkpart primary 1M 50%
mkpart primary 50% 100%
10、为了使分区永久生效,我们还有修改udev配置
vim /etc/udev/rules.d/70-vdb.rules //只要以runles为后缀即可,命名随意
ENV{DEVNAME}=="/dev/vdb1",OWNER="ceph",GROUP="ceph"
ENV{DEVNAME}=="/dev/vdb2",OWNER="ceph",GROUP="ceph"
11、初始化清理三个节点的vdc、vdd磁盘数据(由node1同一操作)
ceph-deploy disk zap node1:vdc node1:vdd
ceph-deploy disk zap node2:vdc node2:vdd
ceph-deploy disk zap node3:vdc node3:vdd
12、创建OSD存储空间(由node1同一操作)
ceph-deploy osd create node1:vdc:/dev/vdb1 node1:vdd:/dev/vdb2
ceph-deploy osd create node2:vdc:/dev/vdb1 node2:vdd:/dev/vdb2
ceph-deploy osd create node3:vdc:/dev/vdb1 node3:vdd:/dev/vdb2
13、创建OSD存储空间时,提示run ‘gatherkeys’,按照以下命令进行修复:
ceph-deploy gatherkeys node1 node2 node3
13、查看集群状态
ceph -s
一般分为i三种状态,OK为成功,warn的话需要检查chronyd服务及ssh-keygen,进行重起服务
14、创建镜像、查看镜像
rbd create demo-image --image-feature layering --size 10G
rbd create rbd/image --image-feature layering --size 10G
rbd list //列出所有的镜像
rbd info demo-image //查看demo-image的具体信息
15、将镜像映射为本地磁盘
rbd map demo-image
mkfs.xfs /dev/rbd0 //格式化
mount /dev/rbd0 /mnt //挂载
16、客户端client通过KRBD访问
yum -y install ceph-common //安装软件包
scp 192.168.4.11:/etc/ceph/ceph.conf /etc/ceph/ //拷贝配置文件,确保能找到集群
scp 192.168.4.11:/etc/ceph/ceph.client.admin.keyring /etc/ceph/ //拷贝密钥,确保能正常连接
rbd map image //映射镜像
lsblk
rbd showmapped //查看镜像
17、客户端client格式化、挂载分区
mkfs.xfs /dev/rbd0 //格式化
mount /dev/rbd0 /mnt/ 挂载
echo "test" > /mnt/test.txt 写入文件到共享磁盘中
18、创建镜像快照
rbd snap create image --snap image-snap1 //image-snap1为快照名,可自定义,image为镜像名,可通过rbd showmapped命令查看
rbd snap ls image //查看快照结果
19、克隆快照
rbd clone image --snap image-snap1 image-clone --image-feature layering
//使用image的快照image-snap1克隆一个新的image-clone镜像
20、查看克隆镜像与父镜像快照的关系
rbd info image-clone
21、脱离与父镜像的关系,独立工作
rbd flatten image-clone