分布式文件系统Ceph配置方法详解

分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。
分布式文件系统的设计基于客户机/服务器模式
 
常用分布式文件系统
Lustre , Hadoop , FsatDFS , Ceph , GlusterFS
 
Ceph组件
OSDs:存储设备
Monitors:集群监控组件
MDSs:存放文件系统的元数据(对象存储和块存储不需要该组件)
Client:ceph客户端
 
环境准备
client客户端:192.168.4.50
3台存储虚拟机:192.168.4.51(即是存储机也是管理机)    192.168.4.52     192.168.4.53
 
修改主机名,并且每台主机名映射都配写入 /etc/hosts 里面
192.168.4.50   client
192.168.4.51   node1 
192.168.4.51   node2
192.168.4.51   node3
 
生成密钥,发布密钥到各个主机
[root@node1~]# ssh-keygen
[root@node1~]#for i in 50 51 52 53
>do
>ssh-copy-id 192.168.4.$i
>done
 
NTP时间同步
客户端创建NTP服务器
[root@client~]# yum -y install chrony
[root@client~]# cat /etc/chrony.conf
server 0.centos.pool.ntp.org iburst
allow 192.168.4.0/24
local stratum 10
[root@client~]#systemctl restart chronyd    (并设开机自启动enable)
#其他三台与其同步时间   server 192.168.4.50 iburst
3台做存储的物理机添加3块10G磁盘,分别是 vdb vdc vdd
 

 使用node1作为部署主机

[root@node1~]# yum -y install ceph-deploy  
#ceph-deploy --help 可以看帮助
 
1.为部署工具创建目录,存放密钥与配置文件
[root@node1~]# mkdir ceph-cluster         //创建共享目录
[root@node1~]# cd ceph-cluster/             //cd进去不然下一步会报错
创建ceph集群配置(所有节点都为mon)
[root@node1 ceph-cluster]# ceph-deploy new node1 node2 node3

[root@node1 ceph-cluster]# ls

ceph.conf  ceph-deploy-ceph.log  ceph.mon.keyring

[root@node1 ceph-cluster]# ceph-deploy install node1 node2 node3

 

[root@node1 ceph-cluster]# ceph-deploy mon create-initial

 

创建OSD

 

创建日志盘(使用vdb做日志盘,分别在node1 node2  node3 主机上执行如下命令 )

 

parted  /dev/vdb  mklabel  gpt                        //使用gpt模式分区

parted  /dev/vdb  mkpart primary 1M 50%     //各分一半

parted  /dev/vdb  mkpart primary 50% 100%

 

]# chown  ceph:ceph  /dev/vdb*                 

]# echo  "chown  ceph.ceph  /dev/vdb*"  >>  /etc/rc.local

]# chmod +x /etc/rc.d/rc.local

 //设置属主属组为ceph ,设为开机启动命令,否则重启后会失效

 

在管理主机node1初始化存储盘 vdc  和  vdd 

node1]# cd /root/ceph-cluster/

node1]# ceph-deploy disk  zap  node1:vdc   node1:vdd

node1]# ceph-deploy disk  zap  node2:vdc   node2:vdd

node1]# ceph-deploy disk  zap  node3:vdc   node3:vdd

 

 在管理主机node1上,创建osd设备

 

node1]#

ceph-deploy osd create node1:vdc:/dev/vdb1 node1:vdd:/dev/vdb2

 //创建一个储存设备,vdc,vdb为集群提供储存空间,vdb1提供JOURNAL日志,一个存储设备对应一个日志设备,日志需要SSD硬盘,不需要很大

node1]#

ceph-deploy osd create node2:vdc:/dev/vdb1 node2:vdd:/dev/vdb2

 

node1]#

ceph-deploy osd create node3:vdc:/dev/vdb1 node3:vdd:/dev/vdb2

 

3查看集群状态

[root@node1 ~]# ceph -s

    cluster ad2bf018-8b58-4289-97db-406a365a9289

     health HEALTH_OK

     monmap e1: 3 mons at

 

{node1=192.168.4.51:6789/0,node2=192.168.4.52:6789/0,node3=192.168.4.53:6789/0}

            election epoch 6, quorum 0,1,2 node1,node2,node3

     osdmap e33: 6 osds: 6 up, 6 in

            flags sortbitwise

      pgmap v82: 64 pgs, 1 pools, 0 bytes data, 0 objects

            202 MB used, 61171 MB / 61373 MB avail

                  64 active+clean

[root@node1 ~]#

 

查看相关服务的状态信息:

node1]#  systemctl status ceph\*.service  ceph\*.target

 

 

查看工作目录下的文件列表

[root@node1 ~]# ls /root/ceph-cluster/

ceph.bootstrap-mds.keyring  ceph.bootstrap-rgw.keyring  ceph.conf            

 

ceph.mon.keyring

ceph.bootstrap-osd.keyring  ceph.client.admin.keyring   ceph-deploy-ceph.lo

 

==================================================================

Ceph块设备也叫做RADOS块设备---RADOS block device:RDB

RBD驱动已经很好的集成在linux内核中了

RBD提供了企业功能,如快照,COW克隆等

RBD还支持内存缓存,从而能够大大提高性能

 

部署ceph块存储集群

[root@node1 ~]# ceph osd  lspools 查看已有的存储池,默认存在的

0 rbd,

[root@node1 ~]# rbd list  查看存储池里的镜像列表,还没创建so 为空

 

 

创建新镜像

[root@node1 ~]# rbd create domo-image --image-feature  layering --size 10G        

  //domo-image是镜像名

[root@node1 ~]# rbd create rbd/image --image-feature layering --size 15G

//也可以镜像名前面定义资源池名为rbd的池,不加默认为rbd池

[root@node1 ~]# rbd list

domo-image

image

[root@node1 ~]# rbd info domo-image

rbd image 'domo-image':

       size 10240 MB in 2560 objects

       order 22 (4096 kB objects)

       block_name_prefix: rbd_data.1052238e1f29

       format: 2

       features: layering

       flags:

 

 

查看镜像大小

[root@node1 ~]# rbd info image 

rbd image 'image':

       size 15360 MB in 3840 objects

       order 22 (4096 kB objects)

       block_name_prefix: rbd_data.10662ae8944a

       format: 2

       features: layering

       flags: 

 

 调整镜像大小:

image容量的缩小到1G

[root@node1 ~]# rbd resize --size 1G image --allow-shrink

Resizing image: 100% complete...done.

[root@node1 ~]#

[root@node1 ~]# rbd info image

rbd image 'image':

       size 1024 MB in 256 objects

       order 22 (4096 kB objects)

       block_name_prefix: rbd_data.10662ae8944a

       format: 2

       features: layering

       flags:

//缩小需要加  --allow-shrink

 

image容量的扩大到4G

[root@node1 ~]# rbd resize --size 4G image

Resizing image: 100% complete...done.

[root@node1 ~]# rbd info image

rbd image 'image':

       size 4096 MB in 1024 objects

       order 22 (4096 kB objects)

       block_name_prefix: rbd_data.10662ae8944a

       format: 2

       features: layering

       flags:

 

 

=====================================================

在存储服务器本机使用镜像存储文件的步骤:

 

[root@node1 ~]# rbd list

domo-image

image

 

[root@node1 ~]# rbd map domo-image     //把镜像映射到本机

/dev/rbd0

 

[root@node1 ~]# ls /dev/rbd0         // 会多个rbd0

/dev/rbd0

 

[root@node1 ~]# mkdir  /notedir      //创建挂载目录

 

[root@node1 ~]# mkfs.ext4 /dev/rbd0      //格式化

 

[root@node1 ~]# blkid  /dev/rbd0                  // 查看格式化信息

/dev/rbd0: UUID="c4b13e97-49ac-407c-8045-477a91fe6550" TYPE="ext4"

 

[root@node1 ~]# mount /dev/rbd0 /notedir/               //挂载

[root@node1 ~]# echo  123  > /notedir/test.txt            //存储一个文件,确认可用

[root@node1 ~]# cat /notedir/test.txt 

123

 

 

 

 

客户端通过KRBD访问 

配置:在客户端50主机client, 使用ceph镜像存储文件的配置步骤:

 

1 安装软件包

【root@client ~]# yum -y  install ceph-common

 

[root@client ~]# ls /etc/ceph/                                  //会出现drbdmap文件

rbdmap

 

2 从管理主机上拷贝集群配置文件

[root@client ~]# scp  192.168.4.51:/etc/ceph/ceph.conf   /etc/ceph/

root@192.168.4.51's password:

ceph.conf                                  100%  235   441.4KB/s   00:00   

 

 

[root@client ~]# ls /etc/ceph/

ceph.conf  rbdmap

 

3 从管理主机上拷贝连接集群密钥文件

[root@client ~]# scp 192.168.4.51:/etc/ceph/ceph.client.admin.keyring /etc/ceph/

 

[root@client ~]# ls /etc/ceph/

ceph.client.admin.keyring  ceph.conf  rbdmap

[root@client ~]#

 

 

[root@client ~]# rbd list                                             //查看ceph集群镜像列表

domo-image

image

 

[root@client ~]# rbd map image                                //把镜像文件映射到本机

/dev/rbd0

[root@client ~]# ls /dev/rbd0

/dev/rbd0

[root@client ~]#

[root@client ~]# mkdir /studayup                           //创建文件夹,挂载用

[root@client ~]# mkfs.ext4 /dev/rbd0                     //格式化

 

[root@client ~]# blkid  /dev/rbd0

/dev/rbd0: UUID="f4edce49-4dae-4a5e-a63d-fe55a30ac158" TYPE="ext4"

[root@client ~]#

[root@client ~]# mount /dev/rbd0 /studayup/            //挂载

[root@client ~]#

[root@client ~]# echo 123456  > /studayup/test2.txt

[root@client ~]#

[root@client ~]# cat /studayup/test2.txt

123456

 

====================================================

在管理主机上给被挂载的镜像创建快照   (COW技术   Copy  Online  Write)

 

 

[root@node1 ~]# rbd list  查看已有的镜像

domo-image

image

 

[root@node1 ~]# rbd snap ls image                      //查看image镜像是否有快照

 

image镜像创建快照 名称叫 image-snap1

[root@node1 ~]# rbd snap create image --snap image-snap1 

 

 

[root@node1 ~]# rbd snap ls image                        // 再次查看

SNAPID NAME           SIZE

     4 image-snap1 4096 MB

 

 

使用快照恢复   如果误删除了文件,可以恢复

 

[root@client ~]# cat /studayup/test2.txt

123456

[root@client ~]# rm  -rf /studayup/test2.txt

[root@client ~]# cat /studayup/test2.txt

cat: /studayup/test2.txt:                                           //内容被删了

 

 

在管理主机上使用快照恢复误删除的文件

[root@node1 ~]# rbd snap rollback image --snap image-snap1

Rolling back to snapshot: 100% complete...done.

 

客户端卸载当前挂载的image镜像 后 再次挂载image 就可看到恢复的文件

[root@client ~]# cat /studayup/test2.txt

cat: /studayup/test2.txt: 

[root@client ~]# umount /studayup/

[root@client ~]# mount /dev/rbd0 /studayup/

[root@client ~]# ls /studayup/

lost+found  test2.txt

[root@client ~]# cat /studayup/test2.txt

123456

 

======================================================

快照克隆:(在管理主机上操作)

 

对快照文件写保护

[root@node1 ~]# rbd snap protect image --snap image-snap1

 

image镜像的快照image-snap1 做克隆 名称叫image-clone

[root@node1 ~]# rbd clone image --snap image-snap1 image-clone --image-feature  layering

 

 

 

[root@node1 ~]# rbd info image-clone1                  //查看克隆文件的信息 若没有报错

rbd: error opening image image-clone1: (2) No such file or directory 

[root@node1 ~]# rbd info image-clone                    //查看克隆文件的信息

rbd image 'image-clone':

       size 4096 MB in 1024 objects

       order 22 (4096 kB objects)

       block_name_prefix: rbd_data.10653d1b58ba

       format: 2

       features: layering

       flags:

       parent: rbd/image@image-snap1                         // 显示克隆文件对应的镜像信息

       overlap: 4096 MB

 

[root@node1 ~]# rbd info image-clone                        // 恢复前查看

rbd image 'image-clone':

       size 4096 MB in 1024 objects

       order 22 (4096 kB objects)

       block_name_prefix: rbd_data.10653d1b58ba

       format: 2

       features: layering

       flags:

       parent: rbd/image@image-snap1

       overlap: 4096 MB

[root@node1 ~]# rbd flatten image-clone                   //使用克隆文件恢复image镜像

Image flatten: 100% complete...done.

[root@node1 ~]# rbd info image-clone                        //恢复后查看

rbd image 'image-clone':

       size 4096 MB in 1024 objects

       order 22 (4096 kB objects)

       block_name_prefix: rbd_data.10653d1b58ba

       format: 2

       features: layering                                  // 查看克隆文件的对应的镜像信息 信息没有了

       flags:

       //否则无法删除原名的image镜像文件

=========================================================

配置 客户端不使用ceph集群的块设备存储数据的步骤:

 

1. 撤销镜像映射 (要先卸载挂载的/dev/rbdx 设备)

 

[root@client ~]# umount /studayup/                           //取消挂载点

[root@client ~]# rbd showmapped                              //查看映射

id pool image snap device   

0  rbd  image -    /dev/rbd0 

[root@client ~]# rbd unmap /dev/rbd/rbd/image       //取消RBD磁盘映射

[root@client ~]# rbd showmapped                               //再次查看

 

===================================================

在管理主机上删除创建的镜像(如果镜像有快照的话要先删除快照文件)

 

[root@node1 ~]# rbd snap unprotect image --snap image-snap1      // 取消保护

[root@node1 ~]# rbd snap rm image --snap image-snap1                 // 删除快照

 

[root@node1 ~]# rbd list

domo-image

image

image-clone

[root@node1 ~]# rbd rm image                                         //删除image镜像

Removing image: 100% complete...done.

[root@node1 ~]# rbd list

domo-image

image-clone

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

转载于:https://www.cnblogs.com/hanlongyu/p/9781418.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值