目录

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

 ceph集群部署完成