xen + libvirt 在不同主机上的虚拟机之间共享磁盘

xen + libvirt 在不同主机上的虚拟机之间共享磁盘

我还有另一个问题。

我所做的是:

  1. 我们部署 2 台物理主机SLES 12 SP1并在两台物理主机上安装XEN hypervizor

  2. 在每个主机上,我们通过FC.

  3. 在每台主机上,我们部署fullvirt带有来宾系统的虚拟机SLES 12 SP1

  4. 连接到每个 VM 的块设备如scsixendiskvirsh dumpxml上面)

  5. 从其中一台虚拟机,我们LVM在磁盘上创建(每 1 个 PV 1 个 VG)fs=ext3

  6. 重新扫描后另一个虚拟机可以看到新的VG

例子:

  1. 在虚拟机1上:

    mount /dev/vg1/lv1 /srv/lv1
    echo 'test from 1st vm' > /srv/lv1/1test.txt
    umount /srv/lv1
    vgchange -an vg1 && vgexport vg1
    
  2. 在虚拟机2上:

    vgimport vg1 && vgchange -ay vg1
    mount /dev/vg1/lv1 /srv/lv1
    cat /srv/lv1/1test.txt
    test from 1st vm
    
    echo 'answer from 2nd vm' >> /srv/lv1/1test.txt
    echo 'test from 2nd vm' > /srv/lv1/2test.txt
    umount /srv/lv1
    vgchange -an vg1 && vgexport vg1
    
  3. 在虚拟机1上:

    mount /dev/vg1/lv1 /srv/lv1
    cat /srv/lv1/1test.txt
    test from 1st vm
    cat /srv/lv1/2test.txt
    no such file
    

我需要的结果是:

设备必须一致,并且具有相同的文件。

附加信息:

  • 没有配置锁;

  • 如果我在物理主机上执行相同的步骤,则一切正常;

  • 共享磁盘配置:

    disk type='block' device='disk'
    driver name='qemu' type='raw'/>
    source dev='/dev/mapper/360002ac0000000000000003200019bcc'/>
    target dev='sdd' bus='scsi'/>
    address type='drive' controller='0' bus='0' target='0' unit='1'/>
    /disk>
    

还尝试了不同的磁盘选项,例如:

driver name='qemu' type='raw' cache='none' io='native'/>

任何想法,如何解决这个问题?

相关内容