ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Leonid Krivoshein <klark.devel@gmail.com>
To: devel@lists.altlinux.org
Subject: Re: [devel] /dev/shm
Date: Fri, 30 Aug 2019 07:30:30 +0300
Message-ID: <98bca091-4c6e-989f-1371-709a2a656be2@gmail.com> (raw)
In-Reply-To: <20190830002750.GA19971@altlinux.org>


30.08.2019 03:27, Dmitry V. Levin пишет:
> On Fri, Aug 30, 2019 at 02:39:34AM +0300, Leonid Krivoshein wrote:
>> [...]
>> Ещё одна tmpfs...
> Ещё и с существенно отличающимися параметрами монтирования.

Если это имеет существенное значение для хэшера, тогда понятно. Но так 
ли нужные отличающиеся параметры монтирования (несколько экземпляров 
tmpfs) в обычной системе *по умолчанию*?


>> А как это всё соотносится с повсеместной тенденцией иметь всё-таки ОДНУ
>> tmpfs на каждую систему?
> Интересно, где наблюдается такая тенденция?

Похоже, насчёт повсеместности я несколько перегнул. Посмотрел скелеты 
базовых систем разных дистрибутивов, тенденция не прослеживается. Кто во 
что горазд, даже чаще встречается отказ от /bin -> /usr/bin, от /sbin -> 
/usr/sbin и от /lib64 -> /usr/lib64. В Debian на такую схему перешли в 
2013 для упрощения перехода из stage1 в stage2 (один mount --move /run 
вместо дюжины).

FHS явно описывает разное назначение для этих каталогов: /tmp может быть 
tmpfs, но может быть и частью корневой системы, /run должна быть tmpfs, 
но преемственность с /var/run подразумевает и её чистку при загрузке, 
/dev/shm вообще не затрагивается FHS, но это всегда только tmpfs и 
отказаться от неё практически невозможно. То есть, FHS здесь можно 
трактовать по-разному, в том числе, в пользу объединения.

Контроль над параметрами монтирования различных tmpfs или пересоздания 
каталогов при запуске, помимо статических записей в /etc/fstab, 
предусмотрен только для /tmp (в каких-нибудь /etc/default/tmpfs или 
/etc/tmpfiles.d/*.conf), да и логика подталкивает к тому, что /run и 
/tmp очень схожи по сути. Для многопользовательских систем systemd 
отделяет /run/user/$UID, хотя у нас есть свой /tmp/.private/$USER, но на 
общем разделе /tmp. Для типичной однопользовательской системы нет особой 
нужды иметь столько TMPDIR'ов.

Если корневая система только для чтения, вполне логично, что у нас могут 
быть проблемы и с /root/tmp, и с /etc/udev/hwdb.bin (rpm -V udev, 
по-хорошему надо тоже линковать в /run/udev, поскольку создаётся при 
каждой загрузке). По FHS опять же /root необязателен, на практике без 
него встречал только некоторые busybox-образы, а тот факт, что для рута 
могут использоваться и /root/tmp, и /tmp немного вводит в замешательство.

Короче, клоню к тому, что проще администрировать одну tmpfs.


>
>> к тому же всё делается на tmpfs хостовой системы.
> Хостовая файловая система, вообще говоря, не обязана быть tmpfs.

Да, но так ведь практика...


>> Раз пошли вслед за остальными в этом вопросе (имеются ввиду симлинки
>> /var/run -> /run и /var/lock -> /run/lock), логичнее было бы довести это
>> до ума с остальными каталогами, которые также всегда были tmpfs. Чтобы
>> на каждую систему была только одна tmpfs:
>>
>> /dev/.* -> /run/* (к примеру /dev/.udev -> /run/udev)
>> /dev/shm -> /run/shm
> Интересно, а что такое /run/shm?

Подкаталог, создаваемый при каждом запуске после монтирования tmpfs в 
/run (в Debian и основанных на нём).


>> /dev/shm/* -> /run/*
> Прямо в run?

Да. Наверное, имеются ввиду всякие X-овые в первую очередь программы, 
всякие СУБД, которые раньше использовали для тех же целей /dev/shm -- 
теперь они могут использовать непосредственно /run, та же tmpfs.


>> /tmp -> /run/tmp
> Интересно, а что такое /run/tmp?

Тоже подкаталог, как и /run/shm.
Но я проверил, это далеко не везде так.


> Раньше размер /tmp на порядки превышал размер /run;
> с тех пор что-то изменилось?

Поскольку речь идёт о делёжке RAM+SWAP, придумывать жёсткие лимиты на 
каждый случай для схожих задач незачем. Ничто не мешает закрутить гайки 
на конкретной системе, если цели оправданы. Сейчас же мне это видится 
скорее вредным, раз всё так перемешалось и программы могут использовать 
разные пути для своих задач.


> У разных tmpfs разные задачи и, как следствие, разные параметры
> монтирования.

Разные только в плане ограничения по размеру (айнодам). Так-то задача 
tmpfs иметь быстрый доступ к данным и не захламлять диск. Большая часть 
других ограничений решается дискретной моделью доступа к подкаталогам в 
/run и общим для всего tmpfs (/run) "nosuid,noexec". Тем, кто собирает 
на tmpfs хэшером или mkimage это, понятно, не подходит. Но ведь не все 
пользователи альта занимаются сборкой, скорее меньшинство, а дефолт /tmp 
сейчас для сборщиков в ущерб безопасности. Вот для них (для нас то есть) 
/tmp можно отделить причём даже не весь /tmp, а только $TMPDIR.


-- 
Best regards,
Leonid Krivoshein.



  reply	other threads:[~2019-08-30  4:30 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-28  8:27 ` [devel] Fwd: [cyber] I: Sisyphus-20190827 x86_64 beehive_status: +34 -5 (105) Levin Stanislav
2019-08-28  9:04   ` [devel] /dev/shm Dmitry V. Levin
2019-08-28  9:55     ` Dmitry V. Levin
2019-08-28  9:58       ` Anton Farygin
2019-08-28 10:03       ` Валерий Иноземцев
2019-08-28 10:13         ` Dmitry V. Levin
2019-08-28 10:57           ` Dmitry V. Levin
2019-08-29  0:56             ` Alexey Shabalin
2019-08-28 13:54     ` Dmitry V. Levin
2019-08-28 14:33       ` Alexey Gladkov
2019-08-28 15:02         ` Dmitry V. Levin
2019-08-28 15:11           ` Alexey Gladkov
2019-08-28 15:23             ` Dmitry V. Levin
2019-08-28 18:08               ` Alexey Gladkov
2019-08-28 18:11                 ` Anton Farygin
2019-08-28 18:24                   ` Dmitry V. Levin
2019-08-28 18:45                     ` Anton Farygin
2019-08-28 18:50                       ` Anton Farygin
2019-08-28 18:59                         ` Dmitry V. Levin
2019-08-29 21:08                           ` Dmitry V. Levin
2019-08-28 18:15                 ` Dmitry V. Levin
2019-08-28 19:50                   ` Alexey Gladkov
2019-08-28 20:53                     ` Dmitry V. Levin
2019-08-28 21:46                       ` Alexey Gladkov
2019-08-28 22:52                         ` Dmitry V. Levin
2019-08-29 13:58                           ` Andrey Savchenko
2019-08-29 19:24                             ` Dmitry V. Levin
2019-08-29 19:36                               ` Anton Farygin
2019-08-29 23:39                         ` Leonid Krivoshein
2019-08-30  0:27                           ` Dmitry V. Levin
2019-08-30  4:30                             ` Leonid Krivoshein [this message]
2019-08-28 16:31         ` Stanislav Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=98bca091-4c6e-989f-1371-709a2a656be2@gmail.com \
    --to=klark.devel@gmail.com \
    --cc=devel@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git