Ceph-集群

存储的分类有以下几种:
DAS:直连存储,U盘,硬盘等。
NAS:网络附加存储,nfs,samba,ftp等,共享的是已经格式化服的文件系统。
SAN:存储区域网络,iscsi等,共享的是没有格式化的磁盘(块设备)。
SDS:软件定义存储(分布式存储),ceph,hadoop等。

ceph:是一种分布式的存储系统,可以提供块共享(未格式化的磁盘)、文件系统共享(已经格式化过的),对象存储。

ceph组件:
MON:ceph-mon,集群的监控组件。
OSD:ceph-osd,集群的物理存储,相当于磁盘,用于提供块共享。
MDS:ceph-mds,用于提供文件系统共享。
RGW:ceph-radosgw,用于提供对象存储。

ceph要求mon至少有3个,因为存在过半原则-超过一半的mon完好集群才可以使用。如果有2个mon,其中一个发生故障整个集群就不能使用了。
ceph要求osd至少有3个,因为存在3副本原则-所有的文件都被存储了三份,分别位于不同的集群节点当中。
ceph存储资源时,会把资源分成若干个4M的块,同时存入不同的节点中,节点越多存储的速度越快。

构建Ceph集群:
由于资源有限,所以在这里使用了三台虚拟机来当做mon节点,同时也当做osd节点。 在这里插入图片描述
准备环境:

1、建立yum仓库:(ceph相关包不在光盘上,需要一个yum主机192.168.4.100)
	mkdir /var/ftp/ceph
	mount ceph10.iso /var/ftp/ceph

2、配置无密码连接:(node1)
	ssh-keygen -f /root/.ssh/id_rsa -N ""	#生成秘钥,git,rsync有用到
	for i in 10 11 12 13
	do
		ssh-copy-id 192.168.4.$i		#传输秘钥,node1可以无密访问其他主机
	done

3、修改/etc/hosts并且同步到其他主机:(node1)
	# 解析的域名必须和主机保持一致
	vim /etc/hosts
	192.168.4.10	client
	192.168.4.11	node1
	192.168.4.12	node2
	192.168.4.13	node3

	for i in client node1 node2 node3
	do
		scp /etc/hosts $i:/etc/	#hosts传输到其他主机,这样就实现了同步
	done

4、配置yum源,并且同步到所有主机:(node1)
	# 目录下有repodata的才是yum源
	vim /etc/yum.repos.d/ceph.repo
	[mon]
	name=mon
	baseurl=ftp://192.168.4.100/ceph/MON
	gpgcheck=0
	[osd]
	name=osd
	baseurl=ftp://192.168.4.100/ceph/OSD
	gpgcheck=0
	[tools]
	name=tools
	baseurl=ftp://192.168.4.100/ceph/Tools
	gpgcheck=0

	for i in client node1 node2 node3
	do
		scp /etc/yum.repos.d/ceph.repo $i:/etc/yum.repos.d/	#yum源同步到其他主机
	done

5、为所有主机配置NTP时间同步服务:(node1)
	vim /etc/chrony.conf
	....
	server 192.168.4.100 iburst	#指定NTP服务器,iburst表示尽快同步时间
	...

	for i in client node1 node2 node3
	do
		scp /etc/chrony.conf $i:/etc/	#同步配置文件
	done

6、为node1,node2,node3各准备三块20G的硬盘,vdb、vdc、vdd

部署集群:

1、安装ceph-deploy:(node1)
	yum -y install ceph-deploy	# ceph-deploy是一个python脚本,用于配置、启动ceph
	# ceph-deploy --help	查看ceph帮助
	# ceph-deploy mon --help	查看mon配置帮助


2、创建执行目录:(node1)
	mkdir /ceph-cluster	#必须要在这个目录下执行ceph-deploy操作。
	cd /ceph-cluster


3、部署mon:
	1°(node1)
	ceph-deploy new node1 node2 node3	#定义mon主机,
	# 自动在/ceph-cluster目录下生产配置文件(ceph.conf)以及密码文件(ceph.mon.keyring)

	2°(node1)
	为所有node节点安装相关软件包:
	for i in node1 node2 node3
	do
		ssh $i "yum -y install ceph-mon ceph-osd ceph-mds ceph-radosgw"
	done

	3°(node1)
	# 软件包安装完毕以后/etc/ceph中是没有配置文件的
	# 因此需要把/ceph-cluster拷贝到/etc/ceph中,不需要手动操作
	# 要在/ceph-cluster执行下面的命令
	ceph-deploy mon create-initial	#自动复制配置文件,自动开启ceph.mon服务

4、部署osd:
# 在之前已经为node1,node2,node3各准备了三块20G的磁盘,vdb、vdc、vdd
# 其中vdb要划分成两块10G的分区vdb1、vdb2,用于做数据盘的缓存
# vdc、vdd做数据盘、不需要进行划分

	1°划分缓存盘:(node1)
	# 这里不能使用fdisk进行划分,因为fdisk只有交互式的
	# 使用parted划分工具进行划分,parted划分的都是primary
	for i in node1 node2 node3
	do
		ssh $i "parted /dev/vdb mklabel gpt"
     ssh $i "parted /dev/vdb mkpart primary 1 50%"	#第一块分区vdb1
     ssh $i "parted /dev/vdb mkpart primary 50% 100%"	#第二块分区vdb2
	done

	2°修改缓存区的权限:(node1)
	# ceph服务是由ceph用户启动的,但是缓存区/dev/vdb1、/dev/vdb2的所有者是root
	# 因此无法向缓存区中写入数据,也无法从缓存区中读取数据
	为所有node节点临时修改:(必须要做)
	for i in node1 node2 node3
	do
		ssh $i "chown ceph.ceph /dev/vdb1"
		ssh $i "chown ceph.ceph /dev/vdb2"
	done
	
	为所有节点永久修改:(必须要做)
	vim /etc/udev/rules.d/vdb.rules	#自定义了vdb.rules文件,一定要是.rules结尾
	ENV{DEVNAME}=="/dev/vdb1",OWNER="ceph",GROUP="ceph"
	ENV{DEVNAME}=="/dev/vdb2",OWNER="ceph",GROUP="ceph"
	# 设备名是/dev/vdb1或者/dev/vdb2,修改所有者以及所在组
	for i in node1 node2 node3
	do
		scp /etc/udev/rules.d/vdb.rules $i:/etc/udev/rules.d/
	done

	3°初始化数据盘:(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  
	或者
	ceph-deploy disk zap node1:vdc node1:vdd node2:vdc node2:vdd node3:vdc node3:vdd  

	4°启动osd服务:(node1)
	# ceph-deploy osd create 节点名称:数据盘:缓存盘
	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
	ceph osd tree	#查看osd再哪个主机上,以及osd的状态

写总结的第二十九天!!!

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值