libvirt 基于lvm创建pool

1、使用LVM创建存储池时,pool的名字必须和vg的名字相同,否则会报错:

 写道
error: Failed to create pool from pool.xml
error: internal error Child process (/sbin/vgchange -ay vg-test) status unexpected: exit status 5

因为在创建pool的时候,libvirt需要激活对应的vg,可能是还没有创建vg

vgcreate vg-test /dev/sdx

2、创建pool之前必须要存在vg,vg下创建的lv都可以转换成libvirt下的volume,只要刷新pool即可

virsh pool-refresh vgname

创建好vg后,即使定义pool的时候不指定source的path也没关系

<pool type='logical'>
  <name>vg-test</name>
<!-- 此处source可以不指定  -->
  <source>
    <device path='/dev/disk/by-path/ip-192.168.0.203:3260-iscsi-mycloud-lun-10'/>
  </source>
  <target>

    <path>/dev/vg-test</path>

  </target>
</pool>

 target 的path 必须填写为vg的路径

也可以用命令行代替上面的xml文件

virsh pool-create-as vg-test logical --target /dev/test

总结:把iscsi存储共享到计算节点的主要步骤为:

1)添加硬盘

2)分区格式化

3)把硬盘改为lvm类型

4)创建lv,此lv是欲共享出去的

5)安装tgt

6)配置 /etc/tgt/target.conf 文件

7)在计算节点中用openiscsi 软件 发现上面共享出来的存储

8)登录该存储,就可以当做本地的一块硬盘使用了

9)接着在此硬盘上创建vg,pool

3、把storage pool 标记为自动启动时如报一下错误:

error: failed to get pool 'vg-testt'

error: Storage pool not found: no pool with matching name 'vg-testt'


其中的一种可能的原因是该pool是transient(瞬时)对象,直接用virsh create pool.xml 创建的。
解决办法是先destroy 掉该pool,使用virsh define 的方式创建,这样就可以设为自动启动了。

猜你喜欢

转载自liuzhijun.iteye.com/blog/1668204