zoukankan      html  css  js  c++  java
  • 二十八. Ceph概述 部署Ceph集群 Ceph块存储

    client   :192.168.4.10
    node1 :192.168.4.11
    ndoe2 :192.168.4.12
    node3 :192.168.4.13
     
    1.实验环境
    准备四台KVM虚拟机,其三台作为存储集群节点,一台安装为客户端,实现如下功能:
    创建1台客户端虚拟机
    创建3台存储集群虚拟机
    配置主机名、IP地址、YUM源
    修改所有主机的主机名
    配置无密码SSH连接
    配置NTP时间同步
    创建虚拟机磁盘
    1.1 五台机器(包括真机)配置yum源
    1.1.1 全部搭建ftp服务
    1.1.2 配置YUM源(/var/ftp/ceph)
    [rhel7]
    name=rhel7.4
    enabled=1
    gpgcheck=0
     
    [mon]
    name=mon
    gpgcheck=0
    [osd]
    name=osd
    gpgcheck=0
    [tools]
    name=tools
    gpgcheck=0
    1.1.3 修改/etc/hosts并同步到所有主机。
    警告:/etc/hosts解析的域名必须与本机主机名一致!
    ]# vim /etc/hosts
    ... ...
    192.168.4.10  client
    192.168.4.11  node1
    192.168.4.12  node2
    192.168.4.13  node3
    1.1.4 配置四台机器互相远程无密码连接(包括自己)
    ]# ssh-keygen -f /root/.ssh/id_rsa -N ''
    ]# for i in 10  11  12  13
    > do
    > ssh-copy-id  192.168.4.$i
    > done
     
    1.2 配置NTP时间同步
    1.2.1 真实物理机创建NTP服务器
    ]# yum -y install chrony
    ]# vim /etc/chrony.conf
    server 0.centos.pool.ntp.org iburst
    allow 192.168.4.0/24
    local stratum 10
    ]# systemctl  restart  chronyd
    1.2.2 其他所有节点与NTP服务器同步时间(以node1为例)。
    ]# vim /etc/chrony.conf
    server 192.168.4.254   iburst
    ]# systemctl  restart  chronyd
     
    1.3 准备存储磁盘
    物理机上为每个虚拟机准备3块磁盘
    ]# lsblk
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    vdb    252:16   0   20G  0 disk 
    vdc    252:32   0   20G  0 disk 
    vdd    252:48   0   20G  0 disk 
     
    2.部署ceph集群
     
    要求:
       安装部署工具ceph-deploy
       创建ceph集群
       准备日志磁盘分区
       创建OSD存储空间
       查看ceph状态,验证
     
    2.1 部署软件
    2.1.1 在node1安装部署工具,学习工具的语法格式。
    ]# yum -y install ceph-deploy
    ]# ceph-deploy  --help
    2.1.2 创建目录
    ]# mkdir ceph-cluster
    ]# cd ceph-cluster/
     
    2.2 部署Ceph集群
    2.2.1 创建Ceph集群配置。
    cluster]# ceph-deploy new node1 node2 node3
    2.2.2 给所有节点安装软件包。
    cluster]# ceph-deploy install node1 node2 node3
    2.2.3 初始化所有节点的mon服务(主机名解析必须对)
    cluster]# ceph-deploy mon create-initial
     
    2.3 创建OSD
    2.3.1 准备磁盘分区(node1、node2、node3都做相同操作)
    cluster]# parted /dev/vdb mklabel  gpt
    cluster]# parted /dev/vdb mkpart primary 1M 50%
    cluster]# parted /dev/vdb mkpart primary 50% 100%
    cluster]# chown ceph.ceph /dev/vdb1
    cluster]# chown ceph.ceph /dev/vdb2
    //这两个分区用来做存储服务器的日志journal盘
    cluster]# vim /etc/udev/rules.d/70-vdb.rules
    ENV{DEVNAME}=="/dev/vdb1",OWNER="ceph",GROUP="ceph"
    ENV{DEVNAME}=="/dev/vdb2",OWNER="ceph",GROUP="ceph"
     
    2.3.2 初始化清空磁盘数据(仅node1操作即可)
    cluster]# ceph-deploy disk zap node1:vdc node1:vdd    
    cluster]# ceph-deploy disk zap node2:vdc node2:vdd
    cluster]# ceph-deploy disk zap node3:vdc node3:vdd
     
    2.3.3 创建OSD存储空间(仅node1操作即可)
    cluster]# ceph-deploy osd create
     node1:vdc:/dev/vdb1 node1:vdd:/dev/vdb2  
    //创建osd存储设备,vdc为集群提供存储空间,vdb1提供JOURNAL缓存,
    //一个存储设备对应一个缓存设备,缓存需要SSD,不需要很大
     cluster]# ceph-deploy osd create
     node2:vdc:/dev/vdb1 node2:vdd:/dev/vdb2
    cluster]# ceph-deploy osd create
     node3:vdc:/dev/vdb1 node3:vdd:/dev/vdb2 
    2.4 验证测试
    ]# ceph -s  #查看集群状态
    cluster 5bbbd4f8-6c0f-4c78-9fc9-d09f50d0afcd
         health HEALTH_OK
         monmap e1: 3 mons at {node1=192.168.4.11:6789/0,node2=192.168.4.12:6789/0,node3=192.168.4.13:6789/0}
                election epoch 6, quorum 0,1,2 node1,node2,node3
         osdmap e33: 6 osds: 6 up, 6 in
                flags sortbitwise
          pgmap v73: 64 pgs, 1 pools, 0 bytes data, 0 objects
                202 MB used, 119 GB / 119 GB avail
                      64 active+clean
    3.创建Ceph块存储
    创建块存储镜像
    客户端映射镜像
    创建镜像快照
    使用快照还原数据
    使用快照克隆镜像
    删除快照与镜像
     
    3.1 创建镜像(node1)
    3.1.1 查看存储池
    ]# ceph osd lspools
    0 rbd,
    3.1.2 创建镜像、查看镜像
    ]# rbd create demo-image --image-feature  layering --size 10G
    ]# rbd create rbd/image     --image-feature  layering --size 10G
    ]# rbd list
    demo-image
    image
    ]# rbd info 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
     
    3.2 动态调整
    3.2.1 缩小容量
    ]# rbd resize --size 7G image --allow-shrink
    Resizing image: 100% complete...done.
    ]# rbd info image
    rbd image 'image':
    size 7168 MB in 1792 objects
    order 22 (4096 kB objects)
    block_name_prefix: rbd_data.1033238e1f29
    format: 2
    features: layering
    flags: 
    3.2.2 扩容容量
    ]# rbd resize --size 15G image
    Resizing image: 100% complete...done.
    ]# rbd info image
    rbd image 'image':
    size 15360 MB in 3840 objects
    order 22 (4096 kB objects)
    block_name_prefix: rbd_data.1033238e1f29
    format: 2
    features: layering
    flags: 
     
    3.3 通过KRBD访问
    3.3.1 集群内将镜像映射为本地磁盘
    ]# rbd map demo-image
    /dev/rbd0
    ]# lsblk
    … …
    rbd0 251:0 0 10G 0 disk
    ]# mkfs.xfs /dev/rbd0
    ]# mount /dev/rbd0 /mnt
    ]# df -h
    文件系统      容量  已用  可用 已用% 挂载点
    /dev/rbd0  10G   33M  10G 1%  /mnt
     
    3.3.2 客户端通过KRBD访问(client)
    #客户端需要安装ceph-common软件包
    #拷贝配置文件(否则不知道集群在哪)
    #拷贝连接密钥(否则无连接权限)
    ]# yum -y  install ceph-common
    ]# scp 192.168.4.11:/etc/ceph/ceph.conf /etc/ceph/
    ]# scp 192.168.4.11:/etc/ceph/ceph.client.admin.keyring
    /etc/ceph/
    ]# rbd map image
    /dev/rbd0
    ]# lsblk
    NAME MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    rbd0 251:0   0    15G 0  disk
    ]# rbd showmapped
    id pool image snap device    
    0  rbd  image -    /dev/rbd0
     
    3.3.3  客户端格式化、挂载分区(client)
    ]# mkfs.xfs /dev/rbd0
    ]# mount /dev/rbd0 /mnt/
    ]# echo "test" > /mnt/test.txt
    ]# ls /mnt/
    test.txt
     
    3.4 创建镜像快照(node1)
    3.4.1 查看镜像快照
    ]# rbd snap ls image (无)
    3.4.2 创建镜像快照
    ]# rbd snap create image --snap image-snap1
    查看
    ]# rbd snap ls image
    SNAPID NAME            SIZE 
         4 image-snap1 15360 MB
    ###此时创建的快照里有test.txt############
    3.4.3 删除客户端写入的测试文件
    client ~]# rm -rf /mnt/test.txt
    3.4.4 还原快照(一定要离线回滚)
    client离线:
    client ~]# umount /mnt/
    client ~]# rbd unmap image
    node1回滚:
    node1 ~]# rbd snap rollback image --snap image-snap1
    client重新挂载:
    client ~]# rbd map image
    client ~]# mount /dev/rbd0 /mnt/
    查看数据是否存在:
    client ~]# ls /mnt/
    test.txt
     
    3.5 创建快照克隆(node1)
    3.5.1 克隆快照
    ]# rbd snap protect image --snap image-snap1
    ]# rbd snap rm image --snap image-snap1 //会失败
    ]# rbd clone
    image --snap image-snap1 image-clone --image-feature layering
    //使用image的快照image-snap1克隆一个新的image-clone镜像
    3.5.2 查看克隆镜像与父镜像快照的关系
    ]# rbd info image-clone
    rbd image 'image-clone':
        size 15360 MB in 3840 objects
        order 22 (4096 kB objects)
        block_name_prefix: rbd_data.d3f53d1b58ba
        format: 2
        features: layering
        flags: 
        parent: rbd/image@image-snap1
    #克隆镜像很多数据都来自于快照链
    #如果希望克隆镜像可以独立工作,就需要将父快照中的数据,全部拷贝一份,但比较耗时!
    3.5.3 独立工作
    ]# rbd flatten image-clone
    rbd image 'image-clone':
        size 15360 MB in 3840 objects
        order 22 (4096 kB objects)
        block_name_prefix: rbd_data.d3f53d1b58ba
        format: 2
        features: layering
        flags: 
    #注意,父快照信息没了!
     
    3.6 其他操作
    3.6.1 客户端撤销磁盘映射(client)
    ]# umount /mnt
    ]# rbd showmapped
    id pool image     snap device    
    0  rbd  image  -    /dev/rbd0
    ]# rbd unmap /dev/rbd0
    ]# rbd showmapped(无)
     
    3.6.2 删除快照与镜像(node1)
    ]# umount /mnt
    ]# rbd unmap /dev/rbd0
    取消保护
    ]# rbd snap unprotect image --snap image-snap1
    删除快照
    ]# rbd snap rm image --snap image-snap1
    查看镜像
    ]# rbd  list
    demo-image
    image
    image-clone
    删除镜像
    ]# rbd rm demo-image
    ]# rbd rm image
    ]# rbd rm image-clone
  • 相关阅读:
    (转)导弹跟踪算法
    中文linux安装oracle界面乱码解决方案
    linux下创建oracle表空间
    [INS-20802] Oracle Net Configuration Assistant failed
    Centos6.5下Oracle 11g R2安装过程
    设置MYSQL数据库编码为UTF-8
    如何在linux系统中设置静态ip地址
    Oracle Net Configuration Assistant failed异常的解决方案
    解决安装oracle11g r2时提示pdksh conflicts with ksh-20100621-2.el6.i686问题
    CentOS增加swap分区大小
  • 原文地址:https://www.cnblogs.com/luwei0915/p/10489888.html
Copyright © 2011-2022 走看看