作者:吴香伟 发表于 2014/09/26

版权声明:可以任意转载,转载时务必以超链接形式标明文章原始出处和作者信息以及版权声明

本节主要参考官网的ADDING/REMOVING OSDS章节。

同步节点的时间

安装ntp:apt-get install ntp

NTP服务器:/etc/init.d/ntp start

NTP客户端:ntpdate -d snode01

安装MON

ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --set-uid=0 --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow'
ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring monmaptool --create --add snode01 192.168.7.101 --fsid 7f8f00ac-c059-46a6-b656-4a1ce781607b /tmp/monmap
mkdir /var/lib/ceph/mon/ceph-snode01
ceph-mon --mkfs -i snode01 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring

准备配置文件ceph.conf,并scp到集群的所有节点。

root@snode01:~# cat /etc/ceph/ceph.conf
[global]
fsid = 7f8f00ac-c059-46a6-b656-4a1ce781607b
mon initial members = snode01
mon host = 192.168.7.101
public network = 192.168.0.0/16
auth cluster required = none
auth service required = none
auth client required = none
osd journal size = 1024
filestore xattr use omap = ture
osd pool default size = 2
osd pool default pg num = 333
osd pool default pgp num = 333
osd crush chooseleaf type = 1

运行mon

start ceph-mon id=snode01

安装OSD

使用UUID创建OSD

root@snode01:~# uuidgen
b9b0cbf7-0313-4481-81e4-fd63b97af36c
root@snode01:~# ceph osd create b9b0cbf7-0313-4481-81e4-fd63b97af36c
0

创建OSD目录,并把磁盘挂载到该目录。注意,如果OSD编号为0,则OSD的目录为ceph-0;如果编号为1,则目录为ceph-1,以此类推。

root@snode02:~# mkdir /var/lib/ceph/osd/ceph-0
root@snode02:~# mkfs.ext4 /dev/sda5
root@snode02:~# mount /dev/sda5 /var/lib/ceph/osd/ceph-0/
root@snode02:~# mount | egrep sda5
/dev/sda5 on /var/lib/ceph/osd/ceph-0 type ext4 (rw)

初始化OSD的数据目录

root@snode02:~# ceph-osd -i 0 --mkfs --mkkey --osd-uuid b9b0cbf7-0313-4481-81e4-fd63b97af36

注册OSD的key权限

root@snode02:~#  ceph auth add osd.0 osd 'allow *' mon 'allow profile osd' -i /var/lib/ceph/osd/ceph-0/keyring
added key for osd.0

添加OSD节点到CRUSH MAP中

root@snode01:~# ceph osd crush add-bucket snode02 host
added bucket snode02 type host to crush map root@snode01:~# ceph osd crush move snode02 root=default
moved item id -2 name 'snode02' to location {root=default} in crush map root@snode01:~# ceph osd crush add osd.0 1.0 host=snode02
add item id 0 name 'osd.0' weight 1 at location {host=snode02} to crush map

启动OSD

root@snode02:~# start ceph-osd id=0
ceph-osd (ceph/0) start/running, process 4542

移除OSD节点

OSD节点存在两个维度的状态,第一个维度代表OSD是否正常运行,它包含up和down两种状态;第二个维度代表OSD是否在集群内部,它也有两个状态,分别是in和out。移除OSD节点时,先将OSD移出集群,这样集群就会开始数据迁移。

root@snode02:~# ceph osd out 0
osd.0 is already out.

停止OSD节点,让它变成down状态

root@snode02:~# /etc/init.d/ceph stop osd.0

从CRUSH MAP中删除OSD节点,可以通过ceph osd crush dump命令查看CRUSH MAP的变动。

root@snode02:~# ceph osd crush remove osd.0
removed item id 0 name 'osd.0' from crush map root@snode02:/var/lib/ceph/osd/ceph-0# ceph osd crush remove snode02
removed item id -2 name 'snode02' from crush map

删除OSD的Key权限

ceph auth del osd.0

移除OSD

root@snode02:/var/lib/ceph/osd/ceph-0# ceph osd rm 0
removed osd.0

查看OSD是否已经移除

root@snode02:/var/lib/ceph/osd/ceph-0# ceph osd tree
# id weight type name up/down reweight
-1 1 root default
-3 1 host snode03
1 1 osd.1 up 1 root@snode02:/var/lib/ceph/osd/ceph-0# ceph osd ls
root@snode02:/var/lib/ceph/osd/ceph-0# ceph osd dump

最后删除/var/lib/ceph/osd/ceph-{osd-num}目录,格式化挂载的磁盘。

ceph实践: 搭建环境的更多相关文章

  1. 从零开始针对 .NET 应用的 DevOps 运营实践 - 运行环境搭建

    一.Overview 最近的一段时间,在公司里我都在进行基于 Jenkins 和 SonarQube 配合已有的 Gitlab 搭建部门的持续集成环境的工作,虽然之前有使用过 GitHub Actio ...

  2. Python 搭建环境踩过的那些坑

    实践出真知,学习 Python 第六天,准备开始尝试写一些 Python 的实例.之前学习过程主要是参照的 廖雪峰老师的教程.搭建环境的过程,被很多坑围绕着. 版本选择 版本选择 Python 3.5 ...

  3. SOFARPC源码解析-搭建环境

    文档地址:https://www.sofastack.tech 简介摘要 SOFA 是蚂蚁金服自主研发的金融级分布式中间件,包含构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服 ...

  4. Xamarin 跨移动端开发系列(01) -- 搭建环境、编译、调试、部署、运行

    如果是.NET开发人员,想学习手机应用开发(Android和iOS),Xamarin 无疑是最好的选择,编写一次,即可发布到Android和iOS平台,真是利器中的利器啊!好了,废话不多说,就开始吧, ...

  5. AspectJ基础学习之二搭建环境(转载)

    AspectJ基础学习之二搭建环境(转载) 一.下载Aspectj以及AJDT 上一章已经列出了他的官方网站,自己上去download吧.AJDT是一个eclipse插件,开发aspectj必装,他可 ...

  6. app整体搭建环境:tabBar切换不同控制器的封装(自定义导航+自定义uiviewcontroler+系统自带tabbar+自定义tabbarController)

    首先,一个app的搭建环境非常重要.既要实现基本功能,又要考虑后期优化的性能. 现在很多应用不仅仅是系统自带的控制器,由于需求复杂,基本上需要自定义多控制器来管理. 新建一个BasicNavigati ...

  7. [转]phonegap 2.9 IOS Xcode 搭建环境

    phonegap 2.9 IOS Xcode 搭建环境   一:下载phoneGap2.9和安装Xcode5(目前最新版) 选择2.9是因为3.0以上坑爹版本编译神马的要在有网络情况. 二: 下载ph ...

  8. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.7. 配置资源与参数

    2.7.配置资源与参数 2.7.1. 修改主机名称 [root@linuxrac1 ~]# cd /etc/sysconfig [root@linuxrac1 sysconfig]# vi netwo ...

  9. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.6. 安装Oracle所依赖的必要包

    2.6. 安装Oracle所依赖的必要包 2.6.1. 检查Oracle所依赖的必要rpm包 [root@localhost /]#rpm -q binutils compat-libstdc elf ...

随机推荐

  1. 头像上传,拖拽,裁切 (非HTML5)版本

    演示地址: http://codeman35.itongyin.com:19002/v2/web_demo.html 功能: 支持滚轴放大缩小,鼠标拖动,裁切可视区域,裁切和图片处理都是后端操作.

  2. java上传xls文件

    using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System. ...

  3. closest应用(向上查找最近的资料)

    //新增网址信息function AddSitInfo(a) {    var obj = $(a).closest("td[name='POIRestaurant_Reference_UR ...

  4. docker在ubuntu14.04下的安装笔记

    本文主要是参考官网教程进行ubuntu14.04的安装. 下面是我的安装笔记. 笔记原件完整下载: 链接: https://pan.baidu.com/s/1dEPQ8mP 密码: gq2p

  5. Vim配置(k-vim)

    无意发现一个vim的插件 转载:http://www.cnblogs.com/yxy2829/p/5250587.html 截图 solarized主题 molokai主题 安装步骤 1. clone ...

  6. How-to: Enable User Authentication and Authorization in Apache HBase

    With the default Apache HBase configuration, everyone is allowed to read from and write to all table ...

  7. maven构建过程

    [转载]原地址:http://www.cnblogs.com/xdp-gacl/p/4051690.html 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自 ...

  8. web.config中的HttpCookie.HttpOnly属性

    Abstract: The program does not set the HttpCookie.HttpOnly property to true. Explanation: The defaul ...

  9. ZOJ

    某年浙大研究生考试的题目. 题目描述: 对给定的字符串(只包含'z','o','j'三种字符),判断他是否能AC. 是否AC的规则如下:1. zoj能AC:2. 若字符串形式为xzojx,则也能AC, ...

  10. Modern Operating Systems(Ⅰ)——2014.12.15

    进程   进程模型     进程就是一个正在执行的程序的实例  值得注意的是,若一个程序运行了两遍,则算作两个进程 创建进程 在通用系统中,有四种主要事件导致进程的创建 ①系统的初始化 ②执行了 正在 ...