CEPH filesystem development
 help / color / mirror / Atom feed
From: Phil Carns <carns@mcs.anl.gov>
To: Sage Weil <sage@newdream.net>
Cc: ceph-devel@vger.kernel.org
Subject: Re: block device journal durability
Date: Wed, 16 Jun 2010 13:32:39 -0400	[thread overview]
Message-ID: <4C190AB7.7000200@mcs.anl.gov> (raw)
In-Reply-To: <Pine.LNX.4.64.1006161000170.12761@cobra.newdream.net>

On 06/16/2010 01:03 PM, Sage Weil wrote:
> On Wed, 16 Jun 2010, Phil Carns wrote:
>    
>> I noticed that Ceph issues a warning if it detects that you are using a raw
>> block device as the journal and write caching is enabled on that device.
>>
>> When it opens the block device file, however, the FileJournal is using
>> O_DIRECT|O_SYNC.  In recent kernels, syncing a block device file actually
>> triggers a proper write barrier operation
>> (http://lxr.linux.no/linux+v2.6.34/fs/block_dev.c#L420).  The barrier
>> operation is also supported on MD and LVM now as well if you happen to have a
>> journal on a multi-disk volume.
>>
>> Does this mean that if you have a new enough kernel, and a block device that
>> understands barriers, that you can safely leave the write cache enabled for
>> the journal device?  It seems that way to me, but I wanted to make sure that I
>> am not missing a more subtle issue related to how Ceph performs its
>> journaling.
>>      
> You're correct.  The only concern is that the data is safely on disk when
> the write returns, and it sounds like recent kernels issue the barriers to
> make that happen.

Great, thanks for the confirmation.

>   Depending on how recent that behavior is, we can
> probably either remove the warning entirely, or try to guess based on
> kernel version.
>    

It looks like this first appeared in 2.6.33 (for both single devices and 
md/lvm) as best I can tell.  Its too bad there's not a better way to 
detect the fsync semantics from user space.  I don't know of any way 
other than by checking the kernel version.  It is actually an even 
tougher issue if an app wants to figure that out for an arbitrary file, 
because in that case it depends on the file system and the mount options 
as well.  In some ways it would be nice to have a "tell me what fsync 
semantic this file descriptor supports" ioctl :-)

-Phil

      reply	other threads:[~2010-06-16 17:32 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-16 14:46 block device journal durability Phil Carns
2010-06-16 17:03 ` Sage Weil
2010-06-16 17:32   ` Phil Carns [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4C190AB7.7000200@mcs.anl.gov \
    --to=carns@mcs.anl.gov \
    --cc=ceph-devel@vger.kernel.org \
    --cc=sage@newdream.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox