概述

Ceph 作为分布式文件系统,不但具有高可靠性、高扩展性、高性能。 也是统一存储系统。支持对象存储、块存储、文件存储,本文介绍怎样使用Ceph 块存储作为OpenStack的Glance、Nova、Cinder组件的后端存储

前面已经分享过ceph 集群的部署,以下怎样让openstack在glance、cinder、nova组件后端配置使用ceph来进行存储

參考文档

http://docs.ceph.com/docs/master/rbd/rbd-openstack/

http://docs.openfans.org/ceph/ceph4e2d658765876863/ceph-1/copy_of_ceph-block-device3010ceph57578bbe59073011/openstack301057578bbe59077684openstack3011#u

环境信息

192.168.3.8     ceph node1  (部署mon,mds)

192.168.3.9     ceph node2  (部署osd)

192.168.3.10   ceph node3   (部署osd)

192.168.3.4     openstack    (devstack 部署,包含 controller, network,compute)

说明

ceph 不支持qcow2格式的镜像。所以假设配置nova部分假设要启动虚拟机在ceph ,镜像必须是raw

配置glance

配置认证

1. 将node1节点/etc/ceph文件夹下的两个文件复制到openstack 的 controller节点和compute节点(我这里都在一个节点)

cd /etc/ceph/

scp ceph.conf ceph.client.admin.keyring 192.168.3.4:/etc/ceph/

2. 改动ceph.client.admin.keyring的权限

chmod +r /etc/ceph/ceph.client.admin.keyring

3. 在ceph148上创建glance的存储池

rados mkpool glance

4. 编辑openstack上glance的配置文件/etc/glance/glance-api.conf中例如以下配置项

rbd_store_ceph_conf = /etc/ceph/ceph.conf

stores = rbd    (L 曾经版本号不须要这个)

default_store = rbd

rbd_store_user = admin  (这里的username是上面cephx认证的用户)

rbd_store_pool = glance

rbd_store_chunk_size = 8

6,重新启动glance-api 服务

7,上传一个镜像

stack@map-VirtualBox:~/devstack$ glance image-create --name "cirros-0.3.2-x86_64-10" --disk-format qcow2 --container-format bare <./files/images/cirros-0.3.4-x86_64-uec/cirros-0.3.4-x86_64-blank.img
+------------------+--------------------------------------+
| Property | Value |
+------------------+--------------------------------------+
| checksum | eb9139e4942121f22bbc2afc0400b2a4 |
| container_format | bare |
| created_at | 2016-02-02T06:45:09Z |
| disk_format | qcow2 |
| id | 5d57ba01-a905-42b6-bc9b-39a10b8c7fcb |
| min_disk | 0 |
| min_ram | 0 |
| name | cirros-0.3.2-x86_64-10 |
| owner | bffb0c753d004509b0ef6ae9bd4777ba |
| protected | False |
| size | 25165824 |
| status | active |
| tags | [] |
| updated_at | 2016-02-02T06:45:19Z |
| virtual_size | None |
| visibility | private |
+------------------+--------------------------------------+

8,查看ceph 池中的对象。刚上传的镜像已经到ceph池

root@map-VirtualBox:/etc/glance# rbd ls images
5d57ba01-a905-42b6-bc9b-39a10b8c7fcb
root@map-VirtualBox:/etc/glance#

9,查看 image 池中占用情况

root@map-VirtualBox:~# rados df
pool name category KB objects clones degraded unfound rd rd KB wr wr KB
cephfs_data - 0 0 0 0 0 0 0 0 0
cephfs_metadata - 0 0 0 0 0 0 0 0 0
data - 0 0 0 0 0 0 0 0 0
<span style="color:#ff0000;">images - 24577 6 0 0 0 113 87 20 24577</span>
metadata - 2 20 0 0 0 6 5 31 8
nova - 0 0 0 0 0 0 0 0 0
rbd - 0 0 0 0 0 0 0 0 0
test - 137633 46 0 0 0 287 1110 642 132406
vms - 0 1 0 0 0 308 598 1572 43931
volumes - 0 0 0 0 0 0 0 0 0
total used 10891912 73
total avail 5085560
total space 15977472

配置nova

1,创建nova pool

rados mkpool vms

root@map-VirtualBox:/etc/nova# rados mkpool nova
successfully created pool nova
root@map-VirtualBox:/etc/nova# rados lspools
data
metadata
rbd
cephfs_data
cephfs_metadata
test
volumes
images
vms
nova

2,生成uuid

root@map-VirtualBox:/etc/nova# uuidgen
ebdba075-59bc-4408-9a2c-d44b16d56bd3

3,创建screen

root@map-VirtualBox:/etc/nova# cat > secret.xml <<EOF
> <secret ephemeral='no' private='no'>
> <uuid>ebdba075-59bc-4408-9a2c-d44b16d56bd3</uuid>
> <usage type='ceph'>
> <name>client.admin secret</name>
> </usage>
> </secret>
> EOF

4,运行virsh secret-define --file secret.xml

root@map-VirtualBox:/etc/nova# virsh secret-define --file secret.xml
Secret ebdba075-59bc-4408-9a2c-d44b16d56bd3 created

5,运行例如以下命令,设置

root@map-VirtualBox:/etc/nova# cat /etc/ceph/ceph.client.admin.keyring
[client.admin]
key = AQDPoZRWcIQCDhAAwGapOCdp2uql2HJN2HpD9w==
root@map-VirtualBox:/etc/nova# echo "AQDPoZRWcIQCDhAAwGapOCdp2uql2HJN2HpD9w==">key
root@map-VirtualBox:/etc/nova# virsh secret-set-value --secret ebdba075-59bc-4408-9a2c-d44b16d56bd3 --base64 $(cat key)
Secret value set

查看secret验证配置是否正确

root@map-VirtualBox:~# virsh secret-define
error: command 'secret-define' requires <file> option
root@map-VirtualBox:~# virsh secret-list
UUID Usage
--------------------------------------------------------------------------------
ebdba075-59bc-4408-9a2c-d44b16d56bd3 ceph client.admin secret root@map-VirtualBox:~# virsh secret-dumpxml ebdba075-59bc-4408-9a2c-d44b16d56bd3
<secret ephemeral='no' private='no'>
<uuid>ebdba075-59bc-4408-9a2c-d44b16d56bd3</uuid>
<usage type='ceph'>
<name>client.admin secret</name>
</usage>
</secret> root@map-VirtualBox:~#

6,配置nova.conf

先备份nova.conf

root@map-VirtualBox:/etc/nova# ls
api-paste.ini key nova.conf policy.json rootwrap.conf rootwrap.d secret.xml
root@map-VirtualBox:/etc/nova# cp nova.conf nova.conf.bak

编辑nova.conf 中例如以下内容

images_type=rbd

images_rbd_pool=vms

images_rbd_ceph_conf=/etc/ceph/ceph.conf

rbd_user=admin

rbd_secret_uuid=ebdba075-59bc-4408-9a2c-d44b16d56bd3

cpu_mode=none

7,重新启动nova-compute

8,创建一个虚拟机

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" width="807" height="266">

9,查看ceph 池中的对象,刚创建的虚拟机已经到ceph池

root@map-VirtualBox:/etc/cinder# rados df
pool name category KB objects clones degraded unfound rd rd KB wr wr KB
cephfs_data - 0 0 0 0 0 0 0 0 0
cephfs_metadata - 0 0 0 0 0 0 0 0 0
data - 0 0 0 0 0 0 0 0 0
images - 49153 11 0 0 0 269 24785 40 49154
metadata - 2 20 0 0 0 6 5 31 8
nova - 0 0 0 0 0 0 0 0 0
rbd - 0 0 0 0 0 0 0 0 0
test - 137633 46 0 0 0 287 1110 642 132406
<span style="color:#ff0000;">vms - 37455 20 0 0 0 491 919 2400 78635</span>
volumes - 0 0 0 0 0 0 0 0 0
total used 10990976 97
total avail 4986496
total space 15977472
root@map-VirtualBox:/etc/cinder# rbd ls vms
06aedb93-087f-4110-9d18-8428aa9ede29_disk
06aedb93-087f-4110-9d18-8428aa9ede29_disk.config
2a1ef5e0-97ee-4c41-8ad9-f253d019c5d2_disk
2a1ef5e0-97ee-4c41-8ad9-f253d019c5d2_disk.config
root@map-VirtualBox:/etc/cinder#
stack@map-VirtualBox:~/devstack$ nova list
+--------------------------------------+------+---------+------------+-------------+------------------+
| ID | Name | Status | Task State | Power State | Networks |
+--------------------------------------+------+---------+------------+-------------+------------------+
| 06aedb93-087f-4110-9d18-8428aa9ede29 | sdf | ACTIVE | - | Running | private=10.0.0.3 |
| 2a1ef5e0-97ee-4c41-8ad9-f253d019c5d2 | we | SHUTOFF | - | Shutdown | private=10.0.0.2 |
+--------------------------------------+------+---------+------------+-------------+------------------+
stack@map-VirtualBox:~/devstack$

OpenStack 使用Ceph 配置指导的更多相关文章

  1. 理解 OpenStack + Ceph (5):OpenStack 与 Ceph 之间的集成 [OpenStack Integration with Ceph]

    理解 OpenStack + Ceph 系列文章: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 (5)Ceph 与 OpenS ...

  2. OpenStack 对接 Ceph

    [TOC]   1. Openstack 与 Ceph 1.1. Ceph 简介 Ceph 是当前非常流行的开源分布式存储系统,具有高扩展性.高性能.高可靠性等优点,同时提供块存储服务(RBD).对象 ...

  3. 高可用OpenStack(Queen版)集群-14.Openstack集成Ceph准备

    参考文档: Install-guide:https://docs.openstack.org/install-guide/ OpenStack High Availability Guide:http ...

  4. 查看,修改ceph节点的ceph配置命令

    标签(空格分隔): ceph,ceph运维,ceph配置 查看ceph配置 1. 查看ceph默认配置: # ceph --show-config 2. 查看 type.num 的ceph默认配置: ...

  5. OpenStack集成ceph

    openstack组件集成ceph OpenStack集成ceph详细过程可以查看ceph官方文档:ceph document OpenStack Queens版本,1台控制节点controller, ...

  6. OpenStack 对接 Ceph 环境可以创建卷但不能挂载卷的问题

    问题 环境:Nova.Cinder.Glance 都对接了 Ceph RBD 后端存储. 以往的操作包括上传镜像.创建卷.挂载卷都是一切正常的,但突然出现了无法挂载卷的问题,而且还是因为 Ceph 客 ...

  7. OpenStack云计算快速入门之二:OpenStack安装与配置

    原文:http://blog.chinaunix.net/uid-22414998-id-3265685.html OpenStack云计算----快速入门(2) 该教程基于Ubuntu12.04版, ...

  8. Anaconda多环境多版本python配置指导

    Anaconda多环境多版本python配置指导 字数3696 阅读644 评论0 喜欢0 最近学python,读完了语法后在GitHub找了一些练习来做,由 于学的是python3.x语法,而Git ...

  9. OpenStack安装与配置2

    第二部分 OpenStack安装与配置 一.引言   本章内容讲解如何在3台物理机上搭建最小化云平台,这3台机器分为称为Server1.Server2和Client1,之后的各章也是如此.Server ...

随机推荐

  1. 《30天学习30种新技术》-Day 15:Meteor —— 从零开始创建一个 Web 应用

    目录:https://segmentfault.com/a/1190000000349384 原文: https://segmentfault.com/a/1190000000361440 到目前为止 ...

  2. 【转】CentOS 6.0 系统 LAMP(Apache+MySQL+PHP)安装步骤

    一.安装 MySQL 首先来进行 MySQL 的安装.打开超级终端,输入: [root@localhost ~]# yum install mysql mysql-server 安装完毕,让 MySQ ...

  3. C#性能优化篇 - 基于索引器封装EPList

    using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using Sy ...

  4. 【原创】Javascript-获取URL请求参数

    function getUrlParam() { var param = [], hash; var url = window.location.href;//获取网页的url var hashes ...

  5. H5页面唤起手机号

    做手机H5页面的时候经常会碰到在某一个页面会显示一个手机号,坑爹的产品会说你点击一下能不能让手机弹出号码,然后拨打出去,我试了试各种百度来的方法都是失败的,比如下面的这个: <a href=&q ...

  6. hihoCoder #1586 : Minimum-结构体版线段树(单点更新+区间最值求区间两数最小乘积) (ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛)

    #1586 : Minimum Time Limit:1000ms Case Time Limit:1000ms Memory Limit:256MB Description You are give ...

  7. Educational Codeforces Round 34 A. Hungry Student Problem【枚举】

    A. Hungry Student Problem time limit per test 1 second memory limit per test 256 megabytes input sta ...

  8. PostMan的在线安装和简单使用

    Postman是一款很流行的WEB接口测试工具,因其强大的功能及清新的界面,赢得许多测试及开发者的喜爱.   1.PostMan的在线安装 因google退出中国,使得chrome上的扩展插件无法在线 ...

  9. NOI模拟题4 Problem B: 小狐狸(fox)

    Solution 考虑分开统计朝向每一个方向的所有狐狸对答案的贡献. 比如说以向右为例, 我们用箭标表示每一只狐狸的方向, 用\('\)表示当前一步移动之前的每一只狐狸的位置. \[ \begin{a ...

  10. 记录一次(xheditor-1.1.6-zh-cn.min.js)的错误:Cannot read property 'match' of undefined的问题解决

    由于使用了xheditor富文本框,且这个版本是2011年开发的系统,当时只有IE8,所以一切正常. 但是问题来了,今天使用IE11测试和谷歌浏览器测试,发现一直报这个错误: 且google了一下,没 ...