Initial VMFS 5 support

Today I added an initial VMFS 5 support to vmfs-tools. For the most part, VMFS 5 is VMFS 3, so these should just work as before, and adds new features; but this initial support is very limited:

  • Unified 1MB File Block Size – Nothing has been changed here, so file size is still limited to 256 GB with 1MB File Block Size.
  • Large Single Extent Volumes – This is not supported yet. So the 2TB extent limitation still exists.
  • Smaller Sub-Block – This actually doesn’t change anything to the on-disk format, but is only really the tuning of an existing value in the format. This should be handled out of the box by vmfs-tools.
  • Small File Support – VMFS 5 now stores files smaller than 1KB in the inode itself instead of allocating a Sub-Block. Support for this has been added on master.
  • Increased File Count – Like smaller Sub-Blocks, this was supported by the on-disk format, and the change is only about tuning, so this should just work out of the box.

On related news, while the git repository here is kept alive, I also pushed it to github. The main reason I did so is the Issue tracker.

Update: It turns out the small file support makes the vmfs-tools crash when accessing files bigger than 256GB, because the assumption made when reverse engineering was wrong and clashes with how files bigger than 256GB are implemented. It also turns out large single extent volumes may be working already because it looks like it was only about tuning an existing value, like smaller sub-block and increased file count.

Update 2: Latest master now supports small files without crashing with files bigger than 256GB.

2011-09-09 17:34:17+0200

vmfs-tools

You can leave a response, or trackback from your own site.

22 Responses to “Initial VMFS 5 support”

  1. Shahar Frank Says:

    Hi Mike,

    I used this vmfs tools several times and I really like it.

    Do you want to add VAAI support? If you do I am willing to help. For example I can provide working sg3 utils for the relevant verbs. I can also help testing the code if you don’t have access to VAAI able storage.

    Shahar

  2. glandium Says:

    Shahar: I don’t have access to VAAI able storage, and I’m not sure what vmfs-tools could do with it. That is, I’m not sure vmfs-tools is the right tool for this.

  3. Shahar Says:

    What I have in mind is to perform cloning/backup using VAAI verbs. I am sure that other use cases exists.
    For cloning/backup you need the list of extents and a way to ensure that they will not “run away” under you feet. An internal copy may be the cleanest way to do it. If not, some sort “list extents” may be very useful.
    Concerning the VAAI storage, maybe I can help.

  4. Aleksey Kashin Says:

    Hello.

    I use vmfs-tools 0.2.1-1 with Debian 6.
    # dpkg -l |grep vmfs
    ii vmfs-tools 0.2.1-1 Tools to access VMFS filesystems

    I trying use vmfs-tools for access to vmfs5 volume, but I got error:
    VMFS: Unsupported version 5.
    Unable to open device/file “/dev/sdc1″.

    What does it mean? vmfs-fuse currently doesn’t work with vmfs5? May be I need compile vmfs-tools from git repo for access to vmfs5?

    Thak you.

  5. glandium Says:

    Version 0.2.1 doesn’t support VMFS 5. You indeed need to compile off the git repository.

  6. Wim Says:

    Is there a requirement on the libfuse-dev package version used? When trying to compile the latest GitHib version on Debian 5, the module is not recognized, although installed.
    Package used now is libfuse-dev_2.7.4-1.1+lenny1_amd64.deb

    Thanks

  7. glandium Says:

    Wim: define “not recognized”.

  8. Wim Says:

    During the make process, this output is shown

    debian:~/glandium-vmfs-tools-7c33aa6# make
    Checking for pkg-config…no
    Checking for uuid…yes
    Checking for fuse…no
    Checking for asciidoc…yes
    Checking for xsltproc…yes
    Checking for docbook.xsl…yes
    Checking for strndup…yes
    Checking for dlopen in -ldl…yes
    Checking for posix_memalign…yes
    echo VERSION := v0.0.0-patched > version

    and the vmfs-fuse is not compiled and cannot be installed.

    Thanks!

  9. glandium Says:

    > Checking for pkg-config… no

    Without pkg-config, it won’t find fuse.

  10. Wim Says:

    OMG, I should have read the whole make output …
    Thanks, working fine now (and thanks for the great tool!)

  11. Ian Campbell Says:

    Wow this tool is great!

    I am now able to take a snapshot using ZFS and access the files inside. This allows me to continue work on a script I have been working on for close to a year now.

    Thanks for the great work, keep it up!

  12. Jérôme Poulin Says:

    This tool just saved my life! VMware wouldn’t install and I was able to salvage all my data. Thanks a lot!

  13. john Says:

    I had got latest version using [sudo apt-get install vmfs-tools] in ubtunu 11.10
    when I mount device(2TB disk) I met a problem.

    Command:
    sudo vmfs-fuse /dev/sdb3 /opt/vmfs

    Error Info:
    VMFS: Unsupported version 5
    Unable to open device/file “/dev/sdb3”

    Disk Info(gdisk /dev/sdb -l):

    Found valid GPT with protective MBR; using GPT
    Disk /dev/sdb: 3907029168 sectors, 1.8Tib
    ……

    Number Start(sector) End(Sector) Size Code Name
    1 64 8191 4.0 MiB EF00 ■■
    2 1843200 18229759 4.0 GiB 0700 ■■
    3 10229760 3906249966 1.8 TiB FFFF ■■
    5 8224 520191 250.0 MiB 0700 ■■
    6 520224 1032191 250.0 MiB 0700 ■■
    7 1032224 1257471 110.0 MiB FFFF ■■
    8 1257504 1843199 286.0 MiB 0700 ■■

    Is this 2TB extent limitation, When will it be supported?
    Thank you!

  14. glandium Says:

    John: Ubuntu 11.10 likely doesn’t have the last version.

  15. john Says:

    glandium: Now I can read vmfs5 disk using Version 0.2.5.
    Thanks!

  16. Stephen Says:

    I’m trying to mount a VMFS partition (while booted from a LIVE USB drive) to recover data after a power-failure rendered the host machine unbootable. When I try to mount the partition vmfs-fuse returns:
    “FS doesn’t belong to the underlying LVM”
    “Unable to open filesystem”

    Could you point me in the direction of my next steps… or am I hosed?

    Thanks,

    -Stephen

  17. glandium Says:

    Stephen: you can try to remove the 5 lines starting there:
    https://github.com/glandium/vmfs-tools/blob/master/libvmfs/vmfs_fs.c#L248

    But this is not very engaging already.

  18. Stephen Says:

    Commenting out the lines worked. I was able to mount the partition and pull the VMs. They are back up and running on a now re-installed server.

    Thanks!

  19. Alexi Says:

    Awesome work!! Helped me already.

  20. Javier Cepa Says:

    It work’s fine. Good Job!!!

  21. George Pherasl Says:

    How to check if VMFS tools installed are update and include support for VMFS 5. I have used apt-get from ubuntu 12.

    I am trying to recover my files from VMFS 5 which is not working as I deleted it from on machine WHITEBOX to put it to new one.

    I have ubuntu 12.0 VM and installed vmfs tools but it is only showing 2 partitions which is sda1 and sda2, actual partition where I suppose data is still not showing.

    I am not LINUX expert and really not sure what happened just by deleting storage from ESXi.

  22. David Says:

    Has anyone been able to compile this on RHEL 5? I can’t seem to find the libuuid-devel library at all for RHEL 5. I had to install the Fuse-devel which went fine but the only RH I can find is RHEL 6. Thanks!

Leave a Reply