ceph中rados对象创建以及文件上传与下载

一、将本地文件 /home/liangwl/file 文件拷贝到 cephpool 这个池中,并在pool中查看这个文件中的内容

环境:3台monitor,3个osd

查看pool

rados lspools

20170807ceph入门(一)——ceph中rados对象创建以及文件上传与下载

1. 我们先创建一个包含数据的file文件、一个ceph pool并且设置pool的副本数为3
$ echo "Hello ceph, I'm learning the data management part." > /home/liangwl/file
$ cat /home/liangwl/file
Hello ceph, I'm learning the data management part.
$ ceph osd pool create cephpool 32 32    #创建一个32个pg,32个pgd的池cephpool,如果进行ceph搭建的时候已经存在pool,可以不用额外创建,例                                                                     如可以选择上面已经存在的data、metadata、rbd作为pool
pool 'cephpool' created
$ ceph osd pool set cephpool size 3
set pool size to 3

2. 将文件写入到创建的pool中

put <obj-name> [infile]          write object
$ rados  put object1 /home/liangwl/file  -p cephpool     #在cephpool下创建一个名为object1的对象,将本地文件file拷贝到这个pool的对象
$ rados ls -p cephpool
object1

#如果单单只在mypool这个池中创建对象object2,不拷贝文件的指令为:

rados create object2 -p mypool


3. 查看object1的pg map
$ ceph osd map cephpool object1

osdmap e19 pool 'cephpool' (3) object 'object1' -> pg 3.bac5debc (3.1c) -> up ([2,0,1], p2) acting ([2,0,1], p2)
其中,
osdmap e19OSD map的版本号
pool 'cephpool' (3) pool的名字和ID
object 'object1'object的名字
pg 3.bac5debc (3.1c)    pg number,即3.1c
up ([0,1,2], p0)OSD up set,因为我们设置的是3副本,所以每个pg都会被存放在3个OSD上
up ([2,0,1], p2) acting set,即OSD.0(primary)、OSD.1(secondary)和OSD.2(tertiary)

笔者的osd路径为/data/osd/osd.$id,在该路径下有一个current文件夹,因为前面设置了副本为3,本次实验中涉及到的也是3个osd,所以每个osd中都可以找到这个file存储的pg,以osd.1为例:

$cd /data/osd/osd.1/current

$ls -l | grep3.1c

drwxr-xr-x 2 root root    38 Aug  7 11:26 3.1c_head

$cd  3.1c_head

$ll

-rw-r--r-- 1 root root 50 Aug  7 11:26 object1__head_BAC5DEBC__3

$cat object1__head_BAC5DEBC__3

Hello ceph, I'm learning the data management part.


其他指令:

查看所有的osd的信息:ceph osd tree

20170807ceph入门(一)——ceph中rados对象创建以及文件上传与下载


二、将pool对象中的文件拷贝到本地

使用get命令代替put命令

举例,将刚刚上传的file文件拷贝到本机,重命名为getfile

get <obj-name> [outfile]         fetch object

$rados get object1 /home/liangwl/getfile -p cephpool

$cat  /home/liangwl/getfile

hello ceph,i'm learning the data management part.


其他指令学习:

1、列出所有的ceph用户 ceph auth list   ,   还可以使用-o filepath 将输出打印在文件中,  如 ceph auth list -o /home/liangwl/out.txt
20170807ceph入门(一)——ceph中rados对象创建以及文件上传与下载
20170807ceph入门(一)——ceph中rados对象创建以及文件上传与下载

2、创建用户
创建用户会添加一个用户名,秘钥和capability 
a)ceph auth add:这个命令可以创建用户,产生秘钥和添加一些指定的capabilities。
b)ceph auth get-or-create:这个命令会返回一个包含用户名和秘钥的keyfile 格式。如果用户已经存在,它就会以keyfile 格式返回用户名和key。
c)ceph auth get-or-create-key:这个命令创建用户但是只返回用户的key,若想知道已存在用的key,这个命令是很有用的。可使用-o  {filename}选项把输出打印到指定文件。
$ceph authadd client.john mon 'allow r' osd 'allow rw pool=liverpool'
$ceph authget-or-create client.paul mon 'allow r' osd 'allow rw pool=liverpool'
$ceph authget-or-create client.george mon 'allow r' osd 'allow rw pool=liverpool' -o george.keyring
$ceph authget-or-create-key client.ringo mon 'allow r' osd 'allow rw pool=liverpool' -o ringo.key


3、添加用户到钥匙环

3.1为用户建立一个钥匙 ceph auth get client.admin –o /etc/ceph/ceph.client.admin.keyring

3.2将已经存在的钥匙导入钥匙环ceph-authtool /etc/ceph/ceph.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring




相关文章:

  • 2022-01-21
  • 2021-04-26
  • 2021-10-16
  • 2022-12-23
  • 2021-08-01
  • 2022-12-23
  • 2022-12-23
  • 2021-05-01
猜你喜欢
  • 2021-08-11
  • 2021-07-14
  • 2022-12-23
  • 2021-09-06
  • 2022-01-18
相关资源
相似解决方案