searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

KVM虚拟机中挂载rbd盘的方法

2023-12-12 01:44:08
179
0

一、将客户端(宿主机或kvm虚拟机)和ceph存储进行连通

1.客户端安装ceph包:yum install ceph  或 yum install ceph-common.x86_64(yum search ceph查询包名)

2.将ceph存储节点/etc/ceph目录下ceph.conf和ceph.client.admin.keyring拷贝到客户端的/etc/ceph目录下

3.检查连通性:在客户端执行ceph命令,如ceph -s,能看到ceph集群信息,说明客户端和ceph存储已连通

二、创建rbd盘并挂载给虚拟机

1、创建一个ceph user,下面的例子中使用client.libvirt用户和libvirt-pool池

ceph auth get-or-create client.libvirt mon 'profile rbd' osd 'profile rbd pool=libvirt-pool'

验证有效:ceph auth ls|grep client.libvirt

备注:以上命令,如果宿主机和ceph存储已连通,以上命令可在宿主机上执行,否则需在ceph存储上执行

2.创建secret.xml

cat > secret.xml <<EOF

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

        <usage type='ceph'>

                <name>client.libvirt secret</name>

        </usage>

</secret>

EOF

备注:以上命令在宿主机上全部复制并粘贴,最后回车

3.生成uuid

sudo virsh secret-define --file secret.xml

{uuid of secret}

4.获取client.libvirt的key并保存到文件

ceph auth get-key client.libvirt | sudo tee client.libvirt.key

5、设置secret的uuid

sudo virsh secret-set-value --secret {uuid of secret} --base64 $(cat client.libvirt.key) && rm client.libvirt.key secret.xml

将变量替换成实际的uuid和key

6、创建池libvirt-pool

ceph osd pool create libvirt-pool 64 64

7、创建rbd盘

rbd create --size 10G libvirt-pool/test1 --image-feature layering

查询存储池中的块:rbd ls libvirt-pool

8、关闭虚拟机,编辑虚拟机配置文件,并添加磁盘信息

关闭虚拟机:virsh shutdown vm

编辑虚拟机:virsh edit vm

在disk标签下增加如下信息:

<disk type='network' device='disk'>

      <driver name='qemu' type='raw'/>

      <auth username='libvirt'>

        <secret type='ceph' uuid='{uuid of secret}'/>

      </auth>

      <source protocol='rbd' name='libvirt-pool/rbd_name'>

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

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

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

      </source>

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

    </disk>

备注:

需要修改上面5个参数:

1)username是建好的用户名:libvirt

2)uuid替换成第3步生成的uuid

3)host name后的ip为mon的ip和端口

mon的ip和端口,可以在/etc/ceph/ceph.conf中查看,可添加多个mon的ip

4target dev为挂载后显示的盘符,例子中是vde,挂载后显示的盘符是/dev/vde

5libvirt-pool/rbd_name是创建的rbd

9、查看虚拟机挂载的磁盘

virsh domblklist {vm-domain-name} --details

10、虚机开机,即可使用挂载的rbd盘

virsh start vm

0条评论
0 / 1000
汪****梅
4文章数
0粉丝数
汪****梅
4 文章 | 0 粉丝
原创

KVM虚拟机中挂载rbd盘的方法

2023-12-12 01:44:08
179
0

一、将客户端(宿主机或kvm虚拟机)和ceph存储进行连通

1.客户端安装ceph包:yum install ceph  或 yum install ceph-common.x86_64(yum search ceph查询包名)

2.将ceph存储节点/etc/ceph目录下ceph.conf和ceph.client.admin.keyring拷贝到客户端的/etc/ceph目录下

3.检查连通性:在客户端执行ceph命令,如ceph -s,能看到ceph集群信息,说明客户端和ceph存储已连通

二、创建rbd盘并挂载给虚拟机

1、创建一个ceph user,下面的例子中使用client.libvirt用户和libvirt-pool池

ceph auth get-or-create client.libvirt mon 'profile rbd' osd 'profile rbd pool=libvirt-pool'

验证有效:ceph auth ls|grep client.libvirt

备注:以上命令,如果宿主机和ceph存储已连通,以上命令可在宿主机上执行,否则需在ceph存储上执行

2.创建secret.xml

cat > secret.xml <<EOF

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

        <usage type='ceph'>

                <name>client.libvirt secret</name>

        </usage>

</secret>

EOF

备注:以上命令在宿主机上全部复制并粘贴,最后回车

3.生成uuid

sudo virsh secret-define --file secret.xml

{uuid of secret}

4.获取client.libvirt的key并保存到文件

ceph auth get-key client.libvirt | sudo tee client.libvirt.key

5、设置secret的uuid

sudo virsh secret-set-value --secret {uuid of secret} --base64 $(cat client.libvirt.key) && rm client.libvirt.key secret.xml

将变量替换成实际的uuid和key

6、创建池libvirt-pool

ceph osd pool create libvirt-pool 64 64

7、创建rbd盘

rbd create --size 10G libvirt-pool/test1 --image-feature layering

查询存储池中的块:rbd ls libvirt-pool

8、关闭虚拟机,编辑虚拟机配置文件,并添加磁盘信息

关闭虚拟机:virsh shutdown vm

编辑虚拟机:virsh edit vm

在disk标签下增加如下信息:

<disk type='network' device='disk'>

      <driver name='qemu' type='raw'/>

      <auth username='libvirt'>

        <secret type='ceph' uuid='{uuid of secret}'/>

      </auth>

      <source protocol='rbd' name='libvirt-pool/rbd_name'>

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

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

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

      </source>

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

    </disk>

备注:

需要修改上面5个参数:

1)username是建好的用户名:libvirt

2)uuid替换成第3步生成的uuid

3)host name后的ip为mon的ip和端口

mon的ip和端口,可以在/etc/ceph/ceph.conf中查看,可添加多个mon的ip

4target dev为挂载后显示的盘符,例子中是vde,挂载后显示的盘符是/dev/vde

5libvirt-pool/rbd_name是创建的rbd

9、查看虚拟机挂载的磁盘

virsh domblklist {vm-domain-name} --details

10、虚机开机,即可使用挂载的rbd盘

virsh start vm

文章来自个人专栏
天翼云容灾CDR测试
4 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0