Ceph集群的搭建与部属

 

 

Ceph特点:

1.高性能,采用CRUCH算法,数据分布均衡,并行度高,能够存储上千个存储结点的规模。

2.高可用性,副本数可以灵活控制,支持故障域分割,数据强一致性,没有单点故障。

3.高可扩展性,去中心化,扩展灵活,随着节点增加而线性增长。

4.特性丰富,支持3种存储方式,块存储,对象存储,文件存储。

技术要点:

1.准备 ceph 集群环境,为所有存储节点配置网络yum,配置ssh免密码登录,并设置NTP时间同步。

2.在部署节点上安装 ceph-deploy,创建工作目录,为所有存储节点安装集群软件, 并初始化 mon 服务。

3.初始化清空所有存储节点磁盘数据,创建OSD对象存储空间,指定数据分区和日志分区。

4.查看集群状态,创建镜像,客户端通过krbd访问镜像并挂载使用。

1.配置无密码连接(包括自己远程自己也不需要密码),在node1操作。

    [root@node1 ~]# ssh-keygen   -f /root/.ssh/id_rsa    -N ''
    #-f后面跟密钥的文件名称(希望创建密钥到哪个文件)
    #-N ''代表不给密钥配置密钥(不能给密钥配置密码)
    [root@node1 ~]# for i in 10  11  12  13
     do
         ssh-copy-id  192.168.4.$i
     done
    #通过ssh-copy-id将密钥传递给192.168.4.10、192.168.4.11、192.168.4.12、192.168.4.13

2.修改/etc/hosts并同步到所有主机。注意:/etc/hosts解析的域名要与本机主机名一致

     [root@node1 ~]# vim /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    #新建YUM源配置文件,内容如下
[mon]
name=mon
baseurl=ftp://192.168.4.254/ceph/MON
gpgcheck=0
[osd]
name=osd
baseurl=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 clean all               #清空缓存
[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.给所有节点安装ceph相关软件包。

    [root@node1 ceph-cluster]# for i in node1 node2 node3
    do
        ssh  $i "yum -y install ceph-mon ceph-osd ceph-mds ceph-radosgw"
    done 

5.Client主机配置NTP服务器。

    [root@client ~]# yum -y install chrony
    [root@client ~]# vim /etc/chrony.conf
        allow 192.168.4.0/24        #大约26行
        local stratum 10            #大约29行(去注释即可)
    [root@client ~]# systemctl restart chronyd

6.node1,node2,node3修改NTP客户端配置。

    [root@node1 ~]# yum -y install chrony
    [root@node1 ~]# vim /etc/chrony.conf
    server 192.168.4.10   iburst              #配置文件第二行,手动添加一行新内容
    [root@node1 ~]# systemctl restart chronyd
    [root@node1 ~]# chronyc sources -v        #查看同步结果,应该是^*
    [root@node2 ~]# yum -y install chrony
    [root@node2 ~]# vim /etc/chrony.conf
    server 192.168.4.10   iburst              #配置文件第二行,手动添加一行新内容
    [root@node2 ~]# systemctl restart chronyd
    [root@node2 ~]# chronyc sources -v            #查看同步结果,应该是^*
    [root@node3 ~]# yum -y install chrony
    [root@node3 ~]# vim /etc/chrony.conf
    server 192.168.4.10   iburst              #配置文件第二行,手动添加一行新内容
    [root@node3 ~]# systemctl restart chronyd
    [root@node3 ~]# chronyc sources -v       #查看同步结果,应该是^*

7.在node1安装部署工具,创建目录

    [root@node1 ~]#  yum -y install ceph-deploy
    [root@node1 ~]#  mkdir ceph-cluster
    [root@node1 ~]#  cd ceph-cluster/

8.创建Ceph集群配置,在ceph-cluster目录下生成Ceph配置文件(ceph.conf),在ceph.conf配置文件中定义monitor主机是谁。

    [root@node1 ceph-cluster]# ceph-deploy new node1 node2 node3
    [root@node1 ceph-cluster]# vim ceph.conf        #不要修改原始内容,在文件末尾添加一行
    rbd_default_features = 1
    #默认开启COW分层快照的功能

9.初始化所有节点的mon服务,也就是启动mon服务。拷贝当前目录的配置文件到所有节点的/etc/ceph/目录并启动mon服务。

​

    [root@node1 ceph-cluster]# ceph-deploy mon create-initial
    #配置文件ceph.conf中有三个mon的IP,ceph-deploy脚本知道自己应该远程谁

​    [root@node1 ceph-cluster]# systemctl status ceph-mon@node1
    [root@node2 ~]# systemctl status ceph-mon@node2
    [root@node3 ~]# systemctl status ceph-mon@node3
    #备注:管理员可以自己启动(start)、重启(restart)、关闭(stop),查看状态(status).
    #提醒:这些服务在30分钟只能启动3次,超过就报错. 
    #StartLimitInterval=30min
    #StartLimitBurst=3
    #在这个文件中有定义/usr/lib/systemd/system/ceph-mon@.service
    #如果修改该文件,需要执行命令# systemctl  daemon-reload重新加载配置

10.初始化清空磁盘数据(仅node1操作即可)。初始化磁盘,将所有磁盘分区格式设置为GPT格式(根据实际情况填写磁盘名称)。

    [root@node1 ceph-cluster]# ceph-deploy disk  zap  node1:vdb   node1:vdc   
    [root@node1 ceph-cluster]# ceph-deploy disk  zap  node2:vdb   node2:vdc
    [root@node1 ceph-cluster]# ceph-deploy disk  zap  node3:vdb   node3:vdc  
    #相当于ssh 远程node1,在node1执行parted /dev/vdb  mktable  gpt
    #其他主机都是一样的操作
    #ceph-deploy是个脚本,这个脚本会自动ssh远程自动创建gpt分区

11.创建OSD存储空间(仅node1操作即可)

    [root@node1 ceph-cluster]# ceph-deploy osd create node1:vdb  node1:vdc
    #每个磁盘都会被自动分成两个分区;一个固定5G大小;一个为剩余所有容量
    #5G分区为Journal日志缓存;剩余所有空间为数据盘。
    [root@node1 ceph-cluster]# ceph-deploy osd create node2:vdb  node2:vdc
    [root@node1 ceph-cluster]# ceph-deploy osd create node3:vdb  node3:vdc

12.创建Ceph块存储。创建镜像、查看镜像。

    [root@node1 ~]# rbd create demo-image --size 10G
    #创建demo-image镜像,这里的demo-image创建的镜像名称,名称可以为任意字符。
    #size可以指定镜像大小
    [root@node1 ~]# rbd create rbd/jacob  --size 10G
    #在rbd池中创建名称为jacob的镜像(rbd/jacob),镜像名称可以任意
    [root@node1 ~]# rbd list                    #列出所有镜像
    [root@node1 ~]# rbd info demo-image        #查看demo-image这个镜像的详细信息
    rbd image 'demo-image':
        size 10240 MB in 2560 objects
        order 22 (4096 kB objects)
        block_name_prefix: rbd_data.d3aa2ae8944a
        format: 2
        features: layering

13.客户端通过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  jacob          #客户端访问映射服务器的jacob共享镜像
    [root@client ~]#  lsblk                   #查看结果(会多一块磁盘)
    [root@client ~]# rbd showmapped          #查看磁盘名和共享镜像名称的对应关系
    id pool image snap device    
    0  rbd  jacob -    /dev/rbd0

14.客户端格式化、挂载分区

    [root@client ~]# mkfs.xfs /dev/rbd0                     #格式化,格式为xfs
    [root@client ~]# mount /dev/rbd0 /mnt/                  #挂载(可以挂载到任意目录)
    [root@client ~]# echo "test" > /mnt/test.txt           #写入数据

15.客户端撤销磁盘映射

    [root@client ~]# umount /mnt                      #卸载
    [root@client ~]# rbd showmapped                  #查看磁盘名和共享镜像名称的对应关系
    id pool image        snap device    
    0  rbd  jacob        -    /dev/rbd0
    [root@client ~]# rbd unmap /dev/rbd0            #撤销磁盘映射

附加信息:Ceph操作思路(知识总结)

一、准备工作:

IP,主机名,hosts解析,ssh密钥,时间同步,yum源,防火墙,selinux

二、部署ceph:

安装软件,修改配置启动服务mon,启动osd服务共享硬盘。

三、使用Ceph的思路:

1.块共享

  1. 服务器: rbd create 创建一个共享镜像
  2. 客户端: 安装cpeh-common; cp 配置文件和密钥
  3. rbd map | rbd unmap
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值