Bug 1698133

Summary: Live migration fail with unsafe error when GPFS is used as shared filesystem
Product: Red Hat Enterprise Linux 8 Reporter: Jaroslav Suchanek <jsuchane>
Component: libvirtAssignee: Peter Krempa <pkrempa>
Status: CLOSED ERRATA QA Contact: gaojianan <jgao>
Severity: high Docs Contact:
Priority: high    
Version: 8.0CC: bugproxy, chhu, dyuan, fjin, hannsj_uhl, hhan, jdenemar, jsuchane, knoel, lmen, pkrempa, rbalakri, xuzhang, yalzhang
Target Milestone: rcKeywords: OtherQA, Patch
Target Release: 8.1   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: libvirt-4.5.0-25.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1690702 Environment:
Last Closed: 2019-11-05 20:48:51 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1679528, 1690702    
Bug Blocks: 1624641    

Description Jaroslav Suchanek 2019-04-09 16:25:38 UTC
+++ This bug was initially created as a clone of Bug #1690702 +++

This bug was initially created as a copy of Bug #1679528

I am copying this bug because: 
IBM GPFS is a shared fs supported in rhos: https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/11/html/configuration_reference/ch_configuring-openstack-shared-file-systems

However, libvirt in rhel doesn't vm migration in GPFS directly. It is better to support it in RHEL. We have encounter 2 similiar issues before:
1. cephfs: https://bugzilla.redhat.com/show_bug.cgi?id=1672178
2. glusterfs.fuse: https://bugzilla.redhat.com/show_bug.cgi?id=1640465


Description of problem:

Live-migration fail with message "error: Unsafe migration: Migration without shared storage is unsafe" when IBM GPFS (Spectrum Scale) is used as shared file system.


Version-Release number of selected component: 4.5.0-10.el7_6.3.x86_64


How reproducible:

Install 2 nodes CentOS 7.6 with last release of libvirt

Install and mount on both nodes GPFS shared file system.

On first node create a vm with disk type file and source file on shared filesystem.

Live migrate the vm on second node.


Steps to Reproduce:
1. yum install libvirtd
2. virsh create vm.xml
3. virsh migrate --live vm  qemu+ssh://second.node/system

Actual results:
error: Unsafe migration: Migration without shared storage is unsafe

Expected results:
no error

Additional info:
If I use the option --unsafe the live-migration works fine. But it isn't the expected behavior.

This impact with our OpenStack environment base con Rocky release

--- Additional comment from Jaroslav Suchanek on 2019-04-09 18:18:12 CEST ---

Per comment https://bugzilla.redhat.com/show_bug.cgi?id=1679528#c3 this is already pushed upstream.

commit d163b940a73a0d6b8277a4bccef2b60936933cf0
Author: Diego Michelotto <diego.michelotto.it>
Date:   Mon Feb 25 19:19:03 2019 +0100

    virfile: added GPFS as shared fs
    
    Added GPFS as shared file system recognized during live migration
    security checks.
    
    GPFS is 'IBM General Parallel File System' also called
    'IBM Spectrum Scale'
    
    BUG: https://bugzilla.redhat.com/show_bug.cgi?id=1679528
    
    Signed-off-by: Diego Michelotto <diego.michelotto.it>
    Signed-off-by: Peter Krempa <pkrempa>

I will clone this to rhel-8 as well.

Comment 3 gaojianan 2019-06-10 02:38:03 UTC
For this bug,we can't setup the environment of GPFS,so i can't verify it.
Could you please help to verify it when the bug status changes to ON_QA.

Thank you !

Comment 5 gaojianan 2019-07-01 06:35:33 UTC
[Urgent]
Hi,could you help to verify this bug on latest version?
If you have any questions about setting env,you can give comment here.
If not,pls tell me and i will check it with sanity check.

Comment 6 gaojianan 2019-07-16 06:27:46 UTC
Sanity checked in libvirt-debuginfo-4.5.0-30.module+el8.1.0+3574+3a63752b.x86_64
In /src/util/virfile.c
...
3543 # ifndef GPFS_SUPER_MAGIC 
3544 #  define GPFS_SUPER_MAGIC 0x47504653
3545 # endif
...
3694     if ((fstypes & VIR_FILE_SHFS_GPFS) &&
3695         (f_type == GPFS_SUPER_MAGIC))
3696         return 1;
3697 
3698     return 0;
3699 }
...
3861                                  VIR_FILE_SHFS_CEPH |
3862                                  VIR_FILE_SHFS_GPFS);
...

Have added code into it.

Comment 8 errata-xmlrpc 2019-11-05 20:48:51 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2019:3345