Qeum On CentOS 8 With Nvme Disk

Home » CentOS » Qeum On CentOS 8 With Nvme Disk
CentOS 14 Comments

Hi All – I use qemu on my CentOS 7.7 box that has software raid of 2- SSD
disks.

I installed an nVME drive in the computer also. I tried to insall CentOS8
on it
(the physical /dev/nvme0n1 with the -hda /dev/nvme0n1 as the disk.

The process started installing but is really “slow” – I was expecting with the nvme device it would be much quicker.

Is there something I am missing how to get a faster disk access ?

Thanks,

Jerry

14 thoughts on - Qeum On CentOS 8 With Nvme Disk

  • You should try with some other OS to make sure it is not a hardware
    (BIOS/MB) problem. Maybe try with Windows or some other Linux and compare speeds?

    Also check if there is a firmware/BIOS update for the nVME controler…

  • I have CentOS 8 install solely on one nvme drive and it works fine and relatively quickly.

    /dev/nvme0n1p4          218G   50G  168G  23% /
    /dev/nvme0n1p2          2.0G  235M  1.6G  13% /boot
    /dev/nvme0n1p1          200M  6.8M  194M   4% /boot/efi

    You might want to partition the device (p3 is swap)

    Alan

  • Hi Alan,

    Yes I have partitioned similar – with a swap. but as I mentioned slow!
    What command line do you use ?

    Device Boot Start End Blocks Id System
    /dev/nvme0n1p1 2048 102402047 51200000 83 Linux
    /dev/nvme0n1p2 102402048 110594047 4096000 82 Linux swap /
    Solaris
    /dev/nvme0n1p3 110594048 112642047 1024000 6 FAT16
    /dev/nvme0n1p4 112642048 3907028991 1897193472 83 Linux

    Thanks,

    Jerry

  • Am 13.10.2019 um 00:03 schrieb Jerry Geis:

    How do you measure the slowness? Use fio or bonnie++ to share some number.

    [ .. ]

    Alexander

  • Hi Jerry,
    6 hours are too much. First of all you need to check your nvme performace (dd can help? dd if=/dev/zero of=/test bs=1M count000 andd see results. If you want results more benchmark oriented you could try bonnie++ as suggested by Jerry).

    Other this, have you got kvm module loaded and enabled cpu virtualization option in the BIOS?

    If yes, have you got created the VM using –accelerate?

    Have you tried another distro on VM?

    Actually I can’t install C8 on my nmve drive. It powers this workstation and is still 7.7, at the moment I don’t install C8 because it is unusable.

    Hope that helps.

  • I mounted the partition under C7.7 and ran the nvme test. Pretty much came back in seconds for 10G test.

    dd if=/dev/zero of=test bs=1M count000
    10000+0 records in
    10000+0 records out
    10485760000 bytes (10 GB) copied, 5.45451 s, 1.9 GB/s

    Yes kvm_intel is loaded as a module.

    I am using the “-hda /dev/nvme0n1” when I run qemu…. I’m thinking this works find for my other “img” files – but does not work for “well” for my physical NVME. What is the correct argument perhaps to use for running a physical NVME
    disk as a qemu guest ??

    Thanks,

    Jerry

  • Does anything get listed in the guest or the virtual-machine-host system for errors? The reasons I could see for very very slow nvme would be that something is trying to write too small a sector for the drive and flushing the drive. Depending on the nvme it might be set up to read mostly and write rarely, read/write even or write a lot/read in blocks. VM’s usually are mixed use and get really weird behavior on the others. If the nvme is expecting large writes and it is getting small ones which don’t “fit” it will 1) wear out the nvme because it is basically rewriting a full block every time even if it is only changing 5 k and 2) is slow because all those little writes are blocking.

    I would look to see if the device is mostly in Device Wait and if io errors are showing up.

  • Hi Jerry, I never used a block device as disk devices on my vms. From virt-install
    (I use it) man pages from –disk section:

    path
    A path to some storage media to use, existing or not. Existing media can be a file or block device.

    Specifying a non-existent path implies attempting to create the new storage, and will require specifying a
    ‘size’ value. Even for remote hosts, virt-install will try to use libvirt storage APIs to automatically create
    the given path.

    If the hypervisor supports it, path can also be a network URL, like http://example.com/some-disk.img . For
    network paths, they hypervisor will directly access the storage, nothing is downloaded locally.

    So you can try like: virt-install -n NAME -r mem –vcpus=N –accelerate
    –os-type=X –os-variant=X –disk path=/dev/nvme0n1[pN] …and so on.

    It should run without problem.

    I added [pN] because you can use also a partition other than entire nvme0n1. I don’t know if any type of option would be needed for a particular type of device like nvme.

    hope that helps.

    Alessandro.

  • Is there a command for virt-manager stuff that is just like qemu? Just command line – I dont want the GUI popping up and all that stuff. I dont need it creating all other files – just a simple command line ? I have not found that yet with my searching. Thanks,

    Jerry

  • virt-install can be run with no GUI. You can set it up to automatically start a serial console in case you need to interact with the install. You can also use ‘virsh’ to edit VM configs from the command line.

  • Sure – I saw those – but I was looking for something just like the old qemu command line. Just boot up and run – Nothing added to a GUI interface. Nothing that I
    have to connect to –
    Just boot up show me the console screen and done. I “boot” up old C5, C6
    images (and other) I recompile my code for those platforms and shut it back down. Thanks, (I know C5 is EOL – but still in use out there).

    Jerry

  • If you don’t want to start it with a serial console, no problem. If you want to just define a new host with a particular image as the root disk, use virsh.


    Jonathan Billings

  • I think you mean virt-install, since virt-manager is *just* a GUI
    interface to control libvirtd.

    In that case, you could install a new VM:

    virt-install –name wiki –memory 2048 –vcpus 2 –cdrom
    /root/fedora7live.iso–disk /dev/nvme0n1 –network bridge=br0 –graphics none –autostart

    Or import an existing one:

    virt-install –name wiki –memory 2048 –vcpus 2 –import –disk
    /dev/nvme0n1 –network bridge=br0 –graphics none –autostart