CEPH STORAGE CLUSTER

CEPH STORAGE CLUSTER

ceph的python_api文档: http://docs.ceph.com/docs/master/rados/api/python/

  • 连接ceph集群

    import rados
    # '/etc/ceph/ceph.conf'的配置文件
    cluster = rados.Rados(conffile='/etc/ceph/ceph.conf')
    cluster.connect()
    
    # 或者通过设置mon_host和keyring参数
    cluster = rados.Rados()
    cluster.conf_set('mon_host','192.168.20.191,192.168.20.192')
    cluster.conf_set('keyring','/etc/ceph/ceph.client.admin.keyring')
    cluster.connect()
    
  • 配置参数及空间查看

    # 版本查看
    # <rados.Version object at 0x7f0221936048>
    version = cluster.version()
    
    # host查看
    # '192.168.20.191,192.168.20.192'
    host = cluster.conf_get('mon host')
    
    # 集群ID
    # 'd03ad2f2-3b2b-45d9-ac4a-9b1a9d27d672'
    fsid = cluster.get_fsid()
    
    # 集群统计数据
    # {'kb': 209698816, 'kb_used': 5955200, 'kb_avail': 203743616, 'num_objects': 1}
    cluster_stats = cluster.get_cluster_stats()
    
  • 创建与删除池

    # 列出可用的池
    pools = cluster.list_pools()
    for pool in pools:
    	print pool
    # 创建池test
    cluster.create_pool('k')
    # 删除池
    cluster.delete_pool('k')
    # 判断是否存在一个池
    cluster.pool_exists('k')
    
  • 上线文

    # pool_name:池名称
    ioctx = cluster.open_ioctx(pool_name)
    # 或者
    # pool_id:池id
    ioctx = cluster.open_ioctx2(pool_id)
    # 断开
    ioctx.close()
    
  • 列出池中所有的文件名

    ioctx = cluster.open_ioctx(pool_name)
    # 列出test池中的所有文件名
    object_iterator = ioctx.list_objects()
    while True :
    	try :
        	rados_object = object_iterator.__next__()
        	print "Object contents = " + rados_object.key
    	except StopIteration :
       	 break
    ioctx.close()
    
  • 上传文件

    ioctx = cluster.open_ioctx(pool_name)
    # file_name:文件名; file_content:内容(bytes类型)
    ioctx.write_full(file_name, file_content)
    # eg1
    ioctx.write_full("test.py", b"Hello World!")
    # eg2
    with open("~/aa.tx", "r") as f:
    	content = f.read()
    ioctx.write_full(file_name, file_content.encode())
    ioctx.close()
    
  • 读取/下载文件

    ioctx = cluster.open_ioctx(pool_name)
    # file_name:文件名
    content = ioctx.read(file_name) # bytes类型
    ioctx.close()
    with open("~/bb.tx", "w") as f:
    	f.write(content.decode())
    
  • 移除文件

    ioctx = cluster.open_ioctx(pool_name)
    # file_name:文件名
    ioctx.remove_object(file_name)
    ioctx.close()
    
  • 断开ceph集群连接

    cluster.shutdown()
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值