Re: Description of the Journaling topology

看板DFBSD_kernel作者時間21年前 (2004/12/30 13:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串18/42 (看更多)
:On Wed, Dec 29, 2004 at 04:19:44PM -0800, Matthew Dillon wrote: : :> The journaling will eventually be used as part of the cache :> coherency mechanism but that isn't how it is being used initially. :> The shortest description of what our journaling will do is simply :> that it will record every filesystem operation performed to a :> decriptor which might just happen to be a socket. : :Are you talking cluster fs here? Or would (will) that be by a separate :mechanism? : :// George : :-- :George Georgalis, systems architect, administrator Linux BSD IXOYE A cache-coherent clustered filesystem is really several things integrated together. The journaling will be used as the data transport mechanism to keep caches on multiple machines synchronized. There will have to be a cache coherency mechanism/protocol in addition to that, of course, since journaling alone is not cache-coherent. You can also look at the problem from the point of view of the cache-coherency protocol. A cache-coherency protocol just wants to deal with meta-information, it doesn't want to deal with the actual data transfer mechanism. So the journal is a good fit. In fact, you don't have to have a cluster-aware filesystem to have a cluster-coherent filesystem. The key to the whole mess is to build the cache coherency protocols properly. That really is the key. It's the same for databases. If you do the cache coherency protocol correctly it almost doesn't matter what you use for the actual storage (Almost because it becomes important when dealing with edge conditions in crash cases. But it doesn't matter at all when things are running normally). For example, lets say you have a cluster of 30 machines and for robustness you want to 100% replicate your main filesystems on 3 of those machines. So now you have a situation where 3 of the machines needs to stay completely up-to-date with each other, and 27 of the machines need to be able to cache data on a more temporary basis. Both situations can be made nothing more then aspects of the *SAME* cache-coherency and journaling protocols. The only difference is that some of the machines require a large journaling and cache coherency data volume (the ones doing the mirroring), while other machines require far smaller volumes of data to be transfered. It sounds like a complex problem but it is actually no more complex then what the cache coherency protocol must already accomplish within the cluster. -Matt Matthew Dillon <dillon@backplane.com>
文章代碼(AID): #11qukP00 (DFBSD_kernel)
討論串 (同標題文章)
文章代碼(AID): #11qukP00 (DFBSD_kernel)