zoukankan      html  css  js  c++  java
  • 一步一步安装配置Ceph分布式存储集群

    Ceph可以说是当今最流行的分布式存储系统了,本文记录一下安装和配置Ceph的详细步骤。

    提前配置工作

    从第一个集群节点开始的,然后逐渐加入其它的节点。对于Ceph,我们加入的第一个节点应该是Monitor,我们设置为Monitor1。

    我使用的操作系统是Ubuntu Server 19.10,目前没有对应的包地址,于是就是用了bionic,应该是18.04的。还有地址也换成了中科大的镜像http://mirrors.ustc.edu.cn/ceph/,而不是默认的https://download.ceph.com。

    echo deb http://mirrors.ustc.edu.cn/ceph/debian-nautilus/ bionic main | sudo tee /etc/apt/sources.list.d/ceph.list
    

    安装python和parted

    由于使用的Ubuntu版本比较新的原因,可能额Ceph的资源包并没有包括在默认的resource库里,需要用Python来build集群。安装Python和Pip的命令如下:

    sudo apt-get install -y python python-pip parted
    
    sudo apt-get install -y python3 python-pip3
    

    安装和配置NTP

    安装NTP用来同步标准时间,运行ntpdate设置时间服务器,并启动服务进行时间同步。全球可用的授时服务器列表。

    sudo apt-get install -y ntp ntpdate ntp-doc
    ntpdate 0.cn.ntp.org.cn
    hwclock --systohc
    systemctl enable ntp
    systemctl start ntp
    

    给每个节点设置固定IP

    Ubuntu 18.04以上的系统采用netplan作为网络配置管理,不需要重启系统。

    sudo   vi /etc/netplan/50-cloud-init.yaml
    
    network:
        ethernets:
            eth0:
                addresses: [192.168.137.200/24]
                gateway4: 192.168.137.1
                dhcp4: false
                optional: true
        version: 2             
    
    sudo  netplan apply 
    
    sudo hostnamectl set-hostname <newhostname>
    

    设置localhost文件

    192.168.137.200 cephadmin
    192.168.137.201 monitor2
    192.168.137.202 monitor3
    192.168.137.203 OSD1
    192.168.137.204 OSD2
    192.168.137.205 OSD3
    

    配置Hosts文件

    vim /etc/hosts
    

    配置各个节点的IP地址和机器名

    192.168.137.200 cephadmin
    192.168.137.201 monitor2
    192.168.137.202 monitor3
    192.168.137.203 OSD1
    192.168.137.204 OSD2
    192.168.137.205 OSD3
    

    配置好了以后可以确保节点间可以通过机器名访问。

    配置SSH无密码登录

    在每个节点都创建一个叫cephuser的用户

    useradd -m -s /bin/bash cephuser
    passwd cephuser
    

    授予cephuser用户无密码使用sudo的权限。

    echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
    chmod 0440 /etc/sudoers.d/cephuser
    sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers
    

    登录admin节点,用cephuser用户登录:

    su cephuser
    

    运行秘钥生成工具

    ssh-keygen
    

    然后查看下文件夹

    $ ls /home/ceph-admin/.ssh/
    config  id_rsa  id_rsa.pub  known_hosts
    

    创建和修改config文件

    $ cat /home/ceph-admin/.ssh/config 
    Host OSD1
      Hostname OSD1
      User cephuser
    Host OSD2
      Hostname OSD2
      User cephuser
    Host OSD3
      Hostname OSD3
      User cephuser
    Host monitor2
      Hostname monitor2
      User cephuser
    Host monitor3
      Hostname monitor3
      User cephuser
    Host cephadmin
      Hostname cephadmin
      User cephuser
    
    ssh-keyscan OSD1 OSD2 OSD3 monitor2 monitor3 cephadmin >> ~/.ssh/known_hosts
    ssh-copy-id OSD1
    ssh-copy-id OSD2
    ssh-copy-id OSD3
    ssh-copy-id monitor2
    ssh-copy-id monitor3
    

    中间可能会要求输入cephuser的密码。然后我们建立了通过admin节点无密码ssh登录所有其他的节点。为后面安装作准备。可以先试一下

    ssh monitor2
    

    配置防火墙程序

    如果要用在生产环境,为了安全着想我们一开始就应该配置防火墙,只开通服务器上需要访问的端口。

    给Ceph的OSD节点挂载硬盘

    在这次的实验中,配置了三个OSD存储节点。每个节点挂载一个20GB的硬盘分区作为ceph的存储区域。

    1. /dev/sda 作为系统盘
    2. /dev/sdb 作为新挂载的20GB硬盘

    检查硬盘的分区情况

    sudo fdisk -l
    

    用parted命令给 /dev/sdb用XFS文件系统分区,并建立硬盘分区表。

    sudo parted -s /dev/sdb mklabel gpt mkpart primary xfs 0% 100%
    

    用mkfs格式化硬盘

    sudo mkfs.xfs -f /dev/sdb
    

    再检查一下

    sudo fdisk -s /dev/sdb
    sudo blkid -o value -s TYPE /dev/sdb
    

    正式建立Ceph的Admin节点, 并安装Ceph到集群

    在admin节点上安装Ceph的部署工具包

    • 用pip命令安装
    sudo pip install ceph-deploy
    
    • 用安装源安装
    echo deb https://download.ceph.com/debian-nautilus/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
    

    国内还是用中科大的镜像比较好,原始的地址不稳定

    echo deb http://cernet.mirrors.ustc.edu.cn/ceph/debian-nautilus/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
    

    然后运行命令

    sudo apt update
    sudo apt -y install ceph-deploy
    

    初始化集群配置

    1. 首先新建一个文件夹用来放Ceph集群的配置文件,

      mkdir cluster
      cd cluster/
      
    2. ceph-deploy 工具创建集群并把monitor2作为第一个monitor节点。

      ceph-deploy new monitor2
      

      我们可以看到在cluster文件夹中生成了配置文件Ceph.config

    3. 安装Ceph到所有节点, 注意一定要加--no-adjust-repos和--stable,不然安装不成功。

      ceph-deploy install --no-adjust-repos --stable cephadmin OSD1 OSD2 OSD3 monitor2 monitor3
      

    创建Monitor和Manager节点

    初始化Monitor节点

    ceph-deploy --overwrite-conf monitor2 create-initial
    

    上面的语句会自动创建monitor key,下面的命令检查是否Key已经生成

    ceph-deploy gatherkeys monitor2
    

    创建Manager节点

    ceph-deploy mgr create monitor3
    

    添加OSD存储节点

    现在我们已经运行了一个Monitor节点了,开始加入存储节点OSD吧,这次我配置了3台虚拟机作为OSD集群节点。下面的命令可以看是否硬盘 /dev/sdb的状态都是可用的,文件格式是否OK

    ceph-deploy disk list OSD1 OSD2 OSD3
    

    删除数据和硬盘分区表:

    ceph-deploy disk zap OSD1 /dev/sdb
    ceph-deploy disk zap OSD2 /dev/sdb
    ceph-deploy disk zap OSD3 /dev/sdb
    

    好了,下一步就是正式加载OSD节点了,这些是Ceph真正的储存节点了:

    ceph-deploy osd create --data /dev/sdb OSD1
    ceph-deploy osd create --data /dev/sdb OSD2
    ceph-deploy osd create --data /dev/sdb OSD3
    

    完成后用list命令查看, 搞定,block设备挂载完毕,当然每个节点上可以挂载上多个设备。

    ceph-deploy osd list OSD1 OSD2 OSD3
    

    部署集群管理KeyRing

    接下来把集群管理的key部署到所有的节点上:

    ceph-deploy admin cephadmin OSD1 OSD2 OSD3 monitor2 monitor3
    

    每一个节点的key文件夹权限更改。

    sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
    

    测试Ceph集群的部署情况

    登录monitor2

    ssh mon1
    

    然后查看集群状况

    sudo ceph health
    sudo ceph -s
    

    从上面的信息可以看到,Ceph启动了两个monitor节点,一个manager节点,注册了三个OSD节点,运行中有2个OSD节点。总共有38G存储。


    到此为止,一个实验集群就配置完毕了,后面开始在这个集群上开发功能。使用其对象存储的能力,最重要的要建一个异构的存储集群。如果文章格式不满意,可以到以下地址查看:
    文章连接

    参考文章

    https://www.howtoforge.com/tutorial/how-to-install-a-ceph-cluster-on-ubuntu-16-04/

    https://computingforgeeks.com/how-to-deploy-ceph-storage-cluster-on-ubuntu-18-04-lts/

    https://www.server-world.info/en/note?os=Ubuntu_18.04&p=ceph&f=1

    https://ceph.io/install/

    中科大开源镜像源列表

    http://cernet.mirrors.ustc.edu.cn/

  • 相关阅读:
    2021.5.24 团队第二阶段冲刺第一天
    2021.5.21
    2021.5.20
    2021.5.19
    2021.5.18
    软件包安装
    Selenium中的PageObject模式
    理解Python中的装饰器
    Selenium中的断言
    Selenium处理隐藏元素
  • 原文地址:https://www.cnblogs.com/yangjian2006/p/12268380.html
Copyright © 2011-2022 走看看