Informix

Informix

Connect with Db2, Informix, Netezza, open source, and other data experts to gain value from your data, share insights, and solve problems.

 View Only

Disk/Filesystem/LVM configuration recommendation for cooked Linux Informix chunks

  • 1.  Disk/Filesystem/LVM configuration recommendation for cooked Linux Informix chunks

    Posted Wed April 05, 2023 02:48 PM
    Edited by Jared Heath Thu April 06, 2023 09:35 AM
    1. I'm pretty far down the rabbit-hole of moving off raw spaces, thanks to people here and several great resources on the internet.

      At this point, I have a  lot of questions relating to drive/lvm and filesystem config to have Informix use cooked files as efficiently as possible.  Unfortunately, I have found plenty of threads/posts (including an active one here) concerning KAIO,O_DIRECT not working which are making me want to make sure everything I am setting up is correct.

      I'm very confused about the term "block size", where people are referencing it, and what it should be.  There seems to be several places "block size" can be applied....at the disk, at the filesystem, maybe elsewhere.   There seems to be an issue currently with 4k disk block sizes per the other thread.   From my testing, it certainly seems the block size at the filesystem has to be 4k (or less) to get DIRECT_IO to work.   I tried a 64k size on an XFS filesystem and Informix definitely won't do DIRECT on it.   

      Questions...

      1 - Is XFS still the preferred filesystem?   I don't want an ext2 one
      2 - Is there a specific way to mount XFS so it does Direct IO?
      3 - Is my understanding of filesystem block size correct (stay with 4k) or should this work with higher numbers
      4 - Is there something I'm missing here?

      How this relates to "sector size" is further confusing.   The drive I would be putting this on is a vhdx provided via Hyper-V and they all report as:

      fdisk -l /dev/sdb

      Disk /dev/sdb: 275 GiB, 295279001600 bytes, 576716800 sectors
      Disk model: Virtual Disk    
      Units: sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 4096 bytes

      I don't believe I can change this....correct me if I am wrong here.  

      One of the better resources I have found is the Adv Datatools presentation Lester/Art created.   However, in here I am further confused with the reference of Block/Strip size being 64k/128k.   I don't believe this is the same "Block Size" as above....I don't see how it could be.    Further complicating this, Suse Enterprise (SLES) calls this "stripe size" in one place and "extent size" in another....and defaults it to 4MB.   But based on what I'm seeing, I don't think I should be doing stripes (LVM) at all....and all this block/strip size references don't really relate to this setup.

      Questions:

      1 - If it really is just meant to be raid stipe sizes, does it matter on a vhd drive?
      2 - Should I even be using an LVM for cooked?   We did it for raw but I don't think it is needed unless there is some performance reason.
      2 - If an LVM should be done, SLES defaults stripe size to 4MB, I assume I should lower this to 128kb for the Informix drive?

      Based on all this various info, I am starting to settle on what seems to be the right way to do this

      1 - VHD drive from H-V that has sector size (logical/physical) 512 / 4096
      2 - XFS filesystem with 4k block size
      3 - ignore LVM

      All thoughts welcome....I'm trying to figure out what is the best practice here

      SLES - 15
      Informix - 14.10.FC7

      Side Note -- This would be a very good thing to have a complete discussion on, considering there are going to be more people coming in trying to move off raw filesystems I expect.



    ------------------------------
    Jared Heath
    ------------------------------