您的位置:首页 > 其它

配置Nova--自动回收实例块存储空间到ceph存储池

2015-01-23 16:39 381 查看
自动回收实例的空置块存储空间到ceph存储池, 这是Juno版本中新增的feature[1]。

具体解决的问题这里[2]讲的很清楚了(虚机中文件删除了存储空间就应该回收)。

下面是如何配置使用这一feature:

环境:Openstack Juno release, qemu v1.5.3, libvirt v1.1.1, ceph v0.80.7, Nova uses shared rbd pool ; VM OS root file system is ext4.

配置:

1) mount root fs of instance with "discard" option, 这个需要做进image里面。

[root@host-10-13-42-171 ~]# cat /etc/fstab 

... ...

UUID=322bb1b9-e58f-410a-86aa-16395823a903 /      ext4    discard,defaults        1 1 

2)configure image to use "ide" as disk_bus type, the defaut is virtio, but bus type must be "ide", please refer to [3].

glance image-update $image-uuid --property hw_disk_bus=ide

3)configure Nova-compute

in /etc/nova/nova.conf, add:

... ...

hw_disk_discard=unmap

# restart nova-compute service

4) boot VM as normal 

查看虚机的配置:

cat /var/lib/nova/instances/45370d57-523e-45cd-8ed7-60bdfe7eda90/libvirt.xml

... ...

    <disk type="network" device="disk">

      <driver type="raw" cache="none" discard="unmap"/>

      <source protocol="rbd" name="system/45370d57-523e-45cd-8ed7-60bdfe7eda90_disk">

      ...  ...

      <target bus="ide" dev="hda"/>

    </disk>

5)verify

#log into VM:

dd if=/dev/zero of=./test_file bs=1M count=1024

然后删除文件,用”ceph df “命令查看对比 文件创建和删除后的已使用空间。应该看到的是虚机中文件删除后,存储空间就会立马回收。

由于IDE类型虚拟设备不支持热插拔, 而目前Ceph RBD只IDE才支持discard功能,所以要是想给虚机挂载盘Cinder volume(后端是Ceph) 并支持discard是行不通的。

不使用discard这一功能的坏处就是会有一定量的存储空间由于没有及时回收而造成额外浪费。

使用discard也会带来一些副作用,继续研究~

参考:

[1] https://wiki.openstack.org/wiki/ReleaseNotes/Juno  Add support for handing back unused disk blocks to the underlying storage system

[2]http://specs.openstack.org/openstack/nova-specs/specs/juno/implemented/libvirt-disk-discard-option.html

[3] http://ceph.com/docs/master/rbd/qemu-rbd/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Nova 存储
相关文章推荐