All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tao Ma <tao.ma@oracle.com>
To: ocfs2-devel@oss.oracle.com
Subject: [Ocfs2-devel] what is global bitmap, block group, suballocator, etc
Date: Tue, 01 Dec 2009 16:47:16 +0800	[thread overview]
Message-ID: <4B14D814.6010906@oracle.com> (raw)
In-Reply-To: <4B14D24F.5090604@suse.de>



Coly Li wrote:
> Hi Tao,
> 
> Thanks for your reply. I spent some time to read the code and understand :)
> 
> On 2009?11?25? 15:59, Tao Ma Wrote:
>> Hi Coly,
>>
>> Coly Li wrote:
>>> Hi list,
>>>
>>> There are some ocfs2 terminologies that I don't understand very well.
>>> After checking the ocfs2 wiki and kernel/tools
>>> code, I am still not sure whether I understand them correctly.
>>>
>>> - Global bitmap
>>>   What's the usage of global bitmap? Which kind of resource allocation
>>> will set global bitmap?
>> global bitmap is a system file which indicates the usage of clusters in
>>  the whole volume. It is a chain file. So it has a ocfs2_chain_list in
>> its ocfs2_dinode.id2. And the chain_list is a chain of many groups. A
>> group is a range of clusters and the 1st block of a group has a bitmap
>> to indicate which cluster(or block, cpg is used here) is allocated or not.
> 
> What is a chain file ? Is it a file not for regular file data storage (a.k.a dinode->i_size == 0), but to record
> allocation chains of an ocfs2 volume (a.k.a dinode->id2.i_chain) ?
yeah, it is used in system file only. So when you allocate some clusters 
from the global_bitmap, you add it to your own chain file according to 
the usage.
> 
> Another question is, for each node (slot), should it have only 1 chain file ? If yes, I guess the chain number limit is
> ocfs2_chain_recs_per_inode().
No, you have different system files for different usage.
Please check the flag of the system file, it should have OCFS2_CHAIN_FL 
set. You can also investigate it by debugfs.ocfs2.
e.g
echo 'stat //inode_alloc:0000'|debugfs.ocfs2 /dev/sdx
you can see "Chain" in the "Flags:" field.

So normally we have inode_alloc:000X for inode allocation, 
extent_alloc:000X for metadata allocation,

Regards,
Tao

      reply	other threads:[~2009-12-01  8:47 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-25  7:43 [Ocfs2-devel] what is global bitmap, block group, suballocator, etc Coly Li
2009-11-25  7:59 ` Tao Ma
2009-12-01  8:22   ` Coly Li
2009-12-01  8:47     ` Tao Ma [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=4B14D814.6010906@oracle.com \
    --to=tao.ma@oracle.com \
    --cc=ocfs2-devel@oss.oracle.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.