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

Junxiao Bi junxiao.bi at oracle.com
Tue Jul 28 19:35:16 PDT 2015


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 
>>>  
>>>  
>>  
>>  
>>  
> 




More information about the Ocfs2-tools-devel mailing list