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: Wed, 25 Nov 2009 15:59:46 +0800	[thread overview]
Message-ID: <4B0CE3F2.8040503@oracle.com> (raw)
In-Reply-To: <4B0CE011.3030403@suse.de>

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.
> 
> - Cluster group
>   It seems cluster group is similar to block group of ext3/4. Does each node of the cluster has its own data/metadata
> bitmap inode in every cluster group ?
See group above.
> 
> - Block group
>   From Tiger's slide, I don't find block group. But from fs/ocfs2 code, I see block group. Is it same to cluster group ?
you mean ocfs2_block_group_alloc? Actually we allocates clusters from 
the allocators(see ocfs2_claim_clusters) and then call 
ocfs2_block_group_fill to fill it into different system 
file(inode_alloc, extent_alloc).
> 
> - Suballocator & Suballocator slot
>   I don't find related document explains what is suballocator and how it works. I am checking the code now, but not
> clear to me yet.
suballocator is used so that when a node try to get some resource, it 
will try its own suballocator first. If it can't get the resource it 
wants, we have to lock the global_bitmap(there are some cases we can try 
local_alloc first and if it fails, then try global_bitmap) and ask from 
that(it will need a global lock which needs more time). We we the 
suballocator grows, it will request a large hunk from the global bitmap 
so that the next attempt can success in suballocator. There are 
inode_alloc for inode, extent_alloc for extent, and local_alloc(it can 
be used by extent_alloc allocation or cluster allocation).

Regards,
Tao

  reply	other threads:[~2009-11-25  7:59 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 [this message]
2009-12-01  8:22   ` Coly Li
2009-12-01  8:47     ` Tao Ma

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=4B0CE3F2.8040503@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.