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

xiaoxiao2021-02-28  105

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

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

环境:3台monitor,3个osd

查看pool

rados lspools

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

二、将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 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 auth add client.john mon 'allow r' osd 'allow rw pool=liverpool' $ceph auth get - or - create client.paul mon 'allow r' osd 'allow rw pool=liverpool' $ceph auth get - or - create client.george mon 'allow r' osd 'allow rw pool=liverpool' -o george.keyring $ceph auth get - 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

转载请注明原文地址: https://www.6miu.com/read-85255.html

最新回复(0)