Re: suse_enterprise_storage3_rbd_LIO_vmware_performance_bad

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



To summarise,

LIO is just not working very well at the moment because of the ABORT Tasks problem, this will hopefully be fixed at some point. I'm not sure if SUSE works around this, but see below for other pain points with RBD + ESXi + iSCSI

TGT is easy to get going, but performance isn't the best and failover is an absolute pain as TGT won't stop if it has ongoing IO. You normally end up in a complete mess if you try and do HA, unless you can cover a number of different failure scenarios.

SCST probably works the best at the moment. Yes, you have to compile it into a new kernel, but it performs well, doesn't fall over, supports the VAAI extensions and can be configured HA in an ALUA or VIP failover modes. There might be a couple of corner cases with the ALUA mode with Active/Standby paths, with possible data corruption that need to be tested/explored.

However, there are a number of pain points with iSCSI + ESXi + RBD and they all mainly centre on write latency. It seems VMFS was designed around the fact that Enterprise storage arrays service writes in 10-100us, whereas Ceph will service them in 2-10ms.

1. Thin Provisioning makes things slow. I believe the main cause is that when growing and zeroing the new blocks, metadata needs to be updated and the block zero'd. Both issue small IO which would normally not be a problem, but with Ceph it becomes a bottleneck to overall IO on the datastore.

2. Snapshots effectively turn all IO into 64kb IO's. Again a traditional SAN will coalesce these back into a stream of larger IO's before committing to disk. However with Ceph each IO takes 2-10ms and so everything seems slow. The future feature of persistent RBD cache may go a long way to helping with this.

3. >2TB VMDK's with snapshots use a different allocation mode, which happens in 4kb chunks instead of 64kb ones. This makes the problem 16 times worse than above.

4. Any of the above will also apply when migrating machines around, so VM's can takes hours/days to move.

5. If you use FILEIO, you can't use thin provisioning. If you use BLOCKIO, you get thin provisioning, but no pagecache or readahead, so performance can nose dive if this is needed.

6. iSCSI is very complicated (especially ALUA) and sensitive. Get used to seeing APD/PDL even when you think you have finally got everything working great.


Normal IO from eager zeroed VM's with no snapshots, however should perform ok. So depends what your workload is.


And then comes NFS. It's very easy to setup, very easy to configure for HA, and works pretty well overall. You don't seem to get any of the IO size penalties when using snapshots. If you mount with discard, thin provisioning is done by Ceph. You can defragment the FS on the proxy node and several other things that you can't do with VMFS. Just make sure you run the server in sync mode to avoid data loss.

The only downside is that every IO causes an IO to the FS and one to the FS journal, so you effectively double your IO. But if your Ceph backend can support it, then it shouldn't be too much of a problem.

Now to the original poster, assuming the iSCSI node is just kernel mounting the RBD, I would run iostat on it, to try and see what sort of latency you are seeing at that point. Also do the same with esxtop +u, and look at the write latency there, both whilst running the fio in the VM. This should hopefully let you see if there is just a gradual increase as you go from hop to hop or if there is an obvious culprit.

Can you also confirm your kernel version? 

With 1GB networking I think you will struggle to get your write latency much below 10-15ms, but from your example ~30ms is still a bit high. I wonder if the default queue depths on your iSCSI target are too low as well?

Nick

> -----Original Message-----
> From: ceph-users [mailto:ceph-users-bounces@xxxxxxxxxxxxxx] On Behalf Of
> Oliver Dzombic
> Sent: 01 July 2016 09:27
> To: ceph-users@xxxxxxxxxxxxxx
> Subject: Re: 
> suse_enterprise_storage3_rbd_LIO_vmware_performance_bad
> 
> Hi,
> 
> my experience:
> 
> ceph + iscsi ( multipath ) + vmware == worst
> 
> Better you search for another solution.
> 
> vmware + nfs + vmware might have a much better performance.
> 
> --------
> 
> If you are able to get vmware run with iscsi and ceph, i would be
> >>very<< intrested in what/how you did that.
> 
> --
> Mit freundlichen Gruessen / Best regards
> 
> Oliver Dzombic
> IP-Interactive
> 
> mailto:info@xxxxxxxxxxxxxxxxx
> 
> Anschrift:
> 
> IP Interactive UG ( haftungsbeschraenkt ) Zum Sonnenberg 1-3
> 63571 Gelnhausen
> 
> HRB 93402 beim Amtsgericht Hanau
> Geschäftsführung: Oliver Dzombic
> 
> Steuer Nr.: 35 236 3622 1
> UST ID: DE274086107
> 
> 
> Am 01.07.2016 um 07:04 schrieb mq:
> > Hi list
> > I have tested suse enterprise storage3 using 2 iscsi  gateway attached
> > to  vmware. The performance is bad.  I have turn off  VAAI following
> > the
> >
> (https://kb.vmware.com/selfservice/microsites/search.do?language=en_US
> > &cmd=displayKC&externalId=1033665)
> >
> <https://kb.vmware.com/selfservice/microsites/search.do?language=en_U
> S&cmd=displayKC&externalId=1033665%29>.
> > My cluster
> > 3 ceph nodes :2*E5-2620 64G , mem 2*1Gbps (3*10K SAS, 1*480G  SSD) per
> > node, SSD as journal
> > 1 vmware node  2*E5-2620 64G , mem 2*1Gbps
> >
> > # ceph -s
> >     cluster 0199f68d-a745-4da3-9670-15f2981e7a15
> >      health HEALTH_OK
> >      monmap e1: 3 mons at
> >
> {node1=192.168.50.91:6789/0,node2=192.168.50.92:6789/0,node3=192.168.5
> 0.93:6789/0}
> >             election epoch 22, quorum 0,1,2 node1,node2,node3
> >      osdmap e200: 9 osds: 9 up, 9 in
> >             flags sortbitwise
> >       pgmap v1162: 448 pgs, 1 pools, 14337 MB data, 4935 objects
> >             18339 MB used, 5005 GB / 5023 GB avail
> >                  448 active+clean
> >   client io 87438 kB/s wr, 0 op/s rd, 213 op/s wr
> >
> > sudo ceph osd tree
> > ID WEIGHT  TYPE NAME      UP/DOWN REWEIGHT PRIMARY-AFFINITY
> > -1 4.90581 root default
> > -2 1.63527     host node1
> > 0 0.54509         osd.0       up  1.00000          1.00000
> > 1 0.54509         osd.1       up  1.00000          1.00000
> > 2 0.54509         osd.2       up  1.00000          1.00000
> > -3 1.63527     host node2
> > 3 0.54509         osd.3       up  1.00000          1.00000
> > 4 0.54509         osd.4       up  1.00000          1.00000
> > 5 0.54509         osd.5       up  1.00000          1.00000
> > -4 1.63527     host node3
> > 6 0.54509         osd.6       up  1.00000          1.00000
> > 7 0.54509         osd.7       up  1.00000          1.00000
> > 8 0.54509         osd.8       up  1.00000          1.00000
> >
> >
> >
> > An linux vm in vmmare, running fio.  4k randwrite result just 64 IOPS
> > lantency is high,dd test just 11MB/s.
> >
> > fio -ioengine=libaio -bs=4k -direct=1 -thread -rw=randwrite -size=100G
> > -filename=/dev/sdb  -name="EBS 4KB randwrite test" -iodepth=32
> > -runtime=60 EBS 4KB randwrite test: (g=0): rw=randwrite,
> > bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=32
> > fio-2.0.13
> > Starting 1 thread
> > Jobs: 1 (f=1): [w] [100.0% done] [0K/131K/0K /s] [0 /32 /0  iops] [eta
> > 00m:00s] EBS 4KB randwrite test: (groupid=0, jobs=1): err= 0:
> > pid=6766: Wed Jun
> > 29 21:28:06 2016
> >   write: io=15696KB, bw=264627 B/s, iops=64 , runt= 60737msec
> >     slat (usec): min=10 , max=213 , avg=35.54, stdev=16.41
> >     clat (msec): min=1 , max=31368 , avg=495.01, stdev=1862.52
> >      lat (msec): min=2 , max=31368 , avg=495.04, stdev=1862.52
> >     clat percentiles (msec):
> >      |  1.00th=[    7],  5.00th=[    8], 10.00th=[    8], 20.00th=[    9],
> >      | 30.00th=[    9], 40.00th=[   10], 50.00th=[  198], 60.00th=[  204],
> >      | 70.00th=[  208], 80.00th=[  217], 90.00th=[  799], 95.00th=[ 1795],
> >      | 99.00th=[ 7177], 99.50th=[12649], 99.90th=[16712], 99.95th=[16712],
> >      | 99.99th=[16712]
> >     bw (KB/s)  : min=   36, max=11960, per=100.00%, avg=264.77,
> > stdev=1110.81
> >     lat (msec) : 2=0.03%, 4=0.23%, 10=40.93%, 20=0.48%, 50=0.03%
> >     lat (msec) : 100=0.08%, 250=39.55%, 500=5.63%, 750=2.91%, 1000=1.35%
> >     lat (msec) : 2000=4.03%, >=2000=4.77%
> >   cpu          : usr=0.02%, sys=0.22%, ctx=2973, majf=0,
> > minf=18446744073709538907
> >   IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.2%, 16=0.4%, 32=99.2%,
> >>=64=0.0%
> >      submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%,
> >>=64=0.0%
> >      complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.1%, 64=0.0%,
> >>=64=0.0%
> >      issued    : total=r=0/w=3924/d=0, short=r=0/w=0/d=0
> >
> > Run status group 0 (all jobs):
> >   WRITE: io=15696KB, aggrb=258KB/s, minb=258KB/s, maxb=258KB/s,
> > mint=60737msec, maxt=60737msec
> >
> > Disk stats (read/write):
> >   sdb: ios=83/3921, merge=0/0, ticks=60/1903085, in_queue=1931694,
> > util=100.00%
> >
> > anyone can give me some suggestion to improve the performance ?
> >
> > Regards
> >
> > MQ
> >
> >
> >
> >
> > _______________________________________________
> > ceph-users mailing list
> > ceph-users@xxxxxxxxxxxxxx
> > http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
> >
> _______________________________________________
> ceph-users mailing list
> ceph-users@xxxxxxxxxxxxxx
> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

_______________________________________________
ceph-users mailing list
ceph-users@xxxxxxxxxxxxxx
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com




[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux