文件共享-ceph分布式集群共享

原理介绍

分布式存储的服务器共享到一个调度服务器;
高可用(一个文件默认3副本);
高性能(一个文件划分多个并发存储);

组件介绍

mon:集群监控调度端,数量为奇数个。
osd存储设备,定期把状态上传到mon
radosgw:对象存储
MDS:文件系统存储
common:客户端

搭建环境

  1. 控制端无密码连接所以节点和自己

    ssh-keygen
    for i in 31 32 33; do ssh-copy-id root@192.168.66.$i; done
    
  2. 解析域名

    vim /etc/hosts
    192.168.66.31 ceph-node1 
    192.168.66.32 ceph-node2 
    192.168.66.33 ceph-node3
    
  3. 配置时间同步

    yum -y install chrony
    cat /etc/chrony.conf
    systemctl restart chronyd
    systemctl enable chronyd
    
  4. 配置本地和远程cephyum源

    搭建ceph源

    yum -y install httpd
    systemctl  start httpd 
    systemctl	enable httpd
    

    创建挂载点

    mkdir  /var/www/html/ceph
    
    vim /etc/fstab
    /iso/ceph10.iso /var/www/html/ceph iso9660 defaults,loop  0 0
    
    mount -a
    

    所有节点同步使用yum源

    yum-config-manager  --add-repo  http://192.168.66.31/ceph/MON
    yum-config-manager  --add-repo  http://192.168.66.31/ceph/OSD
    yum-config-manager  --add-repo  http://192.168.66.31/ceph/Tools
    echo gpgcheck=0 >>  /etc/yum.repos.d/192.168.66.31_ceph_MON.repo
    echo gpgcheck=0 >>  /etc/yum.repos.d/192.168.66.31_ceph_OSD.repo
    echo gpgcheck=0 >>  /etc/yum.repos.d/192.168.66.31_ceph_Tools.repo
    
  5. 物理机准备2块磁盘(默认3副本,3个以上)

部署(本次搭建mon和osd共存在一台服务器上的)

Mon+Mgr

  1. 所有mon机器安装软件

    yum -y install ceph-mon ceph-osd ceph-mds ceph-radosgw
    
  2. 创建Ceph集群配置(在ceph-node1上操作)

    mkdir-p  /data/ceph-cluster
    cd  /data/ceph-cluster
    
  3. 创建Ceph-mon集群配置,在ceph-cluster目录下生成Ceph配置文件(在ceph-node1上操作)

    cd  /data/ceph-cluster
    ceph-deploy new --public-network 对外网端 --cluster-network 192.168.66.0/24 ceph-node1 		ceph-node2 ceph-node3
    

    #–public-network没有就不写
    #–cluster-network对内通行网端
    #ceph-nodex mon节点

  4. 初始化mon服务(在ceph-node1上操作)

    cd /data/ceph-cluster
    ceph-deploy mon create-initial
    
  5. 部署监控(在ceph-node1上操作)

    ceph-deploy mgr create ceph-node1 ceph-node2 ceph-node3
    

Osd

  1. 所有osd机器安装软件

    yum -y install ceph-mon ceph-osd ceph-mds ceph-radosgw
    
  2. 创建OSD块存储设备

    (在ceph-node1上操作)初始化清空存储磁盘数据

    ceph-deploy disk  zap ceph-node1:sdc ceph-node1:sdd
    ceph-deploy disk  zap ceph-node2:sdc ceph-node2:sdd
    ceph-deploy disk  zap ceph-node3:sdc ceph-node3:sdd
    

    (在ceph-node1上操作)把磁盘加入OSD存储空间

    ceph-deploy osd create  ceph-node1  --data  /dev/sdc  /dev/sdd 
    ceph-deploy osd create  ceph-node2  --data  /dev/sdc  /dev/sdd 
    ceph-deploy osd create  ceph-node3  --data  /dev/sdc  /dev/sdd 
    
  3. (在ceph-node1上操作)查看集群状态

    ceph  -s
    

    查看osd状态

    ceph osd tree
    

    查看mon选取

    ceph quorum_status --format jason-pretty
    

节点扩容

扩容mon
环境准备

  1. 控制端无密码连接所以节点和自己

    for i in 34 35; do ssh-copy-id root@192.168.66.$i; done
    
  2. 解析域名

    vim /etc/hosts
    192.168.66.31 ceph-node1 
    192.168.66.32 ceph-node2 
    192.168.66.33 ceph-node3
    192.168.66.34 ceph-node4
    192.168.66.35 ceph-node5
    
  3. 配置时间同步

    yum -y install chrony
    cat  /etc/chrony.conf
    systemctl restart chronyd
    systemctl enable chronyd
    
  4. 配置本地和远程cephyum源

    所有节点同步使用yum源

    yum-config-manager  --add-repo  http://192.168.66.31/ceph/MON
    yum-config-manager  --add-repo  http://192.168.66.31/ceph/OSD
    yum-config-manager  --add-repo  http://192.168.66.31/ceph/Tools
    echo gpgcheck=0 >>  /etc/yum.repos.d/192.168.66.31_ceph_MON.repo
    echo gpgcheck=0 >>  /etc/yum.repos.d/192.168.66.31_ceph_OSD.repo
    echo gpgcheck=0 >>  /etc/yum.repos.d/192.168.66.31_ceph_Tools.repo
    
  5. 物理机准备2块磁盘(默认3副本,3个以上)

安装

  1. mon机器安装软件

    yum -y install  ceph-deploy ceph-mon ceph-osd ceph-mds ceph-radosgw
    
  2. 把新加mon加入集群(在ceph-node1上操作)

    cd /data/ceph-cluster
    ceph-deploy mon add ceph-node4 --address 节点ip
    ceph-deploy mon add ceph-node5 --address 节点ip
    
  3. (在ceph-node1上操作)查看集群状态

    ceph  -s
    

    查看osd状态

    ceph osd tree
    

    查看mon选取

    ceph quorum_status --format jason-pretty
    

扩容mgr

在mon没有mgr上机器上

  1. mgr加入集群(在ceph-node1上操作)

    cd /data/ceph-cluster
    ceph-deploy mgr create ceph-node4 ceph-node5
    

扩容osd

  1. 所有osd机器安装软件

     yum -y install ceph-mon ceph-osd ceph-mds ceph-radosgw
    
  2. 创建OSD块存储设备

    (在ceph-node1上操作)初始化清空存储磁盘数据

     ceph-deploy disk  zap ceph-node4:sdc ceph-node4:sdd
    

    (在ceph-node1上操作)把磁盘加入OSD存储空间

     ceph-deploy osd create  ceph-node4  --data  /dev/sdc  /dev/sdd 
    
  3. (在ceph-node1上操作)查看集群状态

    ceph  -s
    

    查看osd状态

    ceph osd tree
    

    查看mon选取

    ceph quorum_status --format jason-pretty
    

创建Ceph块存储(在ceph-node1上操作)

  1. 创建存储池

    ceph osd pool create cephfs_(池名) 128
    

    查看存储池

    ceph osd lspools
    
  2. 创建镜像

    方法一:默认池中创建镜像

    rbd create cxk-image --image-feature  layering --size 1G
    

    方法二:指定池中创建镜像

    rbd create 池名/cxk --image-feature  layering --size 1G
    

    查看镜像

    rbd list
    

    查看详细信息

    rbd info cxk-image
    
  3. 镜像动态调整

    扩容容量

    rbd resize --size 2G cxk-image
    

    缩小容量

    rbd resize --size 1G cxk-image --allow-shrink
    

    镜像快照操作

    给镜像创建快照

    rbd snap create cxk-image  --snap cxk-snap1
    

    克隆快照

    rbd clone cxk-image --snap cxk-snap1 cxk-snap2 --image-feature layering
    

    保护快照不让删除

    rbd snap protect  cxk-image --snap cxk-snap1
    

    取消保护

    rbd snap unprotect  cxk-image --snap cxk-snap1
    

    还原快照

    rbd snap rollback cxk-image --snap cxk-snap1
    

    把快照脱离父母独立工作

    rbd flatten cxk-snap1
    

    删除快照

    rbd snap rm cxk-image --snap cxk-snap1
    

    查看快照

    查看镜像快照

    rbd snap ls cxk-image
    

    查看克隆镜像与父镜像快照的关系

    rbd info cxk-clone
    

    客户端通过KRBD访问块存储

    1. 客户端安装

      yum -y  install ceph-common
      
    2. 客户端拷贝ceph文件到本地

       scp 192.168.4.11:/data/ceph-cluster/* /etc/ceph/
      
    3. 客户端挂载服务端的镜像

       rbd map  cxk-image
      

      撤销磁盘挂载:

       rbd unmap /dev/rbd0(挂载点)
      
    4. 客户端查看挂载服务端的镜像

       rbd showmapped
       lsblk
      
    5. 客户端格式化、挂载分区

       mkfs.xfs /dev/rbd0
       mount /dev/rbd0 /mnt/
      

创建MDS文件系统(inode+block)(在ceph-node1上操作)

要使用 CephFS, 至少就需要一个 metadata server 进程。可以手动创建一个 MDS, 也可以使用 ceph-deploy或者 ceph-ansible 来部署 MDS。

  1. 给那些osd部署mds服务:

    cd /data/ceph-cluster
    ceph-deploy mds create ceph-node1 (可以继续添加)
    
  2. 创建存储池

    数据

    ceph osd pool create cephfs_data 128
    

    元数据

    ceph osd pool create cephfs_metadata 128
    
  3. 创建Ceph文件系统

    ceph fs new myfs1 cephfs_metadata cephfs_data new fs with metadata pool 2 and data pool 1
    
  4. 查看

    ceph fs ls
    

    客户端挂载

    mount -t ceph  MON节点的IP:6789:/  /mnt/cephfs/ -o name=admin,secret=AQBTsdRapUxBKRAANXtteNUyoEmQHveb75bISg==
    

    文件系统类型为ceph admin是用户名,secret是密钥
    密钥可以在/etc/ceph/ceph.client.admin.keyring中找到

创建RGW对象存储

  1. 给那些osd部署rgw服务:

       ceph-deploy rgw create ceph-node1 (可以继续添加)
    
  2. 登陆该节点验证服务是否启动

    ps aux |grep radosgw
    
  3. 该节点修改服务端口

    vim  /etc/ceph/ceph.conf
    [client.rgw.node5]
    host = ceph-node1
    rgw_frontends = "civetweb port=8000"
    #node5为主机名
    #civetweb是RGW内置的一个web服务
    
  4. 该节点重启服务

    systemctl  status ceph-radosgw@\*
    
  5. 创建radosgw用户

    radosgw-admin user create --uid="radosgw" --display-name="radosgw"
    {
        "user_id": "radosgw",
        "display_name": "radosgw",
        "email": "",
        "suspended": 0,
        "max_buckets": 1000,
        "auid": 0,
        "subusers": [],
        "keys": [
            {
                "user": "radosgw",
                "access_key": "DKOORDOMS6YHR2OW5M23",
                "secret_key": "OOBNCO0d03oiBaLCtYePPQ7gIeUR2Y7UuB24pBW4"
            }
        ],
        "swift_keys": [],
        "caps": [],
        "op_mask": "read, write, delete",
        "default_placement": "",
        "placement_tags": [],
        "bucket_quota": {
            "enabled": false,
            "check_on_raw": false,
            "max_size": -1,
            "max_size_kb": 0,
            "max_objects": -1
        },
        "user_quota": {
            "enabled": false,
            "check_on_raw": false,
            "max_size": -1,
            "max_size_kb": 0,
            "max_objects": -1
        },
        "temp_url_keys": [],
        "type": "rgw"
    }
    

客户端安装软件

  1. 安装

    yum install s3cmd
    
  2. 修改软件配置

    s3cmd --configure
    		Access Key: DKOORDOMS6YHR2OW5M23
    		Secret Key: OOBNCO0d03oiBaLCtYePPQ7gIeUR2Y7UuB24pBW4
    		Default Region [US]: ZH
    		S3 Endpoint [s3.amazonaws.com]: 192.168.4.15:8000
    		[%(bucket)s.s3.amazonaws.com]: %(bucket)s.192.168.4.15:8000
    		Use HTTPS protocol [Yes]: no
    		Test access with supplied credentials? [Y/n] n
    		Save settings? [y/N] y
    
  3. 创建存储数据的bucket(类似于存储数据的目录)创建桶并放入文件

    s3cmd ls
    s3cmd mb s3://my_bucket
    		Bucket 's3://my_bucket/' created
    s3cmd ls
    		2018-05-09 08:14 s3://my_bucket
    s3cmd put /var/log/messages s3://my_bucket/log/
    s3cmd ls s3://my_bucket
    		DIR s3://my_bucket/log/
    s3cmd ls s3://my_bucket/log/
    		2018-05-09 08:19 309034 s3://my_bucket/log/messages 
    
  4. 测试下载功能

    s3cmd get s3://my_bucket/log/messages /tmp/
    
  5. 测试删除功能

    s3cmd del s3://my_bucket/log/messages
    

喜欢的亲可以关注点赞评论哦!以后每天都会更新的哦!本文为小编原创文章;
文章中用到的文件、安装包等可以加小编联系方式获得;
欢迎来交流小编联系方式VX:CXKLittleBrother
进入运维交流群

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

含义小哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值