目录
ceph配置步骤
1.配置无密码连接
2.创建ceph的源
4.准备存储磁盘
5.安装部署软件ceph-deploy
6.部署ceph集群
7.osd共享磁盘服务
存储类型: DAS 直连存储(sata sas)
NAS (网络附加存储)samba nfs ftp 文件系统
SAN (存储区域网络)iscsi 块
(SDS)软件定义存储 分布式存储
传统的存储,当两个电脑都有100t时,存储无法扩大到200T。而是通过挂载
两给盘来实现200T业务。
ceph组件
OSDs --存储设备
Monitors -- 集群监控组件
RadosGatway --对象存储网关
MDSs --存放文件系统的元数据
Client -- ceph客户端
ceph 高可用分割文件 同时默认三副本 速度更快 但是内存空间更大
ceph配置步骤
准备四台虚拟机,为master server 1 2 3 4(将存储和集群监控部署在一台服务器上)
生产环境中,三台作为存储设备 还有三台作为集群监控组件设备 即最少需要六台
1.配置无密码连接
提前 vim /etc/hosts 配置主机域名
//使用循环语句将/etc/hosts文件拷贝所有的主机
for i in master server1 server2 server3
>do
> scp /etc/hosts &i:/etc/hosts
>done
//配置无密码
[master]# ssh -keygen
[master]#for i in master server1 server2 server3
>do
> ssh-copy-id $i
>done
2.创建ceph的源
1.自定义rpm包放入yum源(不推荐)
[root@master ~]# ls
1.sh anaconda-ks.cfg b.txt txt
2 a.txt ceph-deploy-1.5.29-0.noarch.rpm
[root@master ~]# mv ceph-deploy-1.5.29-0.noarch.rpm ceph.rpm //修改名称
[root@master ~]# mkdir /opt/ceshi //创建目录
[root@master ~]# cp ceph.rpm /opt/ceshi
[root@master ~]# createrepo /opt/ceshi //创建repo文件
Spawning worker 0 with 1 pkgs
Spawning worker 1 with 0 pkgs
Spawning worker 2 with 0 pkgs
Spawning worker 3 with 0 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@master ~]# ls /opt/ceshi
ceph.rpm repodata
[root@master ~]# ls /opt/ceshi/repodata/ //查看repo文件
25f4d32c6536c57147f21181f312768dfbc5ecf11fbf56635cbc85eeddb596e6-filelists.xml.gz
29aa7c33c48ced2798d41d163c1c0f1161c6f26756d66f92becc52acfb230be2-primary.xml.gz
3f7b51a96d93737ce3c49953f4323fc68cf79acad8b8cf41a82e46e5f8b59a90-other.sqlite.bz2
441458fbba30a249587accdb2d127ecb651b152fd0557c7360608915107d304b-filelists.sqlite.bz2
9093614fe95139e531e2b4d9c2bf7f0740b93abf253c179811ae2989f6d7d378-other.xml.gz
eea420e5419050e6055c5f6745c2102c6513c7909ff441d2304d11eb6d38edde-primary.sqlite.bz2
repomd.xml
[root@master ~]#yum clean all && yum makecache && yum repolist
配置阿里云yum源
[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-15.2.9/el7/x86_64/
gpgcheck=0
priority=1
[ceph-noarch]
name=cephnoarch
baseurl=https://mirrors.aliyun.com/ceph/rpm-15.2.9/el7/noarch/
gpgcheck=0
priority=1
[ceph-aarch64]
name=cephaarch
baseurl=https://mirrors.aliyun.com/ceph/rpm-15.2.9/el7/aarch64/
gpgcheck=0
priority=1
将 yum.repos.d/ceph.repo 打包发送到每一个文件
[root@master ~]# for i in server1 server2 server3 server4; do scp /etc/yum.repos.d/ceph.repo $i:/etc/yum.repos.d/; done
ceph.repo 100% 218 217.0KB/s 00:00
ceph.repo 100% 218 435.2KB/s 00:00
ceph.repo 100% 218 261.5KB/s 00:00
ssh: Could not resolve hostname server4: Name or service not known
lost connection
3.配置ntp服务同步时间
[root@master ~]# yum install ntpdate -y //下载ntp服务
[root@master ~]# timedatectl set-timezone Asia/Shanghai
[root@master ~]# ntpdate ntp1.aliyun.com //同步阿里云服务器
1 Sep 20:41:00 ntpdate[1604]: adjust time server 120.25.115.20 offset -0.005360 sec
4.准备存储磁盘
#为每个虚拟机添加3块硬盘
[root@master ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 2G 0 part /boot
├─sda2 8:2 0 2G 0 part [SWAP]
└─sda3 8:3 0 96G 0 part /
sdb 8:16 0 1G 0 disk
sdc 8:32 0 1G 0 disk
sdd 8:48 0 1G 0 disk
sr0 11:0 1 4.4G 0 rom
5.安装部署软件ceph-deploy
##装环境包和服务包
[root@master ~]# yum -y install ceph-deploy ceph-common python-pkg-resources
[root@master ~]# yum -y install python-setuptools python2-subprocess32 python-setuptools
[root@master ~]# cat /usr/bin/ceph-deploy #脚本位置 自动部署ceph集群 必须无密码访问其他主机
[root@master ~]# ceph-deploy mom --help #查看帮助
[root@master ~]# ceph-deploy --help #查看帮助
[root@master ~]# mkdir ceph-cluster #创建目录 后期执行脚本必须要在这个目录中
[root@master ~]# cd ceph-cluster
6.部署ceph集群
1.创建ceph的配置文件,在ceph-cluster目录下生成的配置文件
[root@master ceph-cluster]# ceph-deploy new server1 server2 server3 ##创建节点
[root@master ceph-cluster]# cat ceph.conf
[global]
mon_host = 192.168.1.106,192.168.1.107,192.168.1.108
auth_cluster_required = cephx #cephx为密码占位符 删除即不需要密码
2.给所有的节点安装ceph的相关软件包
[root@master ceph-cluster]# for i in server1 server2 server3;
do
ssh $i"yum -y install ceph-mon ceph-osd ceph-mds ceph-radosgw";
done
3.[root@master ceph-cluster]# ceph-deploy mon create-initial ##拷贝配置文件到server123的/etc/ceph 并且mon设置开启自动
[root@server1 /]# systemctl status ceph-mon@server1 ##查看server1 ceph-mon的状态
[root@server1 /]#ceph -s ##查看集群状态错误点
1.
yum -y install ceph-common python-pkg-resources python-setuptools python2-subprocess32
python-setuptools
ceph命令无法出来要安装python的依赖包
2.清除覆盖之前的配置
root@master ceph-cluster]# ceph-deploy --overwrite-conf mon create server1 server3
3.使用ceph认证权限问题
[root@node1 ~]# find / -name ceph.client.admin.keyring ##将ceph目录下的client钥匙文件拷贝给/etc/ceph目录 赋予执行权限
[root@node1 ~]# cp -a /root/ceph.client.admin.keyring /etc/ceph/
[root@node1 ~]# chmod +r ceph.client.admin.keyring
4.清除之前的ceph环境配置
rm -rf /etc/ceph/* /var/lib/ceph/* /var/log/ceph/* /var/run/ceph/*
三台节点的 mon 信息删除 rm -rf /var/run/ceph/
7.osd共享磁盘服务
将vdb分为2个区作为vdc和vdd的缓存盘
ssd sata
vdb1 vdc
vdb2 vdd##使用for循环格式化vdb盘
for i in server1 server3
> do
> ssh $i"parted /dev/sdb mklabel gpt" ##制作分区表gpt
> ssh $i"parted /dev/sdb mkpart primary 1 50%"
> ssh $i parted /dev/sdb mkpart primary 50% 100%"
> done
[root@server3 ~]# ll /dev/sdb*
brw-rw---- 1 root disk 8, 17 9月 5 20:38 /dev/sdb1
brw-rw---- 1 root disk 8, 18 9月 5 20:38 /dev/sdb2
##分区完后 默认无法ceph软件对磁盘读写
[root@server1 ~]# chown ceph.ceph /dev/sdb2 ##修改磁盘所属组 主 (临时规则)
[root@server1 ~]# chown ceph.ceph /dev/sdb1
[root@server1 ~]# vim /etc/udev/rules.d/70-dvd.rules ##文件名必须要rules结尾 文件名任意
##永久添加磁盘所属组 主
ENV{DEVNAME}=="/dev/sdb1",OWNER="ceph",GROUP="ceph"
ENV{DEVNAME}=="/dev/sdb2",OWNER="ceph",GROUP="ceph"##用ceph自带命令格式化server的 sdc sdd盘(server1操作即可)
[root@server1 ceph]# ceph-deploy disk zap server1:sdc server1:sdd
[root@server1 ceph]# ceph-deploy disk zap server3:sdc server3:sdd
创建osd存储空间(server1操作即可)
[root@server1 ceph]# ceph-deploy osd create server3:sdc:/dev/sdb1
server3:sdd:/dev/sdb2
[root@server1 ceph]# ceph-deploy osd create server1:sdc:/dev/sdb1 server1:sdd:/dev/sdb2
##添加osd节点
##将sdb1作为sdc的缓存盘 sdb2作为sdd的缓存盘1、查看osd树
root@ceph01:~# ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
-1 0.29279 root default
-2 0.14639 host ceph01
0 0.14639 osd.0 up 1.00000 1.00000
-3 0.14639 host ceph02
1 0.14639 osd.1 down 0 1.00000
发现osd.1是down掉的。
2、将osd.1的状态设置为out
[root@server1 ceph]#ceph osd out osd.1
osd.1 is already out.
3、从集群中删除
[root@server1 ceph]#ceph osd rm osd.1
removed osd.1
4、从CRUSH中删除
r[root@server1 ceph]#ceph osd crush rm osd.1
removed item id 1 name 'osd.1' from crush map
5、删除osd.1的认证信息
[root@server1 ceph]#ceph auth del osd.1
updated
6、umount
umount /dev/sdb1
7、再次查看osd的集群状态
[root@server1 ceph]# ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
-1 0.14639 root default
-2 0.14639 host ceph01
0 0.14639 osd.0 up 1.00000 1.00000
-3 0 host ceph02
8、登录ceph-deploy节点
root@ceph01:~# cd /ceph/
9、初始化磁盘
[root@server1 ceph]# ceph-deploy disk zap server1:sdc server1:sdd
10、再次激活所有的osd(记住是所有的,不只是down掉这一个)
[root@server1 ceph]# ceph-deploy osd create server1:sdc:/dev/sdb1 server1:sdd:/dev/sdb2
11、查看osd树和健康状态
[root@server1 ceph]# ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
-1 0.29279 root default
-2 0.14639 host ceph01
0 0.14639 osd.0 up 1.00000 1.00000
-3 0.14639 host ceph02
1 0.14639 osd.1 up 1.00000 1.00000
[root@server1 ceph]# ceph -s
cluster ecacda71-af9f-46f9-a2a3-a35c9e51db9e
health HEALTH_OK
monmap e1: 1 mons at {ceph01=10.111.131.125:6789/0}
election epoch 14, quorum 0 ceph01
osdmap e150: 2 osds: 2 up, 2 in
flags sortbitwise,require_jewel_osds
pgmap v9284: 64 pgs, 1 pools, 17 bytes data, 3 objects
10310 MB used, 289 GB / 299 GB avail
64 active+clean