作者:吴香伟 发表于 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. my sql中join的操作

    SQL标准中的Join的类型:  首先,设置表employees和department的数据为:  1.inner join … on操作类型 内连接inner join是基于连接谓词将两张表(如A和 ...

  2. 【zZ】OpenCV HOGDescriptor 参数图解

    http://blog.csdn.net/raodotcong/article/details/6239431

  3. NFS服务器原理

    NFS服务器   port:2049      NFS 为 Network FileSystem 的简称,它的目的就是想让不同的机器.不同的操作系统可以彼此分享个别的档案啦!目前在 Unix Like ...

  4. Sql Server中不常用的表运算符之UNPIVOT

    在Sql Server中不常用的表运算符之PIVOT中,介绍了PIVOT表运算符,现在来说说与之相对应的另一个表运算符UNPIVOT. 从名字可以看出,这个运算符的作用与PIVOT刚好相反,是将一行的 ...

  5. 16.2.2 Space Needed for keys

    myisam表使用btree索引,可以粗略计算出索引文件的大小,使用(key_length+4)/0.67,全部key的总和,全部key被排序顺序插入和表没有被任何压缩的时候,这是最坏的情况 stri ...

  6. MediaBrowserService 音乐播放项目

    MediaBrowserService 音乐播放项目,本项目主要有如下功能: (1):支持播放在线音乐 (2):按住home键退出页面后显示通知栏部分播放提示,  (3) : 支持切换上下首歌曲 本项 ...

  7. shell编程学习

    1.项目中用到Linux的crontrab Linux下的定时执行主要是使用crontab文件中加入定制计划来执行,但是也不是非常复杂,基本上用过一遍就能记住了,关键是要记住/var/spool/cr ...

  8. C#Json序列化数据库对象

    //该方法使用NewtonJson.dll插件,需要引用 //using Newtonsoft.Json;//using Newtonsoft.Json.Converters; var data = ...

  9. 配置 samba 实现文件共享

    用于实现文件共享 netstat -apn|grep smb 可以按到 smb服务,需要开启139 .445端口号 需要在防火墙添加如下规则vi /etc/sysconfig/iptables -A ...

  10. msdn webcast 下载地址整理

    http://blog.csdn.net/he_8134/article/details/2069194