CentOS7下部署Ceph集群(版本10.2.2)
http://www.linuxidc.com/Linux/2017-02/140728.htm

借使全勤可以向来

布局进程中如若现身任何意外的难点不可能解决,能够归纳的删除全部从头再来:

  1. # ceph-deploy purge ceph-mon1 ceph-mon2 ceph-mon3 ceph-osd1 ceph-osd2
  2. # ceph-deploy purgedata ceph-mon1 ceph-mon2 ceph-mon3 ceph-osd1 ceph-osd2
  3. # ceph-deploy forgetkeys

 

系统景况

  • 至少要求三台虚构机可能物理机,这里运用设想机
  • 每台设想机至少需求两块硬盘(一块系统盘,一块OSD),本例中有三块硬盘
  1. 配置流程(博客使用的markdown深入分析器不扶助流程图使用图片取代)
    澳门威尼斯娱乐在线 1

  2. 主机规划
    澳门威尼斯娱乐在线 2

1.Ceph简介

Ceph 的初创来自Sage Weil 大学生的 PhD 随想,杂谈 “Ceph: A Scalable,
High-Performance Distributed File
System”详细的阐发了
Ceph 的安插性架构。
澳门威尼斯娱乐在线,简短,Ceph 作为三个布满式存款和储蓄系统规划的目的一定为:

  • 可轻松扩展到数PB品级的体量(Ceph最近的版本能够轻易帮忙EB等级的积累体量)
  • 可知自行适应多种工作负荷的高质量(每秒输入/输出操作[IOPS]和带宽)
  • 高可信赖性
  • 提供了对象,块,文件系统一整套囤积消除方案,大大裁减运行的财力

作者以为Ceph作为八个美妙的分布式存款和储蓄系统,以后布满式存款和储蓄系统提供了设计基础。自Linux内核2.6.34版初阶,Ceph.ko已经济合作龙到Linux内核之中,作为分布式文件系统的备选项之一。同期Ceph也是OpenStack中美丽的开源存款和储蓄解决方案,援救通过Ceph作为块存款和储蓄或对象存款和储蓄实行读写访谈。

Ceph
的详实介绍
:请点这里
Ceph
的下载地址
:请点这里

软件条件希图

具有 Ceph 集群节点选择
CentOS 7.1
版本(CentOS-7-x86_64-Minimal-1503-01.iso),全体文件系统接纳 Ceph
官方推荐的 xfs,全数节点的操作系统都装在 RAID1
上,其余的硬盘单独用,不做任何 RAID.

设置完 CentOS 后大家须求在各种节点上(包涵 ceph-adm
哦)做一些主干配备,比方关闭 SELINUX、展开防火墙端口、同步时间等:

  1. 关闭 SELINUX
  2. # sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
  3. # setenforce 0
  4. 打开Ceph需要的端口
  5. # firewall-cmd --zone=public --add-port=6789/tcp --permanent
  6. # firewall-cmd --zone=public --add-port=6800-7100/tcp --permanent
  7. # firewall-cmd --reload
  8. 安装 EPEL 软件源:
  9. # rpm -Uvh https://dl.Fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
  10. # yum -y update
  11. # yum -y upgrade
  12. 安装 ntp 同步时间
  13. # yum -y install ntp ntpdate ntp-doc
  14. # ntpdate 0.us.pool.ntp.org
  15. # hwclock --systohc
  16. # systemctl enable ntpd.service
  17. # systemctl start ntpd.service

在每台 osd 服务器上大家必要对10块 SAS 硬盘分区、创制 xfs
文件系统;对2块用做 journal 的 SSD
硬盘分5个区,种种区对应一块硬盘,无需创制文件系统,留给 Ceph
自个儿处理。

  1. # parted /dev/sda
  2. GNU Parted3.1
  3. Using/dev/sda
  4. Welcome to GNU Parted!Type'help' to view a list of commands.
  5. (parted) mklabel gpt
  6. (parted) mkpart primary xfs 0%100%
  7. (parted) quit
  8. # mkfs.xfs /dev/sda1
  9. meta-data=/dev/sda1 isize=256 agcount=4, agsize=244188544 blks
  10. = sectsz=4096 attr=2, projid32bit=1
  11. = crc=0 finobt=0
  12. data = bsize=4096 blocks=976754176, imaxpct=5
  13. = sunit=0 swidth=0 blks
  14. naming =version 2 bsize=4096 ascii-ci=0 ftype=0
  15. log =internal log bsize=4096 blocks=476930, version=2
  16. = sectsz=4096 sunit=1 blks, lazy-count=1
  17. realtime =none extsz=4096 blocks=0, rtextents=0
  18. ...

澳门威斯尼网站的网址,地点的命令行要对12个硬盘管理,重复的操作太多,今后还有恐怕会陆陆续续增加服务器,写成脚本
parted.sh 方便操作,当中 /dev/sda|b|d|e|g|h|i|j|k|l
分别是10块硬盘,/dev/sdc 和 /dev/sdf 是用做 journal 的 SSD:

  1. # vi parted.sh
  2. #!/bin/bash
  3. set-e
  4. if[!-x "/sbin/parted"];then
  5. echo "This script requires /sbin/parted to run!">&2
  6. exit1
  7. fi
  8. DISKS="a b d e g h i j k l"
  9. for i in ${DISKS};do
  10. echo "Creating partitions on /dev/sd${i} ..."
  11. parted -a optimal --script /dev/sd${i}-- mktable gpt
  12. parted -a optimal --script /dev/sd${i}-- mkpart primary xfs 0%100%
  13. sleep 1
  14. #echo "Formatting /dev/sd${i}1 ..."
  15. mkfs.xfs -f /dev/sd${i}1&
  16. done
  17. SSDS="c f"
  18. for i in ${SSDS};do
  19. parted -s /dev/sd${i} mklabel gpt
  20. parted -s /dev/sd${i} mkpart primary 0%20%
  21. parted -s /dev/sd${i} mkpart primary 21%40%
  22. parted -s /dev/sd${i} mkpart primary 41%60%
  23. parted -s /dev/sd${i} mkpart primary 61%80%
  24. parted -s /dev/sd${i} mkpart primary 81%100%
  25. done
  26. # sh parted.sh

在 ceph-adm 上运转 ssh-keygen 生成 ssh key 文件,注意 passphrase
是空,把 ssh key 拷贝到每一个 Ceph 节点上:

  1. # ssh-keygen -t rsa
  2. Generatingpublic/private rsa key pair.
  3. Enter file in which to save the key (/root/.ssh/id_rsa):
  4. Enter passphrase (empty forno passphrase):
  5. Enter same passphrase again:
  6. # ssh-copy-id root@ceph-mon1
  7. # ssh-copy-id root@ceph-mon2
  8. # ssh-copy-id root@ceph-mon3
  9. # ssh-copy-id root@ceph-osd1
  10. # ssh-copy-id root@ceph-osd2

在 ceph-adm 上登录到每台节点上确定是不是都能无密码 ssh
了,确定保证特别烦人的连日确认不会再冒出:

  1. # ssh root@ceph-mon1
  2. The authenticity of host 'ceph-mon1 (192.168.2.101)' can't be established.
  3. ECDSA key fingerprint is d7:db:d6:70:ef:2e:56:7c:0d:9c:62:75:b2:47:34:df.
  4. Are you sure you want to continue connecting (yes/no)? yes
  5. # ssh root@ceph-mon2
  6. # ssh root@ceph-mon3
  7. # ssh root@ceph-osd1
  8. # ssh root@ceph-osd2

 

威尼斯手机棋牌,安装 docker

登录 获取自个儿的Ali云
docker 加速地址

  1. 安装进级 docker 客户端

# curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
  1. 使用 docker 加速器
    能够经过改造 daemon 配置文件 /etc/docker/daemon.json
    来行使加速器,注意修改使用本身的加速地址

# mkdir -p /etc/docker
# tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://******.mirror.aliyuncs.com"]
}
EOF
# systemctl daemon-reload
# systemctl restart docker
# systemctl enable docker

4.编辑CrushMap,启用osd节点

您的开始监视器能够健康运作后就能够增加 osd 了。要想让集群达到 active +
clean 状态,必须设置丰裕多的 osd
来管理pgs,在成功Mon运维以往,集群就有了暗中同意的
CrushMap,但现行反革命此图依然空的,里面未有别的 osd 映射到 Ceph
节点,所以大家要先运营osd节点,之后编辑CrushMap,并将其导入Mon节点。

  • (1) 准备OSD。

    ssh {node-name}
    sudo ceph-disk prepare –cluster {cluster-name} –cluster-uuid
    {uuid} –fs-type {ext4|xfs|btrfs} {data-path} [{journal-path}]

    • 例如:

      ssh slave1
      sudo ceph-disk prepare –cluster ceph –cluster-uuid
      236e7afe-7c61-41a0-b577-89df547fcef5 –fs-type xfs /dev/sbb1

  • (2) 激活 osd,并启动osd设备:

    sudo ceph-disk activate {data-path} [–activate-key {path}]
    sudo start osd.{id}

  • 例如:

    sudo ceph-disk activate /dev/sdb1
    sudo start osd.0
    

    接下去依次运维图中的3个osd节点,本次osd节点纵然起步了,但是并从未走入到CrushMap之中进行映射,接下去我们须求导出Mon上的CrushMap,并进行编辑,之后导回到Mon中。

  • (3) 从Mon节点获取 CrushMap的二进制文件:

    ceph osd getcrushmap -o crushmapbinary

  • (4) 通过CrushMap的二进制文件反编写翻译它,成为文本文件:

    cephtool -d crushmapbinary -o crushmap.txt

  • (5) 接下来编辑crushmap.txt,主要加多osd
    device与osd的权重举行配备:
    在 CrushMap里声美素佳儿个设备,在装置列表前面新建一行,输入 device
    、之后是不二法门的数字 ID 、之后是相应的 ceph-osd 守护过程例程名字。

    device {num} {osd.name}

    • 例如:
      增加好大家在此之前activate的osd设备

      device 0 osd.0
      device 1 osd.1
      device 2 osd.2

接下去大家要给这一个osd设备分配权重
CrushMap主要有 4 个关键类型。
设备 由大肆对象存款和储蓄设备组成,即对应二个 ceph-osd 进度的存储器。
桶类型: 定义了 CRUSH 分级结构里要用的桶类型( types
),桶由逐级汇集的蕴藏地方(如行、机柜、机箱、主机等等)及其权重组成。
桶例程
定义了桶类型后,还必须注解主机的桶类型、以及设计的其余故障域。
规则: 由接纳桶的法子结合。
时下大家只要大约有个概念,接下去大家只要求简单的将大家的装置加上到CrushMap之中:

  root default {
    id -1           # do not change unnecessarily
    # weight 3.240
    alg straw
    hash 0  # rjenkins1
    item slave1 weight 1.00
    item slave2 weight 1.00
    item slave3 weight 1.00
   }

   host slave1 {
    id -4
    alg straw
    hash 0
    item osd.0 weight 1.00
  }

  host slave2 {
    id -2
    alg straw
    hash 0
    item osd.1 weight 1.00
  }

  host slave3 {
    id -3
    alg straw
    hash 0
    item osd.2 weight 1.00
  }
  • (6) 重新编写翻译那么些新的CRUSH map

    crushtool -c crushmap.txt -o crushmap-compiled

  • (7) 将新的CRUSH map 应用到ceph 集群中

    ceph osd setcrushmap -i crushmap-compiled

  • (8)再度确认Ceph集群的运行景况。

    ceph -s
    
    cluster a7f64266-0894-4f1e-a635-d0aeaca0e993
    health HEALTH_OK  64 pgs stuck active and clean; 3 osds
    monmap e1: 1 mons at {node1=192.168.0.1:6789/0}, election epoch 1, quorum 0 node1
    osdmap e1: 3 osds: 3 up, 3 in
    pgmap v2: 64 pgs, 1 pools, 0 bytes data, 0 objects
         3465 kB used, 923421 kB / 919956 kB avail
         64 active and clean
    

    笔者们能够料定,Ceph集群已经恢复生机健康,我们曾经打响编写翻译安装了Ceph。

越多Ceph相关学科见以下内容

在 CentOS 7.1 上安装布满式存款和储蓄系统 Ceph 
http://www.linuxidc.com/Linux/2015-08/120990.htm

Ceph境况布署文书档案 PDF
http://www.linuxidc.com/Linux/2013-05/85212.htm 

CentOS7下部署Ceph集群(版本10.2.2)
http://www.linuxidc.com/Linux/2017-02/140728.htm

怎样升高Ceph版本及注意事项 
http://www.linuxidc.com/Linux/2017-02/140631.htm

HOWTO Install Ceph On FC12, FC上设置Ceph布满式文件系统
http://www.linuxidc.com/Linux/2013-05/85209.htm 

施行蒙受Ceph 9.2.1配置笔记
http://www.linuxidc.com/Linux/2016-11/137094.htm

Ubuntu 16.04急忙安装Ceph集群 
http://www.linuxidc.com/Linux/2016-09/135261.htm

CentOS 7下单台物理机搭建Ceph集群 
http://www.linuxidc.com/Linux/2017-06/144636.htm

依附CentOS 7.3装置配置jewel版本Ceph集群实战练习 
http://www.linuxidc.com/Linux/2017-09/146760.htm

Ceph
的详细介绍
:请点这里
Ceph
的下载地址
:请点这里

本文永远更新链接地址:http://www.linuxidc.com/Linux/2017-12/149053.htm

澳门威尼斯娱乐在线 3

本文永世更新链接地址:http://www.linuxidc.com/Linux/2017-03/141578.htm

关于 Ceph 的牵线英特网一大堆,这里就不重复了。Sage Weil
读博士的时候开辟了那套牛逼的布满式存款和储蓄系统,最初是奔着高品质遍布式文件系统去的,结果云总括风口一来,Ceph
重心转向了布满式块存款和储蓄(Block Storage)和布满式对象存储(Object
Storage),以往布满式文件系统 CephFS 还停在 beta 阶段。Ceph
今后是云总计、设想机计划的最火开源寄存化解方案,听大人说有百分之三十的 OpenStack
铺排存款和储蓄用的都以 Ceph 的 block storage.

创建 MDS

运用以下命令在 node01 上运营 mds

# docker run -d \
        --net=host \
        -v /etc/ceph:/etc/ceph \
        -v /var/lib/ceph/:/var/lib/ceph/ \
        -e CEPHFS_CREATE=1 \
        ceph/daemon mds

Ceph官方版本这段时间支撑的纠删码很简单,实验室那块希望能够结合我们自己作主开荒的纠删码B奇骏S(Binary
Reed–Solomon
encoding),所以须求编写翻译Ceph境况。Ceph官方最近推荐的安装情势都以通过Ceph-deploy的工具来安装配置,搭建起来非常简约。前段时间一向通过Ceph源码进行编写翻译安装的国语教程有太多坑了。小编切身通过编写翻译Ceph搭建景况之后,对那些流程实行了三个完好无缺的计算,后续的童鞋可以做贰个粗略的参阅。

在Ceph的osd节点上,运行osd进度受挫,查看其日志/var/log/ceph/ceph-osd.{osd-index}.log日志,报错如下:

 

启动 OSD

每台设想机策动了两块磁盘作为 osd,分别参预到集群,注意修改磁盘

# docker run -d \
        --net=host \
        -v /etc/ceph:/etc/ceph \
        -v /var/lib/ceph/:/var/lib/ceph/ \
        -v /dev/:/dev/ \
        --privileged=true \
        -e OSD_FORCE_ZAP=1 \
        -e OSD_DEVICE=/dev/sdb \
        ceph/daemon osd_ceph_disk

# docker run -d \
        --net=host \
        -v /etc/ceph:/etc/ceph \
        -v /var/lib/ceph/:/var/lib/ceph/ \
        -v /dev/:/dev/ \
        --privileged=true \
        -e OSD_FORCE_ZAP=1 \
        -e OSD_DEVICE=/dev/sdc \
        ceph/daemon osd_ceph_disk

依据同等办法将 node02 和 node03 的 sdb、sdc 都进入集群

查阅集群状态

# docker exec b79a ceph -s
    cluster 96ae62d2-2249-4173-9dee-3a7215cba51c
     health HEALTH_OK
     monmap e4: 3 mons at {node01=192.168.3.123:6789/0,node02=192.168.3.124:6789/0,node03=192.168.3.125:6789/0}
            election epoch 12, quorum 0,1,2 node01,node02,node03
        mgr no daemons active 
     osdmap e63: 6 osds: 6 up, 6 in
            flags sortbitwise,require_jewel_osds,require_kraken_osds
      pgmap v157: 64 pgs, 1 pools, 0 bytes data, 0 objects
            212 MB used, 598 GB / 599 GB avail
                  64 active+clean

能够看出 mon 和 osd 都早已准确配置,切集群状态为 HEALTH_OK

2.编译Ceph的源码

Ceph的源码能够去Github之上clone下来,或者去Ceph官网下载。这里最重要提一下Ceph的版本难点,Ceph在Hammer本子之后,接纳了新的本子命名法规:

  • x.0.z – 开发版
  • x.1.z – 候选版
  • x.2.z – 稳定、修正版

现阶段对Ceph举行二遍开拓的本子基本上是依据稳定TLS版本来做,实验室选用了五个版本进行了费用。10.2.6本子与12.2.1本子,本文基于10.2.6的本子举办编制。(12.2.1本子不在使用autotools作为编写翻译工具,同期增添了Mgr等新的零部件,配置文件的编排方式也略有差异。)

出于实验室拟态系统的渴求与设定,这里作者采取了混用六十三人的Ubuntu
14.04与64位的CentOS实行编写翻译安装,二者流程完全同样,不一致之处作者会入眼标识。通过cd
步入Ceph的源码目录,依次试行如下命令

 1.  ./install-deps.sh     //安装对应的Ceph依赖包
 2   ./autogen.sh          //调用autotools脚本,生成configure和makefile文件
 3.  ./configure           //这步是很麻烦的一步,由于第一步并不会完全安装好所有依赖,需要读者见招拆招,按照终端提示安装依赖。
    (注:Centos系列不会存在类似问题,嫌麻烦的可以直接用Centos进行编译安装)   
 4.  make                  //进入漫长的等待,多核可以添加-j{cpu核数} 如make -j4
 5.  make install          //安装Ceph  

PS:编写翻译Ceph时需求超大的内部存款和储蓄器与硬盘空间,所以提议待安装节点的内部存款和储蓄器和硬盘空间要丰富大,不然会并发:

virtual memory exhausted: Cannot allocate memoryfull
disk
等问题。

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注