一、环境介绍

IP hostname IOS  
10.2.152.131 node-01 centos  7.4 admin
10.2.152.132 node-02 centos  7.4 node

二、安装CMake-v3.12.4

下载源码

$: wget https://github.com/Kitware/CMake/archive/v3.12.4.tar.gz

解压

tar zxf v3.12.4.tar.gz

编译安装

$: cd CMake-3.12.4
$: ./bootstrap
$: make && make install

检查

$: cmake --version

三、yum安装依赖库

$:yum install -y libffi-devel boost cryptopp-devel fcgi-devel libatomic_op-devel libedit-devel boost-devel fuse-devel libtool libuuid-devel libblkid-devel keyutils-libs-devel cryptopp-devel fcgi-devel libcurl-devel expat-devel gperftools-devel libedit-devel libatomic_ops-devel snappy-devel libaio-devel xfsprogs-devel libudev-devel libcrypto++-dev libcrypto++-utils$:yum install -y fuse fuse-devel

四、安装leveldb-1.20

下载地址:

https://github.com/google/leveldb/releases

解压并编译

$: tar -zxvf leveldb-1.20.tar.gz -C /usr/local/
$: cd /usr/local/leveldb-1.20
$: make 

将新编译的动态库链接到原来的动态库

$:cd /usr/local/levedb-1.20/out-shared/
$:cp libleveldb.so* /usr/lib64/$:cd /usr/lib64
$:rm libleveldb.so libleveldb.so.1
$:ln -s libleveldb.so.1.20 libleveldb.so
$:ln -s libleveldb.so.1.20 libleveldb.so.1

替换头文件

$: cd /usr/local/leveldb-1.20/include
$: cp -r leveldb/ /usr/include/

五、安装gcc-8.2.0

$: wget https://mirrors.ustc.edu.cn/gnu/gcc/gcc-8.2.0/gcc-8.2.0.tar.gz
$: tar zxf gcc-8.2.0.tar.gz
$: cd gcc-8.2.0
$: ./contrib/download_prerequisites
$: mkdir gcc-build-8.2.0
$: cd gcc-build-8.2.0
$: ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib参数解释:–enable-checking=release 增加一些检查,也可以–disable-checking生成的编译器在编译过程中不做额外检查–enable-languages=c,c++ 你要让你的gcc支持的编程语言–disable-multilib 取消多目标库编译(取消32位库编译)
$: make && make install

替换gcc的动态库

$: cp /usr/local/lib64/libstdc++.so.6.0.25 /usr/lib64
$: rm -rf /usr/lib64/libstdc++.so.6
$: ln -s /usr/lib64/libstdc++.so.6.0.25 /usr/lib64/libstdc++.so.6

替换yum安装的gcc

$: rm -rf /usr/bin/gcc
$: rm -rf /usr/bin/g++
$: rm -rf /usr/bin/c++
$: rm -rf /usr/bin/cc
$:ln -s /usr/local/bin/gcc /usr/bin/gcc
$:ln -s /usr/local/bin/gcc /usr/bin/cc
$:ln -s /usr/local/bin/g++ /usr/bin/g++
$:ln -s /usr/local/bin/c++ /usr/bin/c++

六、源码安装ceph-v11.2.1

(1)克隆ceph项目

源码包下载:http://download.ceph.com/tarballs/

$:git clone https://github.com/ceph/ceph.git

(2)安装依赖

$:cd ceph
$:./install-deps.sh

(3)运行脚本

$:./do_cmake.sh

(4)编译安装

 $: cd build$: make && make install

(5)检查

$:ceph  -v

ERROR1:

用find /* -name 'rados*' 发现在/usr/lib/python2.7/site-packages/下有 rados.so 和rados-0-py2.7.egg-info两个文件

拷贝这两个文件到/usr/lib/python2.7/dist-packages/下。

cp /usr/local/lib64/python2.7/site-packages/rados.so /usr/lib/python2.7/site-packages/

cp /usr/local/lib64/python2.7/site-packages/rados-2.0.0-py2.7.egg-info /usr/lib/python2.7/site-packages/ -r

cp /usr/local/lib64/librados.so.3 /usr/lib64/

ERROR2:

cp  /usr/local/lib/python2.7/site-packages/* /usr/lib64/python2.7/ -r

七、配置ceph集群准备工作

(1)实现ssh无密码登录

Master节点上:$: ssh-keygen  -t  rsa        //一路回车即可$:ssh-copy-id  zc@10.2.152.132       //传递master上的秘钥到node上验证:
$:ssh  root@10.2.152.132

(2)修改/etc/hosts文件(master && node)

$: cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain610.2.152.131  node-01
10.2.152.132  node-02

(3)实现NTP时间同步

$:yum install ntp ntpdate ntp-doc
$:ntpdate -u ntp1.aliyun.com

(4)关闭防火墙和SElinux(master && node)

关闭防火墙
启动:      systemctl  start    firewalld
关闭:      systemctl  stop    firewalld
查看状态:    systemctl  status   firewalld
开机禁用:    systemctl  disable  firewalld
开机启用:    systemctl  enable  firewalld
关闭Selinux
查看$: getenforceDisabled表示关闭;Enforcing表示开启$:/usr/sbin/sestatus  -vSELinux status:            disabled
临时关闭setenforce 1   //设置SELinux 成为enforcing模式 (开)setenforce 0   //设置SELinux 成为permissive模式(关)
永久关闭$:vi  /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled 设置后需要重启才能生效

八、配置ceph集群

节点关系示意图:node1作为监控和管理节点,node2作为osd节点,其关系如下图所示:

启用Mon节点(node-01)

(1)/etc和/var/log目录下创建ceph目录

$:mkdir -p /etc/ceph/
$:mkdir -p /var/log/ceph

(2)给集群分配惟一 ID (即 fsid )

$:uuidgen

(3)在/etc/ceph/下,创建 Ceph 配置文件, Ceph 默认使用 ceph.conf ,其中的 ceph 是集群名字

$:cd /etc/ceph
$:touch ceph.conf

(4)把此UUID 写入 Ceph 配置文件

将创建的unique ID值写入到ceph.conf配置文件中;

fsid = e6477d75-ce6f-495e-aec6-ce3d975608ee

在ceph.conf中填写monitor节点成员名称和ip地址;

mon initial members = node-01

mon host = 10.2.152.131

$:cat ceph.conf [global]
fsid = 09127e36-c9dd-4232-970e-afccea6bc8c8
mon initial members = node-01
mon host = 10.2.152.131

(5)创建monitor keying

$:ceph-authtool --create-keyring  /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
$: ls /tmp/ceph.mon.keyring
/tmp/ceph.mon.keyring
$: cat /tmp/ceph.mon.keyring
[mon.]key = AQDKxg1cvM1QDBAAma0YiMKFCtHtRdRKF6E7Ag==caps mon = "allow *"

(6)生成管理员秘钥环,创建client.admin keyring

$: ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap  mds 'allow'
creating /etc/ceph/ceph.client.admin.keyring$: ls /etc/ceph/
ceph.client.admin.keyring  ceph.conf$: cat /etc/ceph/ceph.client.admin.keyring
[client.admin]key = AQBZxw1c4hMBKhAA5maRVeKl/43gNhbALzm7Ng==caps mds = "allow"caps mon = "allow *"caps osd = "allow *"

(7)client.admin的key添加到monitor的keyring中

$: ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring

(8)用规划好的主机名、对应 IP 地址、和 FSID 生成一个监视器图,并保存为 /tmp/monmap

monmaptool --create --add {hostname} {ip-address} --fsid {uuid} /tmp/monmap
例如:
$:monmaptool --create --add node-01 10.2.152.131 --fsid 09127e36-c9dd-4232-970e-afccea6bc8c8 /tmp/monmap

(9)创建monitor工作目录

sudo mkdir /var/lib/ceph/mon/{cluster-name}-{hostname}
例如:$:mkdir -p /var/lib/ceph/mon/ceph-node-01

(10)仔细斟酌 Ceph 配置文件,公共的全局配置包括这些:

$: cat ceph.conf [global]
fsid = 09127e36-c9dd-4232-970e-afccea6bc8c8
mon initial members = node-01
mon host = 10.2.152.131
auth cluster required = cephx
auth service required = cephx
auth client required = cephx
public network = 10.2.152.0/24

注:若将cephx改为none是为了方便搭建测试环境,关闭了ceph的安全认证,建议在实际运行环境之中开启。

(11)用监视器图和密钥环组装守护进程所需的初始数据

ceph-mon [--cluster {cluster-name}] --mkfs -i {hostname} --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring例如:
$:ceph-mon --mkfs -i node-01 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring

(12)建一个空文件 done ,表示监视器已创建、可以启动了

$: touch /var/lib/ceph/mon/ceph-node-01/done
$: touch /var/lib/ceph/mon/ceph-node-01/sysvinit启动监视器。
在 Ubuntu 上用 Upstart :$:sudo ceph-mon --id=slave1 [cluster={cluster-name}]
要使此守护进程开机自启,需要创建两个空文件,像这样:$:sudo touch /var/lib/ceph/mon/{cluster-name}-{hostname}/upstart
例如:$:sudo touch /var/lib/ceph/mon/ceph-slave1/upstart在 Debian/CentOS/RHEL 上用 sysvinit :$:/etc/init.d/ceph start mon.node-01

(13)确认下集群的运行状态

$:ceph -scluster:id:     f42905e0-cd33-4155-a61b-4b9c4725e0f4health: HEALTH_OKservices:mon: 1 daemons, quorum node-01 (age 48s)mgr: no daemons activeosd: 0 osds: 0 up, 0 indata:pools:   0 pools, 0 pgsobjects: 0 objects, 0 Busage:   0 B used, 0 B / 0 B availpgs:     

编辑CrushMap,启用osd节点

ARM环境下centos 7源码编译安装ceph-v14.0.1教程(待修改)相关推荐

  1. 保姆级教程——Ubuntu16.04 Server下深度学习环境搭建:安装CUDA8.0,cuDNN6.0,Bazel0.5.4,源码编译安装TensorFlow1.4.0(GPU版)...

    写在前面 本文叙述了在Ubuntu16.04 Server下安装CUDA8.0,cuDNN6.0以及源码编译安装TensorFlow1.4.0(GPU版)的亲身经历,包括遇到的问题及解决办法,也有一些 ...

  2. Centos 7 源码编译安装 mysql

    文章目录 Centos 7 源码编译安装 mysql 1. 卸载 centos 自带的 mariadb 2. 下载 mysql 3. 安装 mysql 3.1 解压压缩包 3.1.1 自定义解压安装目 ...

  3. opencv4.0在linux下编译,Ubuntu 18.04源码编译安装OpenCV 4.0步骤

    Ubuntu 18.04下标准常规安装方法安装的OpenCV版本比较低,想尝鲜使用4.0版本,只好源码安装. 安装环境 OS:Ubuntu 18.04 64 bit 显卡:NVidia GTX 108 ...

  4. 如何在ARM开发板上从源码编译安装OpenCV和OpenCV contrib

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文主要介绍如何在ARM开发板上从源码编译安装OpenCV和OpenCV contrib. OpenC ...

  5. 麒麟Kylin V10 桌面版源码编译安装Qt5.6.0

    麒麟Kylin V10 桌面版源码编译安装Qt5.6.0 硬件环境:PHYTIUM FT-2000/4开发板 系统环境:Kylin V10 Desktop 系统 安装包下载:自己所需版本 解压 相关依 ...

  6. LNMP架构环境搭建之mysql源码编译安装

    Mysql MySQL是一个开源的数据库,在互联网行业应用的很广泛,下面来记录一下从源码编译安装的步骤,当然,MySQL也有其他安装方式,比如,使用yum下载安装rpm包,或者二进制方式安装,如果机器 ...

  7. Ubuntu 16.04源码编译安装Apache 2.4.25教程

    这篇文章主要为大家详细介绍了Ubuntu 16.04源码编译安装Apache 2.4.25,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文为大家介绍了Ubuntu 16.04源码编译安装Apa ...

  8. centos下LAMP之源码编译安装httpd

    1 最好先安装组件 [root@localhost ~]# yum groupinstall additional development [root@localhost ~]# yum groupi ...

  9. CentOS 7 源码编译安装 PostgreSQL 11.2

    环境 系统版本 Centos7.6 工具:xshell6 PostgreSql: postgresql-11.2.tar.gz 安装部署 安装前准备 官网下载PostgreSQL 11.2源码地址:h ...

最新文章

  1. “大型票务系统”和“实物电商系统”的数据库选型
  2. 磁盘剩余空间策略_如何无损扩展C盘空间大小,这一招足够!
  3. Spark:如何替换sc.parallelize(List(item1,item2)).collect().foreach(row={})为并行?
  4. 【MySQL】Mysql索引优化与底层数据结构深入剖析 - 笔记
  5. 工作133:nexttick的使用
  6. python字符串转义序列_Python | 忽略字符串中的转义序列
  7. 彭荣新:喜马拉雅自研网关架构演进过程
  8. ASI进行POST网络请求
  9. Zen Coding Visual Studio plugin 配置
  10. Django update用法
  11. 白话理解傅里叶变换原理(时域频域)
  12. 【PhotoShop基础A篇】磨皮/图层/液化
  13. 手把手制作前端图标字体
  14. 益企工程云:成长型建筑企业专属的工程项目管理软件
  15. switch调试软件+金手指
  16. 打印网页去掉不相关信息
  17. 复制 python cache 文件到预训练模型
  18. 程序员:孤独的人是可耻的!
  19. 希捷Exos 18T硬盘性能怎么样,开箱测评
  20. 计算机上网记录怎么清除,如何清除浏览器缓存及上网痕迹 清除浏览器上网痕迹的方法...

热门文章

  1. 一天掌握Python基础,一篇文章就够了 #全教程 #无遗漏 #知识点 #小项目
  2. Unity之UGUI的学习(六):Toggle(开关)
  3. Vim怎么跳到最后一行和首行
  4. 基于SVD法求解激光跟踪仪坐标系转换关系
  5. [附源码]计算机毕业设计springboot农产品销售网站
  6. 用mysql查询女生中最高分_mySql数据库基础
  7. 设置linux系统时间为北京时间
  8. 解决“Fence桌面软件无法删除”的麻烦
  9. 16电口8个百兆SFP插糟+4个千兆SPF插糟(光电可选 )工业交换机
  10. python获取指定目录下的所有指定后缀的文件名