From: Josh Durgin <josh.durgin@inktank.com>
To: Vladimir Bashkirtsev <vladimir@bashkirtsev.com>
Cc: Tommi Virtanen <tv@inktank.com>, Dan Mick <dan.mick@inktank.com>,
ceph-devel@vger.kernel.org
Subject: Re: librbd: error finding header
Date: Fri, 13 Jul 2012 17:34:41 -0700 [thread overview]
Message-ID: <5000BEA1.3090002@inktank.com> (raw)
In-Reply-To: <50001D60.7080909@bashkirtsev.com>
On 07/13/2012 06:06 AM, Vladimir Bashkirtsev wrote:
> On 13/07/12 01:30, Tommi Virtanen wrote:
>> On Wed, Jul 11, 2012 at 9:41 PM, Josh Durgin <josh.durgin@inktank.com>
>> wrote:
>>> You're right about the object name - you can get its offset in the
>>> image that way. Since rbd is thin-provisioned, however, the highest
>>> index object might not be the highest possible object. When you first
>>> create an image, only the header object is created.
>> You can re-create it with a size that's known to be greater than the
>> old size (put in a terabyte extra, or something), and then use a
>> partitioning tool to see what the disk layout really is, and resize
>> based on that.
> Good point. However ceph should not be aware of image internal
> structure. In most installations image would contain partition table
> which obviously may be used to calculate image size but in some cases
> (when whole image is used for something) it may not be. Perhaps good
> point for RBD would be to create first and last object for image when
> RBD header is created. Will waste a bit of space but generally these
> objects will hold partitioning information and just their existence
> would allow to establish boundaries of the image. Does not help with
> snapshots though. But definitely will be helpful for a recovery tool.
Ceph definitely needs to store the image size. Things like qemu need
to know the size of the block device to report to the guest bios. It's
also useful to know how much space your rbd images have allocated. We
can't assume there's a partition table, or that it's accurate. Ceph
shouldn't need to interpret the contents of an image, since it's
defined by the end user.
Since rbd images can have sizes that are not multiples of their object
size, it also wouldn't give you the exact size. Also, using discard/TRIM
support, objects may be deleted.
If you always make your images a multiple of object size, you never use
discard/TRIM, and you write to the end of the image after you create
it, you could tell the size from highest numbered object that exists.
I don't think this buys you much over doing what Tommi suggested.
Josh
prev parent reply other threads:[~2012-07-14 0:34 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-09 5:42 librbd: error finding header Vladimir Bashkirtsev
2012-07-09 9:03 ` Dan Mick
2012-07-09 10:29 ` Vladimir Bashkirtsev
2012-07-09 16:30 ` Florian Haas
2012-07-10 3:28 ` Vladimir Bashkirtsev
2012-07-09 17:47 ` Dan Mick
2012-07-10 3:29 ` Vladimir Bashkirtsev
[not found] ` <4FFBA108.3010009@bashkirtsev.com>
[not found] ` <4FFBB74F.2050702@inktank.com>
2012-07-10 9:25 ` Vladimir Bashkirtsev
2012-07-10 20:08 ` Josh Durgin
2012-07-12 2:40 ` Vladimir Bashkirtsev
2012-07-12 4:41 ` Josh Durgin
2012-07-12 16:00 ` Tommi Virtanen
2012-07-13 13:06 ` Vladimir Bashkirtsev
2012-07-14 0:34 ` Josh Durgin [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=5000BEA1.3090002@inktank.com \
--to=josh.durgin@inktank.com \
--cc=ceph-devel@vger.kernel.org \
--cc=dan.mick@inktank.com \
--cc=tv@inktank.com \
--cc=vladimir@bashkirtsev.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.