前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过libvirt使用ceph块设备

通过libvirt使用ceph块设备

作者头像
Laikee
发布2022-04-25 17:49:48
8110
发布2022-04-25 17:49:48
举报
文章被收录于专栏:Laikee Tech SpaceLaikee Tech Space

1. 创建存储池

代码语言:javascript
复制
[root@ceph1 ~]# ceph osd pool create libvirt-pool 128 128

查看刚刚创建的存储池:

代码语言:javascript
复制
[root@ceph1 ~]# ceph osd lspools

0 rbd,1 .rgw.root,2 default.rgw.control,3 default.rgw.meta,4 default.rgw.log,5 default.rgw.buckets.index,6 default.rgw.buckets.data,7 default.rgw.buckets.non-ec,8 libvirt-pool,

2. 创建ceph用户client.libvirt,权限限制到存储池libvirt-pool

代码语言:javascript
复制
[root@ceph1 ~]# ceph auth get-or-create client.libvirt mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=libvirt-pool'

验证:

代码语言:javascript
复制
[root@ceph1 ~]# ceph auth list

...

client.libvirt

key: AQBblU1b9FECCRAA4tW8qaBYtxTsDlaNJybZSQ==

caps: [mon] allow r

    caps: [osd] allow class-read object_prefix rbd_children, allow rwx pool=libvirt-pool

   ...

3. 把虚拟机镜像文件centos6864.qcow2.img导入存储池libvirt-pool中

[root@ceph1 ~]# qemu-img convert -f qcow2 -O raw centos6864.qcow2.img rbd:libvirt-pool/centos6864.qcow2.img

验证:

[root@ceph1 ~]# rbd -p libvirt-pool ls

centos6864.qcow2.img

4. 在libvirt中配置ceph认证需要的密钥

  • 定义密钥
代码语言:javascript
复制
[root@localhost ~]# cat > secret.xml <<EOF

<secret ephemeral='no' private='no'>

    <usage type='ceph'>

        <name>client.libvirt secret</name>

    </usage>

</secret>

virsh secret-define --file secret.xml

  • 获取密钥uuid
代码语言:javascript
复制
[root@localhost ~]# virsh secret-list

        UUID                                  Usage

--------------------------------------------------------------------------------

 fdcb5967-d3e5-4618-98f5-5919a723e414  ceph client.libvirt secret
  • 设置密钥的值
代码语言:javascript
复制
virsh secret-set-value --secret fdcb5967-d3e5-4618-98f5-5919a723e414 --base64 AQBblU1b9FECCRAA4tW8qaBYtxTsDlaNJybZSQ==

其中“AQBblU1b9FECCRAA4tW8qaBYtxTsDlaNJybZSQ==”是从上面ceph auth list的client.libvirt的key字段中得到的

5. 修改虚拟机xml文件的disk部分

代码语言:javascript
复制
[root@localhost ~]# virsh edit test
<disk type='network' device='disk'>

      <driver name='qemu'/>

      <auth username='libvirt'>

        <secret type='ceph' uuid='fdcb5967-d3e5-4618-98f5-5919a723e414'/>

      </auth>

      <source protocol='rbd' name='libvirt-pool/centos6864.qcow2.img'>

        <host name='192.168.1.15' port='6789'/>

        <host name='192.168.1.16' port='6789'/>

        <host name='192.168.1.17' port='6789'/>

      </source>

      <target dev='vda' bus='virtio'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>

</disk>
     ...

其中secret的uuid就是上面创建密钥的uuid;host配置的是ceph monitor的ip和端口,有几个monitor就写几个。

6. 开启虚拟机

[root@localhost ~]# virsh start test

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-08-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 创建存储池
  • 2. 创建ceph用户client.libvirt,权限限制到存储池libvirt-pool
  • 3. 把虚拟机镜像文件centos6864.qcow2.img导入存储池libvirt-pool中
  • 4. 在libvirt中配置ceph认证需要的密钥
  • 5. 修改虚拟机xml文件的disk部分
  • 6. 开启虚拟机
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档