[OmniOS-discuss] Ang: Re: Ang: Re: KVM and SMF
Jorge Schrauwen
sjorge+ml at blackdot.be
Thu Nov 6 11:35:35 UTC 2014
Hi,
It could be you are using a wrong type of duration for your service.
<property_group name='startd' type='framework'>
<propval name='duration' type='astring' value='transient'/>
<propval name='ignore_error' type='astring' value='core,signal'/>
</property_group>
I use transient for my script that start qemu. By default if the process
does not daemonize it is killed after... I think 90 seconds by default.
Regards
Jorge
On 2014-11-06 11:42, Johan Kragsterman wrote:
> Hi!
>
> Trying to get the SMF service to work for my KVM VM's here....
>
> I've succeeded to import the xml-file without any errors, but the
> service goes into maintenance mode after the startd have tried a
> couple of times.
> Looks like this:
>
>
> root at omni:/mainpool/nfs/Backup/KVM# svcs -p pfsense
> STATE STIME FMRI
> offline* 12:10:31 svc:/kvm/pfsense:default
> 12:10:31 711 vmpfsense.sh
> 12:10:31 715 qemu-system-x86
>
>
> root at omni:/mainpool/nfs/Backup/KVM# svcs -l pfsense
> fmri svc:/kvm/pfsense:default
> name KVM-pfsense
> enabled true
> state offline
> next_state online
> state_time 6 november 2014 12:10:31 CET
> logfile /var/svc/log/kvm-pfsense:default.log
> restarter svc:/system/svc/restarter:default
> contract_id 90
> dependency require_all/none svc:/milestone/network:default (online)
> dependency require_all/none svc:/system/filesystem/local:default
> (online)
>
>
> root at omni:/mainpool/nfs/Backup/KVM# svcs -l pfsense
> fmri svc:/kvm/pfsense:default
> name KVM-pfsense
> enabled true
> state maintenance
> next_state none
> state_time 6 november 2014 12:12:31 CET
> logfile /var/svc/log/kvm-pfsense:default.log
> restarter svc:/system/svc/restarter:default
> contract_id
> dependency require_all/none svc:/milestone/network:default (online)
> dependency require_all/none svc:/system/filesystem/local:default
> (online)
> root at omni:/mainpool/nfs/Backup/KVM#
>
>
> And like this:
>
>
>
> root at omni:/mainpool/nfs/Backup/KVM# svcs -vx
> svc:/kvm/pfsense:default (KVM-pfsense)
> State: maintenance since 6 november 2014 12:12:31 CET
> Reason: Start method died on Killed (9).
> See: http://illumos.org/msg/SMF-8000-KS
> See: /var/svc/log/kvm-pfsense:default.log
> Impact: This service is not running.
> root at omni:/mainpool/nfs/Backup/KVM#
>
>
> I got the log as well, but it is unneccesary long. The important thing
> is here:
>
>
>
> root at omni:/mainpool/nfs/Backup/KVM# tail $(svcs -L pfsense)
> 2: 00000000000f0000 - 0000000000100000 = 2
> 3: 0000000000100000 - 000000007fffd000 = 1
> 4: 000000007fffd000 - 0000000080000000 = 2
> 5: 00000000feffc000 - 00000000ff000000 = 2
> 6: 00000000fffc0000 - 0000000100000000 = 2
> enter handle_19:
> NULL
> Booting from Hard Disk...
> Booting from 0000:7c00
> [ Nov 6 12:12:31 Method or service exit timed out. Killing contract
> 90. ]
> root at omni:/mainpool/nfs/Backup/KVM#
>
>
>
> This is the only thing in the log that shows any errors: That the
> "Method or service exit timed out. Killing contract 90"
>
>
>
>
> So I tried to increase the the "start timeout from 60 to 120 sec, but
> that made no difference"
>
> I checked the reference to the illumos:
> http://illumos.org/msg/SMF-8000-KS , but that didn't give me any clue.
>
>
> So it actually starts the service, but then something times out...what
> is it that times out...?
>
>
>
>
>
>
>
> My SMF xml file looks like this:
>
>
>
> <?xml version='1.0'?>
> <!DOCTYPE service_bundle SYSTEM
> '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
> <service_bundle type='manifest' name='export'>
> <service version='0' type='service' name='kvm/pfsense'>
> <create_default_instance enabled='true' />
> <single_instance />
> <dependency restart_on='none' grouping='require_all' type='service'
> name='network'>
> <service_fmri value='svc:/milestone/network:default' />
> </dependency>
> <dependency restart_on='none' grouping='require_all' type='service'
> name='filesystem'>
> <service_fmri value='svc:/system/filesystem/local:default' />
> </dependency>
> <exec_method type='method' exec='/usr/bin/vmpfsense.sh' name='start'
> timeout_seconds='120' />
> <exec_method type='method' exec=':kill' name='stop'
> timeout_seconds='60' />
> <stability value='Unstable' />
> <template>
> <common_name>
> <loctext xml:lang='C'>KVM-pfsense</loctext>
> </common_name>
> </template>
> </service>
> </service_bundle>
>
>
>
> I'd be happy if anyone with some more knowledge than I have could give
> me some clues...!
>
>
> Regards Johan
>
>
>
> -----Jorge Schrauwen <sjorge+ml at blackdot.be> skrev: -----
> Till: Johan Kragsterman <johan.kragsterman at capvert.se>
> Från: Jorge Schrauwen <sjorge+ml at blackdot.be>
> Datum: 2014-11-05 21:27
> Ärende: Re: Ang: Re: [OmniOS-discuss] KVM and SMF
>
> I don't know. But from experience svccfg will do what is needed to
> import it.
>
> But I know for a fact service names <> paths. base on I have a few
> services that do not have a corresponding directory.
>
> Regards
>
> Jorge
>
>
>
> On 2014-11-05 21:25, Johan Kragsterman wrote:
>> -----Jorge Schrauwen <jorge at blackdot.be> skrev: -----
>> Till: Johan Kragsterman <johan.kragsterman at capvert.se>
>> Från: Jorge Schrauwen <jorge at blackdot.be>
>> Datum: 2014-11-05 21:11
>> Ärende: Re: [OmniOS-discuss] KVM and SMF
>>
>> You can import it using 'svccfg import mysmf.xml'.
>>
>> ---
>> ~ sjorge
>>
>>
>> Hey, Jorge, I thought you were going to answer me...!
>>
>>
>> Yeah, I know how I import it, but what I asked about was the naming:
>>
>> If I call it: service name='kvm/pfsense', where does it go, when I
>> import it, since there is no "kvm" directory under /var/svc/manifest/
>> or /lib/svc/manifest? Is smf creating a directory for it?
>>
>>
>>
>>
>>
>> On 2014-11-05 21:09, Johan Kragsterman wrote:
>>> Hi!
>>>
>>>
>>> I'm on my way to try to get my KVM VM's under SMF control. Have been
>>> looking at various exampel xml-files, and there is something I'm not
>>> clear about, that I'd like to ask those who knows how to handle this.
>>>
>>> The service name in this example looks like this: <service
>>> name='kvm/pfsense'
>>>
>>> But there is no directory for "kvm" under /var/svc/manifest/ or
>>> /lib/svc/manifest, so where does it go? is svc creating a directory
>>> when I import the file?
>>>
>>>
>>> I'd used the example on the omnios wiki, just changed the service
>>> name. It looks like this in my version:
>>>
>>>
>>> <?xml version='1.0'?>
>>> <!DOCTYPE service_bundle SYSTEM
>>> '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
>>> <service_bundle type='manifest' name='export'>
>>> <service name='kvm/pfsense' type='service' version='0'>
>>> <create_default_instance enabled='true'/>
>>> <single_instance/>
>>> <dependency name='network'
>>> grouping='require_all'
>>> restart_on='none'
>>> type='service'>
>>> <service_fmri value='svc:/milestone/network:default' />
>>> </dependency>
>>> <dependency name='filesystem'
>>> grouping='require_all'
>>> restart_on='none'
>>> type='service'>
>>> <service_fmri value='svc:/system/filesystem/local:default' />
>>> </dependency>
>>> <exec_method name='start'
>>> type='method'
>>> exec='/usr/bin/vmpfsense.sh'
>>> timeout_seconds='60'/>
>>> <exec_method name='stop'
>>> type='method'
>>> exec='/usr/bin/vmpfsense.sh'
>>> timeout_seconds='60'/>
>>> <exec_method name='stop'
>>> type='method'
>>> exec=':kill'
>>> timeout_seconds='60'/>
>>> <stability value='Unstable'/>
>>> <template>
>>> <common_name>
>>> <loctext xml:lang='C'>KVM-pfsense</loctext>
>>> <common_name>
>>> <template>
>>> </service>
>>> </service_bundle>
>>>
>>>
>>>
>>>
>>> What do you think, would that do?
>>>
>>>
>>>
>>>
>>> Best regards from/Med vänliga hälsningar från
>>>
>>> Johan Kragsterman
>>>
>>> Capvert
>>>
>>> _______________________________________________
>>> OmniOS-discuss mailing list
>>> OmniOS-discuss at lists.omniti.com
>>> http://lists.omniti.com/mailman/listinfo/omnios-discuss
More information about the OmniOS-discuss
mailing list