搭建ceph分布式文件系统

YZR 2020-04-14

 
1. 准备4台虚拟机
    ceph            192.168.66.93      管理osd,mon节点
    ceph-node1     192.168.66.94      osd节点
    ceph-node2     192.168.66.95      osd节点
    jenkins         192.168.66.88      客户端

2. 在ceph上新增一块磁盘
    dd if=/dev/zero of=/home/kvm/ceph/ceph1.img bs=1M count=5120
    dd if=/dev/zero of=/home/kvm/ceph-node1/ceph-node11.img bs=1M count=5120
    dd if=/dev/zero of=/home/kvm/ceph-node2/ceph-node21.img bs=1M count=5120
  
   mkfs.xfs /dev/vdb(格式化新增磁盘)
    mkdir /var/local/osd{0,1,2}
    [ ~]# mount /dev/vdb /var/local/osd0/
    [ ~]# mount /dev/vdb /var/local/osd1/
    [ ~]# mount /dev/vdb /var/local/osd2/
3. 在虚拟机配置文件添加如下内容 
    <disk type=‘file‘ device=‘disk‘> 
  <driver name=‘qemu‘ type=‘raw‘ cache=‘none‘/> 
  <source file=‘/home/kvm/ceph-node1/ceph-node11.img‘/>
  <target dev=‘vdb‘ bus=‘virtio‘/> 
  <address type=‘pci‘ domain=‘0x0000‘ bus=‘0x00‘ slot=‘0x10‘ function=‘0x0‘/>
  </disk> 
4. 重启虚拟机
  fdisk -l查看,如无效先备份虚拟机配置文件,virsh undefine ceph再把配置文件还原virsh define ceph.xml启动虚拟机

 搭建ceph分布式文件系统  搭建ceph分布式文件系统

5. 添加host文件
    生成密钥
    ssh-copyid或者将公钥拷贝到节点.ssh/下面的authorized_keys

6. 时间同步
    在管理节点ceph上安装ntp服务
    yum -y install ntp
    systemctl start ntpd
    在节点执行ntpdate 192.168.66.93

7. 配置yum源
    mkdir /etc/yum.repos.d/yum/
    mv  /etc/yum.repos.d/*.repo  /etc/yum.repos.d/yum/
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    wget -O /etc/yum.repos.d/epel.repo  http://mirrors.aliyun.com/repo/epel-7.repo
    vim /etc/yum.repos.d/ceph.repo
    [ceph]
    name=ceph
    baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/
    gpgcheck=0
    priority=1

    [ceph-noarch]
    name=cephnoarch
    baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/
    gpgcheck=0
    priority=1

    [ceph-source]
    name=Ceph source packages
    baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/SRPMS 
    gpgcheck=0
    priority=1
    清理缓存更新yum源
    yum clean all && yum makecache
    ####先备份节点和客户端yum源
    scp *.repo ceph.repo* :/etc/yum.repos.d/
    scp *.repo ceph.repo* :/etc/yum.repos.d/
    scp *.repo ceph.repo* :/etc/yum.repos.d/

8. 在管理节点安装ceph-deploy管理工具
    yum -y install ceph-deploy
    mkdir /etc/ceph && cd /etc/ceph
    ceph-deploy new ceph
    vim ceph.conf
    osd_pool_default_size = 2     #2个节点

9. 安装ceph
    ceph-deploy install ceph ceph-node1 ceph-node2 jenkins
    报错一般为网络问题,如换成阿里源或者163源还是无法安装,可手动安装
    手工安装epel-release 然后安装yum -y install ceph-release再yum -y install ceph ceph-radosgw

10. 在管理节点安装ceph monitor
    [ ceph]ceph-deploy mon create ceph
    [ ceph]ceph-deploy gatherkeys ceph

11. 部署osd服务
    创建osd
    ceph-deploy osd prepare ceph:/var/local/osd0/ ceph-node1:/var/local/osd1/ ceph-node2:/var/local/osd2/
    激活osd
    ceph-deploy osd prepare ceph:/var/local/osd0/ ceph-node1:/var/local/osd1/ ceph-node2:/var/local/osd2/
    激活报错,在报错节点执行chmod 777 /var/local/osd0 或者 chmod 777 /var/local/osd*
    查看状态:
    ceph-deploy osd list ceph ceph-node1 ceph-node2
    用ceph-deploy把配置文件和admin密钥拷贝到所有节点,这样每次执行Ceph命令行时就无需指定monitor地址和ceph.client.admin.keyring了
    ceph-deploy admin ceph ceph-node1 ceph-node2
    chmod +r /etc/ceph/ceph.client.admin.keyring
    ceph health或者ceph -s

  搭建ceph分布式文件系统

搭建ceph分布式文件系统

12. 部署mds服务
    ceph-deploy mds create ceph ceph-node1 ceph-node2
    查看状态
    ceph mds stat
    ceph存储集群搭建完毕

  搭建ceph分布式文件系统

13. 创建ceph文件系统
    ceph fs ls
    创建存储池
    ceph osd pool create cephfs_data 128  
    ceph fs new 128 cephfs_metadata cephfs_data #cephfs可自定义
    关于创建存储池:
    确定pg_num取值是强制性的,因为不能自动计算。下面是几个常用的值:
    *少于5 个OSD 时可把pg_num设置为128
    *OSD 数量在5 到10 个时,可把pg_num设置为512
    *OSD 数量在10 到50 个时,可把pg_num设置为4096
    *OSD 数量大于50 时,你得理解权衡方法、以及如何自己计算pg_num取值
    *自己计算pg_num取值时可借助pgcalc 工具
    随着OSD 数量的增加,正确的pg_num取值变得更加重要,因为它显著地影响着集群的行为、以及出错时的数据持久性(即灾难性事件导致数据丢失的概率)。
    创建文件系统
    ceph fs new 128 cephfs_metadata cephfs_data  #cephfs根据上面创建的存储池定义

  搭建ceph分布式文件系统

14. 挂载
    cp ceph.client.admin.keyring admin.secret
    vim admin.secret
    AQDVUpVec7FyIBAAX/wlJBJwpw+adAhRWltPOA==
    mount -t ceph 192.168.66.93:6789:/ /mnt -o name=admin,secretfile=/etc/ceph/admin.secret
    echo "Hello World" > /mnt/a.txt
    umount /mnt
    
15. 用户控件挂载Ceph文件系统
    安装ceph-fuse
    yum install -y ceph-fuse
    ceph-fuse -m 192.168.66.93:6789 /mnt
    umount /mnt

相关推荐