ceph rbd挂载+镜像日常管理+nfs+nginx

 

cephadmin@ceph-deploy:~/ceph-cluster$ ceph osd pool application enable rbd-data1 rbd
enabled application 'rbd' on pool 'rbd-data1'
cephadmin@ceph-deploy:~/ceph-cluster$ rbd pool init -p rbd-data1
cephadmin@ceph-deploy:~/ceph-cluster$ rbd create data-img1 --size 3G --pool rbd-data1 --image-format 2 --image-feature layering
cephadmin@ceph-deploy:~/ceph-cluster$ rbd ls --pool rbd-data1
data-img1
cephadmin@ceph-deploy:~/ceph-cluster$ rbd ls --pool rbd-data1 -l
NAME       SIZE   PARENT  FMT  PROT  LOCK
data-img1  3 GiB            2            
cephadmin@ceph-deploy:~/ceph-cluster$ rbd --image data-img1 --pool rbd-data1 info
cephadmin@ceph-deploy:~/ceph-cluster$ sudo scp ceph.conf ceph.client.admin.keyring root@192.168.192.129:/etc/ceph/
[root@centos8-client ceph]# rbd -p rbd-data1 map data-img1
/dev/rbd0
[root@centos8-client ceph]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
rbd0        252:0    0    3G  0 disk 
[root@centos8-client ceph]# mkfs.xfs /dev/rbd0
[root@centos8-client ceph]# mkdir /data1
[root@centos8-client ceph]# mount /dev/rbd0 /data1
[root@centos8-client ceph]# df -hT
文件系统            类型      容量  已用  可用 已用% 挂载点
/dev/rbd0           xfs       3.0G   54M  3.0G    2% /data1
[root@centos8-client ceph]# showmount -e
Export list for centos8-client:
/data1      192.168.192.0/24
/cephfs-key 192.168.192.0/24
[root@centos7-client ~]# cat /etc/fstab 
192.168.192.129:/data1 /usr/share/nginx/html nfs defaults        0 0
[root@centos7-client ~]# df -hT
Filesystem              Type      Size  Used Avail Use% Mounted on
192.168.192.129:/data1  nfs4      3.0G   54M  3.0G   2% /usr/share/nginx/html
http://192.168.192.131/bb.jpg
#拉伸 rbd 镜像空间
cephadmin@ceph-deploy:~/ceph-cluster$ rbd ls -p rbd-data1 -l
NAME       SIZE   PARENT  FMT  PROT  LOCK
data-img1  3 GiB            2            
cephadmin@ceph-deploy:~/ceph-cluster$ rbd resize --pool rbd-data1 --image data-img1 --size 8G
Resizing image: 100% complete...done.
[root@centos8-client ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
rbd0        252:0    0    9G  0 disk /data1
[root@centos8-client ~]#  fdisk -l /dev/rbd0
Disk /dev/rbd0:9 GiB,9663676416 字节,18874368 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):4194304 字节 / 4194304 字节
[root@centos8-client ~]# df -hT
文件系统            类型      容量  已用  可用 已用% 挂载点
/dev/rbd0           xfs       3.0G   55M  3.0G    2% /data1
[root@centos8-client ~]# xfs_growfs /data1/   #resize2fs (ext4)
[root@centos8-client ~]# df -hT
文件系统            类型      容量  已用  可用 已用% 挂载点
/dev/rbd0           xfs       9.0G   99M  8.9G    2% /data1
[root@centos7-client ~]# df -hT
Filesystem              Type      Size  Used Avail Use% Mounted on
192.168.192.129:/data1  nfs4      9.0G   98M  8.9G   2% /usr/share/nginx/html

 开机挂载

[root@centos8-client ~]# cat /etc/rc.d/rc.local
touch /var/lock/subsys/local
rbd -p rbd-data1 map data-img1
mount /dev/rbd0 /data1
[root@centos8-client ~]# chmod +x /etc/rc.d/rc.local

镜像管理

[root@centos8-client data1]# umount -l  /data1
[root@centos8-client data1]# sudo rbd unmap -o force /dev/rbd0 [root@centos8
-client data1]# #rbd rm --pool rbd-data1 --image data-img1 #删除无法找回,慎用 [root@centos8-client data1]# rbd status --pool rbd-data1 --image data-img1 #回收站 [root@centos8-client data1]# rbd trash move --pool rbd-data1 --image data-img1 [root@centos8-client data1]# rbd trash list --pool rbd-data1 85ac5780ab0b data-img1 [root@centos8-client data1]# trash remove #删除

   [root@centos8-client ~]# rbd trash remove -p rbd-data1 --image-id 85ac5780ab0b
   Removing image: 100% complete...done.


#还原
[root@centos8-client data1]# rbd trash restore --pool rbd-data1 --image data-img1 --image-id 85ac5780ab0b
[root@centos8-client data1]# rbd ls --pool rbd-data1 -l
NAME       SIZE   PARENT  FMT  PROT  LOCK
data-img1  9 GiB            2 
快照操作命令
[root@centos8-client data1]# rbd snap create --pool rbd-data1 --image data-img1 --snap img1-snap-2021
Creating snap: 100% complete...done.
[root@centos8-client data1]# rbd snap list --pool rbd-data1 --image data-img1
[root@centos8-client data1]# rbd snap rollback --pool rbd-data1 --image data-img1 --snap img1-snap-2021
[root@centos8-client data1]# rbd snap remove --pool rbd-data1 --image data-img1 --snap img1-snap-2021
Removing snap: 100% complete...done.
[root@centos8-client data1]# rbd snap limit set --pool rbd-data1 --image data-img1 --limit 30 #修改修改快照数量限制
[root@centos8-client data1] rbd snap limit clear --pool rbd-data1 --image data-img2 清除快照数量限制

 写入数据

[root@centos7-client html]# dd if=/dev/zero of=/usr/share/nginx/html/ceph-test-file bs=1MB count=300
300+0 records in
300+0 records out
300000000 bytes (300 MB) copied, 1.35101 s, 222 MB/s
[root@centos7-client html]# dd if=/dev/zero of=/usr/share/nginx/html/ceph-test-file1 bs=1MB count=300
300+0 records in
300+0 records out
300000000 bytes (300 MB) copied, 7.49862 s, 40.0 MB/s
[root@centos7-client html]# rm -f ceph-test-file1
[root@centos8-client data1]# df -h
文件系统                容量  已用  可用 已用% 挂载点
/dev/rbd1               3.0G  341M  2.7G   12% /data
cephadmin@ceph-deploy:~/ceph-cluster$ ceph df 查看的使用率并没有变化
rbd-data1               4   32  585 MiB      161  1.7 GiB   0.40    141 GiB
[root@centos8-client data1]# fstrim -v /data1
/data1:2.7 GiB (2896072704 字节) 已修剪
cephadmin@ceph-deploy:~/ceph-cluster$ ceph df 查看的使用率有变化
rbd-data1               4   32  298 MiB       88  895 MiB   0.20    142 GiB
[root@centos8-client data1]# mount  -t xfs  /dev/rbd1 -o discard  device /data1/

 

因为从Ceph的角度讲,它并不知道文件系统中发生的事情。删除文件并不会对磁盘块做任何操作(清除数据),只会将相应的磁盘块的位图改为空闲,下次使用时仅仅只是覆盖现有磁盘块上的数据。如果没有在这些磁盘块上写入新文件,其数据仍然可以被找回来;但是一旦写入了新文件,就很难再找回原来的数据了。这就是为什么删除文件的过程相较其他操作要快得多。

有两种方式可以触发Trim/Discard请求,一种是由文件系统自动完成,一种是用户通过执行命令来完成。

一、文件系统自动完成

  只要在挂载文件系统时指定discard参数即可,比如 mount -t ext4 -o discard device mountpoint,这样在文件系统中删除文件后会自动触发Trim/Discard操作,在块设备上释放占用的空间。需要注意的是,mount的discard参数会导致文件系统性能下降,在并发删除大量小文件时变得很慢,因此需要根据具体场景选择合适的长发方式。

二、用户执行命令

  用户可以执行命令fstrim来触发Trim/Discard操作,采用这种方式mount文件系统时不需要discard参数。比如,fstrim -v mountpoint,就会释放对应块设备上不用的空间。

cephFS

Ceph的角度讲,它知道文件系统中发生的事情,共享

posted @ 2021-11-28 20:24  gg888666  阅读(361)  评论(0编辑  收藏  举报