ESXI 6.7 client creating Thick Eager zeroed vmdk files using ceph fsal
by Robert Toole
Hi,
I have a 3 node Ceph octopus 15.2.7 cluster running on fully up to date
Centos 7 with nfs-ganesha 3.5.
After following the Ceph install guide
https://docs.ceph.com/en/octopus/cephadm/install/#deploying-nfs-ganesha
I am able to create a NFS 4.1 Datastore in vmware using the ip address
of all three nodes. Everything appears to work OK..
The issue however is that for some reason esxi is creating thick
provisioned eager zeroed disks instead of thin provisioned disks on this
datastore, whether I am migrating, cloning, or creating new vms. Even
running vmkfstools -i disk.vmdk -d thin thin_disk.vmdk still results in
a thick eager zeroed vmdk file.
This should not be possible on an NFS datastore, because vmware requires
a VAAI NAS plugin to accomplish thick provisioning over NFS before it
can thick provision disks.
Linux clients to the same datastore can create thin qcow2 images, and
when looking at the images created by esxi from the linux hosts you can
see that the vmdks are indeed thick:
ls -lsh
total 81G
512 -rw-r--r--. 1 root root 230 Mar 25 15:17 test_vm-2221e939.hlog
40G -rw-------. 1 root root 40G Mar 25 15:17 test_vm-flat.vmdk
40G -rw-------. 1 root root 40G Mar 25 15:56 test_vm_thin-flat.vmdk
512 -rw-------. 1 root root 501 Mar 25 15:57 test_vm_thin.vmdk
512 -rw-------. 1 root root 473 Mar 25 15:17 test_vm.vmdk
0 -rw-r--r--. 1 root root 0 Jan 6 1970 test_vm.vmsd
2.0K -rwxr-xr-x. 1 root root 2.0K Mar 25 15:17 test_vm.vmx
but the qcow2 files from the linux hosts are thin as one would expect:
qemu-img create -f qcow2 big_disk_2.img 500G
ls -lsh
total 401K
200K -rw-r--r--. 1 root root 200K Mar 25 15:47 big_disk_2.img
200K -rw-r--r--. 1 root root 200K Mar 25 15:44 big_disk.img
512 drwxr-xr-x. 2 root root 81G Mar 25 15:57 test_vm
These ls -lsh results are the same from esx, linux nfs clients and from
cephfs kernel client.
What is happening here? Are there undocumented VAAI features in
nfs-ganesha with the cephfs fsal ? If so, how do I turn them off ? I
want thin provisioned disks.
ceph nfs export ls dev-nfs-cluster --detailed
[
{
"export_id": 1,
"path": "/Development-Datastore",
"cluster_id": "dev-nfs-cluster",
"pseudo": "/Development-Datastore",
"access_type": "RW",
"squash": "no_root_squash",
"security_label": true,
"protocols": [
4
],
"transports": [
"TCP"
],
"fsal": {
"name": "CEPH",
"user_id": "dev-nfs-cluster1",
"fs_name": "dev_cephfs_vol",
"sec_label_xattr": ""
},
"clients": []
}
]
rpm -qa | grep ganesha
nfs-ganesha-ceph-3.5-1.el7.x86_64
nfs-ganesha-rados-grace-3.5-1.el7.x86_64
nfs-ganesha-rados-urls-3.5-1.el7.x86_64
nfs-ganesha-3.5-1.el7.x86_64
centos-release-nfs-ganesha30-1.0-2.el7.centos.noarch
rpm -qa | grep ceph
python3-cephfs-15.2.7-0.el7.x86_64
nfs-ganesha-ceph-3.5-1.el7.x86_64
python3-ceph-argparse-15.2.7-0.el7.x86_64
python3-ceph-common-15.2.7-0.el7.x86_64
cephadm-15.2.7-0.el7.x86_64
libcephfs2-15.2.7-0.el7.x86_64
ceph-common-15.2.7-0.el7.x86_64
ceph -v
ceph version 15.2.7 (<ceph_uuid>) octopus (stable)
The ceph cluster is healthy using bluestore on raw 3.84TB sata 7200 rpm
disks.
--
Robert Toole
rtoole(a)tooleweb.ca
403 368 5680
6 days, 20 hours
Announce Push of V5.5.1
by Frank Filz
Branch next
Tag:V5.5.1
Merge Highlights
* Fix return value in SETCLIENTID_CONFIRM
* Fix current object during readdir of a directory with junctions.
Signed-off-by: Frank S. Filz <ffilzlnx(a)mindspring.com>
Contents:
f348f0e45 Frank S. Filz V5.5.1
36e456fff Pradeep Thomas Fix current object during readdir of a directory
with junctions.
1c111c4ed Frank S. Filz Fix return value in SETCLIENTID_CONFIRM
1 year, 5 months
Announce Push of V5.5
by Frank Filz
Branch next
Tag:V5.5
This merge includes an MDCACHE LRU change that hopefully averts a crash.
Also includes another crash fix and a data integrity fix.
Please update to this release from any previous V5.x as soon as possible.
Merge Highlights
* Add config param to disable NLM4PROC_SHARE and NLM4PROC_UNSHARE
* Add config param Cache_FDs and use it in the same way as in ibm2.5 code
* MDCACHE: change entry LRU unref to use PTHREAD_MUTEX_dec_int32_t_and_lock
* Validate client_record before using it.
* Fixing data integrity issue found during performance test.
* Fixed crash during readdir of PSEUDO folder.
Signed-off-by: Frank S. Filz <ffilzlnx(a)mindspring.com>
Contents:
37d5ae6b1 Frank S. Filz V5.5
9ba3fd15f Kaleb S. KEITHLEY revert IBM-specific winbind magic
b9df6a94f Gaurav Sharma Fixed crash during readdir of PSEUDO folder.
a47e91a86 Gaurav Sharma Fixing data integrity issue found during performance
test.
0ae32a146 Malahal Naineni Validate client_record before using it.
d691d8218 Frank S. Filz MDCACHE: change entry LRU unref to use
PTHREAD_MUTEX_dec_int32_t_and_lock
7180f8160 Frank S. Filz Add config param Cache_FDs and use it in the same
way as in ibm2.5 code
71bcc2148 Malahal Naineni Add config param to disable NLM4PROC_SHARE and
NLM4PROC_UNSHARE
1 year, 5 months