zoukankan      html  css  js  c++  java
  • Ceph命令

    一、集群

    1、启动一个ceph 进程
    启动mon进程

    service ceph start  mon.node1

    启动msd进程
    service ceph start mds.node1

    启动osd进程
    service ceph start osd.0

    2、查看机器的监控状态
    [root@client ~]# ceph health
    HEALTH_OK

    3、查看ceph的实时运行状态
    [root@client ~]# ceph -w

    4、检查信息状态信息
    [root@client ~]# ceph -s
    ceph health detail
    ceph -w


    5、查看ceph存储空间
    [root@client ~]# ceph df

    6、删除一个节点的所有的ceph数据包
    [root@node1 ~]# ceph-deploy purge node1
    [root@node1 ~]# ceph-deploy purgedata node1

    7、为ceph创建一个admin用户并为admin用户创建一个密钥,把密钥保存到/etc/ceph目录下:
    ceph auth get-or-create client.admin mds 'allow' osd 'allow *' mon 'allow *' > /etc/ceph/ceph.client.admin.keyring

    ceph auth get-or-create client.admin mds 'allow' osd 'allow *' mon 'allow *' -o /etc/ceph/ceph.client.admin.keyring

    8、为osd.0创建一个用户并创建一个key
    ceph auth get-or-create osd.0 mon 'allow rwx' osd 'allow *' -o /var/lib/ceph/osd/ceph-0/keyring

    9、为mds.node1创建一个用户并创建一个key
    ceph auth get-or-create mds.node1 mon 'allow rwx' osd 'allow *' mds 'allow *' -o /var/lib/ceph/mds/ceph-node1/keyring

    10、查看ceph集群中的认证用户及相关的key
    ceph auth list

    11、删除集群中的一个认证用户
    ceph auth del osd.0

    12、查看集群的详细配置
    [root@node1 ~]# ceph daemon mon.node1 config show | more

    13、查看集群健康状态细节
    [root@admin ~]# ceph health detail

    14、查看ceph log日志所在的目录
    [root@node1 ~]# ceph-conf --name mon.node1 --show-config-value log_file
    /var/log/ceph/ceph-mon.node1.log


    二、mon
    1、查看mon的状态信息
    [root@client ~]# ceph mon stat

    2、查看mon的选举状态
    [root@client ~]# ceph quorum_status

    3、查看mon的映射信息
    [root@client ~]# ceph mon dump

    4、删除一个mon节点
    [root@node1 ~]# ceph mon remove node1

    5、获得一个正在运行的mon map,并保存在1.txt文件中
    [root@node3 ~]# ceph mon getmap -o 1.txt

    6、查看上面获得的map
    [root@node3 ~]#  monmaptool --print 1.txt

    7、把上面的mon map注入新加入的节点
    ceph-mon -i node4 --inject-monmap 1.txt

    8、查看mon的amin socket
    root@node1 ~]# ceph-conf --name mon.node1 --show-config-value admin_socket

    9、查看mon的详细状态
    [root@node1 ~]# ceph daemon mon.node1  mon_status

    10、删除一个mon节点
    [root@os-node1 ~]# ceph mon remove os-node1


    三、msd
    1、查看msd状态
    [root@client ~]# ceph mds stat

    2、查看msd的映射信息
    [root@client ~]# ceph mds dump

    3、删除一个mds节点
    [root@node1 ~]# ceph  mds rm 0 mds.node1


    四、osd
    1、查看ceph osd运行状态
    [root@client ~]# ceph osd stat

    2、查看osd映射信息
    [root@client ~]# ceph osd dump

    3、查看osd的目录树
    [root@client ~]# ceph osd tree

    4、down掉一个osd硬盘
    [root@node1 ~]# ceph osd down 0   #down掉osd.0节点

    5、在集群中删除一个osd硬盘
    [root@node4 ~]# ceph osd rm 0

    6、在集群中删除一个osd 硬盘 crush map
    [root@node1 ~]# ceph osd crush rm osd.0

    7、在集群中删除一个osd的host节点
    [root@node1 ~]# ceph osd crush rm node1

    查看最大osd的个数
    [root@node1 ~]# ceph osd getmaxosd

    8、设置最大的osd的个数(当扩大osd节点的时候必须扩大这个值)
    [root@node1 ~]# ceph osd setmaxosd 10

    9、设置osd crush的权重为1.0
    ceph osd crush set {id} {weight} [{loc1} [{loc2} ...]]

    例如:
    [root@admin ~]# ceph osd crush set 3 3.0 host=node4

    set item id 3 name 'osd.3' weight 3 at location {host=node4} to crush map

    [root@admin ~]# ceph osd tree

    或者用下面的方式
    [root@admin ~]# ceph osd crush reweight osd.3 1.0

    [root@admin ~]# ceph osd tree

    10、设置osd的权重
    [root@admin ~]# ceph osd reweight 3 0.5

    11、把一个osd节点逐出集群
    [root@admin ~]# ceph osd out osd.3

    osd.3的reweight变为0了就不再分配数据,但是设备还是存活的

    12、把逐出的osd加入集群
    [root@admin ~]# ceph osd in osd.3

    [root@admin ~]# ceph osd tree

    13、暂停osd (暂停后整个集群不再接收数据)
    [root@admin ~]# ceph osd pause

    14、再次开启osd (开启后再次接收数据)
    [root@admin ~]# ceph osd unpause

    15、查看一个集群osd.2参数的配置
    ceph --admin-daemon /var/run/ceph/ceph-osd.2.asok config show | less


    五、PG组
    1、1、查看pg组的映射信息

    [root@client ~]# ceph pg dump

    2、查看一个PG的map
    [root@client ~]# ceph pg map 0.3f

    osdmap e88 pg 0.3f (0.3f) -> up [0,2] acting [0,2]   #其中的[0,2]代表存储在osd.0、osd.2节点,osd.0代表主副本的存储位置

    3、查看PG状态
    [root@client ~]# ceph pg stat

    4、查询一个pg的详细信息
    [root@client ~]# ceph pg  0.26 query

    5、查看pg中stuck的状态
    [root@client ~]# ceph pg dump_stuck unclean

    [root@client ~]# ceph pg dump_stuck inactive

    [root@client ~]# ceph pg dump_stuck stale

    6、显示一个集群中的所有的pg统计

    ceph pg dump --format plain

    7、恢复一个丢失的pg

    ceph pg {pg-id} mark_unfound_lost revert

    8、显示非正常状态的pg

    ceph pg dump_stuck inactive|unclean|stale

    六、pool

    1、查看ceph集群中的pool数量

    [root@admin ~]# ceph osd lspools

    0 data,1 metadata,2 rbd,

    2、在ceph集群中创建一个pool

    ceph osd pool create jiayuan 100            #这里的100指的是PG组

    3、为一个ceph pool配置配额

    ceph osd pool set-quota data max_objects 10000

    4、在集群中删除一个pool

    ceph osd pool delete jiayuan  jiayuan  --yes-i-really-really-mean-it  #集群名字需要重复两次

    5、显示集群中pool的详细信息

    [root@admin ~]# rados df

    6、给一个pool创建一个快照

    [root@admin ~]# ceph osd pool mksnap data   date-snap

    created pool data snap date-snap

    7、删除pool的快照

    [root@admin ~]# ceph osd pool rmsnap data date-snap

    removed pool data snap date-snap

    8、查看data池的pg数量

    [root@admin ~]# ceph osd pool get data pg_num

    pg_num: 64

    9、设置data池的最大存储空间为100T(默认是1T)

    [root@admin ~]# ceph osd pool set data target_max_bytes 100000000000000

    set pool 0 target_max_bytes to 100000000000000

    10、设置data池的副本数是3

    [root@admin ~]# ceph osd pool set data size 3

    set pool 0 size to 3

    11、设置data池能接受写操作的最小副本为2

    [root@admin ~]# ceph osd pool set data min_size 2

    set pool 0 min_size to 2

    12、查看集群中所有pool的副本尺寸

    [root@admin mycephfs]# ceph osd dump | grep 'replicated size'

    13、设置一个pool的pg数量

    [root@admin ~]# ceph osd pool set data pg_num 100

    set pool 0 pg_num to 100

    14、设置一个pool的pgp数量

    [root@admin ~]# ceph osd pool set data pgp_num 100

    set pool 0 pgp_num to 100


    七、rados和rbd指令

    1、rados命令使用方法

    (1)、查看ceph集群中有多少个pool (只是查看pool)

    [root@node-44 ~]# rados lspools


    (2)、查看ceph集群中有多少个pool,并且每个pool容量及利用情况

    [root@node-44 ~]# rados df

    (3)、创建一个pool

    [root@node-44 ~]#rados mkpool test

    (4)、查看ceph pool中的ceph object (这里的object是以块形式存储的)

    [root@node-44 ~]# rados ls -p volumes | more

    (5)、创建一个对象object

    [root@admin-node ~]# rados create test-object -p test

    [root@admin-node ~]# rados -p test ls

    test-object

    (6)、删除一个对象

    [root@admin-node ~]# rados rm test-object-1 -p test

    2、rbd命令的用法


    (1)、查看ceph中一个pool里的所有镜像

    [root@node-44 ~]# rbd ls images

    [root@node-44 ~]# rbd ls volumes

    (2)、查看ceph pool中一个镜像的信息

    [root@node-44 ~]# rbd info -p images --image 74cb427c-cee9-47d0-b467-af217a67e60a

    (3)、在test池中创建一个命名为zhanguo的10000M的镜像

    [root@node-44 ~]# rbd create -p test --size 10000 zhanguo

    [root@node-44 ~]# rbd -p test info zhanguo    #查看新建的镜像的信息

    (4)、删除一个镜像

    [root@node-44 ~]# rbd rm  -p test  lizhanguo

    Removing image: 100% complete...done.

    (5)、调整一个镜像的尺寸

    [root@node-44 ~]# rbd resize -p test --size 20000 zhanguo

    Resizing image: 100% complete...done.

    [root@node-44 ~]# rbd -p test info zhanguo   #调整后的镜像大小

    (6)、给一个镜像创建一个快照

    [root@node-44 ~]# rbd  snap create  test/zhanguo@zhanguo123  #池/镜像@快照

    [root@node-44 ~]# rbd   snap ls  -p test zhanguo

    [root@node-44 ~]# rbd info test/zhanguo@zhanguo123

    (7)、查看一个镜像文件的快照

    [root@os-node101 ~]# rbd snap ls  -p volumes
    (8)、删除一个镜像文件的一个快照快照

    快照所在的池/        快照所在的镜像文件           @ 快照

    [root@os-node101 ~]# rbd snap rm volumes/volume-7687988d-16ef-4814-8a2c-3fbd85e928e4@snapshot-ee7862aa-825e-4004-9587-879d60430a12

    rbd: snapshot 'snapshot-60586eba-b0be-4885-81ab-010757e50efb' is protected from removal.

    2014-08-18 19:23:42.099301 7fd0245ef760 -1 librbd: removing snapshot from header failed: (16) Device or resource busy

    上面不能删除显示的报错信息是此快照备写保护了,下面命令是删除写保护后再进行删除。

    [root@os-node101 ~]# rbd snap unprotect volumes/volume-7687988d-16ef-4814-8a2c-3fbd85e928e4@snapshot-ee7862aa-825e-4004-9587-879d60430a12

    [root@os-node101 ~]# rbd snap rm volumes/volume-7687988d-16ef-4814-8a2c-3fbd85e928e4@snapshot-ee7862aa-825e-4004-9587-879d60430a12

    (9)删除一个镜像文件的所有快照

    [root@os-node101 ~]# rbd snap purge  -p volumes
    (10)、把ceph pool中的一个镜像导出

    导出镜像

    [root@node-44 ~]# rbd export -p images --image 74cb427c-cee9-47d0-b467-af217a67e60a /root/aaa.img

    导出云硬盘

    [root@node-44 ~]# rbd export -p volumes --image volume-470fee37-b950-4eef-a595-d7def334a5d6 /var/lib/glance/ceph-pool/volumes/Message-JiaoBenJi-10.40.212.24

    2014-05-24 17:28:18.940402 7f14ad39f700  0 -- :/1032237 >> 10.49.101.9:6789/0 pipe(0x260a400 sd=3 :0 s=1 pgs=0 cs=0 l=1 c=0x260a660).fault

    Exporting image: 100% complete...done.


    (11)、把一个镜像导入ceph中 (但是直接导入是不能用的,因为没有经过openstack,openstack是看不到的)

    [root@node-44 ~]# rbd import /root/aaa.img -p images --image 74cb427c-cee9-47d0-b467-af217a67e60a  

    Importing image: 100% complete...done.

  • 相关阅读:
    [原] Code Color Scheme
    [转] 13款开源Java大数据工具,从理论到实践的剖析
    如何在Web页面上直接打开、编辑、创建Office文档 (转)
    自己用VS2008写的数据库操作包装类
    可以用ORACLE的临时表
    ASP.net中动态加载控件时一些问题的总结(转)
    Infragistics.WebUI.WebCombo的用法
    oracle中创建表的一种方法
    oracle中插入一个blob数据
    中国人正在上的四个当
  • 原文地址:https://www.cnblogs.com/schangech/p/8036161.html
Copyright © 2011-2022 走看看