文档章节

ceph技巧总结(一)

加油2018
 加油2018
发布于 2014/11/04 16:11
字数 1546
阅读 485
收藏 5
点赞 0
评论 0

1. ceph rbd在线resize

扩容前

[root@mon0 ceph]# rbd create myrbd/rbd1 -s 1024 --image-format=2
[root@mon0 ceph]# rbd ls myrbd
rbd1
[root@mon0 ceph]# rbd info myrbd/rbd1
rbd image 'rbd1':
	size 1024 MB in 256 objects
	order 22 (4096 kB objects)
	block_name_prefix: rbd_data.12ce6b8b4567
	format: 2
	features: layering

扩容

[root@mon0 ceph]# rbd resize myrbd/rbd1 -s 2048
Resizing image: 100% complete...done.
在rbd1未格式化和挂载之前,直接resize就可以了。如果rbd1已经格式化并挂载了,需要一些额外的操作:
[root@mon0 ceph]# rbd map myrbd/rbd1
[root@mon0 ceph]# rbd showmapped
id pool  image    snap device    
0  test  test.img -    /dev/rbd0 
1  myrbd rbd1     -    /dev/rbd1 
[root@mon0 ceph]# mkfs.xfs /dev/rbd1
log stripe unit (4194304 bytes) is too large (maximum is 256KiB)
log stripe unit adjusted to 32KiB
meta-data=/dev/rbd1              isize=256    agcount=9, agsize=64512 blks
         =                       sectsz=512   attr=2, projid32bit=0
data     =                       bsize=4096   blocks=524288, imaxpct=25
         =                       sunit=1024   swidth=1024 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@mon0 ceph]# mount /dev/rbd1 /mnt
[root@mon0 ceph]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       529G   20G  482G   4% /
tmpfs            16G  408K   16G   1% /dev/shm
/dev/sdb        559G   33G  527G   6% /openstack
/dev/sdc        1.9T   75M  1.9T   1% /cephmp1
/dev/sdd        1.9T   61M  1.9T   1% /cephmp2
/dev/rbd1       2.0G   33M  2.0G   2% /mnt
[root@mon0 ceph]# rbd resize myrbd/rbd1 -s 4096
Resizing image: 100% complete...done.
[root@mon0 ceph]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       529G   20G  482G   4% /
tmpfs            16G  408K   16G   1% /dev/shm
/dev/sdb        559G   33G  527G   6% /openstack
/dev/sdc        1.9T   75M  1.9T   1% /cephmp1
/dev/sdd        1.9T   61M  1.9T   1% /cephmp2
/dev/rbd1       2.0G   33M  2.0G   2% /mnt
[root@mon0 ceph]# xfs_growfs /mnt
meta-data=/dev/rbd1              isize=256    agcount=9, agsize=64512 blks
         =                       sectsz=512   attr=2, projid32bit=0
data     =                       bsize=4096   blocks=524288, imaxpct=25
         =                       sunit=1024   swidth=1024 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 524288 to 1048576
[root@mon0 ceph]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       529G   20G  482G   4% /
tmpfs            16G  408K   16G   1% /dev/shm
/dev/sdb        559G   33G  527G   6% /openstack
/dev/sdc        1.9T   75M  1.9T   1% /cephmp1
/dev/sdd        1.9T   61M  1.9T   1% /cephmp2
/dev/rbd1       4.0G   33M  4.0G   1% /mnt
还有一种情况是,rbd1已经被挂载到一个vm上:
virsh domblklist myvm
rbd resize myrbd/rbd1
#这里需要通过virsh blockresize进行操作
virsh blockresize --domain myvm --path vdb --size 100G
rbd info myrbd/rbd1

2. 利用ceph-deploy

利用ceph-deploy安装ceph非常简单,可以在安装后根据需要调整ceph.conf。

mkdir ceph-deploy; cd ceph-deploy
ceph-deploy install $cluster
ceph-deploy new cephnode-01 cephnode-02 cephnode-03
ceph-deploy --overwrite-conf mon create cephnode-01 cephnode-02 cephnode-03
ceph-deploy gatherkeys cephnode-01
ceph-deploy osd create \
    cephnode-01:/dev/sdb:/dev/sda5 \
    cephnode-01:/dev/sdc:/dev/sda6 \
    cephnode-01:/dev/sdd:/dev/sda7 \
    cephnode-02:/dev/sdb:/dev/sda5 \
    cephnode-02:/dev/sdc:/dev/sda6 \
    cephnode-02:/dev/sdd:/dev/sda7 \
    cephnode-03:/dev/sdb:/dev/sda5 \
    cephnode-03:/dev/sdc:/dev/sda6 \
    cephnode-03:/dev/sdd:/dev/sda7 \
    cephnode-04:/dev/sdb:/dev/sda5 \
    cephnode-04:/dev/sdc:/dev/sda6 \
    cephnode-04:/dev/sdd:/dev/sda7 \
    cephnode-05:/dev/sdb:/dev/sda5 \
    cephnode-05:/dev/sdc:/dev/sda6 \
    cephnode-05:/dev/sdd:/dev/sda7
利用ceph-deploy进行卸载:
ceph-deploy purgedata $cluster
ceph-deploy purge $cluster

for host in $cluster
  do
    ssh $host <<EOF
      sudo dd if=/dev/zero of=/dev/sdb bs=1M count=100
      sudo dd if=/dev/zero of=/dev/sdc bs=1M count=100
      sudo dd if=/dev/zero of=/dev/sdd bs=1M count=100
      sudo sgdisk -g --clear /dev/sdb
      sudo sgdisk -g --clear /dev/sdc
      sudo sgdisk -g --clear /dev/sdd
    EOF
  done

3. 删除rbd前先删除相应快照

rbd snap ls myrbd/rbd1
SNAPID NAME       SIZE 
    10 snap1 102400 KB 
    12 snap2 102400 KB 
rbd snap purge myrbd/rbd1
Removing all snapshots: 100% complete...done.
rbd rm myrbd/rbd1
Removing image: 100% complete...done.

4. 测试rbd snap

创建并挂载rbd1:

[root@mon0 ceph]# rbd create myrbd/rbd1 -s 1024 --image-format=2
[root@mon0 ceph]# rbd map myrbd/rbd1
[root@mon0 ceph]# rbd showmapped
id pool  image    snap device    
0  test  test.img -    /dev/rbd0 
1  myrbd rbd1     -    /dev/rbd1 
[root@mon0 ceph]# mkfs.xfs /dev/rbd1
log stripe unit (4194304 bytes) is too large (maximum is 256KiB)
log stripe unit adjusted to 32KiB
meta-data=/dev/rbd1              isize=256    agcount=9, agsize=31744 blks
         =                       sectsz=512   attr=2, projid32bit=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=1024   swidth=1024 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@mon0 ceph]# blkid|grep rbd1
/dev/rbd1: UUID="643b509f-406b-411b-b3a5-fa220fbdfe47" TYPE="xfs" 
[root@mon0 ceph]# mount /dev/rbd1 /mnt
[root@mon0 ceph]# mount | grep rbd1
/dev/rbd1 on /mnt type xfs (rw)
创建snap并回滚:
[root@mon0 ceph]# rbd snap ls myrbd/rbd1
SNAPID NAME     SIZE 
     2 snap1 1024 MB 
[root@mon0 ceph]# rbd snap rollback myrbd/rbd1@snap1
Rolling back to snapshot: 100% complete...done.
[root@mon0 ceph]# ls /mnt
v2
[root@mon0 ceph]# umount /mnt
[root@mon0 ceph]# mount /dev/rbd1 /mnt
[root@mon0 ceph]# ls /mnt
v1
通过快照挂载:
[root@mon0 ceph]# rbd map myrbd/rbd1@snap1
[root@mon0 ceph]# rbd showmapped
id pool  image    snap  device    
0  test  test.img -     /dev/rbd0 
1  myrbd rbd1     -     /dev/rbd1 
2  myrbd rbd1     snap1 /dev/rbd2 

[root@mon0 ceph]# mount -t xfs -o ro,norecovery,nouuid /dev/rbd2 /tmp
[root@mon0 ceph]# ls /tmp
v1

5. 定位文件位置

利用rados put上传并利用map查看文件

[root@osd2 software]# md5sum epel-release-6-8.noarch.rpm 
2cd0ae668a585a14e07c2ea4f264d79b  epel-release-6-8.noarch.rpm
[root@osd2 software]# rados put -p myrbd epel.rpm ./epel-release-6-8.noarch.rpm 
[root@osd2 software]# ceph osd map myrbd epel.rpm
osdmap e88 pool 'myrbd' (4) object 'epel.rpm' -> pg 4.e9ddf5be (4.be) -> up ([4,2], p4) acting ([4,2], p4)
查看所在位置并验证:
[root@osd2 software]# ceph osd tree
# id	weight	type name	up/down	reweight
-1	10.92	root default
-2	3.64		host mon0
0	1.82			osd.0	up	1	
1	1.82			osd.1	up	1	
-3	3.64		host osd1
2	1.82			osd.2	up	1	
3	1.82			osd.3	up	1	
-4	3.64		host osd2
4	1.82			osd.4	up	1	
5	1.82			osd.5	up	1	
[root@osd2 software]# cd /cephmp1/current/4.be_head/
[root@osd2 4.be_head]# ls
epel.rpm__head_E9DDF5BE__4
[root@osd2 4.be_head]# md5sum epel.rpm__head_E9DDF5BE__4 
2cd0ae668a585a14e07c2ea4f264d79b  epel.rpm__head_E9DDF5BE__4
[root@osd2 4.be_head]# ll -h
total 20K
-rw-r--r--. 1 root root 15K Nov  4 17:59 epel.rpm__head_E9DDF5BE__4
利用rbd input上传后进行验证:
[root@osd2 software]# touch hello.txt
[root@osd2 software]# echo "hello world" >> hello.txt
[root@osd2 software]# rbd import ./hello.txt myrbd/hello.txt
Importing image: 100% complete...done.
[root@osd2 software]# rbd info myrbd/hello.txt
rbd image 'hello.txt':
	size 12 bytes in 1 objects
	order 22 (4096 kB objects)
	block_name_prefix: rb.0.1365.6b8b4567
	format: 1
[root@osd2 software]# rados ls -p myrbd
rbd_data.13446b8b4567.00000000000000ba
rbd_directory
rbd_data.13446b8b4567.000000000000007d
rbd_data.13446b8b4567.000000000000007c
rbd_data.13446b8b4567.000000000000005d
rbd_data.13446b8b4567.000000000000007e
rbd_data.13446b8b4567.00000000000000ff
rb.0.1365.6b8b4567.000000000000
hello.txt.rbd
rbd_data.13446b8b4567.00000000000000d9
rbd_data.13446b8b4567.00000000000000f8
rbd_data.13446b8b4567.000000000000009b
rbd_data.13446b8b4567.0000000000000001
rbd_header.13446b8b4567
epel.rpm
rbd_data.13446b8b4567.000000000000001f
rbd_data.13446b8b4567.000000000000003e
rbd_id.rbd1
rbd_data.13446b8b4567.0000000000000000

#这样得到的位置信息是错误的
[root@osd2 software]# ceph osd map myrbd hello.txt
osdmap e88 pool 'myrbd' (4) object 'hello.txt' -> pg 4.d92fd82b (4.2b) -> up ([4,3], p4) acting ([4,3], p4)

#需要加上.rbd
[root@osd2 current]# ceph osd map myrbd hello.txt.rbd
osdmap e88 pool 'myrbd' (4) object 'hello.txt.rbd' -> pg 4.9b9bf373 (4.73) -> up ([3,1], p3) acting ([3,1], p3)
[root@osd2 current]# ssh osd1
[root@osd1 ~]# cd /cephmp2/current/4.73_head/
[root@osd1 4.73_head]# ll -h
total 8.0K
-rw-r--r-- 1 root root 112 Nov  4 18:08 hello.txt.rbd__head_9B9BF373__4
[root@osd1 4.73_head]# cat hello.txt.rbd__head_9B9BF373__4 
<<< Rados Block Device Image >>>
rb.0.1365.6b8b4567RBD001.005

#如果是普通的rbd块,format-1类型的rbd块:
#ceph osd map test test.img.rbd
#format-2类型的rbd块:
#ceph osd map test rbd_id.test.img

© 著作权归作者所有

共有 人打赏支持
加油2018
粉丝 150
博文 276
码字总数 243077
作品 0
海淀
架构师
Gluster vs Ceph:开源存储领域的正面较量

引言:开源存储软件Ceph和Gluster能够提供相似的特性并且能够为用户节省不小的开支。那么谁更快?谁又更易用呢? 开源的Ceph及Red Hat旗下的Gluster都是成熟的技术,但兴许不久之后就将经历某...

oschina
2014/02/21
7.9K
6
Installation【快速安装】

Installation【快速安装】 第1步:预检 在部署Ceph分布式存储集群,Ceph客户端和Ceph的节点之前,可能需要一些基本的配置工作。您还可以利用在Ceph的社区帮助文件的“入门”中获取帮助。 Pr...

天空冰雨
2015/03/25
0
0
利用ceph-deploy在ubuntu server14.04上部署ceph并进行其它配置

环境与说明 在ubuntu14.04 server上部署ceph-0.87;设置rbdmap自动挂载/卸载rbd块设备;利用带rbd支持的tgt导出iscsi的rbd块。 2. 安装ceph 1)配置hostname与无密码登录 root@mon0:/etc/cep...

加油2018
2014/11/11
0
16
苦尽甘来——Ceph中国社区2016

作者 | 孙琦 耿航校对 2016年12月11日,北京万寿宾馆,Ceph中国社区迎来了2016年最后一场活动,这是第一次、也是唯一一次全天的活动,到下午会议结束的一刻,整个会场仍然是满坑满谷,这也大...

Devin
2016/12/20
0
0
ceph0.80安装及使用(CentOS7/ceph-deploy)

Ceph的主要目标是设计成基于POSIX的没有单点故障的分布式文件系统,使数据能容错和无缝的复制。详见:http://www.oschina.net/p/ceph 目前大部分部署ceph基本都是在Ubuntu,因为它的内核默认...

fkkeee
2014/09/22
0
4
Ceph集群由Jewel版本升级到Luminous版本

参考文档 https://www.virtualtothecore.com/en/upgrade-ceph-cluster-luminous/ http://www.chinastor.com/distristor/11033L502017.html 缘起 首先看之前安装版本链接及测试 http://blog.......

minminmsn
07/11
0
0
架构设计:系统存储(28)——分布式文件系统Ceph(挂载)

(接上文《架构设计:系统存储(27)——分布式文件系统Ceph(安装)》) 3. 连接到Ceph系统 3-1. 连接客户端 完成Ceph文件系统的创建过程后,就可以让客户端连接过去。Ceph支持两种客户端挂...

yinwenjie
2017/04/14
0
0
Ceph 之 块设备、文件系统、对象存储的使用

上面左边是我的个人微信,如需进一步沟通,请加微信。 右边是我的公众号“Openstack私有云”,如有兴趣,请关注。 继上篇《Ceph 之 使用ceph-deploy部署ceph集群》,ceph集群搭建完成之后,接...

余伟兵
06/03
0
0
[喵咪Liunx(7)]Ceph分布式文件共享解决方案

前言 哈喽大家好呀! 这次给大家带来的Liunx软件分享是鼎鼎大名的Ceph分布式文件系统,笔者了解到Ceph也是遇到了一个问题就是在使用Kubeneters的时候在各个容器中都需要使用同一套文件,但是使用...

喵了_个咪
07/13
0
0
ceph文件系统与原生磁盘读写性能的比较

一.测试目的 获取ceph文件系统的读写性能,并与原生磁盘进行比较 二.硬件及网络环境 1.硬盘信息 磁盘(型号,类型,容量) CPU 客户端 ST1000DM003-1CH162;SATA;1T Intel(R) Core(TM) i3-4...

北_木
2014/05/29
0
35

没有更多内容

加载失败,请刷新页面

加载更多

下一页

about git flow

  昨天元芳做了git分支管理规范的分享,为了拓展大家关于git分支的认知,这里我特意再分享这两个关于git flow的链接,大家可以看一下。 Git 工作流程 Git分支管理策略   git flow本质上是...

qwfys
今天
1
0
Linux系统日志文件

/var/log/messages linux系统总日志 /etc/logrotate.conf 日志切割配置文件 参考https://my.oschina.net/u/2000675/blog/908189 dmesg命令 dmesg’命令显示linux内核的环形缓冲区信息,我们可...

chencheng-linux
今天
0
0
MacOS下给树莓派安装Raspbian系统

下载镜像 前往 树莓派官网 下载镜像。 点击 最新版Raspbian 下载最新版镜像。 下载后请,通过 访达 双击解压,或通过 unzip 命令解压。 检查下载的文件 ls -lh -rw-r--r-- 1 dingdayu s...

dingdayu
今天
0
0
spring boot使用通用mapper(tk.mapper) ,id自增和回显等问题

最近项目使用到tk.mapper设置id自增,数据库是mysql。在使用通用mapper主键生成过程中有一些问题,在总结一下。 1、UUID生成方式-字符串主键 在主键上增加注解 @Id @GeneratedValue...

北岩
今天
2
0
告警系统邮件引擎、运行告警系统

告警系统邮件引擎 cd mail vim mail.py #!/usr/bin/env python#-*- coding: UTF-8 -*-import os,sysreload(sys)sys.setdefaultencoding('utf8')import getoptimport smtplibfr......

Zhouliang6
今天
0
0
Java工具类—随机数

Java中常用的生成随机数有Math.random()方法及java.util.Random类.但他们生成的随机数都是伪随机的. Math.radom()方法 在jdk1.8的Math类中可以看到,Math.random()方法实际上就是调用Random类...

PrivateO2
今天
1
0
关于java内存模型、并发编程的好文

Java并发编程:volatile关键字解析    volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在...

DannyCoder
昨天
0
0
dubbo @Reference retries 重试次数 一个坑

在代码一中设置 成retries=0,也就是调用超时不用重试,结果DEBUG的时候总是重试,不是0吗,0就不用重试啊。为什么还是调用了多次呢? 结果在网上看到 这篇文章才明白 https://www.cnblogs....

奋斗的小牛
昨天
2
0
数据结构与算法3

要抓紧喽~~~~~~~放羊的孩纸回来喽 LowArray类和LowArrayApp类 程序将一个普通的Java数组封装在LowArray类中。类中的数组隐藏了起来,它是私有的,所以只有类自己的方法才能访问他。 LowArray...

沉迷于编程的小菜菜
昨天
0
0
spring boot应用测试框架介绍

一、spring boot应用测试存在的问题 官方提供的测试框架spring-boot-test-starter,虽然提供了很多功能(junit、spring test、assertj、hamcrest、mockito、jsonassert、jsonpath),但是在数...

yangjianzhou
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部