Bug 1038977
| Summary: | libguestfs does not works together with xfs + 4k sector size | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 6 | Reporter: | Attila Fazekas <afazekas> |
| Component: | libguestfs | Assignee: | Pino Toscano <ptoscano> |
| Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 6.5 | CC: | afazekas, huzhan, jherrman, jraju, leiwang, mbukatov, ptoscano, rjones, wshi |
| Target Milestone: | rc | Keywords: | Reopened |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | libguestfs-1.20.11-13.el6 | Doc Type: | Bug Fix |
| Doc Text: |
The libguestfs utilities were not able to use disk images on XFS file systems with 4-kilobyte sector size. This update introduces the "cachemode" parameter for the add_drive API, which controls drive caching and has a default value which allows disk images stored on the described file systems to be usable.
|
Story Points: | --- |
| Clone Of: | Environment: | ||
| Last Closed: | 2015-07-22 05:55:10 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: | |||
Upstream fix is: https://github.com/libguestfs/libguestfs/commit/749e947bb0103f19feda0f29b6cbbf3cbfa350da + a few patches that follow that one. (Is there a reason why this bug needs to be private?) Pino: Fixing this involves backporting all the cachemode stuff to RHEL 6. Up to you if you can do this or think it is too risky for an old stable RHEL release. We decided not to fix this in RHEL 6. However it has been fixed in RHEL 7.0 and above. I'm reopening this on the basis that two people have reported this bug in RHOS when using XFS as a backing store for disk images. Verified with the package version: libguestfs-1.20.11-14.el6.x86_64 Verify steps: 1. mkfs.xfs -f -s size=4096 test.raw 2. mkdir /mnt/4k 3. mount test.raw /mnt/4k -o loop 4. cd /mnt/4k 5. wget http://download.fedoraproject.org/pub/fedora/linux/releases/19/Images/x86_64/Fedora-x86_64-19-20130627-sda.qcow2 6. # guestfish -a Fedora-x86_64-19-20130627-sda.qcow2 ><fs> run ><fs> list-filesystems /dev/sda1: ext4 So verified. 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://rhn.redhat.com/errata/RHBA-2015-1444.html |
Description of problem: libguestfs using cache type equivalent to quemu's cache=none option. Basically it means disk images will be opened with O_DIRECT option. xfs requires all I/O operation count/size needs to be integer multiple of the sector size. If my sector size is 4k, the 512 byte read is invalid: strace -Ff -e pread,read,open,write,read guestfish -a Fedora-x86_64-19-20130627-sda.qcow2 run ... [pid 18605] open("Fedora-x86_64-19-20130627-sda.qcow2", O_RDWR|O_DIRECT|O_CLOEXEC) = 6 [pid 18616] pread(6, 0x7fce10000a00, 512, 0) = -1 EINVAL (Invalid argument) .... Version-Release number of selected component (if applicable): qemu-img-0.12.1.2-2.415.el6_5.3.x86_64 qemu-kvm-0.12.1.2-2.415.el6_5.3.x86_64 gpxe-roms-qemu-0.9.7-6.10.el6.noarch libguestfs-1.20.11-2.el6.x86_64 libguestfs-tools-c-1.20.11-2.el6.x86_64 How reproducible: always Steps to Reproduce: 1. mkfs.xfs -f -s size=4096 /dev/vdb 2. mkdir /mnt/4k 3. mount /dev/vdb /mnt/4k 4. cd /mnt/4k 5. wget http://download.fedoraproject.org/pub/fedora/linux/releases/19/Images/x86_64/Fedora-x86_64-19-20130627-sda.qcow2 6. guestfish -a Fedora-x86_64-19-20130627-sda.qcow2 run Actual results: [root@xfs 4k]# guestfish -a Fedora-x86_64-19-20130627-sda.qcow2 run libguestfs: error: /usr/libexec/qemu-kvm exited with error status 1. To see full error messages you may need to enable debugging. See http://libguestfs.org/guestfs-faq.1.html#debugging-libguestfs libguestfs: error: guestfs_launch failed. See http://libguestfs.org/guestfs-faq.1.html#debugging-libguestfs and/or run 'libguestfs-test-tool'. Expected results: [root@xfs 512b]# guestfish -a Fedora-x86_64-19-20130627-sda.qcow2 run [root@xfs 512b]# Do not use O_DIRECT. Additional info: The O_DIRECT is not used when the file-system refusing to open the image with O_DIRECT (like on tmpfs), but in the above situation it is failing on the read/write alignment and size requirements. Newer version of the libguestfs are allowing to use the "writeback" mode. (Disk with 4k physical sector size are very common in the market, probably in 2014 several now disk will also have 4k logical sector size.)