当前位置: 代码迷 >> 综合 >> nova boot-from-volume
  详细解决方案

nova boot-from-volume

热度:79   发布时间:2023-12-22 01:43:32.0

原文地址:http://blog.csdn.net/juvxiao/article/details/22614663


Boot From Volume

      为什么要使用这个功能

      一般我们instacne使用的都是临时存储(也即Ephemeral storage) 随着instance生命周期结束, 也会消失。那我们boot from block volume的好处就是不会随着instance的生命周期结束而消失, 它是Persistent的, 永久的,当instance删除后, 这个bootable的volume可以被保存下来。有一点, 就是一个volume只能被用来创建一个instance。

      这种方式创建的instance在{instance_path}中不会有disk文件。我们可以对比通过image创建和通过volume创建的instance的区别, 如下图:

       图1. boot from image libvirt.xml

      图2. boot from volume libvirt.xml

       前者使用了文件系统, 后者直接使用了volume-41b3c8e3-4d78-46a3-ab8b-aeadd584517b这个LV。


      Boot From Volume源必须是BootableVolume。我们先用下面nova boot命令行测试boot from volume, 它同时给我们创建一个Bootable Volume。

      $ nova boot --flavor 2 --block-device source=image,id=b119140c-9221-4f7c-867f-8631aafd03b2,dest=volume,size=10,shutdown=preserve,bootindex=0 mystanceFromVolume1

      流程:先是基于image创建block volume,然后从这个volumeboot instance mystanceFromVolume1。,shutdown选项选为preserve, 而不要选为remove, 这样在instance关闭时, volume会被save下来;其中的size选项要求大于等于flavor中的disk大小,同时要起我们的后端存储要有大于此size大小的空间。

     -->>状态变化

       通过vnc看到vm的运行状态, 如下图

        我们也可以用cinder list命令看到in-use的volume, 这个volume就是刚才创建的block volume。

       当我们把之前boot的VM mystancefromvolume1 delete关闭之后, 会发现, 这个volume被保留了下来。

      现在我们有了可用的Bootable Volume, 就不用通过image创建了。

      直接通过volume创建instance

      $ nova boot --flavor 2 --boot-volume f3f00ca1-5683-4e6b-8430-4dba1bbe3e5c boot_from_volume



附上个人实验,命令行:
nova boot --flavor 1 --block-device source=image,id=<image_id>,dest=volume,size=5,shutdown=preserve,bootindex=0 instance-volume-1
nova list
nova volume-list
nova delete <instance_id>
nova list
nova volume-list
nova boot --flavor 1 --boot-volume <bootable_volume_id> cirros-vol-1
nova list
  相关解决方案