ceph部署

摘要:
注意ceph-deploy-xxxxx。noarch rpm仅由部署节点使用。其他节点不需要它。部署节点还需要安装其余的rpm。在部署节点上,安装ceph deploy。在root下,输入下载的rpm包目录并执行:yumlocainstall-y/*注意:如果报告错误如下:#安装依赖包python分发#删除源rdo版本yunwei。repo#安装

一、部署准备:

准备5台虚拟机(linux系统为centos7.6版本)

1台部署节点(配一块硬盘,运行ceph-depoly)

3台ceph节点(每台配置两块硬盘,第一块为系统盘并运行mon,第二块作为osd数据盘)

1台客户端(可以使用ceph提供的文件系统,块存储,对象存储)

(1)所有ceph集群节点(包括客户端)设置静态域名解析;

127.0.0.1localhost localhost.localdomain localhost4 localhost4.localdomain4
::1localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.24.11dlp
192.168.24.8controller
192.168.24.9compute
192.168.24.10 storage

(2)所有集群节点(包括客户端)创建cent用户,并设置密码,后执行如下命令:

useradd cent && echo "123" | passwd --stdin cent

echo
-e 'Defaults:cent !requiretty cent ALL = (root) NOPASSWD:ALL' | tee /etc/sudoers.d/ceph
chmod
440 /etc/sudoers.d/ceph

(3)在部署节点切换为cent用户,设置无密钥登陆各节点包括客户端节点

su – cent

ceph@dlp15:
17:01~#ssh-keygen
ceph@dlp15:
17:01~#ssh-copy-id controller
ceph@dlp15:
17:01~#ssh-copy-id compute
ceph@dlp15:
17:01~#ssh-copy-id storage
ceph@dlp15:
17:01~#ssh-copy-id dlp

(4)在部署节点切换为cent用户,在cent用户家目录,设置如下文件:vi~/.ssh/config# create new ( define all nodes and users )

su – cent

cd .ssh
vim config
Host dlp Hostname dlp User cent Host controller Hostname controller User cent Host compute Hostname compute User cent Host storage Hostname storage User cent
chmod
600 ~/.ssh/config

二、所有节点配置国内ceph源:

(1)all-node(包括客户端)在/etc/yum.repos.d/创建 ceph-yunwei.repo

cd /etc/yum.repos.d

vim ceph
-yunwei.repo
[ceph
-yunwei] name=ceph-yunwei-install baseurl=https://mirrors.aliyun.com/centos/7.6.1810/storage/x86_64/ceph-jewel/ enable=1gpgcheck=0

(2)到国内ceph源中https://mirrors.aliyun.com/centos/7.6.1810/storage/x86_64/ceph-jewel/下载如下所需rpm包。注意:红色框中为ceph-deploy的rpm,只需要在部署节点安装,下载需要到https://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/中找到最新对应的ceph-deploy-xxxxx.noarch.rpm 下载

ceph-10.2.11-0.el7.x86_64.rpm
ceph-base-10.2.11-0.el7.x86_64.rpm
ceph-common-10.2.11-0.el7.x86_64.rpm
ceph-deploy-1.5.39-0.noarch.rpm
ceph-devel-compat-10.2.11-0.el7.x86_64.rpm
cephfs-java-10.2.11-0.el7.x86_64.rpm
ceph-fuse-10.2.11-0.el7.x86_64.rpm
ceph-libs-compat-10.2.11-0.el7.x86_64.rpm
ceph-mds-10.2.11-0.el7.x86_64.rpm
ceph-mon-10.2.11-0.el7.x86_64.rpm
ceph-osd-10.2.11-0.el7.x86_64.rpm
ceph-radosgw-10.2.11-0.el7.x86_64.rpm
ceph-resource-agents-10.2.11-0.el7.x86_64.rpm
ceph-selinux-10.2.11-0.el7.x86_64.rpm
ceph-test-10.2.11-0.el7.x86_64.rpm
libcephfs1-10.2.11-0.el7.x86_64.rpm
libcephfs1-devel-10.2.11-0.el7.x86_64.rpm
libcephfs_jni1-10.2.11-0.el7.x86_64.rpm
libcephfs_jni1-devel-10.2.11-0.el7.x86_64.rpm
librados2-10.2.11-0.el7.x86_64.rpm
librados2-devel-10.2.11-0.el7.x86_64.rpm
libradosstriper1-10.2.11-0.el7.x86_64.rpm
libradosstriper1-devel-10.2.11-0.el7.x86_64.rpm
librbd1-10.2.11-0.el7.x86_64.rpm
librbd1-devel-10.2.11-0.el7.x86_64.rpm
librgw2-10.2.11-0.el7.x86_64.rpm
librgw2-devel-10.2.11-0.el7.x86_64.rpm
python-ceph-compat-10.2.11-0.el7.x86_64.rpm
python-cephfs-10.2.11-0.el7.x86_64.rpm
python-rados-10.2.11-0.el7.x86_64.rpm
python-rbd-10.2.11-0.el7.x86_64.rpm
rbd-fuse-10.2.11-0.el7.x86_64.rpm
rbd-mirror-10.2.11-0.el7.x86_64.rpm
rbd-nbd-10.2.11-0.el7.x86_64.rpm

(3)将下载好的rpm拷贝到所有节点,并安装。注意ceph-deploy-xxxxx.noarch.rpm 只有部署节点用到,其他节点不需要,部署节点也需要安装其余的rpm

(4)在部署节点(cent用户下执行):安装 ceph-deploy,在root用户下,进入下载好的rpm包目录,执行:

yum localinstall -y ./*

注意:如遇到如下报错:

ceph部署第1张

处理办法:

#安装依赖包
python-distribute
#将这个源移走
rdo-release-yunwei.repo 
#在安装ceph-deploy-1.5.39-0.noarch.rpm
yum localinstall ceph-deploy-1.5.39-0.noarch.rpm -y
#查看版本:
ceph -v

(5)在部署节点(cent用户下执行):配置新集群

ceph-deploy newcontroller compute storage

vim ./ceph.conf

#添加:

osd_pool_default_size = 2
可选参数如下:
public_network = 192.168.254.0/24cluster_network = 172.16.254.0/24osd_pool_default_size = 3osd_pool_default_min_size = 1osd_pool_default_pg_num = 8osd_pool_default_pgp_num = 8osd_crush_chooseleaf_type = 1
[mon]
mon_clock_drift_allowed = 0.5
[osd]
osd_mkfs_type =xfs
osd_mkfs_options_xfs = -f
filestore_max_sync_interval = 5filestore_min_sync_interval = 0.1filestore_fd_cache_size = 655350filestore_omap_header_cache_size = 655350filestore_fd_cache_random = trueosd op threads = 8osd disk threads = 4filestore op threads = 8max_open_files = 655350

(6)在部署节点执行(cent用户下执行):所有节点安装ceph软件

所有节点有如下软件包:

root@rab116:13:59~/cephjrpm#ls
ceph-10.2.11-0.el7.x86_64.rpm               ceph-resource-agents-10.2.11-0.el7.x86_64.rpm    librbd1-10.2.11-0.el7.x86_64.rpm
ceph-base-10.2.11-0.el7.x86_64.rpm          ceph-selinux-10.2.11-0.el7.x86_64.rpm            librbd1-devel-10.2.11-0.el7.x86_64.rpm
ceph-common-10.2.11-0.el7.x86_64.rpm        ceph-test-10.2.11-0.el7.x86_64.rpm               librgw2-10.2.11-0.el7.x86_64.rpm
ceph-devel-compat-10.2.11-0.el7.x86_64.rpm  libcephfs1-10.2.11-0.el7.x86_64.rpm              librgw2-devel-10.2.11-0.el7.x86_64.rpm
cephfs-java-10.2.11-0.el7.x86_64.rpm        libcephfs1-devel-10.2.11-0.el7.x86_64.rpm        python-ceph-compat-10.2.11-0.el7.x86_64.rpm
ceph-fuse-10.2.11-0.el7.x86_64.rpm          libcephfs_jni1-10.2.11-0.el7.x86_64.rpm          python-cephfs-10.2.11-0.el7.x86_64.rpm
ceph-libs-compat-10.2.11-0.el7.x86_64.rpm   libcephfs_jni1-devel-10.2.11-0.el7.x86_64.rpm    python-rados-10.2.11-0.el7.x86_64.rpm
ceph-mds-10.2.11-0.el7.x86_64.rpm           librados2-10.2.11-0.el7.x86_64.rpm               python-rbd-10.2.11-0.el7.x86_64.rpm
ceph-mon-10.2.11-0.el7.x86_64.rpm           librados2-devel-10.2.11-0.el7.x86_64.rpm         rbd-fuse-10.2.11-0.el7.x86_64.rpm
ceph-osd-10.2.11-0.el7.x86_64.rpm           libradosstriper1-10.2.11-0.el7.x86_64.rpm        rbd-mirror-10.2.11-0.el7.x86_64.rpm
ceph-radosgw-10.2.11-0.el7.x86_64.rpm       libradosstriper1-devel-10.2.11-0.el7.x86_64.rpm  rbd-nbd-10.2.11-0.el7.x86_64.rpm

所有节点安装上述软件包(包括客户端):

yum localinstall ./*-y

(7)在部署节点执行,所有节点安装ceph软件

ceph-deploy install dlp controller compute storage

(8)在部署节点初始化集群(cent用户下执行):

ceph-deploy mon create-initial

(9)每个节点将第二块硬盘做分区(注意,存储节点的磁盘是sdc

fdisk /dev/sdb

列出节点磁盘

ceph-deploy disk list controller

擦净节点磁盘

ceph-deploy disk zap controller:/dev/sdb1

(10)准备Object Storage Daemon:

ceph-deploy osd prepare controller:/dev/sdb1 compute:/dev/sdb1 storage:/dev/sdb1

(11)激活Object Storage Daemon:

ceph-deploy osd activate controller:/dev/sdb1 compute:/dev/sdb1 storage:/dev/sdb1

(12)在部署节点transfer config files

ceph-deploy admin dlp controller compute storage

(每个节点做)sudo chmod
644 /etc/ceph/ceph.client.admin.keyring

(13)在ceph集群中任意节点检测:

ceph -s

三、客户端设置:

(1)客户端也要有cent用户:

useradd cent && echo "123" | passwd --stdin cent

echo
-e 'Defaults:cent !requiretty cent ALL = (root) NOPASSWD:ALL' | tee /etc/sudoers.d/ceph
chmod440
/etc/sudoers.d/ceph

在部署节点执行,安装ceph客户端及设置:

ceph-deploy install controller

ceph-deploy admin controller

(2)客户端执行

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

(3)客户端执行,块设备rdb配置:

创建rbd:rbd create disk01(起的名字) --size 10G(指定rdb大小) --image-feature layering
删除:rbd rm disk01(rdb名字)
列示rbd:rbd ls –l

现在只是创建好了一块10G的硬盘,要想用的话,还需要映射

映射rbd的image map:sudo rbd map disk01
取消映射:sudo rbd unmap disk01
显示map:rbd showmapped

映射完就可以用lsblk查看到这块硬盘了,但还需要格式化挂载才可以用

格式化disk01文件系统xfs:sudo mkfs.xfs /dev/rbd0
挂载硬盘:sudo mount /dev/rbd0 /mnt
验证是否挂着成功:df -hT

如果不想用这块硬盘了,怎么办?

umonut /dev/rbd0 /mnt

sudo rbd unmap disk01

lsblk

rbd rm disk01

(4)File System配置:

在部署节点执行,选择一个node来创建MDS:

ceph-deploy mds create node1

以下操作在node1上执行:

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

在MDS节点node1上创建 cephfs_data 和 cephfs_metadata 的 pool

ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 128

开启pool:

ceph fs new cephfs cephfs_metadata cephfs_data
显示ceph fs:
ceph fs ls

ceph mds stat

以下操作在客户端执行,安装ceph-fuse:

yum -y install ceph-fuse

获取admin key:

sshcent@node1"sudo ceph-authtool -p /etc/ceph/ceph.client.admin.keyring" >admin.key

chmod600 admin.key

挂载ceph-fs:

mount-t ceph node1:6789:/ /mnt -o name=admin,secretfile=admin.key

df-h

停止ceph-mds服务:

systemctl stop ceph-mds@node1

ceph mds fail
0
ceph fs rm cephfs
--yes-i-really-mean-it
ceph osd lspools
显示结果:
0 rbd,1 cephfs_data,2cephfs_metadata,
ceph osd pool rm cephfs_metadata cephfs_metadata
--yes-i-really-really-mean-it

四、删除环境:

ceph-deploy purge dlp node1 node2 node3 controller

ceph
-deploy purgedata dlp node1 node2 node3 controller
ceph
-deploy forgetkeys
rm
-rf ceph*

免责声明:文章转载自《ceph部署》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇npm配置文件mysql 创建函数下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

git分支概念与项目中的应用

文档:https://git-scm.com/book/zh/v2/Git-分支-分支简介 分支理解 master分支是项目在创建时候的默认分支,除此之外,它并没有更多的含义。 剩下的 “开发分支”,“灰度分支”, “预发布分支”, “需求分支”,“测试分支” 都是根据项目和需求约定的。它们本质上只是一个分支而已。 分支在项目中的应用 1、首先,我们创...

1.3 LVM条带化

1、什么是条带化 磁盘冲突:当多个进程同时访问一个磁盘时,可能会出现磁盘冲突。磁盘系统对访问次数(每秒的IOPS)和数据传输速率(读写速率,TPS)有限制。当达到这些限制时,后面需要访问磁盘的进程就需要挂起等待,这就是磁盘冲突。避免磁盘冲突是优化I/O性能的一个重要目标。   条带化技术:将I/O负载均衡到多个物理磁盘上的技术。条带化技术将一块连续的数据分...

带你由浅入深探索webpack4(一)

 相信你或多或少也听说过webpack、gulp等这些前端构建工具。近年来webpack越来越火,可以说成为了前端开发者必备的工具。如果你有接触过vue或者react项目,我想你应该对它有所了解。 这几天我重新整理了一下webpack中知识点,把一些常用到的总结出来,希望能帮助到大家以及加深自己对webpack的理解。 (由于我在写这篇文章的时候webpa...

树莓派与Arduino串口通信

咳,时隔多月又回到了熟悉的博客园。 从现在开始重新去培养写博客的习惯。 主要是用于科研技术方面的,去记录一些我的学习和思考。 会把问题尽量的具体化,新手化 一是记录方便回忆,二是梳理,三也是希望为遇到相关问题的朋友提供多多少少的借鉴和帮助吧 回归正题,如何实现树莓派与Arduino串口通信 首先是接线方式 一、树莓派与arduino通过USB进行通信 1、...

react 简单搭建

1.新建一个文件夹 2.执行npm init 3.整理新建工程目录结构,包含必要文件index.html 和 index.js 4.安装react 、react-dom 5. 安装webpack(穿件webpack.config.js文件) npm install --save-dev webpack 6.安装Babel编译器(创建babel.confi...

Linux初识(转)

 文件系统是linux的一个十分基础的知识,同时也是学习linux的必备知识。     本文将站在一个较高的视图来了解linux的文件系统,主要包括了linux磁盘分区和目录、挂载基本原理、文件存储结构、软链接硬链接、和常见目录的介绍。相信有了这些知识对于深入的学习linux会有一定的帮助。文章例子主要是基于ubuntu发行版。     如有不对之处请大家...