Re: [Ceph-maintainers] statically allocated uid/gid for ceph

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

 



On 04/14/2015 11:05 AM, Sage Weil wrote:
> Tim, Owen:
> 
> Can we get a 'ceph' user/group uid/gid allocated for SUSE to get this 
> unstuck?  IMO the radosgw systemd stuff is blocked behind this too.

I haven't yet been able to get a good answer to assignment of static
UIDs and GIDs (I was told all the ones between 0-99 are taken already).

But, if it's OK for the UID and GID numbers to potentially be different
on different systems, adding a "ceph" user and "ceph" group is easy, we
just add appropriate `groupadd -r ceph` and `useradd -r ceph`
invocations to the rpm %pre script, which will give a UID/GID somewhere
in the 100-499 range (see
https://en.opensuse.org/openSUSE:Packaging_guidelines#Users_and_Groups
for some notes on this).  We'd also want to update rpmlint to not whine
about the "ceph" name.

I originally thought the risk of non-static UID/GID numbers on different
systems was terrible, but...

> I think a osd-prestart.sh snippet (or similar) that does a chown -R of any 
> non-root osd data to the local ceph user prior to starting the daemon will 
> handle the cross-distro changes without too much trouble.  I'd lean toward 
> not going from root -> ceph, though, and have the start script stay root 
> and not drop privs if the data is owned by root.. that covers upgrades 
> without interruption.
> 
> What do you think?

...that sounds reasonable, and I think it would also handle the case
where, say, you move an OSD from one SUSE host to another - if the
UID/GID doesn't match (maybe some other `useradd`ing software was
installed first on the other host), the chown will fix it anyway.

Are there any holes in this?

Regards,

Tim


> 
> 
> On Thu, 11 Dec 2014, Tim Serong wrote:
> 
>> On 12/11/2014 05:48 AM, Sage Weil wrote:
>>> +ceph-devel
>>>
>>> On Wed, 10 Dec 2014, Ken Dreyer wrote:
>>>> On 12/06/2014 01:54 PM, Sage Weil wrote:
>>>>> Hi Colin, Boris, Owen,
>>>>>
>>>>> We would like to choose a statically allocated uid and gid for use by Ceph 
>>>>> storage servers.  The basic goals are:
>>>>>
>>>>>  - run daemons as non-root (right now everything is uid 0 (runtime and 
>>>>> on-disk data) and this is clearly not ideal)
>>>>>  - enable hot swap of disks between storage servers
>>>>>  - standardize across distros so that we can build clusters with a mix
>>>>>
>>>>> To support the hot swap, we can't use the usual uids allocated dynamically 
>>>>> during package installation.  Disks will completely filled with Ceph data 
>>>>> files with the uid from one machine and will not be usable on another 
>>>>> machine.
>>>>>
>>>>> I'm hoping we can choose a static uid/gid pair that is unused for Debian 
>>>>> (and Ubuntu), Fedora (and RHEL/CentOS), and OpenSUSE/SLES.  This will let 
>>>>> us maintain consistency across the entire ecosystem.
>>>>
>>>> How many system users should I request from the Fedora Packaging
>>>> Committee, and what should their names be?
>>>>
>>>> For example, are ceph-mon and ceph-osd going to run under the same
>>>> non-privileged system account?
>>>
>>> Hmm, my first impulse was to make a single user and group.  But it might 
>>> make sense that e.g. rgw should run in a different context than ceph-osd 
>>> or ceph-mon.
>>>
>>> If we go down that road, then maybe
>>>
>>>  ceph-osd
>>>  ceph-mon
>>>  ceph-mds
>>>  ceph-rgw
>>>  ceph-calamari
>>>
>>> and a 'ceph' group that we can use for /var/log/ceph etc for the qemu 
>>> and other librados users?
>>>
>>> Alternatively, if we just do user+group ceph, then rgw can run as www-data 
>>> or apache (as it does now).  Not sure what makes the most sense for 
>>> ceph-calamari.
>>
>> FWIW my gut says go with a single ceph user+group and leave rgw running
>> as the apache user.
>>
>> Calamari consists of a few pieces - the web-accessible bit runs as the
>> apache user, then there's the cthulhu daemon, as well as carbon-cache
>> for the graphite stuff.  These latter two I believe run as root (at
>> least, they do with my SUSE packages which have systemd units for each
>> of these services, and I assume they run as root on other distros where
>> they're run under supervisord).  Now that I think of it though, I wonder
>> if it makes sense to just run the whole lot as the apache user...?
>>
>> Regards,
>>
>> Tim
>> -- 
>> Tim Serong
>> Senior Clustering Engineer
>> SUSE
>> tserong@xxxxxxxx
>> --
>> 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
>>
>>
> 


-- 
Tim Serong
Senior Clustering Engineer
SUSE
tserong@xxxxxxxx
--
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