OpenStack---多节点部署Ceph文件系统

文章目录

        • 前言:
        • 一、Ceph特点
        • 二、Ceph架构介绍
          • 2.1 Ceph生态系统大致分为四类
          • 2.2 Ceph架构
            • 2.2.1 三种接口文件
          • 2.3 Ceph 核心组件简介
        • 三、Ceph三种存储类型
          • 3.1 文件存储
          • 3.2 块存储
          • 3.3 对象存储
          • 3.4 分布式文件系统比较
        • 四、Ceph搭建
          • 4.1 实验环境
          • 4.2 ceph环境部署
          • 4.3 Ceph集群搭建
          • 4.4 Ceph集群管理页面安装
        • 五、配置Ceph与OpenStack对接
          • 5.1 Ceph与OpenStack对接环境部署
          • 5.2 添加临时密钥到libvirt中
            • 5.2.1 在C1节点配置
            • 5.2.2 在C2节点上配置
          • 5.3 Ceph对接Glance
          • 5.4 Ceph与cinder对接
          • 5.5 Ceph与Nova对接

前言:

  • Ceph ceph是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和扩展性
  • ceph项目最早其源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的后端存储。

一、Ceph特点

  • 高性能

    ① Ceph摒弃了传统的集中式元数据寻址方案,采用crush算法, 数据分布均匀,并行度高

    ② 考虑了容灾域的隔离,能够实现哥类负载的副本放置规则,例如跨机房、机架感知等

    ③ 能够支持上千个存储节点的规模,支持TB到PB级的数据

  • 高可用性

① 副本数可以灵活控制

② 支持故障域分隔,数据强一致性

③ 多种故障常见自动进行修复自愈

④ 没有单点故障,自动管理

  • 高可扩展性

① 去中心化

② 扩展灵活

③ 随着节点增加而线性增长

  • 特性丰富

① 支持三种存储接口:块存储、文件存储、对象存储

② 支持自定义接口,支持多种语言驱动

二、Ceph架构介绍

OpenStack---多节点部署Ceph文件系统_第1张图片

2.1 Ceph生态系统大致分为四类
  • 客户端 clients

    数据用户

  • 元数据服务器 mds metadata server cluster

    缓存和同步分布式元数据

  • 对象存储集群 osd object storage cluster

    将数据和元数据作为对象存储,执行其他关键职能

  • 集群监视器 Cluster monitors

    执行监视功能

2.2 Ceph架构

OpenStack---多节点部署Ceph文件系统_第2张图片

2.2.1 三种接口文件
  • ① Object

    由原生的API,而且兼容Swift的S3和API

  • ② Block

    支持精简配置、快照、克隆

  • ③ file

    posix接口,支持快照

2.3 Ceph 核心组件简介
  • Monitor(监控):monitor在集群中扮演管理者角色,负责响应客户端请求返回具体数据的进程。一个Ceph集群一般都有很多个OSD

    当Ceph集群为2个副本,至少需要2个OSD才能达到健康状态

  • MGR:由于Monitor负载过大,采用MGR来辅助Monitor管理

  • OSD(存储):负责响应客户端请求返回具体数据的进程,一个ceph集群有很多OSD

    OSD还能够存储数据、处理数据的复制、恢复、回填再均衡、并且通过检查其他的OSD的守护进程的心跳,向monitor提供给一些监控信息

  • MDS(元数据):CephFS服务依赖的元数据服务,元数据的内存缓存,为了加快元数据的访问

  • Object:Ceph最底层的存储单元是Object对象,每个Object包含元数据和原始数据

  • PG(Placement Groups),PG就是管理Object(对象)的容器

  • RADOS(Reliable Autonomic Distributed Object Store):RADOS在动态变化和异质结构的存储设备机群之上提供一种稳定、可扩展、高性能的单一逻辑对象(Object)存储接口和能够实现节点的自适应和自管理的存储系统

  • Libradio

    Librados是Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFS都是通过librados访问的,目前提供PHP、Ruby、Java、Python、C和C++支持

  • Crush

    CRUSH是Ceph使用的数据分布算法,类似一致性哈希,让数据分配到预期的地方。

  • RGW

    RGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容。

  • CephFS

    CephFS全称Ceph File System,是Ceph对外提供的文件系统服务

三、Ceph三种存储类型

3.1 文件存储
  • 典型设备

    FTP NFS服务器

  • 主要功能

    为了克服块存储文件无法共享的问题,所以有了文件存储,在服务器上架设FTP和NFS服务,就是文件存储

  • 优缺点

    • 优点

      造价低、随便一台机器就可以

      方便文件共享

    • 缺点

      读写速率低

      传输速率慢

  • 使用场景

    日志存储、有目录结构的文件存储等等

3.2 块存储
  • 典型设备

    磁盘阵列、硬盘

  • 主要功能

    主要功能是将裸磁盘空间映射给主机使用

  • 优缺点

    • 优点

      通过RAID与LVM等手段,对数据提供了保护

      多块廉价的硬盘组合起来,提高容量

      多块磁盘组合出来的逻辑盘,提升读写效率

    • 缺点

      采用SAN架构组网时,光纤交换机造价成本高

      主机之间无法共享数据

  • 使用场景

    docker容器、虚拟机磁盘存储分配

    日志存储、文件存储等等

3.3 对象存储
  • 典型设备

    内置大容量硬盘的分布式服务器(Swift,s3)

  • 功能

    多台服务器内置大容量硬盘,安装上对象存储管理软件,对外提供读写访问功能

  • 优点

    具备块存储的读写高速

    具备文件存储的共享等特性

  • 使用场景(适合更新变动较少的数据)

    图片存储

    视频存储

3.4 分布式文件系统比较

OpenStack---多节点部署Ceph文件系统_第3张图片

四、Ceph搭建

4.1 实验环境
  • 此项实验基于之前的OpenStack多节点部署的环境,OpenStack多节点部署可查看我之前的博客:

OpenStack多节点部署

  • 注意,在部署Ceph之前,必须把和存储有关的数据清理干净(可在控制台删除),包括:

    安装的实例

    上传的镜像

    cinder块

4.2 ceph环境部署
  • 关闭所有节点的防火墙
[root@ct ~]# systemctl stop iptables
  • 在三个节点上部署本地源

    上传openstack_rock2.tar.gz 到/opt目录中

  • 解压上传的包

[root@ct ~]# tar zxvf openstack_rocky2.tar.gz -C /opt
  • 因为此处上传的文件和之前部署openstack的yum源的文件一致,所以直接清除缓存并重新创建缓存即可
[root@ct yum.repos.d]# yum clean all
[root@ct yum.repos.d]# yum makecache
4.3 Ceph集群搭建
  • ① 在所有节点服务器上安装Python-setuptools工具和ceph软件
[root@ct ~]# yum install python-setuptools -y
[root@ct ~]# yum -y install ceph
  • ② 在控制节创建ceph配置文件目录并安装ceph-deploy
[root@ct ~]# mkdir -p /etc/ceph
[root@ct ~]# yum -y install ceph-deploy
  • ③ 在控制节点创建三个mon
[root@ct ~]# cd /etc/ceph/
[root@ct ceph]# ceph-deploy new ct c1 c2
......省略部分内容
[root@ct ceph]# more /etc/ceph/ceph.conf 
[global]
fsid = b65b3c32-7d1e-4e5f-b2f6-24072373c333
mon_initial_members = ct, c1, c2
mon_host = 192.168.100.10,192.168.100.11,192.168.100.12
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
  • ④ 在控制节点初始化mon,同时收集三个节点的密钥
[root@ct ceph]# ceph-deploy mon create-initial
......省略部分内容
[root@ct ceph]# ls
ceph.bootstrap-mds.keyring  ceph.conf
ceph.bootstrap-mgr.keyring  ceph-deploy-ceph.log
ceph.bootstrap-osd.keyring  ceph.mon.keyring
ceph.bootstrap-rgw.keyring  rbdmap
ceph.client.admin.keyring
  • ⑤ 在控制节点创建OSD
[root@ct ceph]# ceph-deploy osd create --data /dev/sdb ct
......省略部分内容
[root@ct ceph]# ceph-deploy osd create --data /dev/sdb c1
......省略部分内容
[root@ct ceph]# ceph-deploy osd create --data /dev/sdb c2
......省略部分内容
  • ⑥ 使用ceph-deploy下发配置文件和admin密钥下发到三个节点
[root@ct ceph]# ceph-deploy admin ct c1 c2
[c2][DEBUG ] connected to host: c2 
[c2][DEBUG ] detect platform information from remote host
[c2][DEBUG ] detect machine type
[c2][DEBUG ] write cluster configuration to /etc/ceph/{
     cluster}.conf
...........省略部分内容
  • ⑦ 在所有节点上给keyring添加执行权限
[root@ct ceph]# chmod +x ceph.client.admin.keyring 
[root@c1 ceph]# chmod +x ceph.client.admin.keyring 
[root@c2 ceph]# chmod +x ceph.client.admin.keyring 
  • ⑧ 创建mgr管理服务
[root@ct ceph]# ceph-deploy mgr create ct c1 c2
[c2][INFO  ] Running command: ceph --cluster ceph --name client.bootstrap-mgr --keyring /var/lib/ceph/bootstrap-mgr/ceph.keyring auth get-or-create mgr.c2 mon allow profile mgr osd allow * mds allow * -o /var/lib/ceph/mgr/ceph-c2/keyring
[c2][INFO  ] Running command: systemctl enable ceph-mgr@c2
[c2][WARNIN] Created symlink from /etc/systemd/system/ceph-mgr.target.wants/[email protected] to /usr/lib/systemd/system/[email protected].
[c2][INFO  ] Running command: systemctl start ceph-mgr@c2
[c2][INFO  ] Running command: systemctl enable ceph.target
......省略部分内容
  • ⑨ 检查ceph集群状态
[root@ct ceph]# ceph -s
  cluster:
    id:     b65b3c32-7d1e-4e5f-b2f6-24072373c333
    health: HEALTH_OK
 
  services:
    mon: 3 daemons, quorum ct,c1,c2
    mgr: ct(active), standbys: c2, c1
    osd: 3 osds: 3 up, 3 in
 
  data:
    pools:   0 pools, 0 pgs
    objects: 0  objects, 0 B
    usage:   3.0 GiB used, 3.0 TiB / 3.0 TiB avail
    pgs:   
  • ⑩ 创建三个与openstack对接的pools(volumes、vms、images)64(PG)
[root@ct ceph]# ceph osd pool create volumes 64
pool 'volumes' created
[root@ct ceph]# ceph osd pool create vms 64
pool 'vms' created
[root@ct ceph]# ceph osd pool create images 64
pool 'images' created
  • 最后查看ceph状态
[root@ct ceph]# ceph mon stat
e1: 3 mons at {
     c1=192.168.100.11:6789/0,c2=192.168.100.12:6789/0,ct=192.168.100.10:6789/0}, election epoch 6, leader 0 ct, quorum 0,1,2 ct,c1,c2
[root@ct ceph]# ceph osd status
+----+------+-------+-------+--------+---------+--------+---------+-----------+
| id | host |  used | avail | wr ops | wr data | rd ops | rd data |   state   |
+----+------+-------+-------+--------+---------+--------+---------+-----------+
| 0  |  ct  | 1026M | 1022G |    0   |     0   |    0   |     0   | exists,up |
| 1  |  c1  | 1026M | 1022G |    0   |     0   |    0   |     0   | exists,up |
| 2  |  c2  | 1026M | 1022G |    0   |     0   |    0   |     0   | exists,up |
+----+------+-------+-------+--------+---------+--------+---------+-----------+
[root@ct ceph]# 
4.4 Ceph集群管理页面安装
  • 前提:查询Ceph状态,不能出现error
  • 启动dashboard模块
[root@ct ceph]# ceph mgr module enable dashboard
  • 创建https证书
[root@ct ceph]# ceph dashboard create-self-signed-cert
Self-signed certificate created
  • 查看mgr服务
[root@ct ceph]# ceph mgr services
{
     
    "dashboard": "https://ct:8443/"
}
  • 设置密码和账号
#123密码可以修改
[root@ct ceph]# ceph dashboard set-login-credentials admin 123
Username and password updated
  • 使用web页面登录查看

    访问https://192.168.100.10:8443
    OpenStack---多节点部署Ceph文件系统_第4张图片

OpenStack---多节点部署Ceph文件系统_第5张图片

五、配置Ceph与OpenStack对接

5.1 Ceph与OpenStack对接环境部署
  • ① 在控制节点创建client.cinder并设置权限
[root@ct ceph]# ceph auth get-or-create client.cinder mon 'allow r' osd 'allow class-read object_prefix rbd_children,allow rwx pool=volumes,allow rwx pool=vms,allow rx pool=images'
[client.cinder]
        key = AQCawnRevBYQIBAAYySbtyd8+2NLnRhMlpdaCQ==
  • ② 在控制节点创建client.glance并设置权限
[root@ct ceph]# ceph auth get-or-create client.glance mon 'allow r' osd 'allow class-read object_prefix rbd_children,allow rwx pool=images'
[client.glance]
        key = AQDGwnRetqs2ABAAvsCsf7ys93L82emAqjzVRQ==
  • ③ 推送密钥到对接的节点,因为本实验中glance是装在控制节点的,所以不需要发送到其他的节点
[root@ct ~]# ceph auth get-or-create client.glance |tee /etc/ceph/ceph.client.glance.keyring 
[client.glance]
        key = AQDGwnRetqs2ABAAvsCsf7ys93L82emAqjzVRQ==
[root@ct ~]# chown  glance.glance /etc/ceph/ceph.client.glance.keyring
  • ④ 将client.cinder节点 因为这个默认也是安装在controller上 ,所以不需要传递到其他节点,如果在其他节点就执行第一条语
[root@ct ~]# ceph auth get-or-create client.cinder | tee /etc/ceph/ceph.client.cinder.keyring
[client.cinder]
        key = AQCawnRevBYQIBAAYySbtyd8+2NLnRhMlpdaCQ==
[root@ct ~]# chown  cinder.cinder /etc/ceph/ceph.client.cinder.keyring
  • ⑤ 同时将client.cinder 传递到计算节点
#由于计算节点需要将用户的client.cinder用户的密钥文件存储在libvirt中,所以需要执行如下操作
[root@ct ~]# ceph auth get-key client.cinder |ssh c1 tee client.cinder.key 
AQCawnRevBYQIBAAYySbtyd8+2NLnRhMlpdaCQ==
[root@ct ~]# ceph auth get-key client.cinder |ssh c2 tee client.cinder.key 
AQCawnRevBYQIBAAYySbtyd8+2NLnRhMlpdaCQ==
    
#在c1 和 c2两个节点查看是否收到
[root@c1 ceph]# ls
ceph.client.admin.keyring  ceph.conf  rbdmap  tmpShIV0Z

[root@c2 ceph]# ls
ceph.client.admin.keyring  ceph.conf  rbdmap  tmpOYNw82
5.2 添加临时密钥到libvirt中
  • 在运行nova-compute的计算节点将临时密钥文件添加到libvirt 中然后删除
  • 配置libvirt secret
  • KVM虚拟机需要使用librbd才可以访问ceph集群
  • Librbd访问ceph又需要账户认证
  • 因此在这里,需要给libvirt设置账户信息
5.2.1 在C1节点配置
  • ① 生成UUID
[root@c1 ceph]# uuidgen
4a7e1428-c0ef-429a-8055-5ceb8baa1fbd
  • ② 创建密钥文件(使用上一步生成的UUID)
[root@c1 ceph]# cd /root
[root@c1 ~]# vi secret.xml
[root@c1 ~]# cat secret.xml 
'no' private='no'>
4a7e1428-c0ef-429a-8055-5ceb8baa1fbd
'ceph'>
client.cinder secret


----》wq
  • ③ 定义密钥,将其保存。在之后会使用这个密钥
[root@c1 ~]# virsh secret-define --file secret.xml
Secret 4a7e1428-c0ef-429a-8055-5ceb8baa1fbd created
  • ④ 设置密钥并删除临时文件,删除文件的步骤是可选的,目的是保持系统的纯净
[root@c1 ~]# virsh secret-set-value --secret 4a7e1428-c0ef-429a-8055-5ceb8baa1fbd --base64 $(cat client.cinder.key) && rm -rf client.cinder.key secret.xml
Secret value set
5.2.2 在C2节点上配置
  • ① 创建密钥文件
[root@c2 ceph]# cd /root
[root@c2 ~]# vi secret.xml
[root@c2 ~]# cat secret.xml 
'no' private='no'>
4a7e1428-c0ef-429a-8055-5ceb8baa1fbd
'ceph'>
client.cinder secret


------》wq
  • ② 定义秘钥,并将其保存
[root@c2 ~]# virsh secret-define --file secret.xml
Secret 4a7e1428-c0ef-429a-8055-5ceb8baa1fbd created
  • ③ 设置秘钥并删除临时文件
[root@c2 ~]# virsh secret-set-value --secret 4a7e1428-c0ef-429a-8055-5ceb8baa1fbd --base64 $(cat client.cinder.key) && rm -rf client.cinder.key secret.xml
Secret value set
  • ④ 在控制节点ct上开启ceph监控
[root@ct ~]# ceph osd pool application enable vms mon
enabled application 'mon' on pool 'vms'
[root@ct ~]# ceph osd pool application enable images mon
enabled application 'mon' on pool 'images'
[root@ct ~]# ceph osd pool application enable volumes mon
enabled application 'mon' on pool 'volumes'
5.3 Ceph对接Glance
  • 登录到glance所在的ct节点进行修改
  • ① 备份配置文件
[root@ct ~]# cp /etc/glance/glance-api.conf /etc/glance/glance-api.conf.bak
  • ② 修改对接配置文件
[root@ct ceph]# vi /etc/glance/glance-api.conf
#2054行,修改rbd格式(存储类型)
原:stores=file,http,swift
修改:stores=rbd

#2108行 修改默认存储格式
原:default_store=file
修改:default_store=rbd

#2442行 注释镜像本地存储
#filesystem_store_datadir=/var/lib/glance/images/

#2605 取消注释
rbd_store_chunk_size = 8

#2626 取消注释
rbd_store_pool = images

#2645 取消注释,指定用户
原:rbd_store_user = 
修改:rbd_store_user = glance

#2664 取消注释 ,确定Ceph路径如下
rbd_store_ceph_conf = /etc/ceph/ceph.conf
-----》wq
  • ③ 查找glance用户,对接上面
[root@ct ~]# source /root/keystonerc_admin
[root@ct ~(keystone_admin)]# openstack user list | grep glance
| 6122b6bddb9f41cebb9c69d6581f3513 | glance     |
  • ④ 重启OpenStack-glance-api服务
[root@ct ~(keystone_admin)]# systemctl restart openstack-glance-api
  • ⑤ 上传镜像测试

OpenStack---多节点部署Ceph文件系统_第6张图片
OpenStack---多节点部署Ceph文件系统_第7张图片

#查看镜像大小
[root@ct ~(keystone_admin)]# ceph df
GLOBAL:
    SIZE        AVAIL       RAW USED     %RAW USED 
    3.0 TiB     3.0 TiB      3.0 GiB          0.10 
POOLS:
    NAME        ID     USED       %USED     MAX AVAIL     OBJECTS 
    volumes     1         0 B         0       972 GiB           0 
    vms         2         0 B         0       972 GiB           0 
    images      3      13 MiB         0       972 GiB           8 
#13mib的镜像上传成功    

#查看镜像
[root@ct ~(keystone_admin)]# rbd ls images
1e37a9ad-9eab-4e45-9bdc-a225ffb7c5c3
  • 确认本地是否还有其他镜像
[root@ct ~(keystone_admin)]# ls /var/lib/glance/images
[root@ct ~(keystone_admin)]# 
#为空是正常的
5.4 Ceph与cinder对接
  • ① 备份cinder.conf 配置文件并修改
[root@ct ceph(keystone_admin)]# cp /etc/cinder/cinder.conf /etc/cinder/cinder.conf.bak
[root@ct ceph(keystone_admin)]# vi /etc/cinder/cinder.conf
#409 修改
原:enabled_backends=lvm
修改:enabled_backends=ceph

#5261~5267 注释掉
#[lvm]
#volume_backend_name=lvm
#volume_driver=cinder.volume.drivers.lvm.LVMVolumeDriver
#iscsi_ip_address=192.168.100.10
#iscsi_helper=lioadm
#volume_group=cinder-volumes
#volumes_dir=/var/lib/cinder/volumes
    
#在文末添加ceph段
default_volume_type= ceph
glance_api_version = 2
volume_driver = cinder.volume.drivers.rbd.RBDDriver
volume_backend_name = ceph
rbd_pool = volumes 
rbd_ceph_conf = /etc/ceph/ceph.conf
rbd_flatten_volume_from_snapshot = false 
rbd_max_clone_depth = 5
rbd_store_chunk_size = 4
rados_connect_timeout = -1
rbd_user = cinder
rbd_secret_uuid = 4a7e1428-c0ef-429a-8055-5ceb8baa1fbd
#以上UUID使用的是之前的
  • ② 重启cinder服务
[root@ct ~(keystone_admin)]# systemctl restart openstack-cinder-volume
[root@ct ~(keystone_admin)]# 
  • ③ 查看cinder卷的类型有几个
root@ct ~(keystone_admin)]# cinder type-list
+--------------------------------------+-------+-------------+-----------+
| ID                                   | Name  | Description | Is_Public |
+--------------------------------------+-------+-------------+-----------+
| e518fc11-56c6-4b44-bed6-a1b7933063eb | iscsi | -           | True      |
+--------------------------------------+-------+-------------+-----------+
[root@ct ~(keystone_admin)]# 
  • ④ 命令行创建cinder的ceph存储后端相应的type
[root@ct ~(keystone_admin)]# cinder type-list
+--------------------------------------+-------+-------------+-----------+
| ID                                   | Name  | Description | Is_Public |
+--------------------------------------+-------+-------------+-----------+
| e518fc11-56c6-4b44-bed6-a1b7933063eb | iscsi | -           | True      |
+--------------------------------------+-------+-------------+-----------+
[root@ct ~(keystone_admin)]# cinder type-create  ceph
+--------------------------------------+------+-------------+-----------+
| ID                                   | Name | Description | Is_Public |
+--------------------------------------+------+-------------+-----------+
| 6c9242f1-5c57-4d37-b7b9-b7f9d9ab5ddd | ceph | -           | True      |
+--------------------------------------+------+-------------+-----------+
  • ⑤ 创建卷

OpenStack---多节点部署Ceph文件系统_第8张图片

OpenStack---多节点部署Ceph文件系统_第9张图片

  • ⑥ 查看创建的卷
[root@ct ~(keystone_admin)]# ceph osd lspools
1 volumes
2 vms
3 images
[root@ct ~(keystone_admin)]# rbd ls volumes
volume-6f366040-a1e2-4933-85d4-c4271cede498
  • ⑦ 开启cinder服务
[root@ct ~(keystone_admin)]# systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
[root@ct ~(keystone_admin)]# systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
5.5 Ceph与Nova对接
  • ① 备份配置文件(C1 、C2节点)
[root@c1 ~]# cp /etc/nova/nova.conf /etc/nova/nova.conf.bak
[root@c1 ~]# cp /etc/nova/nova.conf /etc/nova/nova.conf.bak
  • ② 修改配置文件(C1、C2节点)

    仅展示C1节点

[root@c1 ~]# vi /etc/nova/nova.conf
#6932行 取消注释,添加硬盘缓存模式
原:#disk_cachemodes =
修改:disk_cachemodes ="network=writeback"

#7072行 取消注释,修改为rbd格式
原:#images_type=default
修改:images_type=rbd

#7096行 取消注释,修改为vms
原:#images_rbd_pool=rbd
修改:images_rbd_pool=vms

#7099行 取消注释、添加ceph的配置文件路径
原:#images_rbd_ceph_conf =
修改:images_rbd_ceph_conf = /etc/ceph/ceph.conf

#7256行 取消注释、添加cinder
原:#rbd_user=
修改:rbd_user=cinder

#7261行 取消注释、添加UUID
原:#rbd_secret_uuid=
修改:rbd_secret_uuid=4a7e1428-c0ef-429a-8055-5ceb8baa1fbd

#搜索live_migration(593行),在此行附近添加以下内容(是否启用热迁移)
live_migration_flag="VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST,VIR_MIGRATE_TUNNELLED"

#7114 取消注释、添加unmap
:#hw_disk_discard=
修改:hw_disk_discard=unmap
  • ③ 在俩个计算节点安装Libvirt
[root@c1 ~]# yum -y install libvirt
[root@c2 ~]# yum -y install libvirt
  • ④ 编辑两个计算节点
[root@c1 ~]# vi /etc/ceph/ceph.conf 
#在行尾添加以下内容
[client]
rbd cache=true
rbd cache writethrough until flush=true
admin socket = /var/run/ceph/guests/$cluster-$type.$id.$pid.$cctid.asok
log file = /var/log/qemu/qemu-guest-$pid.log
rbd concurrent management ops = 20
---->wq
  • ⑤ 创建配置文件目录和权限
[root@c1 ~]# mkdir -p /var/run/ceph/guests/ /var/log/qemu/
[root@c1 ~]# chown 777 -R /var/run/ceph/guests/ /var/log/qemu/
  • ⑥ 将控制节点的/ect/ceph/下的密钥复制到两个计算节点
[root@ct ~(keystone_admin)]# cd /etc/ceph/
[root@ct ceph(keystone_admin)]# scp ceph.client.cinder.keyring root@c1:/etc/ceph
ceph.client.cinder.keyring            100%   64    24.2KB/s   00:00    
[root@ct ceph(keystone_admin)]# scp ceph.client.cinder.keyring root@c2:/etc/ceph
ceph.client.cinder.keyring            100%   64    27.1KB/s   00:00    
  • ⑦ 两个计算节点重启服务
[root@c1 ~]# systemctl restart libvirtd
[root@c1 ~]# systemctl enable libvirtd
[root@c1 ~]# systemctl restart openstack-nova-compute

以上,OpenStack----多节点部署Ceph文件系统实验完成~,之后可以根据需求创建实例进行测试

你可能感兴趣的:(OpenStack)