环境初始化

  1. 准备3台虚拟机,并对每一台虚拟机添加一个新硬盘(如果已添加则无需重复添加),虚拟机需要在关闭情况下才可进行设置。

image.png
image.png
然后一直下一步,在选择磁盘空间时可以根据自身条件进行调节。

  1. 配置hosts

    1. #打开hosts文件
    2. vim /etc/hosts
    3. #将ip信息写入文件
    4. 192.168.187.130 deploy
    5. 192.168.187.129 node1
    6. 192.168.187.128 node2
  2. 同步时间(所有节点)

    yum install -y chrony
    #在操作节点编辑 /etc/chrony.conf
    vim /etc/chrony.conf
    #解开注释,可以修改为自己的网段
    allow 192.168.0.0/16
    #在其他节点编辑 /etc/chrony.conf
    vim /etc/chrony.conf
    #注释掉所有server 服务器信息,并添加,ip为操作节点ip
    server 192.168.187.132 iburst
    
  3. 同步时间

    # 所有节点安装chrony
    yum install -y chrony
    #
    # 在时间服务节点编辑 /etc/chrony.conf
    vim /etc/chrony.conf
    #解开注释,可以修改为自己的网段
    allow 192.168.0.0/16
    #
    # 在时间客户节点编辑 /etc/chrony.conf
    vim /etc/chrony.conf
    #注释掉所有server 服务器信息,并添加,ip为操作节点ip
    server 192.168.187.130 iburst
    
  4. 关闭防火墙(所有节点)

    systemctl stop firewalld
    systemctl disable firewalld
    
  5. 安装yum源epel,并添加对应配置(所有节点) ```shell

    为避免安装不成功,可以先尝试卸载后在安装。

    yum remove -y epel-release yum install -y epel-release

    /etc/yum.repos.d/ceph.repo 在该文件中添加配置

    [Ceph] name=Ceph packages for $basearch baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/$basearch enabled=1 priority=1 gpgcheck=1 gpgkey=https://download.ceph.com/keys/release.asc

[Ceph-noarch] name=Ceph noarch packages baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/noarch enabled=1 priority=1 gpgcheck=1 gpgkey=https://download.ceph.com/keys/release.asc

[ceph-source] name=Ceph source packages baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/SRPMS enabled=0 priority=1 gpgcheck=1 gpgkey=https://download.ceph.com/keys/release.asc

如果163的源有问题可以切换到别的源,该源为清华的源
```shell
[Ceph]
name=Ceph packages for $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc
priority=1

[Ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc
priority=1

[ceph-source]
name=Ceph source packages
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/SRPMS
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc
priority=1

阿里云源


[Ceph]
name=Ceph packages for $basearch
baseurl=https://mirrors.aliyun.com/ceph/rpm-luminous/el7/$basearch
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
[Ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
[ceph-source]
name=Ceph source packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
  1. 安装yum源cetnos,并清除缓存(所有节点)

    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    yum clean all
    
  2. 配置deploy节点免密登录其余所有节点(deploy节点操作)

    #生成密钥,执行命令后按三下Enter
    ssh-keygen -t rsa
    #发送公钥给其余节点,此处是需要输入其余节点密码的
    ssh-copy-id deploy
    ssh-copy-id node1
    ssh-copy-id node2
    #进行免密验证
    ssh node1
    exit
    
  3. 对每个节点设置对应的hostname,然后reboot重启

    hostnamectl set-hostname 节点名
    

安装ceph包

  1. 安装ceph-deploy,ceph-deploy是ceph的安装程序(deploy节点操作)
yum -y install ceph-deploy

#这个时候查看ceph-deploy的版本信息是会报错的,我们需要在安装一个东西
yum install python-setuptools -y

#安装完成后就可以查看ceph-deploy版本信息
ceph-deploy --version
  1. 安装deltarpm(所有节点)

    yum install -y deltarpm
    
  2. 安装ceph(deploy节点)

    ceph-deploy install --release=luminous deploy node1 node2
    

    image.png
    安装完成后可以在任意节点执行ceph -v 查看ceph版本信息

    部署ceph集群(该操作都在deploy执行)

  3. 在集群的安装过程中,会产生一些文件,我们需要创建一个文件夹,在该文件夹下执行

    mkdir ceph-deploy
    cd ceph-deploy
    
  4. 容错,如果在安装过程中出现错误,则需要重新开始

    ceph-deploy purge deploy node1 node2
    ceph-deploy purgedata deploy node1 node2
    ceph-deploy forgetkeys
    rm ceph.*
    
  5. 以node1为initial monitor创建集群作为监控节点,在完成后会生成3个文件

    ceph-deploy new node1
    

    image.png

  6. 部署initial monitor,这时候mon就在node1节点运行起来了

    ceph-deploy mon create node1
    # 这个时候ceph就在node1上运行起来了(在node1节点查看)
    ps -ef | grep ceph
    

    image.png

  7. 创建ceph keyring,这样所有节点的key和权限就存在于集群中了

    ceph-deploy gatherkeys node1
    
  8. 分发keyring,把ceph.client.admin.keyring和ceph.conf放到每个server的/etc/ceph/

    ceph-deploy admin deploy node1 node2
    
  9. 创建mgr,需要为每一个mon创建mgr,从ceph12开始才有。完成后通过ceph -s可以查看services下的mgr出现node1

    ceph-deploy mgr create node1
    
  10. 创建osd,在使用磁盘前需要先把磁盘清空,所有一环境初始化时添加了一个磁盘进来

    #通过命令查看节点磁盘情况
    fdisk -l
    #决定你需要格式化的磁盘,视自己设备情况而定
    ceph-deploy disk zap deploy /dev/sdb
    #创建osd
    ceph-deploy osd create node1 --data /dev/sdb
    ceph-deploy osd create node2 --data /dev/sdb
    ceph-deploy osd create deploy --data /dev/sdb
    #这里由于集群有限,故使用deploy节点也作为osd
    
  11. 查看集群状况,可以看到services中osd也出现数据,并且data中有数据使用情况。

image.png

  1. 添加mon和mgr,添加mon和mgr之前,需要在ceph.conf中添加public network配置,在将修改推送到各个节点。 ```shell vim /root/ceph-deploy/ceph.conf

    在ceph.conf中添加public network

    public network = 192.168.187.0/24

    推送到各节点

    ceph-deploy —overwrite-conf config push node1 node2 deploy

最后进行mon添加和mgr添加

ceph-deploy mon add node2 ceph-deploy mgr create node2


23. 创建mds,为了支持cephfs,在node2节点上创建mds
```shell
#创建mds
ceph-deploy mds create node1
#创建成功后可以在node1节点上查看mds进程
ps -ef | grep ceph-mds
#这个时候ceph -s 在services下是看不到mds的,需要创建ceph filesystem的时候才可以看到。

增加rgw,需要占用7480端口。

 #增加rgw
 ceph-deploy rgw create node2 deploy
 #进程查看
 ps -ef | grep ceph
 #http查看
 curl deploy:7480

增加cephfs

ceph filesystem需要mds(我们之前已经部署mds),并且有两种挂载方式ceph fuse和ceph kernel driver

  1. 创建所需的pool(在任意一个集群节点上都可以)

    ceph osd pool create cephfs_data 80
    ceph osd pool create cephfs_metadata 40
    
  2. 创建filesystem

    ceph fs new mycephfs cephfs_metadata cephfs_data
    
    #这时候就可以查看mds了
    ceph -s
    
  3. 通过ceph push进行挂载(理论上我们需要在ceph集群之外的设备上进行挂载,实力有限我们挂载在node1上,在node1上安装ceph-fuse,如果是在ceph集群外也只需要安装这一个包)

    yum install -y ceph-fuse.x86_64
    
  4. 然后创建一个挂载点就可以挂载了,ceph-fuse挂载使用的是admin的权限,所以,通过-k选项传入admin的key。-m后的节点为任一mon节点。 ```shell mkdir /mnt/cephfs

ceph-fuse -k /etc/ceph/ceph.client.admin.keyring -m node2:6789 /mnt/cephfs


- 如果后面修改了时间同步,需要在所有节点重启 ceph,命令为` $systemctl restart ceph.target`
- 开启dashboard(可视化界面)
```shell
ceph mgr module enable dashboard
#一下命令会输出一个ip地址,该地址为dashboard地址
ceph mgr services