作者:吴香伟 发表于 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. CSV表格读取

    读取CSV表格需要CSV表格的编码格式为UTF-8 ,这个脚本中有些是为了方便使用封装的dll 不过都是一些简单的实现,自己实现也很容易,可做参考. /// <summary> /// 构 ...

  2. MFC 如何改变对话框的默认背景颜色(转)

    下面介绍三种方法:实现改变对话框的默认背景颜色:   (1)可以在CLotteryApp::InitInstance()设置更新对话框的背景颜色       调用SetDialogBkColor(RG ...

  3. Centos下安装Mongodb

    转自:http://nnzhp.cn/article/10/ Mongodb是一种nosql类型的数据库,高性能.易部署.易使用的特点在IT行业非常流行. 下面介绍一下mongodb的安装方式,这里我 ...

  4. delphi FMX 数字下拉滑动

    滑动输入数字 NumberBox控件 HorzIncrement:划动自动增加输入值的步长 combobox控件 http://docwiki.embarcadero.com/RADStudio/Be ...

  5. 实数---Currency讲解

      Currency 实际上是 Int64 的变体,Int64/10000 就是实际的值 

  6. eclipse技巧,快捷键

    快捷键: ctrl + 1,快速修复 ctrl + d, 快捷删除行 shift + Enter,快速移动光标到下一行 ctrl + F11,运行代码 alt + ↑/↓,快速移动行 ctrl + a ...

  7. 初尝 JFinal 项目(二)

    这里以Roles角色表修改功能做一个例子 RolesController /** * 角色管理控制类 * @author 御手洗红豆 */public class RolesController ex ...

  8. SQL Server中Rowcount与@@Rowcount的用法

    rowcount的用法: rowcount的作用就是用来限定后面的sql在返回指定的行数之后便停止处理,比如下面的示例, set rowcount 10select * from 表A 这样的查询只会 ...

  9. css书写规范及特殊样式

    1.CSS书写顺序: (1)位置:position.top.right.z-index.display.float (2)大小:width.height.padding.margin (3)文字系列: ...

  10. 缓存工具CacheUtil - 并发环境的缓存值存取

    缓存工具CacheUtil - 并发环境的缓存值存取 目的 适合并发环境的缓存值存取 读取缓存值时,只需关注数据来源.不用再关注将源数据存入缓存等后续处理. 应用程序N次读取数据时,数据源读取一次,缓 ...