LINUX部署ceph集群, 创建ceph块存储,创建镜像快照使其还原误删除数据.

模拟环境:
在真机上挂载ceph10.iso :
[root@room9pc01 ~]# mkdir /var/ftp/ceph
[root@room9pc01 ~]# mount ceph10.iso /var/ftp/ceph/
客户端虚拟机:client 192.168.4.10/24
真机IP地址:192.168.4.254/24
存储集群虚拟机:
node1 192.168.4.11/24
node2 192.168.4.12/24
node3 192.168.4.13/24

步骤:
1.配置无密码连接:
[root@node1 ~]# ssh-keygen -f /root/.ssh/id_rsa -N ‘’

[root@node1 ~]#for do i in 10 11 12 13 ; do ssh-copy-id 192.168.4.$i; done

2.修改/etc/hosts并同步到所有虚拟机
[root@node1 ~]# cat /etc/hosts
… …
192.168.4.10 client
192.168.4.11 node1
192.168.4.12 node2
192.168.4.13 node3

[root@node1 ~]# for i in client node1 node2 node3; do scp /etc/hosts $i:/etc/; done

3.要修改所有节点所以需要配置YUM源,并同步到所有虚拟机
[root@node1 ~]# vim /etc/yum.repos.d/ceph.repo
[mon]
name=mom
baseurl=ftp://192.168.4.254/ceph/MON
gpgcheck=0
[osd]
name=osd
baseusrl=ftp://192.168.4.254/ceph/OSD
gpgcheck=0
[tools]
name=tools
baseurl=ftp://192.168.4.254/ceph/Tools
gpgcheck=0

[root@node1 ~]# yum repolist #验证YUM源软件数量
[root@node1 ~]# for i in client node1 node2 node3; do scp /etc/yum.repos.d/ceph.repo $i:/etc/yum.repos.d; done

4.配置NTP服务器,使得所有虚拟机与真机的NTP服务器同步时间
[root@node1 ~]# vim /etc/chrony.conf
… …
server 192.168.4.254 iburst

[root@node1 ~]# for i in client node1 node2 node3; do scp /etc/chrony.conf $i:/etc/ ; ssh $i “systemctl restart chronyd”; done

5.真机上为每个存储集群虚拟机准备存储磁盘,3块儿20G磁盘(可以使用图形直接添加)

6.安装部署软件ceph-deploy
1).[root@node1 ~]# yum -y install ceph-deploy #安装ceph-deploy软件
2).[root@node1 ~]# mkdir ceph-cluster # 创建目录
[root@node1 ~]# cd ceph-cluster/ #移动到该目录下

7.部署ceph集群
1).创建ceph集群,在ceph-cluster目录下生成ceph配置文件,在ceph.conf配置文件中定义monitor主机是谁.
[root@node1 ceph-cluster]# ceph-deploy new node1 node2 node3

2).给所有节点安装ceph相关软件包
[root@node1 ceph-cluster]# for i in node1 node2 node3 ; do ssh $i “yum -y install ceph-mon ceph-osd ceph-mds ceph-randosgw” ; done

3).初始化所有节点的monitor服务,也相当于启动monitor服务
[root@node1 ceph-cluster]# ceph-deploy mon create-initial

8.创建OSD
1).查看磁盘状态
[root@node2 ~]# lsblk #确认3块儿20G磁盘是否添加.[ vdb,vdc,vdd]
2).将所有存储集群虚拟机上的磁盘vdb中的vdb1和vdb2两个分区用来做存储服务器的缓存盘

[root@node1 ceph-cluster]# for i in node1 node2 node3 ; do ssh $i “parted /dev/vdb mklabel gpt” ; ssh $i “parted /dev/vdb mkpart primary 1 50%”; ssh $i “parted /dev/vdb mkpart primary 50% 100%” ; done

3).磁盘分区后的默认权限无法让ceph软件对其进行读写操作,需要修改权限,所有存储集群虚拟机上都要操作.
[root@node1 ceph-cluster]# vim /etc/udev/rules.d/70-vdb.rules
ENV{DEVNAME}"/dev/vdb1",OWNER=“ceph”,GROUP=“ceph”
ENV{DEVNAME}
"/dev/vdb2",OWNER=“ceph”,GROUP=“ceph” #修改永久配置

[root@node1 ceph-cluster]# for i in client node1 node2 node3 ; do chown ceph:ceph /dev/vdb1 ; chown ceph:ceph /dev/vdb2 ; scp /etc/udev/rules.d/70-vdb.rules $i:/etc/udev/rules.d/ ; done

4).初始化清空磁盘数据 (仅在node1操作即可)
[root@node1 ceph-cluster]# ceph-deploy disk zap node1:vdc node1:vdd
[root@node1 ceph-cluster]# ceph-deploy disk zap node2:vdc node2:vdd
[root@node1 ceph-cluster]# ceph-deploy disk zap node3:vdc node3:vdd

5).创建OSD存储空间 (仅在node1操作即可)
[root@node1 ceph-cluster]# ceph-deploy osd create node1:vdc:/dev/vdb1 node1:vdd:/dev/vdb2
[root@node1 ceph-cluster]# ceph-deploy osd create node2:vdc:/dev/vdb1 node2:vdd:/dev/vdb2
[root@node1 ceph-cluster]# ceph-deploy osd create node3:vdc:/dev/vdb1 node3:vdd:/dev/vdb2

6).验证测试
[root@node1 ~]# ceph -s

9.创建ceph块存储
1).创建镜像
[root@node1 ~]# ceph osd lspools #查看存储池
[root@node1 ~]# rbd create demo-image --image-feature layering --size 10G #创建demo-image镜像
[root@node1 ~]rbd create image --image-feature layering --size 10G #创建image镜像

#-image-feature参数指定我们创建的镜像有哪些功能,layering是开启COW功能。

[root@node1 ~]# rbd list #查看有哪些镜像
[root@node1 ~]# rbd info demo-image #查看单个镜像的信息

1.1).动态调整-----缩小容量
[root@node1 ~]# rbd resize --size 7G image --allow-shrink
1.2).动态调整-----扩容容量
[root@node1 ~]# rbd resize --size 15G image

10.客户端通过KRBD访问
#客户端需要安装ceph-common软件包
#拷贝配置文件(否则不知道集群在哪)
#拷贝连接密钥(否则无连接权限)
[root@client ~]# yum -y install ceph-common
[root@client ~]# scp 192.168.4.11:/etc/ceph/ceph.conf /etc/ceph/
[root@client ~]# scp 192.168.4.11:/etc/ceph/ceph.client.admin.keyring /etc/ceph/
[root@client ~]# rbd map image
[root@client ~]# lsblk
[root@client ~]# rbd showmapped # 查看所有镜像

11.客户端格式化,挂载分区

[root@client ~]# mkfs.xfs /dev/rbd0
[root@client ~]# mount /dev/rbd0 /mnt/
[root@client ~]# echo “test” > /mnt/test.txt #在挂在点创建测试文档

12.创建镜像快照
1).[root@node1 ~]# rbd snap create image --snap image-snap1 #为image镜像创建快照,快照名称为image-snap1
2).[root@node1 ~]# rbd snap ls image #查看镜像快照
3).[root@client ~]# rm -rf /mnt/test.txt
[root@client ~]# umount /mnt #删除客户端写入的测试文档
4).用快照还原数据
[root@node1 ~]# rbd snap rollback image --snap image-snap1 #客户端重新挂载分区
[root@client ~]# mount /dev/rbd0 /mnt/
[root@client ~]# ls /mnt #之前模拟误删除的测试文档被还原.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值