[Ocfs2-tools-devel] [PATCH 3/6] o2cb: don't write sysconfig if status not changed

Zhen Ren zren at suse.com
Tue Jul 28 22:21:25 PDT 2015


Hi Junxiao,

You're right! Sorry for my careless on connection this patch with ocfs2.service abnormal behavior.

I'll look into the real reason.
Thanks!
 >>>
> Hi Zhen, 
>  
> On 07/28/2015 05:12 PM, Zhen Ren wrote: 
> > Hi Junxiao, 
> >  
> >  >>> 
> >> On 07/28/2015 01:28 PM, Zhen Ren wrote:  
> >>> Hi Junxiao,  
> >>>   
> >>> Did you notice the following problematic scenarios with o2cb cluster stack?  
>  
> >>>   
> >>> if you want to mount ocfs2 at boot  time by adding record to /etc/fstab   
> >> (any other better method can do this?),   
> >>   
> >> Besides this, maybe you can write a systemd mount config file.  
> >  
> > Thanks. 
> >  
> >> after cluster bring up,  
> >>> each node success to mount, 'systemctl status o2cb' looks good, but   
> >> 'systemctl status ocfs2' looks  bad. At this time, using 'systemctl  
> >>> stop ocfs2' won't work because it has been recorded 'stopped'.    
> >> Inconsistency happens.  
> >> Yes, i just found this through the test. Looks like ocfs2 init script is  
> >> not called by "systemctl status ocfs2", you can try "systemctl restart  
> >> ocfs2" to have an consistent state.  
> >  
> > Yes, I know "systemctl restart ocfs2" can work around this problem. 
> > The inconsistency problem only happens when first time to control ocfs2 by  
> "systemctl" after a boot, maybe because 
> > this patch will ignore stop operation if the status is not "started". 
> This patch is for o2cb.service, i didn't see it can affect 
> ocfs2.service. What is your fstab configure for ocfs2, ocfs2 service 
> will not mount if fs marked noauto. 
>  
> Thanks, 
> Junxiao. 
> >  
> >>   
> >> Thanks,  
> >> Junxiao.  
> >>>   
> >>> How should we handle this situation?  
> >>> --  
> >>> s3:~ # systemctl status o2cb  
> >>> o2cb.service - LSB: Load O2CB cluster services at system boot.  
> >>>    Loaded: loaded (/etc/init.d/o2cb)  
> >>>    Active: active (running) since Mon 2015-07-27 10:37:29 CST; 1 day 2h ago  
>  
> >>>   Process: 1259 ExecStart=/etc/init.d/o2cb start (code=exited,   
> >> status=0/SUCCESS)  
> >>>    CGroup: /system.slice/o2cb.service  
> >>>            └─1365 o2hbmonitor  
> >>>   
> >>> Jul 27 10:37:28 s3 o2cb[1259]: Loading filesystem "configfs": OK  
> >>> Jul 27 10:37:28 s3 o2cb[1259]: Loading stack plugin "o2cb": OK  
> >>> Jul 27 10:37:29 s3 o2cb[1259]: Loading filesystem "ocfs2_dlmfs": OK  
> >>> Jul 27 10:37:29 s3 o2cb[1259]: Mounting ocfs2_dlmfs filesystem at /dlm: OK  
> >>> Jul 27 10:37:29 s3 o2cb[1259]: Setting cluster stack "o2cb": OK  
> >>> Jul 27 10:37:29 s3 o2cb[1259]: Registering O2CB cluster "hacluster": OK  
> >>> Jul 27 10:37:29 s3 o2cb[1259]: Setting O2CB cluster timeouts : OK  
> >>> Jul 27 10:37:29 s3 o2hbmonitor[1365]: Starting  
> >>>   
> >>> --  
> >>> s3:~ # systemctl status ocfs2  
> >>> ocfs2.service - LSB: Mount OCFS2 volumes at boot.  
> >>>    Loaded: loaded (/etc/init.d/ocfs2)  
> >>>    Active: failed (Result: exit-code) since Mon 2015-07-27 10:37:29 CST; 1   
>  
> >> day 2h ago  
> >>>   Process: 1366 ExecStart=/etc/init.d/ocfs2 start (code=exited,   
> >> status=1/FAILURE)  
> >>>   
> >>> Jul 27 10:37:29 s3 ocfs2[1366]: Starting Oracle Cluster File System (OCFS2)  
>   
> >> mount: can't find UUID=251fa3d4-fe6a-4c73-97dd-43026e76c05c  
> >>> Jul 27 10:37:29 s3 ocfs2[1366]: ..failed  
> >>>   
> >>>  >>>  
> >>>> Signed-off-by: Junxiao Bi <junxiao.bi at oracle.com>   
> >>>> ---   
> >>>>  vendor/common/o2cb.init.sh |   16 ++++++++++------   
> >>>>  1 file changed, 10 insertions(+), 6 deletions(-)   
> >>>>    
> >>>> diff --git a/vendor/common/o2cb.init.sh b/vendor/common/o2cb.init.sh   
> >>>> index 9e0b31c..e2f80f7 100755   
> >>>> --- a/vendor/common/o2cb.init.sh   
> >>>> +++ b/vendor/common/o2cb.init.sh   
> >>>> @@ -1925,16 +1925,20 @@ case "$1" in   
> >>>>          ;;   
> >>>>     
> >>>>      enable)   
> >>>> -        O2CB_ENABLED=true   
> >>>> -        write_sysconfig   
> >>>> -        if_fail "$?" "Unable to write the driver configuration"   
> >>>> +        if [ "$O2CB_ENABLED" != "true" ]; then   
> >>>> +            O2CB_ENABLED=true   
> >>>> +            write_sysconfig   
> >>>> +            if_fail "$?" "Unable to write the driver configuration"   
> >>>> +        fi   
> >>>>          start   
> >>>>          ;;   
> >>>>     
> >>>>      disable)   
> >>>> -        O2CB_ENABLED=false   
> >>>> -        write_sysconfig   
> >>>> -        if_fail "$?" "Unable to write the driver configuration"   
> >>>> +        if [ "$O2CB_ENABLED" != "false" ]; then   
> >>>> +            O2CB_ENABLED=false   
> >>>> +            write_sysconfig   
> >>>> +            if_fail "$?" "Unable to write the driver configuration"   
> >>>> +        fi   
> >>>>          stop   
> >>>>          ;;   
> >>>>     
> >>>    
> >>>   
> >>>   
> >>>   
> >>> --  
> >>> Eric, Ren  
> >>>   
> >>>   
> >>   
> >>   
> >>   
> >  
>  
>  
>  



--
Eric, Ren





More information about the Ocfs2-tools-devel mailing list