Ceph:ceph被称为面向未来的存储还是一个分布式的存储系统,非常灵活,如果需要扩容,只要向ceph集中增加服务器即可。ceph存储数据时采用多副本的方式进行存储,生产环境下,一个文件至少要存三份,ceph默认也是三副本存储。
可以实现的 存储方式:
块存储:提供像普通硬盘一样的存储,为使用者提供“硬盘”。
文件系统存储:类似于NFS的共享方式,为使用者提供共享文件夹。
对象存储:像本站蜘蛛一样,需要使用单独的客户端。需要编写代码。
Ceph存储集群至少需要一个Ceph监视器、Ceph管理器和Ceph OSD(对象存储守护程序)。运行Ceph文件系统客户端时需要Ceph元数据服务器。
Ceph Monitor(ceph-mon)监视器:Ceph Mon维护Ceph存储集群映射的主副本和Ceph存储集群的当前状态,监控器需要高度一致性,确保对Ceph存储集群状态达成一致。维护着展示集群状态的各种图表,包括监视器图、OSD图、归置组图、和CRUSH图。少数服从多数,至少一半以上
Ceph OSD 守护进程:Ceph OSD用于存储数据。此外Ceph OSD利用Ceph节点的CPU、内存和网络来执行数据复制、纠错代码、重新平衡、恢复、监控和报告功能。存储节点有几块硬盘用于存储,该节点就会有几个osd进程。
MDS:Ceph元数据服务器(MDS)为Ceph文件系统存储元数据。
RGW:对象存储网关。主要为访问Ceph的软件提供API接口。
搭建ceph集群:
node1:eth0->192.168.88.11
node2:eth0->192.168.88.12
node3:eth0->192.168.88.13
client1:eth0->192.168.88.10
为node1-3添加额外2块20GB的硬盘
![3f60a434e1094020a76d6534bf0fdb58.png](https://img-blog.csdnimg.cn/direct/3f60a434e1094020a76d6534bf0fdb58.png)
在192.168.88.240的主机上配置Ceph镜像的yum源。通过vsftpd服务提供网络yum源。
![4859a6cc3f3c4cdfaa86d1e4696da3be.png](https://img-blog.csdnimg.cn/direct/4859a6cc3f3c4cdfaa86d1e4696da3be.png)
![6ad43ab560b84ddc8e7eb50fdaf0b06a.png](https://img-blog.csdnimg.cn/direct/6ad43ab560b84ddc8e7eb50fdaf0b06a.png)
![c163cd5eb2424575bf9f822b5282b400.png](https://img-blog.csdnimg.cn/direct/c163cd5eb2424575bf9f822b5282b400.png)
创建ceph的ansible工作目录
![4f07ddbf9a8f4147b32352e2e3cd23c3.png](https://img-blog.csdnimg.cn/direct/4f07ddbf9a8f4147b32352e2e3cd23c3.png)
![99aae1956ddd4bd09ca6335e65486091.png](https://img-blog.csdnimg.cn/direct/99aae1956ddd4bd09ca6335e65486091.png)
配置ceph.repo
![de9a2907e3694fcfb57f47db7b9dede6.png](https://img-blog.csdnimg.cn/direct/de9a2907e3694fcfb57f47db7b9dede6.png)
![169ffeba10a44101a3c807356a9285a4.png](https://img-blog.csdnimg.cn/direct/169ffeba10a44101a3c807356a9285a4.png)
centos.repo
![b2fda11a3ff84482a98d6cf4d53c9e74.png](https://img-blog.csdnimg.cn/direct/b2fda11a3ff84482a98d6cf4d53c9e74.png)
![eaa3332e6c89484a869d3bd6ee0882a2.png](https://img-blog.csdnimg.cn/direct/eaa3332e6c89484a869d3bd6ee0882a2.png)
编写yum剧本
![dd523faef47d498a802f954f690454aa.png](https://img-blog.csdnimg.cn/direct/dd523faef47d498a802f954f690454aa.png)
![d779cd803e3d46acac6030eb130aed9c.png](https://img-blog.csdnimg.cn/direct/d779cd803e3d46acac6030eb130aed9c.png)
执行剧本
![4c8030881bf94124a8ef51c44814f753.png](https://img-blog.csdnimg.cn/direct/4c8030881bf94124a8ef51c44814f753.png)
查看yum
![801bf1932cfc4dde90f94ac87dc26e0c.png](https://img-blog.csdnimg.cn/direct/801bf1932cfc4dde90f94ac87dc26e0c.png)
关闭各个节点的防火墙和SELinux
![3d2164230fdd4b00abb1d4f303ccc354.png](https://img-blog.csdnimg.cn/direct/3d2164230fdd4b00abb1d4f303ccc354.png)
![0062982ab0e64fd48a017940b6d45fd2.png](https://img-blog.csdnimg.cn/direct/0062982ab0e64fd48a017940b6d45fd2.png)
ceph为我们提供了一个ceph-deploy工具,可以在某一节点上统一操作全部节点。将node1作为部署节点,将来的操作都在node1上进行,需要node1能够免密操作其他主机。
![9d4c0ea26cdb45dabf16a0b9f1914d8c.png](https://img-blog.csdnimg.cn/direct/9d4c0ea26cdb45dabf16a0b9f1914d8c.png)
![4d9759c0b4da46b8a88c5f6640f388d8.png](https://img-blog.csdnimg.cn/direct/4d9759c0b4da46b8a88c5f6640f388d8.png)
在所有的主机上配置名称解析。
![46b260d8f0c248d0b1e885941044a07f.png](https://img-blog.csdnimg.cn/direct/46b260d8f0c248d0b1e885941044a07f.png)
![6383bdfe1b6d493fb453eaf21da406dd.png](https://img-blog.csdnimg.cn/direct/6383bdfe1b6d493fb453eaf21da406dd.png)
blockinfile模块:几行字符串为一块出现在文件中。
![39aa5af31689465b8e946f83c75b21dd.png](https://img-blog.csdnimg.cn/direct/39aa5af31689465b8e946f83c75b21dd.png)
![b736cade96fa4e46a1cd4bd47d810359.png](https://img-blog.csdnimg.cn/direct/b736cade96fa4e46a1cd4bd47d810359.png)
执行剧本
![3d880d944233416eb23f83c0fc542c12.png](https://img-blog.csdnimg.cn/direct/3d880d944233416eb23f83c0fc542c12.png)
查看hosts文件,所有节点都配置了名称解析
![209134a0a9a44c2ca3efd8d089269a56.png](https://img-blog.csdnimg.cn/direct/209134a0a9a44c2ca3efd8d089269a56.png)
![39cee3452c3b460fa310e42931f6d23c.png](https://img-blog.csdnimg.cn/direct/39cee3452c3b460fa310e42931f6d23c.png)
安装集群,在三个节点上安装软件包
可以在node1上通过ssh node{1..3} yum -y install ceph-mon ceph-osd ceph-mds ceph-radosgw
使用ansible剧本安装软件包
![5c9b96cba73c48679168a0df05fba323.png](https://img-blog.csdnimg.cn/direct/5c9b96cba73c48679168a0df05fba323.png)
![d76ca5d9520b4b0cbdfadfb11fd1ee0e.png](https://img-blog.csdnimg.cn/direct/d76ca5d9520b4b0cbdfadfb11fd1ee0e.png)
查看软件包
![ac3770ca5e544c6caaf5ab0eff41b418.png](https://img-blog.csdnimg.cn/direct/ac3770ca5e544c6caaf5ab0eff41b418.png)
配置ntp服务器,让服务器时间同步
![7a5560aad1704fc18d2bbdd884cce546.png](https://img-blog.csdnimg.cn/direct/7a5560aad1704fc18d2bbdd884cce546.png)
编辑/etc/chrony.conf文件
![4177665520d54c6bb52ce9c35065dc04.png](https://img-blog.csdnimg.cn/direct/4177665520d54c6bb52ce9c35065dc04.png)
allow允许访问的主机
![e5c852f147fa40349465ef9d6a03880f.png](https://img-blog.csdnimg.cn/direct/e5c852f147fa40349465ef9d6a03880f.png)
启动服务
![2d22bf8a67064f8dba738606c4bb53c7.png](https://img-blog.csdnimg.cn/direct/2d22bf8a67064f8dba738606c4bb53c7.png)
让节点安装chrony
![7b6cc60c10c24fd884a4cef358fb39b1.png](https://img-blog.csdnimg.cn/direct/7b6cc60c10c24fd884a4cef358fb39b1.png)
编辑chrony配置文件,把server开头的全部注释掉添加NTP服务器(Ctrl+v、I、编辑、ESC)
![9d88415d74b949749c02000e0d0f13f8.png](https://img-blog.csdnimg.cn/direct/9d88415d74b949749c02000e0d0f13f8.png)
把该文件拷贝到其他节点
![232f609c8b49422c91902271a1c11545.png](https://img-blog.csdnimg.cn/direct/232f609c8b49422c91902271a1c11545.png)
重启各个节点的时间服务器
![bfe7586b872d4e619cae3af24e0533d9.png](https://img-blog.csdnimg.cn/direct/bfe7586b872d4e619cae3af24e0533d9.png)
查看是否配置成功
![cc0535f3d9204eec9fb7aceca1b728c7.png](https://img-blog.csdnimg.cn/direct/cc0535f3d9204eec9fb7aceca1b728c7.png)
在node1节点安装ceph-deploy部署工具
![812a4c477bfc4f9e9b56bcb918634887.png](https://img-blog.csdnimg.cn/direct/812a4c477bfc4f9e9b56bcb918634887.png)
查看使用帮助,ceph-deploy --help
创建目录ceph工作目录
![d67ee9e9597d4e8984089a44ff13f515.png](https://img-blog.csdnimg.cn/direct/d67ee9e9597d4e8984089a44ff13f515.png)
创建一个新集群 ceph-deploy new node{1..3}
![2cb3ce0ab74948b5a750fe8d3964fe52.png](https://img-blog.csdnimg.cn/direct/2cb3ce0ab74948b5a750fe8d3964fe52.png)
ceph.conf:集群配置文件
ceph-deploy-ceph.log:日志文件
ceph.mon.keyring:共享密钥
![00f264204fbc48c8993742075eea65ab.png](https://img-blog.csdnimg.cn/direct/00f264204fbc48c8993742075eea65ab.png)
编辑集群配置文件,开启块存储的默认特性开启快照功能。rbd_default_features = 1
![5989cc52438740beb5e85a3b896697e5.png](https://img-blog.csdnimg.cn/direct/5989cc52438740beb5e85a3b896697e5.png)
![45fb31d33fec4caca0a579fedd41f05e.png](https://img-blog.csdnimg.cn/direct/45fb31d33fec4caca0a579fedd41f05e.png)
初始化Monitor。 ceph-deploy mon create-initial
![7dfbc2afc37f43fa9f6c8e0f03a137c0.png](https://img-blog.csdnimg.cn/direct/7dfbc2afc37f43fa9f6c8e0f03a137c0.png)
如果安装错误可以清理数据重新安装:ceph-deploy purge node{1..3}
查看ceph-monitor服务
![1669b4bbf1054ecfbb5659297cbbebff.png](https://img-blog.csdnimg.cn/direct/1669b4bbf1054ecfbb5659297cbbebff.png)
查看ceph集群状态。ceph -s 。因为还没有硬盘,所以状态是HEALTH_ERR
![1fd36ad7ffce40918d3c312e0f065b06.png](https://img-blog.csdnimg.cn/direct/1fd36ad7ffce40918d3c312e0f065b06.png)
在执行ceph-deploy时要做ceph的工作目录中执行。查看disk命令
![41a64acefaee4b94843f2280ed0b43e5.png](https://img-blog.csdnimg.cn/direct/41a64acefaee4b94843f2280ed0b43e5.png)
初始化各主机的硬盘。 ceph-deploy disk zap node1:sdb node1:sdc
![b7d19f0f1b734b0eaae410fdadd5911b.png](https://img-blog.csdnimg.cn/direct/b7d19f0f1b734b0eaae410fdadd5911b.png)
![7f254938f23e4701bfc9ca5267c287f4.png](https://img-blog.csdnimg.cn/direct/7f254938f23e4701bfc9ca5267c287f4.png)
![059e5896585941c4a9db49308ab8ffe1.png](https://img-blog.csdnimg.cn/direct/059e5896585941c4a9db49308ab8ffe1.png)
查看osd命令
![54a3ae9c39614f329292790234419511.png](https://img-blog.csdnimg.cn/direct/54a3ae9c39614f329292790234419511.png)
创建存储空间,ceph会将硬盘分为两个分区,一个分区大小为5GB,用于ceph的内部资源,另一个分区是剩余的全部空间。 ceph-deploy osd create node1:sd{b,c}
![d17961bbb9fa4bc3a8466c96e0600c11.png](https://img-blog.csdnimg.cn/direct/d17961bbb9fa4bc3a8466c96e0600c11.png)
![98a7115d712047768db51bf347a7d842.png](https://img-blog.csdnimg.cn/direct/98a7115d712047768db51bf347a7d842.png)
![371902f4e74f44449b5386efdda0f85e.png](https://img-blog.csdnimg.cn/direct/371902f4e74f44449b5386efdda0f85e.png)
![9395ce8f4c974415a746626d207b94c3.png](https://img-blog.csdnimg.cn/direct/9395ce8f4c974415a746626d207b94c3.png)
查看ceph的状态。
monmap:Monitor组件,只要有两个就表示正常。
osdmap:硬盘组件。每一个硬盘osd就会开启一个守护进程。6块硬盘所以有6个osds。
![c6ce5a26616f4e5991da65e92d3beb37.png](https://img-blog.csdnimg.cn/direct/c6ce5a26616f4e5991da65e92d3beb37.png)
node1上有两块硬盘所以有0、1进程,而node2/3则是2345进程
![599b588fcfc34f3daea29e1b14181077.png](https://img-blog.csdnimg.cn/direct/599b588fcfc34f3daea29e1b14181077.png)
块设备存储数据时可以一次存取很多,字符设备只能是字符流。
![55b67364edd34776b85855de669e4056.png](https://img-blog.csdnimg.cn/direct/55b67364edd34776b85855de669e4056.png)
使用rbd命令操作每个磁盘剩余的15GB内存,在node的每个节点都能操作该命令。
查看存储池。ceph osd lspools。rbd为存储池的名称
![5d9b228f972a4e199d3c1081a898cf98.png](https://img-blog.csdnimg.cn/direct/5d9b228f972a4e199d3c1081a898cf98.png)
ceph df:查看详情,全局有90G而存储池只有30G,因为ceph存储文件要存储三个副本。
![03aee2f084824756b503161129c6c0fe.png](https://img-blog.csdnimg.cn/direct/03aee2f084824756b503161129c6c0fe.png)
查看存储池的副本机制。ceph osd pool get rbd size
![413a0b01932d440a8a3ed5c81faa0255.png](https://img-blog.csdnimg.cn/direct/413a0b01932d440a8a3ed5c81faa0255.png)
在node1上创建磁盘的使用空间(镜像)。rbd命令。
![fe764e51263a485eb4b89e3de5d9ac89.png](https://img-blog.csdnimg.cn/direct/fe764e51263a485eb4b89e3de5d9ac89.png)
rbd create demo-image --size 10G
![f812f1327c5e4abb9a5765187026c37c.png](https://img-blog.csdnimg.cn/direct/f812f1327c5e4abb9a5765187026c37c.png)
此时在node2和node3中也能看见该镜像。
![7ffc400a3a864a15809349c64785d734.png](https://img-blog.csdnimg.cn/direct/7ffc400a3a864a15809349c64785d734.png)
查看镜像信息。 rbd info demo-image
![3f15de0cabf4425d8d4a0b8cd49213ec.png](https://img-blog.csdnimg.cn/direct/3f15de0cabf4425d8d4a0b8cd49213ec.png)
修改改镜像大小。rbd resize --size 15G demo-image
![2ccb5a27059d42e9adf40834e3495b73.png](https://img-blog.csdnimg.cn/direct/2ccb5a27059d42e9adf40834e3495b73.png)
此时该镜像已经变为15G
![1f1f6a4abb7f4c67ad3b5a71a0acb570.png](https://img-blog.csdnimg.cn/direct/1f1f6a4abb7f4c67ad3b5a71a0acb570.png)
缩减时需要加上--allow-shrink
当创建100G的镜像时能够成功创建,但能够使用的内存容量只有30G,超过30G就会报错
![aeb9029873244ac18b6727b0c001d324.png](https://img-blog.csdnimg.cn/direct/aeb9029873244ac18b6727b0c001d324.png)
删除镜像。 rbd rm img01
![41bc65793ca74c478ec394bbfeb48653.png](https://img-blog.csdnimg.cn/direct/41bc65793ca74c478ec394bbfeb48653.png)
客户端使用快设备步骤:
1、要安装ceph的客户端软件才能使用。
2、ceph集群的位置,通过配置文件说明集群地址。
3、授权。让客户端能够访问该ceph集群。
安装ceph客户端软件。 yum -y install ceph-common
![0c435658f8ba40f28c91e8b0a4949b06.png](https://img-blog.csdnimg.cn/direct/0c435658f8ba40f28c91e8b0a4949b06.png)
此时连接不了集群需要将配置文件和密钥keyring文件拷贝给客户端
![165774575a1946b9bd8ac13a6c5ac1f3.png](https://img-blog.csdnimg.cn/direct/165774575a1946b9bd8ac13a6c5ac1f3.png)
![c0168c054e4f41868e3af009f280c6e6.png](https://img-blog.csdnimg.cn/direct/c0168c054e4f41868e3af009f280c6e6.png)
此时client1就能使用rbd命令
![d07f6cf467734d43a360c734ebeb0955.png](https://img-blog.csdnimg.cn/direct/d07f6cf467734d43a360c734ebeb0955.png)
此时在客户端也能创建镜像
![8bc4d319e302484f98a230630e2c8b4a.png](https://img-blog.csdnimg.cn/direct/8bc4d319e302484f98a230630e2c8b4a.png)
客户端使用rbd命令操作的是ceph使用node1节点删除该镜像此时客户端上也没有了该镜像。
![063664ea7d5b4de5b47e8f38698084ce.png](https://img-blog.csdnimg.cn/direct/063664ea7d5b4de5b47e8f38698084ce.png)
![d60d73520e7d47a7a254d13c79364c9f.png](https://img-blog.csdnimg.cn/direct/d60d73520e7d47a7a254d13c79364c9f.png)
让镜像变成本地硬盘。rbd map demo-image:映射为本地硬盘,不能多次映射。
![c60faecbecce4ed8a742e9c1873d1206.png](https://img-blog.csdnimg.cn/direct/c60faecbecce4ed8a742e9c1873d1206.png)
![9a1486045b89413db307f6ba9a2f2903.png](https://img-blog.csdnimg.cn/direct/9a1486045b89413db307f6ba9a2f2903.png)
此时就能使用该硬盘格式化挂载使用。
![1497fe4732ae4102bada72b36b907e43.png](https://img-blog.csdnimg.cn/direct/1497fe4732ae4102bada72b36b907e43.png)
查看映射的本地硬盘。rbd showmapped
![6d7e7303e2614f68b6006f3b77528954.png](https://img-blog.csdnimg.cn/direct/6d7e7303e2614f68b6006f3b77528954.png)
卸载该使用的镜像
![d8ce91db62af45d69fdd5d18e1d3272a.png](https://img-blog.csdnimg.cn/direct/d8ce91db62af45d69fdd5d18e1d3272a.png)
快照:可以保存某一时间点时的状态数据。希望回到以前的一个状态,可以恢复快照
创建img1镜像并映射为本地硬盘,然后格式化挂载
![9ddc4dd060d74b40ab0c73af67917195.png](https://img-blog.csdnimg.cn/direct/9ddc4dd060d74b40ab0c73af67917195.png)
![7dc4be3b66bb41f5ad8098488e47d20f.png](https://img-blog.csdnimg.cn/direct/7dc4be3b66bb41f5ad8098488e47d20f.png)
查看img1的快照。rbd snap ls img1
![5d550cfc8ead424983a0f383f8727950.png](https://img-blog.csdnimg.cn/direct/5d550cfc8ead424983a0f383f8727950.png)
创建img1快照。rbd snap create img1 --snap img1-snap1
![bcc67ebd071d4135bd091ccae75af01c.png](https://img-blog.csdnimg.cn/direct/bcc67ebd071d4135bd091ccae75af01c.png)
删除快照。rbd snap remove img1 --snap img1-snap1
![4e8b9f864cf3413689ccaec7ffcb47c2.png](https://img-blog.csdnimg.cn/direct/4e8b9f864cf3413689ccaec7ffcb47c2.png)
取消挂载、取消映射的本地硬盘、删除镜像
![1f03217f618a48c7bfee2f8d22269aae.png](https://img-blog.csdnimg.cn/direct/1f03217f618a48c7bfee2f8d22269aae.png)
快照实验:
创建镜像然后把该镜像挂载到客户端。
![f88485bd84b840b2a2ca6c456fd8da36.png](https://img-blog.csdnimg.cn/direct/f88485bd84b840b2a2ca6c456fd8da36.png)
![40bddaaf8ff340deadfe45acd43dde6d.png](https://img-blog.csdnimg.cn/direct/40bddaaf8ff340deadfe45acd43dde6d.png)
向/mnt中写入数据
![69e90b4eaa4540c5a6ebb49418f837b3.png](https://img-blog.csdnimg.cn/direct/69e90b4eaa4540c5a6ebb49418f837b3.png)
创建快照
![0acff3610afd4feaa23f0b92a9e77c8b.png](https://img-blog.csdnimg.cn/direct/0acff3610afd4feaa23f0b92a9e77c8b.png)
把/mnt中的数据删除
![c4a290d96cf744ebbc848a9c103a0ff0.png](https://img-blog.csdnimg.cn/direct/c4a290d96cf744ebbc848a9c103a0ff0.png)
此时需要恢复快照就先停止映射本地硬盘,防止在恢复快照的时候有数据加入该硬盘
![33f8acd205bd4b5d8fa4ee8cc9b599fc.png](https://img-blog.csdnimg.cn/direct/33f8acd205bd4b5d8fa4ee8cc9b599fc.png)
恢复快照,回滚img1到快照img1-snap1。rbd snap rollback img1 --snap img1-snap1
![17ad1e87c4e145a7b2827fc22c6d60fb.png](https://img-blog.csdnimg.cn/direct/17ad1e87c4e145a7b2827fc22c6d60fb.png)
重新挂载,此时不需要格式化。查看目录,恢复到了被删除前、创建快照的状态。
![92bb4597c8354a5aab2ee16a44633c9d.png](https://img-blog.csdnimg.cn/direct/92bb4597c8354a5aab2ee16a44633c9d.png)
保护快照误删除。rbd snap protect img1 --snap img1-snap1
![defec6c043c34fd9b72ce5f008afed9d.png](https://img-blog.csdnimg.cn/direct/defec6c043c34fd9b72ce5f008afed9d.png)
此时就不能随便删除快照了
![47040d9f56ac4ff88b7c60c9f62655d6.png](https://img-blog.csdnimg.cn/direct/47040d9f56ac4ff88b7c60c9f62655d6.png)
当多个节点同时挂载就会产生存储脑裂,数据发生混乱。
在client1创建myimg1镜像挂载写入数据
![4f9b4b03f1d14ed5a3110c40f9c58673.png](https://img-blog.csdnimg.cn/direct/4f9b4b03f1d14ed5a3110c40f9c58673.png)
在node1映射myimg1镜像挂载写入数据
![1a844c77c8f24b3abe59d0184cbb6875.png](https://img-blog.csdnimg.cn/direct/1a844c77c8f24b3abe59d0184cbb6875.png)
client和node分别写入数据
![c0d9d9afcaeb43339e24552792892e97.png](https://img-blog.csdnimg.cn/direct/c0d9d9afcaeb43339e24552792892e97.png)
![d8295a9612d440348c926935d891a6d1.png](https://img-blog.csdnimg.cn/direct/d8295a9612d440348c926935d891a6d1.png)
然后取消重新挂载,此时就发生了脑裂,hosts文件消失了,发生了数据混乱
![34870b72f8654fba9e070fd59707544b.png](https://img-blog.csdnimg.cn/direct/34870b72f8654fba9e070fd59707544b.png)
![fd001856a862498d8b4f39969cc82492.png](https://img-blog.csdnimg.cn/direct/fd001856a862498d8b4f39969cc82492.png)
快照克隆:不能将一个镜像同时挂载到多个节点,如果这样操作将会损坏数据。如果希望不同的节点,拥有完全相同的数据盘,克隆是基于快照的,不能直接对镜像克隆。快照必须是受保护的快照才能克隆。
克隆流程:镜像->快照->受保护的快照->克隆的镜像
创建镜像克隆
创建名为img2的镜像,大小10GB
![34d94dffa6cf496b80c0ae0a8f464b33.png](https://img-blog.csdnimg.cn/direct/34d94dffa6cf496b80c0ae0a8f464b33.png)
向镜像中写入数据
![e068fee829364ed69174e792b8bafc2c.png](https://img-blog.csdnimg.cn/direct/e068fee829364ed69174e792b8bafc2c.png)
卸载镜像
![b65411d7ce6e4c1cac7b7753c51a08e8.png](https://img-blog.csdnimg.cn/direct/b65411d7ce6e4c1cac7b7753c51a08e8.png)
为img2创建名为img2-snap1的快照,并保护起来
![8218c03793834172ae3ce667ea54e4f8.png](https://img-blog.csdnimg.cn/direct/8218c03793834172ae3ce667ea54e4f8.png)
克隆镜像。 rbd clone img2 --snap img2-snap1 img2-snap1-1
![2bbb66ac62a14199b35e159abdc1a682.png](https://img-blog.csdnimg.cn/direct/2bbb66ac62a14199b35e159abdc1a682.png)
在客户端挂载该克隆镜像
![9093345bce894ffd83a02af2e39a72cb.png](https://img-blog.csdnimg.cn/direct/9093345bce894ffd83a02af2e39a72cb.png)
而挂载另一个克隆镜像时就会报错
![bf601f4ce5064de687bf8dc5b10023ee.png](https://img-blog.csdnimg.cn/direct/bf601f4ce5064de687bf8dc5b10023ee.png)
这是因为这两个克隆镜像,克隆的是同一个镜像,该UUID(全局唯一标识符)相同,无法挂载相同设备两次。
![9bde64b9238f4d58a476d28991b768b2.png](https://img-blog.csdnimg.cn/direct/9bde64b9238f4d58a476d28991b768b2.png)
当在其他节点挂载另一个镜像时就没有问题,一个设备只能挂载一个唯一的UUID。
![393083031d0b4630a7a2b506132b263b.png](https://img-blog.csdnimg.cn/direct/393083031d0b4630a7a2b506132b263b.png)
查询镜像和快照
rbd snap ls img2:列出该镜像所有快照
![168f57e3eef8406fbe9120c12690bd3a.png](https://img-blog.csdnimg.cn/direct/168f57e3eef8406fbe9120c12690bd3a.png)
rbd info img2 --snap img2-snap1:查看该镜像的快照信息。protected:true受保护。
![e827d2bdb05f45a39a3d448fa84b9f4a.png](https://img-blog.csdnimg.cn/direct/e827d2bdb05f45a39a3d448fa84b9f4a.png)
该img2-snap1-1的镜像的父亲是rbd池中的img2镜像的img2-snap1快照
![ca0f9a450b564b6aa47dba0e7f1fa51b.png](https://img-blog.csdnimg.cn/direct/ca0f9a450b564b6aa47dba0e7f1fa51b.png)
查看镜像内存。rbd du img2
![260607be8e224f9eae441b7a19b3bb6d.png](https://img-blog.csdnimg.cn/direct/260607be8e224f9eae441b7a19b3bb6d.png)
合并镜像:rbd flatten img2-snap1-1。内存容量增加。
![d32787a5befc46a1866f037e513b37ae.png](https://img-blog.csdnimg.cn/direct/d32787a5befc46a1866f037e513b37ae.png)
查看合并镜像信息,此时parent父镜像也消失 了
![41651e749ca74c7ca7a63d41840a5665.png](https://img-blog.csdnimg.cn/direct/41651e749ca74c7ca7a63d41840a5665.png)
如果要删除img2镜像就需要先把克隆的镜像删除,然后再取消受保护的快照,并且删除快照,最后删除镜像。
1、只删除有快照或者克隆的镜像删除失败,提示有快照未删除。rbd rm img2
![7dd7d91bd83d42faa40a0ff364ae5fbb.png](https://img-blog.csdnimg.cn/direct/7dd7d91bd83d42faa40a0ff364ae5fbb.png)
2、查看img2有那些快照: rbd snap ls img2
![89773b34d648462ea623c370b8a36f02.png](https://img-blog.csdnimg.cn/direct/89773b34d648462ea623c370b8a36f02.png)
3、删除快照:rbd snap remove img2 --snap img2-snap1。提示快照受保护。
![da042d554c8b4909ae483c7d576122a6.png](https://img-blog.csdnimg.cn/direct/da042d554c8b4909ae483c7d576122a6.png)
4、取消快照保护:rbd snap unprotect img2 --snap img2-snap1。提示有子镜像
![eafbc5c47f254247bcb33816e426014c.png](https://img-blog.csdnimg.cn/direct/eafbc5c47f254247bcb33816e426014c.png)
5、查看有那些子镜像:rbd children img2 --snap img2-snap1
![79976e06439b4c24bae07e9f0747bf29.png](https://img-blog.csdnimg.cn/direct/79976e06439b4c24bae07e9f0747bf29.png)
6、删除子镜像:rbd rm img2-snap1-2。提示子镜像正在被使用
![9a1295f3a28a4509a103e98288a824ca.png](https://img-blog.csdnimg.cn/direct/9a1295f3a28a4509a103e98288a824ca.png)
7、查看子镜像正在被那个主机使用:rbd status img2-snap1-2
![d611ac584ad34fa59d0b17eb1d94601a.png](https://img-blog.csdnimg.cn/direct/d611ac584ad34fa59d0b17eb1d94601a.png)
8、取消192.168.88.10主机上img2-snap1-2镜像的使用。查看该主机的映射本地硬盘,取消映射(如果有挂载先取消挂载)。
![14f7b975b88047aa83139826e4d74657.png](https://img-blog.csdnimg.cn/direct/14f7b975b88047aa83139826e4d74657.png)
9、然后就能删除子镜像、取消受保护的快照、删除快照、删除镜像。
![4ae6fdfb061a4690a3169189abc7b5fb.png](https://img-blog.csdnimg.cn/direct/4ae6fdfb061a4690a3169189abc7b5fb.png)
此时把img2主镜像删除了而之前的克隆镜像img2-snap1-1中还有数据能正常使用
![353eef7b134d43d4959d6f759f743d5b.png](https://img-blog.csdnimg.cn/direct/353eef7b134d43d4959d6f759f743d5b.png)
ceph文件系统:文件系统相当于是组织数据存储的方式,格式化时就是在为存储创建文件系统。Linux对ceph有很好是支持,可以把ceph文件系统直接挂载到本地。要想实现文件系统的数据存储方式,需要有MDS组件(元数据服务器)。
数据相当于文件的内容(如cat查看文件),元数据相当于文件的属性(stat查看文件)。
![803a4caa23ab4b45a0164c2b531f2056.png](https://img-blog.csdnimg.cn/direct/803a4caa23ab4b45a0164c2b531f2056.png)
在node3节点安装MDS:yum -y install ceph-mds
![79ce869151084441b49fb86a4dbce244.png](https://img-blog.csdnimg.cn/direct/79ce869151084441b49fb86a4dbce244.png)
在node1的ceph-cluster目录通过ceph-deploy命令配置node3主机的MDS服务:
ceph-deploy mds create node3
![d27abb81eb5e4b7dbdb2cd735f53e20d.png](https://img-blog.csdnimg.cn/direct/d27abb81eb5e4b7dbdb2cd735f53e20d.png)
查看node3的MDS服务
![223f7b9189574c9983e4420d9124af17.png](https://img-blog.csdnimg.cn/direct/223f7b9189574c9983e4420d9124af17.png)
元数据就是描述数据的属性。如属主、属组、权限等。ceph文件系统中数据和元数据是分开存储的。
新建存储池:归置组PG:存储池包含PG,PG是一个容器,用于存储数据。为了管理方便,将数量众多的数据放到不同的PG中管理,而不是直接把所有数据扁平化存放。通常一个存储池中创建100个PG。
创建ceph文件系统:
1、创建一个名为data1的存储池,用来存储数据,有100个PG:ceph osd pool create data1 100
![d04d6403297c4e02a122c72d3d97fdf1.png](https://img-blog.csdnimg.cn/direct/d04d6403297c4e02a122c72d3d97fdf1.png)
2、创建一个名为metadata1的存储池,用来存储元数据。 ceph osd pool create metadata1 100
![c2a5e81b941d4b169e6fe4f3c0899baa.png](https://img-blog.csdnimg.cn/direct/c2a5e81b941d4b169e6fe4f3c0899baa.png)
查看存储池:ceph osd lspools
![6733b128b7924cb7adc039107232e417.png](https://img-blog.csdnimg.cn/direct/6733b128b7924cb7adc039107232e417.png)
存储池的最大内存显示30G是因为潜在内存最大为当其他存储没有使用时全部的内存空间30G。
![ba7a903cc7e94f6baff1ccc93ecdf961.png](https://img-blog.csdnimg.cn/direct/ba7a903cc7e94f6baff1ccc93ecdf961.png)
要删除存储池:ceph osd pool delete name name --yes-i-really-really-mean-it
3、创建文件系统new后面第一个表示要创建文件系统的名字,第二个存储池用来存储元数据,第三个存储池用来存储数据,创建完查看存储池
ceph fs new myfs1 metadata1 data1
![4c90b630078545888b62ffef98d152bb.png](https://img-blog.csdnimg.cn/direct/4c90b630078545888b62ffef98d152bb.png)
查看文件系统: ceph fs ls。metadata pool:元数据池为metadata1,data pool:数据池为data1。
![b164914a12d34d8d818b2b271eea5b00.png](https://img-blog.csdnimg.cn/direct/b164914a12d34d8d818b2b271eea5b00.png)
4、挂载文件系统需要密码,查看/etc/ceph/ceph.client.admin.keyring
![cdc12f5f1e8e48a085879bd18cde045c.png](https://img-blog.csdnimg.cn/direct/cdc12f5f1e8e48a085879bd18cde045c.png)
-t:指定文件系统类型。-o:是选项,提供用户名和密码。cephfs的端口号默认是6789
![eb8d7b17fa944e5ba4d1bb63c7535ca4.png](https://img-blog.csdnimg.cn/direct/eb8d7b17fa944e5ba4d1bb63c7535ca4.png)
mount -t ceph -o name=admin,secret=AQCn3Qhmt+9zARAAv60ERLf6OQN0Lefai277DQ== 192.168.88.13:6789:/ /mydata。ceph是一个整体挂载11,12,13都可以,但最后工作的还是安装MDS服务的node3主机。
![e85e4691a489492da33d21731a18fbbd.png](https://img-blog.csdnimg.cn/direct/e85e4691a489492da33d21731a18fbbd.png)
当挂载的11主机,拷贝数据
![f9b0d8f53c2b4ac885716c3f862b7b97.png](https://img-blog.csdnimg.cn/direct/f9b0d8f53c2b4ac885716c3f862b7b97.png)
![7f69e40531d64103bad92bb86943558e.png](https://img-blog.csdnimg.cn/direct/7f69e40531d64103bad92bb86943558e.png)
关闭13主机
![f4f419f824344a9c80542d03d6734076.png](https://img-blog.csdnimg.cn/direct/f4f419f824344a9c80542d03d6734076.png)
此时客户端查看共享该挂载目录就会停止工作一直搜索文件,被卡住。
![0da07451c63e4b4abefd71e5d9c95d69.png](https://img-blog.csdnimg.cn/direct/0da07451c63e4b4abefd71e5d9c95d69.png)
当开启13主机后就会显示数据,恢复正常。
![8891f5e9bf19422fb24f45864e4b6456.png](https://img-blog.csdnimg.cn/direct/8891f5e9bf19422fb24f45864e4b6456.png)
5、当node3关机,客户端拷贝文件到共享目录,被卡住。
![7b481ea363eb4e86a2329d76f0b7b496.png](https://img-blog.csdnimg.cn/direct/7b481ea363eb4e86a2329d76f0b7b496.png)
使用node2也部署MDS服务
![227d40c69f7840608f1d9a673bdd17d1.png](https://img-blog.csdnimg.cn/direct/227d40c69f7840608f1d9a673bdd17d1.png)
此时拷贝文件就能拷贝了
![9f41ecdc721b4105888a6b806cbcbd37.png](https://img-blog.csdnimg.cn/direct/9f41ecdc721b4105888a6b806cbcbd37.png)
对象存储:需要专门的客户端访问,键值对存储方式,对象存储需要rgw组件。
安装部署:ceph-deploy rgw create node3
![3903652983f646e69951206c43342ba7.png](https://img-blog.csdnimg.cn/direct/3903652983f646e69951206c43342ba7.png)
![886064f297214796b6355ddc8fa56342.png](https://img-blog.csdnimg.cn/direct/886064f297214796b6355ddc8fa56342.png)