Re: autodetecting init system.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 05/12/2015 11:45 AM, Loic Dachary wrote:
> 
> 
> On 12/05/2015 09:56, Owen Synge wrote:
>> On 05/11/2015 11:45 PM, Loic Dachary wrote:
>>> Hi Owen,
>>>
>>> It would help to provide one or two use cases where (C) solves a problem 
>>> that (B) (that is the current ceph-detect-init approach) does not
>>> solve.
>>
>>> I sense there is something better in (C) but I can't think of a use case 
>>> just now
>>> (maybe because I've been thinking about erasure code all day :-).
>>
>> Hi Loic,
>>
>> Please note that I believe we are correct to explicitly allow the user
>> to specify the init system and override any auto detection.
>>
>> Hence I believe it is correct for autodetection to be able to fail.
>>
>> Use case (1)
>> ~~~~~~~~~~~~
>>
>> When a new release of an operating system comes out with a different
>> init system (B) as a static database will not immediately account for
>> this solution.
>>
>> For example
>>
>> SUSE SLE 11 -> sysV
>> SUSE SLE 12 -> systemd
>> RHEL 5 -> sysV
>> RHEL 6 -> upstart
>> RHEL 7 -> systemd
>>
>> When for example SLE12 came out ceph upstream code assumed ceph ran on
>> the sysV init system until appropriate patches where taken.
> 
> So Ceph failed to run on SLE12 because it was relying on sysV ?

When we first released on SLE12 yes, I haven't yet checked the latest
master.

Also if someone was "unusual" and used gentoo, mint, or other OS not in
a database known OS, they might get "unusual" results.

This is a use case example the use case is maybe beter stated:

Handling of Operating systems which are not in the database of known
operating systems.

Best regards

Owen



>>
>> Since we can only test on "free as in beer" operating systems at this
>> moment covering these OS's with the database and appropriate tests is
>> problematic.
>>
>> Use case (2)
>> ~~~~~~~~~~~~
>>
>> The use cases are on the latest debian, ubuntu platforms.
>>
>> On both these platforms you can install alternative init systems.
>>
>> on debian stable I can apt-get install the following init systems:
>>
>> systemd
>> upstart
>> sysvinit
>>
>> Hence assuming all debian stable systems are systemd (the default) is a
>> false assumption as (B) does not support users changing the init system
>> before installing ceph on debian and ubuntu as having a database of init
>> systems cannot support all platforms.
>>
>> Use case (3)
>> ~~~~~~~~~~~~
>>
>> By supporting (B) and (C) and emitting a warning on operating systems
>> not in the database, populating the database will be quicker, and
>> correcting values in the database will be easier to verify.
>>
>> In some ways, the code tests its self, at run time.
>>
>> Summary:
>> ~~~~~~~~
>> I think its a value decision, is the extra complexity of doing (B) and
>> (C) worth the corner case of supporting the people who chose to use non
>> default init system worth the code complexity. If we are supporting more
>> than one init detection mechanism, it may well be worth supporting all
>> of (A) (B) and (c).
>>
>> Best regards
>>
>> Owen
>>
>>
>>
>>> Cheers
>>>
>>> On 11/05/2015 18:29, Owen Synge wrote:
>>>> Dear all,
>>>>
>>>> Many init systems are used in linux now. Some ceph code needs to know
>>>> the init system. (I must admit I have not looked into Solaris, MacOS and
>>>> BSD and probably should have)
>>>>
>>>> It would be nice to have one function that detects the init system
>>>>
>>>> Since the init system can be specified in ceph and ceph-deploy
>>>> explicitly it seems to be its reasonable to fail clearly to detect init
>>>> system.
>>>>
>>>> I see 4 ways I can see to detect init system.
>>>>
>>>> (A) Check pid 1.
>>>> (B) Use a database of OS to init mapping / compile time.
>>>> (C) look for init manipulation tools and infure the init system from tools.
>>>>
>>>> Comments:
>>>> ~~~~~~~~
>>>>
>>>> (A1) systmd can be detected easily with.
>>>>
>>>>  grep -qs systemd /proc/1/comm
>>>>
>>>> (A2) With init scripts such as its hard to know what the init system.
>>>>
>>>> (B1) For operating systems like RHEL, SLE, CENTOS, Fedora and scientific
>>>> linux this works well.
>>>>
>>>> (B2) FOr operating systems like newer debian and ubuntu releases more
>>>> than one init system can be installed and used on the OS, so making a
>>>> database / doing it at compile time are not practical on all OS's
>>>>
>>>> (C1) This is fairly reliable.
>>>>
>>>> (C2) sysV tools have compatibility scripts / programs on other platforms
>>>> so if you use a points system for each init system helper script you can
>>>> infure systemd over sysV if sytemctrl exists for example.
>>>>
>>>> So to summarise this:
>>>> ~~~~~~~~~~~~~~~~~~~~
>>>>
>>>> (1) No one system is perfect in all cases.
>>>> (2) Combined these systesm can provide reliable init system detection.
>>>>
>>>> My proposed approach.
>>>> ~~~~~~~~~~~~~~~~~~~~
>>>>
>>>> (I) Use all three approaches where each approach can provide and answer,
>>>> or fail to provide an answer.
>>>>
>>>> (II) Should any approaches disagree -> fail to detect init system.
>>>>
>>>> (III) Should all approaches agree -> then return init system.
>>>>
>>>> (III) Should no approaches provide an init system -> fail to return init
>>>> system.
>>>>
>>>> Comments
>>>> ~~~~~~~~
>>>>
>>>> This multi layered and comparing way of doing init systems may seem
>>>> complete overkill, or maybe its useful.
>>>>
>>>> What do you guys think?
>>>>
>>>> Best regards
>>>>
>>>> Owen
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
>>>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>>>
>>>
>>
> 

- -- 
SUSE LINUX GmbH, GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer, HRB
21284 (AG
Nürnberg)

Maxfeldstraße 5

90409 Nürnberg

Germany
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQEcBAEBAgAGBQJVUdWZAAoJECe/2BuiZiboAjwIAJGTYQZ20VLwExjFJHMeYtbO
MfeIPTYOc5DislnkjLWT2eUjgejqBR6Hg5pBcl+/Xw6i7CrTnpSk82dO//JvWjwo
bE2LHA/os0ssSivkzg2u1eslEYTEy1fspQzDiZv4k5L/6b+M9AAxkzxInYs8HUhi
KcOw2BB92SToOQPSLdRtRcYdpCILTKWALy3LzbySIJdZXAv0BD4EYiNJax7CWH+A
tfMmV1CTGduOCsAOmgTfFOcaL8DsDom4TSnp1Vqn2mNVEaChH4CmOpKsWW6ThXQ8
bjRhoTMZ20ZBbewfnfgulKMM1+tilnw4B4rA92F8ElfGgdrH49WvCLP8LjKD9EU=
=insW
-----END PGP SIGNATURE-----
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux