Hi, everyone.

I'm trying to read the source code that boots an OSD instance, and I find 
something really overwhelms me.
In the OSD::init() method, it read the OSDSuperblock by calling 
OSD::read_superblock(), and the it tried to get the "current" map : "osdmap = 
get_map(superblock.current_epoch)". Then OSD uses this osdmap to calculate the 
acting and up set of each pg. 
I really don't understand this! Since the OSDSuperblock is read from the disk, 
the superblock.current_epoch should be an old epoch which is recorded by the 
last OSD instance that run on this directory. Why use an old "current_epoch" to 
calculate the acting and up set of each pg?


Please help me, thank you:-)
_______________________________________________
ceph-users mailing list
[email protected]
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to