创建高性能存储池给虚拟机做云硬盘使用

创建高性能存储池给虚拟机做云硬盘使用

首页角色扮演Truck Driver City Crush更新时间:2024-07-28

Ceph是一个可靠的、自动重均衡、自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储、块设备存储和文件系统服务。在虚拟化领域里,比较常用到的是Ceph的块设备存储,比如在OpenStack项目里,Ceph的块设备存储可以对接OpenStack的cinder后端存储、Glance的镜像存储和虚拟机的数据存储,比较直观的是Ceph集群可以提供一个raw格式的块存储来作为虚拟机实例的硬盘,我们这篇文章就是通过纯ssd盘创建存储池给Openstack中的虚拟机做云硬盘来使用。

一. Ceph集群操作

  1. 设置集群标志

$ ceph osd set norecover $ ceph osd set nobackfill

  1. 修改crush rule只使用hdd磁盘

$ ceph osd getcrushmap -o oldmap $ crushtool -d oldmap -o map.txt $ vim map.txt #在replicated_rule下step take default⾏,改成step take default class hdd rule replicated_rule { id 0 type replicated min_size 1 max_size 10 # step take default step take default class hdd step chooseleaf firstn 0 type host step emit } $ crushtool -c map.txt -o newmap $ ceph osd setcrushmap -i newmap

  1. 通过纯ssd盘创建新的osd

# 按照约500GB⼀个分区将SSD进⾏分区 # 基于分区创建osd # 检查新创建出来的OSD class为ssd $ ceph osd tree 就可以看到 12 hdd 3.63820 osd.12 up 1.00000 1.00000 15 ssd 3.63820 osd.15 up 1.00000 1.00000

  1. 修改新建osd的类型

# 使用ssd盘新加的osd不识别为ssd类型的情况 # 32,33为新加osd的id $ for i in 32 33;do ceph osd crush rm-device-class osd.$i;done $ for i in 32 33;do ceph osd crush set-device-class ssd osd.$i;done

  1. 通过新建的osd创建存储池

$ ceph osd crush rule create-replicated replicated-ssd default host ssd # 创建名为ssdpool的pool $ ceph osd pool create ssdpool 128 128 replicated-ssd

  1. 取消ceph集群标志

$ ceph osd unset norecover $ ceph osd unset nobackfill

  1. 给openstack中的cinder用户设置权限

$ ceph auth caps client.cinder mon 'profile rbd' osd 'profile rbd pool=volumes, profile rbd pool=vms, profile rbd pool=images,profile rbd pool=ssdpool'

二. Openstack侧操作

  1. 修改cinder服务的配置文件

$ vim /etc/kolla/cinder-volume/cinder.conf [DEFAULT] glance_api_version = 2 # rbd-2 为准备新加的backends enabled_backends = rbd-1, rbd-2 [rbd-1] rbd_ceph_conf = /etc/ceph/ceph.conf backend_host = rbd:volumes rbd_pool = volumes volume_backend_name = rbd-1 volume_driver = cinder.volume.drivers.rbd.RBDDriver rbd_user = cinder rbd_secret_uuid = 27a2e46a-c070-4f18-acd8-47d9bbd42407 [rbd-2] rbd_ceph_conf = /etc/ceph/ceph.conf # ceph存储服务的配置文件 backend_host = rbd:volumes # ceph存储服务所在的主机名 rbd_pool = ssdpool # ceph创建存储池的名称,这里为ssdpool volume_backend_name = ssd # 存储后端的名字,与存储后端配置组的名称无关,可以自定义 volume_driver = cinder.volume.drivers.rbd.RBDDriver # 配置Ceph存储驱动 # 因为Ceph启用了cephx 认证,还需要配置Ceph用户及其密钥,这两个值由Ceph服务创建提供 rbd_user = cinder rbd_secret_uuid = 27a2e46a-c070-4f18-acd8-47d9bbd42407

  1. 重启cinder_volume服务

# kolla_ansbile部署都是使用容器部署的集群 $ docker restart cinder_volume

  1. 创建volume-type,并指定volume_backend_name(cinder配置文件中已指定)

$ source /etc/kolla/admin-openrc.sh $ openstack volume type create --property volume_backend_name=ssd ssd

如果觉得文章对大家有帮助,欢迎关注、点赞、评论、收藏和分享,后续将为大家分享更多的文章。

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved