[pve-devel] Default cache mode for VM hard drives

Cesar Peschiera brain at click.com.py
Thu Nov 20 10:04:45 CET 2014


When you tell me about of "enable integrity checking ", are you talking 
about of the directive "data-integrity-alg" or of the directive 
"verify-alg".

Because if you are speaking of "data-integrity-alg", i can say you that i 
was talking with Lars Ellenberg two years ago (more or less) about of the 
option: "data-integrity-alg", and he says that such option is only for 
purposes of tests, due to that the upper layers modify the network packets 
and finally DRBD believe that here we have something wrong with the 
verification (and in my case as accordingly, DRBD cuts the communication), 
so the option "data-integrity-alg" never should be used in production 
environments.

Moreover, since many time ago, my PVEs have LVM on top of DRBD (with 8.4.2, 
8.4.3 and 8.4.4 versions, and the next week will have the 8.4.5 version) for 
my KVM VMs, and never had problems of "oos" since I removed directive 
"data-integrity-alg" (including QEMU cache=none in some VMs)

For verification of the DRBD storage, i run one time a week a script in 
cron, and i have the directive "verify-alg sha1;" enabled in DRBD.

Always I hear to Lars say to many people that should change their version of 
DRBD by a more modern (8.4.x , the latest version stable of the moment).


----- Original Message ----- 
From: Stanislav German-Evtushenko
To: Cesar Peschiera
Cc: Dietmar Maurer ; pve-devel at pve.proxmox.com
Sent: Thursday, November 20, 2014 4:57 AM
Subject: Re: [pve-devel] Default cache mode for VM hard drives


On Thu, Nov 20, 2014 at 10:49 AM, Cesar Peschiera <brain at click.com.py> 
wrote:

Cache=none means no host cache but backend cache is still in use. In case
of DRBD this is a buffer in DRBD. So O_DIRECT return OK when data
reaches this buffer and not RAID cache.


Excuse me please if i intervene in this conversation, but as i understand, 
if the data is in a buffer of DRBD, then DRBD must know that there exist 
data to replicate, so obviuosly the problem isn't in the upper layers (KVM, 
any buffer in the RAM controlled by some software, etc.), so the buffer of 
DRBD should be optimized according to convenience.

Moreover, DRBD have several Web pages that tell us with great detail about 
of optimize many things, including the configuration of his buffers for 
avoid the data loss, also with examples of with and without a RAID 
controller in the middle. So it, the softwares that are in the upper layers 
nothing can do about since that DRBD takes the control of the data as also 
of his own buffer.

If we enable integrity checking (DRBD will compare checksums for all blocks 
prior committing to backand) in DRBD while using cache=none for DRBD then we 
cat this kind of messages from time to time:
block drbd0: Digest mismatch, buffer modified by upper layers during write: 
25715616s +4096


Stanislav 




More information about the pve-devel mailing list